Главная страница
    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.043 c
6-1164258046
NovaC
2006-11-23 08:00
2007.06.03
Аналог ClrScr &amp; KeyPressed в Delphi


1-1176199023
roughneck
2007-04-10 13:57
2007.06.03
Как сохранить расположение Dockable - форм?


4-1167029043
leonidus
2006-12-25 09:44
2007.06.03
Копирование выделенного текста в буфер


11-1160338890
Al2
2006-10-09 00:21
2007.06.03
KOL на C++Builder


2-1179232495
NotAva
2007-05-15 16:34
2007.06.03
сообщение на перерисовку





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