Здравствуйте!
Пытаюсь на динамической кнопке (SpeedButton) сделать обработчик события Onclick. В котором данный код:
Код:
var
Icon : TIcon;
IconIndex: Word;
begin
if S[SensonTag]='' then
begin
if sOpenDialog1.Execute then
begin
S[SensonTag]:=sOpenDialog1.FileName;
Q[SensonTag].Glyph:=nil;
Icon:=TIcon.Create;
StrPCopy (Pch,S[IntToStr(SensonTag)] );
Icon.Handle:= ExtractAssociatedIcon(hInstance, Pch, IconIndex);
Q[SensonTag].Glyph.Width:= Icon.Width;
Q[SensonTag].Glyph.Height:= Icon.Height;
Q[SensonTag].Glyph.Canvas.Draw(0, 0, Icon);
Q[SensonTag].Caption:=ExtractFileName(s[1]);
Icon.Free;
end;
end
else
begin
ShellExecute (Form1.Handle, nil,PChar(S[IntToStr(SensonTag)]), nil, nil, SW_RESTORE);
end;
end;
Переменные:
Код:
Q:array [1..25] of TSpeedButton;
S:array [1..25] of string;
I,SensonTag :Integer;
Pch: array[0..256] of Char;
Хочу сделать, что бы по клику динамической кнопки, происходил выбор программы(или любого другого файла) через Opendialog1, далее запуск выбранной программы...
При наведении на динамическую кнопку, в переменную SensorTag передается Tag кнопки. По этому в коде всё ссылается на данную переменную.
У меня проблема в 14 строке. Мне нужно указать в массиве S[] переменную SensorTag. Я пробовал так как в коде - вылетает ошибка.
Пробовал переставлять IntToStr, думая что не там написал - не помогло.
Так же проблема в 26 строке, конкретно в этом отрывке
PChar(S[IntToStr(SensonTag)])
Опять же, пытаюсь впихнуть переменную в String массив.
Помогите пожалуйста. Что делаю не так ?