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

Вниз

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

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

Наверх




Память: 0.45 MB
Время: 0.004 c
15-1255000858
defen
2009-10-08 15:20
2009.12.06
Подключение и работа с SQL базой


3-1230212249
Lera
2008-12-25 16:37
2009.12.06
Запрос и множество


1-1227475563
Lloyd
2008-11-24 00:26
2009.12.06
Сортировка "двухпутевая вставка "


2-1255770639
xyz
2009-10-17 13:10
2009.12.06
компоненты и панель


2-1255951980
Jack
2009-10-19 15:33
2009.12.06
Excel в TMemoryStream





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