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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
14-88149
pirat
2003-03-12 18:55
2003.03.27
нужна процедура архивации


3-87778
QUE
2003-03-11 17:32
2003.03.27
Тип данных в Оракле


6-88112
Dmitriy_R
2003-02-02 17:45
2003.03.27
МАС адрес


14-88165
cypher
2003-03-10 17:26
2003.03.27
Delphi 5 + Delphi 6


1-87944
mod
2003-03-17 14:43
2003.03.27
Создание Dll в BPascal





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