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

Вниз

Как запустить процедуру   Найти похожие ветки 

 
SKIPtr   (2007-05-12 16:23) [0]

Драсте. Делаю программу, которая должна работать по сценарию, написанному в файле (скорей в текстовом). Как запустить процедуру, имя которой в этом файле. А также изменить свойство компонента, который указан в файле


 
DVM ©   (2007-05-12 16:29) [1]

Сценарий кто исполнять то будет?


 
>>DEATH<<   (2007-05-12 16:31) [2]

ну к примеру через case of


 
>>DEATH<<   (2007-05-12 16:33) [3]

ну к примеру через case of


 
SKIPtr   (2007-05-12 18:06) [4]

После case идёт переменная, Что там должно быть, если у меня есть напр.  Если s = ‘MyProc’ нужно запустить процедуру с именем MyProc


 
SKIPtr   (2007-05-12 18:16) [5]

После case идёт переменная, Что там должно быть, если у меня есть напр.  Если s = ‘MyProc’ нужно запустить процедуру с именем MyProc


 
Anatoly Podgoretsky ©   (2007-05-12 21:38) [6]

> SKIPtr  (12.05.2007 18:16:05)  [5]

Тут IF нужен2озникновения исключения в данном случае выше, вплоть до полного зависания системы.


 
DVM ©   (2007-05-12 21:56) [7]


> Anatoly Podgoretsky ©   (12.05.07 21:38) [6]

Чего то 2 поста из разных веток склеились вроде.


 
SKIPtr   (2007-05-12 22:00) [8]

Получается если у меня i процедур, то надо i раз выполнить IF


 
DVM ©   (2007-05-12 22:05) [9]


> SKIPtr   (12.05.07 22:00) [8]

case не работает со строками. Только с порядковыми типами.


 
homm ©   (2007-05-12 22:14) [10]

> Получается если у меня i процедур, то надо i раз выполнить IF

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


 
Anatoly Podgoretsky ©   (2007-05-12 22:15) [11]

> SKIPtr  (12.05.2007 22:00:08)  [8]

Не обязательно, if можно применять к списку, например TStringList


 
Loginov Dmitry ©   (2007-05-12 23:59) [12]

> Как запустить процедуру, имя которой в этом файле.


Используй вот такой скелет:


unit Unit2;

interface
uses
 Classes;

type
 TProc = procedure;

procedure RegisterProc(AProc: TProc; const ProcName: string);

function ProcByName(const ProcName: string): TProc;

implementation

var
 AList: TStringList;

procedure RegisterProc(AProc: TProc; const ProcName: string);
begin
 if AList.IndexOf(ProcName) < 0 then
   AList.AddObject(ProcName, TObject(@AProc));
end;

function ProcByName(const ProcName: string): TProc;
var
 I: Integer;
begin
 I := AList.IndexOf(ProcName);
 if I >= 0 then
   Result := TProc(AList.Objects[I])
 else
   Result := nil;
end;

procedure Proc1;
begin

end;

procedure Proc2;
begin

end;

procedure Proc3;
begin

end;

initialization
 AList := TStringList.Create;

finalization
 AList.Free;
end.


Доработай его под свои нужды.


 
Leonid Troyanovsky ©   (2007-05-13 10:26) [13]


> SKIPtr   (12.05.07 18:16) [5]

> меня есть напр.  Если s = ‘MyProc’ нужно запустить процедуру
> с именем MyProc

http://rsdn.ru/Forum/Message.aspx?mid=476748&only=1

--
Regards, LVT.


 
SKIPtr   (2007-05-13 10:27) [14]

Этот вариант для меня хороший



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

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

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1178467183
ArtemESC
2007-05-06 19:59
2007.06.03
OpenSuse 10.2


15-1178362347
ArtemESC
2007-05-05 14:52
2007.06.03
Шахматы...


8-1159108278
_SuN_
2006-09-24 18:31
2007.06.03
Рисование на рабочем столе


2-1178939593
Новичек
2007-05-12 07:13
2007.06.03
Никак не придумаю, как тему назвать.


2-1178898796
M1sT
2007-05-11 19:53
2007.06.03
Ошибка при выполении SQL запроса....





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