Главная страница
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.013 c
15-1254858167
Magedon
2009-10-06 23:42
2009.12.06
Delphi 2007 + Vista SP2


15-1254601813
Юрий
2009-10-04 00:30
2009.12.06
С днем рождения ! 4 октября 2009 воскресенье


2-1255860293
A.L.E.X.A.N.D.E.R.
2009-10-18 14:04
2009.12.06
Реализация float8/16/24


15-1255010538
@!!ex
2009-10-08 18:02
2009.12.06
Чем можно докачать файл?


6-1210247266
laao
2008-05-08 15:47
2009.12.06
как корректно завершать работу с поднятым IdHTTPServer ?