![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |