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

Вниз

String to Procedure Name   Найти похожие ветки 

 
Delphi5.01 ©   (2003-03-16 09:01) [0]

Zdravstvuite Delphisti!
Vot nedavno nachal pisat novuiu progu i poiavilsa ochen interesni vopros, vozmojnoli

obrotitsa k procedure znaia eio ima, privoju primer:

procedure Move():
begin
end;
...
var St: string;
begin
St:="Move";
//nu a potom chtoto vrode FindComponent("Button"+IntToStr(i));
FindProcedure(St);
end;

iz primera ocheviden vopros, kak mojno preobrozavat stroku v ima proceduri chtob potom eio

vizvat?

P.S. variant tipa:
if St="Move" then
Move;
ne podxodat, potomu chto exe failu ne izvestno snachala o sushestvovanii proceduri, on

chetaet eio ima iz faila, i v kakoi DLL faile naxoditsa, nu a potom proga doljna zapustit

etu proceduru! vopros ne iz logki, no esli kto mojet pomoch to pomogite pojaluista.


 
uw ©   (2003-03-16 09:26) [1]

Посмотри TObject.MethodAddress. Думаю, это все, что есть по теме.
Вообще-то, такой надобности не должно возникать. Обрисуй, зачем тебе это надо, скорее всего тебе укажут, как сделать по нормальной схеме.


 
MBo ©   (2003-03-16 10:00) [2]

Поищи по форуму, на неделе это было


 
Delphi5.01 ©   (2003-03-16 10:13) [3]

da ia tipa delau novi izaik programirovania dla detei, nu tam dolno bit neskolko operaci, ia vot podumal kogda ponadobitsa dobavit novuiu operaciu ne nado budet ves kod peredelivat, zapishu operaciu v fail, nu a sam kod v DLL-ku. no voobsheto mena interesuet kakoi iavlaetsa klasicheski metod analiza koda, tipa kompilatora s F8,F4 i F9. gde takuiu infu mojno dostat, i voobshe o kompilatore!
Spasibo!


 
Роман Косилов   (2003-03-16 11:14) [4]

В том виде, в котором проблема поставлена первоначально
(т.е. вызвать процедуру по имени из известной ДЛЛ) решается просто:
type
tmpProc = procedure(params:pChar);stdcall;
var
hLib : tHandle;
Proc : tmpProc;
....
//грузим библиотеку, находим процедуру
hLib := LoadLibrary("имя_ДЛЛ");
@Proc := getProcAddress(hLib,"имя_процедуры");
// выполняем процедуру
Proc(Params);
...

где Params - строка параметров. Например "1,"Вася""

Передать параметры таким способом проще всего.
Вообще-то, вызвать процедуру с произвольным (заранее не
известным) набором параметров таким способом не получится.
Так что придумай единый интефейс для передачи параметров
возврата значений.

А вот насчет компиляторов лучше классиков почитать - Ахо и Ульмана.


 
uw ©   (2003-03-16 11:33) [5]

Прошу прощения. Теперь и я увидел, что в первом вопросе присутствует слово DLL.


 
Delphi5.01 ©   (2003-03-16 19:25) [6]

Spasibo!



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

Текущий архив: 2003.03.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
9-87770
delpher
2002-06-17 23:14
2003.03.27
GLScene - самые азы


1-88041
Сергей
2003-03-14 16:25
2003.03.27
Проблема с TMemoryStream!!!


6-88110
harismatik
2003-02-05 15:39
2003.03.27
Прием файла по HTTP протоколу


6-88099
Ундервуд
2003-02-04 12:50
2003.03.27
Обмен сообщениями из локалки в и-нет


3-87841
bytebutcher
2003-03-06 18:37
2003.03.27
BatchMove но с ProgressBarом