Главная страница
    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
11-1208955774
andreil
2008-04-23 17:02
2009.12.06
Как указать цвет пикселя 8-битному изображению?


2-1255773566
dplz
2009-10-17 13:59
2009.12.06
Цвет выделенный строк в combobox без csOwnerDrawFixed


2-1255533352
madmech
2009-10-14 19:15
2009.12.06
Как отстроить ширину и высоту у DBGrid


2-1255949054
Роман
2009-10-19 14:44
2009.12.06
как вывести отчет


15-1254493923
ocean
2009-10-02 18:32
2009.12.06
Хочу наладонник с навигацией GPS покруче.





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