Главная страница
    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.005 c
15-1255119652
Kolan
2009-10-10 00:20
2009.12.06
А кто-нибудь пробовал писать визуализаторы?


15-1255017902
TUser
2009-10-08 20:05
2009.12.06
Сакральный смысл понятия дурак :)


2-1254662801
newbart
2009-10-04 17:26
2009.12.06
Ошибки при запуске приложений из Delphi


15-1255117556
PoPooPoP
2009-10-09 23:45
2009.12.06
doc => tex


2-1255601991
Игорь85
2009-10-15 14:19
2009.12.06
dbgring в excel





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