Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

With   Найти похожие ветки 

 
SergP ©   (2004-06-01 23:31) [0]

with TStringlist.Create do
begin
...

//И вот тут мне понадобился указатель на созданый мной объект класса TStringList
aaa:= ??? // Как его получить?

...
end;


 
Gero ©   (2004-06-01 23:33) [1]

Никак. Без дополнительной переменной не обойтись.


 
AlexG ©   (2004-06-01 23:34) [2]

Ты хочешь указателю на объект что-то присвоить?


 
Anatoly Podgoretsky ©   (2004-06-01 23:36) [3]

Так примени локальную переменную, всего 4 байта совместно используемой памяти, стек. Всему свое назначение, данная конструкция для анонимного обращения, а ты хочешь явное.


 
SergP ©   (2004-06-01 23:45) [4]

Хм. Да там почти все анонимно нормально проходит. Но вот в одном месте  ну не совсем как я написал, но нужно передать функции указатель на эту фигню.  
ini.ReadSections(???);

Ну если нельзя, то нельзя... Просто надеялся что все-же можно каким-нить способом, которого я не знаю...


 
Gero ©   (2004-06-01 23:49) [5]

Если бы.


 
default ©   (2004-06-02 00:38) [6]

вынуть из EAX
полностью легально
пишут же в хелпе
"procedure CallDynamicMethod(e: TExample);
asm
 // Save ESI register
 PUSH    ESI
 // Instance pointer needs to be in EAX
 
MOV     EAX, e
 // DMT entry index needs to be in (E)SI
 MOV     ESI, DMTINDEX TExample.DynamicMethod
 // Now call the method
 CALL    System.@CallDynaInst

 // Restore ESI register
 POP ESI
end;"
не изверги же в Borland-е чтобы давать примеры того как можно писать, а в следующих версиях обрубать указанные возможности


 
evvcom ©   (2004-06-02 01:27) [7]


> Так примени локальную переменную, всего 4 байта совместно
> используемой памяти, стек.

Причем эти 4 байта компилятор все равно отводит в стеке, потому что не так уж и много регистров у процессора. И кроме того, лучше вообще как можно реже пользоваться конструкцией With. Она экономит текст, но заметно усложняет читабельность кода и его дальнейшую отладку.


 
KilkennyCat ©   (2004-06-02 01:46) [8]


> evvcom ©   (02.06.04 01:27) [7]


Вот! Именно поэтому я его и не люблю - потом читаешь исходник, и начинаешь интерпретатором работать...


 
MBo ©   (2004-06-02 08:03) [9]


type
 TSimpleMethod = procedure of object;

function GetWithSelf(const pr: TSimpleMethod): TObject;
begin
 Result := TMethod(pr).Data;
end;

 with TStringList.Create do
 try
   CommaText := "1,2,3,4,5,6,7,8,9,0";
   ShowText(TStringList(GetWithSelf(Free)));
 finally
   Free;
 end;



(Статья Максима Кузьминского на Королевстве)


 
Mim1 ©   (2004-06-02 08:57) [10]


> И кроме того, лучше вообще как можно реже пользоваться конструкцией
> With. Она экономит текст, но заметно усложняет читабельность
> кода и его дальнейшую отладку.


холивар по этому поводу был в потрепаться, и на кроролевстве. Все остались при своем.


 
default ©   (2004-06-02 14:50) [11]

MBo ©   (02.06.04 08:03) [9]
ну и это и так понятно, исх-ая задача правда немного другой была...


 
Тимохов ©   (2004-06-02 14:53) [12]


> MBo ©   (02.06.04 08:03) [9]

оригинально, но мне кажется больше подходит как решение задачи для олимпиады :)))

АВТОРУ.
я бы через локальную переменную сделал.


 
default ©   (2004-06-02 14:56) [13]

Тимохов ©   (02.06.04 14:53) [12]
чего оригинального?дополн-ый код как никак...


 
Тимохов ©   (2004-06-02 14:58) [14]


> default ©   (02.06.04 14:56) [13]
> Тимохов ©   (02.06.04 14:53) [12]
> чего оригинального?дополн-ый код как никак...

ну я же дальше написал в чем оригинальность - хорошее решение для олимпиадной задачи по дельфи.
в жизни, насерное, не очень применимое решение по обозначенным вами причинам.


 
MBo ©   (2004-06-02 14:59) [15]

>default ©   (02.06.04 14:50) [11]
Результат функции - как раз "указатель на созданый мной объект класса TStringList"

>Тимохов ©
Угу ;)


 
default ©   (2004-06-02 15:00) [16]

MBo ©   (02.06.04 14:59) [15]
понятно это...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.04 c
3-1085313764
SergP
2004-05-23 16:02
2004.06.13
Можно ли INSERT ом вставлять записи в 2 таблицы сразу?


6-1082642467
dark2004
2004-04-22 18:01
2004.06.13
Помогите органиовать поддержку Perl на моем Webсервере


14-1085566752
wnew
2004-05-26 14:19
2004.06.13
Совсем загнулся сайт:(


14-1085546854
Vlad Oshin
2004-05-26 08:47
2004.06.13
Чем Касперский занимается...


1-1085729482
Leaner
2004-05-28 11:31
2004.06.13
Как правильно освободить память ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский