|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблема с динамическим событием
Здравствуйте!
Пытаюсь на динамической кнопке (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 массив. Помогите пожалуйста. Что делаю не так ? |