![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() создаю динамически Image
Код:
procedure TForm1.Button1Click(Sender: TObject); var icon :TIcon; begin imag:=TImage.Create(self); imag.Parent:=Form1.Panel1; imag.Left:=10; imag.Top:=10; imag.AutoSize:=true; imag.Picture.Icon:=icon; imag.OnDblClick:=OpenLabel; //вот нажатие обрабатывается процедурой end; procedure TForm1.OpenLabel(Sender: TObject); begin ShellExecute(handle, 'open', filename, nil, nil, SW_SHOWNORMAL); end; imag.OnDblClick вобщем вопрос: как передать в процедуру или функцию дополнительный параметр с типом string |
#2
|
||||
|
||||
![]() Ну я бы делал так.
Код:
... создаю каритнку... imag.Tag := i; // где i - как раз разница между картинками (либо надо было делать массив картинок var a: array of TImage) // то бишь i - просто переменная. inc(i); // i:=i+1; Код:
...openLabel... begin case TImage(Sender).Tag of 1: ShellExecute(handle, 'open', '1', nil, nil, SW_SHOWNORMAL); 2: ShellExecute(handle, 'open', '2', nil, nil, SW_SHOWNORMAL); 3: ShellExecute(handle, 'open', '3', nil, nil, SW_SHOWNORMAL); else ShellExecute(handle, 'open', '4', nil, nil, SW_SHOWNORMAL); end; Помогаю за Спасибо ![]() |
#3
|
|||
|
|||
![]() я слегка не понял, мне нужно запускать файлы, причем заранее они мне будут не известны и количество тоже
|
#4
|
||||
|
||||
![]() Код:
var Form1: TForm1; S: String; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var icon : TImage; begin imag:=TImage.Create(self); with imag do begin Parent:=Form1.Panel1; Left:=10; Top:=10; AutoSize:=true; Picture.Icon:=icon; OnDblClick:=OpenLabel; S:='myfile.exe'; end; end; procedure TForm1.OpenLabel(Sender: TObject); begin ShellExecute(handle, 'open', s, nil, nil, SW_SHOWNORMAL); end; Помогаю за Спасибо ![]() |
#5
|
||||
|
||||
![]() Либо если несколько картинок создаешь:
Код:
S: String; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var icon : array[1..3] of TImage; i: integer; begin for i:=1 to 3 do begin imag[i]:=TImage.Create(self); with imag[i] do begin Parent:=Form1.Panel1; Left:=10; Top:=10; AutoSize:=true; Picture.Icon:=icon; OnDblClick:=OpenLabel; S:='myfile.exe' + IntToStr(i); // изменяй здесь название файла end; end; procedure TForm1.OpenLabel(Sender: TObject); begin ShellExecute(handle, 'open', s, nil, nil, SW_SHOWNORMAL); end; Помогаю за Спасибо ![]() |
#6
|
|||
|
|||
![]() видимо надо полностью описать ситуацию:
по нажатии кнопки я создаю на panel один новую иконку открываемого файла, и после этого я должен нажать на эту созданную иконку и запустить файл, то есть в любой момент времени я могу вызвать функцию запуска файла и должен туда передать путь а у тебя получается Код:
for i:=1 to 3 do begin imag[i]:=TImage.Create(self); with imag[i] do begin Parent:=Form1.Panel1; Left:=10; Top:=10; AutoSize:=true; Picture.Icon:=icon; OnDblClick:=OpenLabel; S:='myfile.exe' + IntToStr(i); // изменяй здесь название файла end; |
#7
|
||||
|
||||
![]() Объясни как ты хочешь передавать путь? Где ты его узнаешь???
Помогаю за Спасибо ![]() |
#8
|
|||
|
|||
![]() через opendialog открываю файл (.exe) достаю из него иконку ставлю ее на Panel, адрес беру из opendialog.fileame
|
#9
|
|||
|
|||
![]() можно запоминать путь в массив а потом вытаскивать
|
#10
|
||||
|
||||
![]() Ну? В чем проблема?
Код:
var // глобальный Form1: TForm1; i: Integer=1; s: array[1..5] of string; ... создаю картинку... inc(i); // i:=i+1; Код:
click по картинке begin shellexecute(handle, 'open', s[i-1]... Помогаю за Спасибо ![]() |
#11
|
|||
|
|||
![]() а как я узнаю какая иконка вызвала функцию?
Последний раз редактировалось OvoMan, 18.01.2011 в 22:23. |
#12
|
|||
|
|||
![]() могу предложить немного по другому
Код:
var A: array of PAnsiChar; procedure TForm1.Button1Click(Sender: TObject); ... SetLength(A,Length(A)+1); imag.Tag:=Length(A); A[Length(A)-1]:='путь'; procedure TForm1.OpenLabel(Sender: TObject); begin ShellExecute(handle, 'open', A[TImage(Sender).tag-1], nil, nil, SW_SHOWNORMAL); end; |
#13
|
|||
|
|||
![]() Цитата:
|
#14
|
|||
|
|||
![]() Цитата:
во точно через tag, это идея спасибо попробую |