Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Button zur Laufzeit mit festlegbarem On-Click Ereigniss (https://www.delphipraxis.net/20450-button-zur-laufzeit-mit-festlegbarem-click-ereigniss.html)

Nikolas 18. Apr 2004 10:14


Button zur Laufzeit mit festlegbarem On-Click Ereigniss
 
HI,
Ich öffne in einem Programm andere Programme über Shellexecute. Dafür hab ich mir eine Liste der Pfade angelegt, die immer bei Programmbeginn gelesen wird.
Jetzt will ich zur Laufzeit für jeden Pfad einen Button mit einem passenden Shellexecute im
On-Click erstellen. :coder:

Leider hab ich mit solchen Sachen noch nicht gearbeitet und weiss jetzt nicht, wie ich das anstellen kann oder wonach ich jetzt suchen muss. :wall:
:?: Also: wie kann ich das machen :?:

THXbyTOX

SirThornberry 18. Apr 2004 10:20

Re: Button zur Laufzeit mit festlegbarem On-Click Ereigniss
 
Du könntest es in etwa so machen
Delphi-Quellcode:
var Buttons: Array of TButton;
[...]

setlength(Buttons, length(Buttons) + 1);
Buttons[length(Buttons)-1] := TButton.Create;
Buttons.parent := Self;
Buttons.top := y; //musst du selbst festlegen
Buttons.Left := x; //musst du auch selbst festlegen
Buttons.OnClick := ButtonClicksproc;


procedure TIrgendwas.ButtonClicksproc(Sender: TObject);
var LCount: Integer;
    LProgramm: String;
begin
  for LCount := 0 to length(Buttons) - 1 do
  begin
    if Sender = Buttons[LCount] then
    begin
      LProgramm := Programmliste.Strings[LCount];
      //jetzt kannst du mit LProgramm dein ShellExecute aufrufen
    end;
  end;
end;

Sharky 18. Apr 2004 10:22

Re: Button zur Laufzeit mit festlegbarem On-Click Ereigniss
 
Hai Toxman,

das Thema hatten wir schon sehr oft -> ForenSuche

Ich würde das anders lösen. Weise jedem Button das gleiche OnClick-Event zu.
Wenn Du einen neuen Button erzeugst weise der Eigenschaft Tag einen neuen Wert zu.
In deinem OnClick wertest Du jetzt einfach das Tag aus.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i_tag : Integer;
  s_programm : String;
begin
  i_tag := (Sender As TButton).Tag;
  case i_tag of
   0 : s_programm := 'c:\myprogramm1.exe';
   1 : s_programm := 'c:\myprogramm2.exe';
   2 : s_programm := 'c:\myprogramm3.exe';
  end;
  ShellExecute (.......);
end;

Nikolas 18. Apr 2004 10:30

Re: Button zur Laufzeit mit festlegbarem On-Click Ereigniss
 
Vielen Dank ihr beide :thuimb:

@ Sharky:
Ich wusste leider nicht, nach was ich suchen sollte. Da hab ich natürlich als erstes geschaut :mrgreen:

SirThornberry 18. Apr 2004 10:32

Re: Button zur Laufzeit mit festlegbarem On-Click Ereigniss
 
Das von Sharky ist wohl eindeutig die bessere Variante. Auf das mitm Tag hätt ich auch selbst kommen können so oft wie das schon geschrieben wurde


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz