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

Вниз

События для динамических кнопок...   Найти похожие ветки 

 
FEV   (2009-10-16 16:34) [0]

Вот таким образом я считываю из файла количество кнопок, и создаю их...
Butt:=Ini.ReadInteger("Form","Buttons",1);
for i:=1 to butt do
begin
bt[i]:=tbutton.Create(self);
bt[i].Width:=Ini.ReadInteger("Button"+inttostr(i),"Width",100);
bt[i].Height:=Ini.ReadInteger("Button"+inttostr(i),"Height",100);
bt[i].Caption:=Ini.ReadString("Button"+inttostr(i),"Caption","Button"+inttostr(i));
bt[i].Left:=Ini.ReadInteger("Button"+inttostr(i),"Left",5);
bt[i].Top:=Ini.ReadInteger("Button"+inttostr(i),"Top",5);
bt[i].Font.Name:=Ini.ReadString("Button"+inttostr(i),"FontName","MS Sans Serif");
bt[i].Font.Size:=Ini.ReadInteger("Button"+inttostr(i),"FontSize",8);
if Ini.ReadInteger("Button"+inttostr(i),"ShowHint",0)<>0 then
begin
bt[i].ShowHint:=true;
bt[i].Hint:=Ini.ReadString("Button"+inttostr(i),"Hint","Hint");
end else bt[i].ShowHint:=false;
bt[i].OnClick:=BTNOnClick(i); пробовал еще просто BTNOnClick() и BTNOnClick(nil) и BTNOnClick(self)
bt[i].Parent:=form1;

Но я никак не могу настроить событие... Использую
bt[i].OnClick:=BTNOnClick(i); для запуска процедуры BTNOnClick(i)...
Есть сама процедура
procedure BTNOnClick(Sender: TObject); и пробовал BTNOnClick(i:integer) и BTNOnClick(Sender: TObject; i:integer)
var exec:string;
begin
exec:=Ini.ReadString("Button"+inttostr(i),"Exec","none");
if exec<>"none" then
if DirectoryExists(Disk+Exec) or fileexists(Disk+Exec) then
ShellExecute(bt[i].Handle, nil, pansichar(Disk+Exec), nil, nil, SW_SHOW);
end;

Не могу получить запуска. Параметр обязателен, без него запуститься не тот файл и причем с любой кнопки... хотя i:integer - глобальная переменная.
Вечно пишет For loop control variable must be simple local variable...


 
clickmaker ©   (2009-10-16 16:51) [1]

bt[i].OnClick:=BTNOnClick;

procedure TForm1.BTNOnClick(Sender: TObject);


 
RWolf ©   (2009-10-16 16:53) [2]


> глобальная переменная

а должна быть локальной, о чем Delphi и сообщает. Других в цикле FOR не положено.


 
Германн ©   (2009-10-16 17:00) [3]

bt[i].Tag:=i;

procedure TForm1.BTNOnClick(Sender: TObject);
begin
 case TButton(Sender).Taf of
    ...


 
FEV   (2009-10-18 14:53) [4]

Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
3-1230212249
Lera
2008-12-25 16:37
2009.12.06
Запрос и множество


15-1255128109
Kerk
2009-10-10 02:41
2009.12.06
Анна Потсар учит как правильно графоманить в интернете


2-1256026045
Роман
2009-10-20 12:07
2009.12.06
between или <= =>


8-1190053070
Дельфин
2007-09-17 22:17
2009.12.06
Несколько потоков звука в программе


15-1254768851
freeman1
2009-10-05 22:54
2009.12.06
Устроство подключено