Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
14-1085382599
Gorlum
2004-05-24 11:09
2004.06.13
Где же моя анкета?


3-1085056700
Санек
2004-05-20 16:38
2004.06.13
Хранение в базе отсканированных документов


9-1076665683
ZAROLF
2004-02-13 12:48
2004.06.13
TEdit в Delphix


1-1085992081
Erik1
2004-05-31 12:28
2004.06.13
Как в наследнике TCollectionItem добавить атрибут из списка?


4-1084264745
Jester
2004-05-11 12:39
2004.06.13
Смена языка в проге...