Главная страница
    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.113 c
3-1085395105
Alex_xxx
2004-05-24 14:38
2004.06.13
ADO, драйвер по умолчанию


1-1086124481
SMART_n
2004-06-02 01:14
2004.06.13
MDI с приложениями


14-1085668811
malkolinge
2004-05-27 18:40
2004.06.13
Нужен програмист


14-1085123501
Zheka
2004-05-21 11:11
2004.06.13
Литература по Мьютексам, семафорам, критическим секциям и т.д.


4-1084229626
NetKnight
2004-05-11 02:53
2004.06.13
Creator of the mutex?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский