Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Welche Komponente führt die Metode aus? (https://www.delphipraxis.net/112921-welche-komponente-fuehrt-die-metode-aus.html)

napsterxx 29. Apr 2008 17:00


Welche Komponente führt die Metode aus?
 
Nehmen wir an ich habe 10 Komponenten des Typs TButton.
Alles dieser Komponenten haben die selbe OnClick Methode: ButtonClick
Das heißt egal auf welchen Button gedrückt wird, es geschiet das gleiche.

Nun möchte ich in der Metode des Button klicks abfragen welcher Button denn diese Metode ausgeführt hat und dies dann anzeigen.

Die Muhkuh 29. Apr 2008 17:01

Re: Welcher Komponente führt die Metode aus?
 
Die OnClick-Methode bietet Dir einen Parameter namens "Sender", dort kann Du überprüfen, auf welchen Button geklickt wurde.

Fussball-Robby 29. Apr 2008 17:01

Re: Welche Komponente führt die Metode aus?
 
Schau dir mal den Parameter Sender an.

napsterxx 29. Apr 2008 17:12

Re: Welche Komponente führt die Metode aus?
 
Ja habe ich bereits, aber ich werde daraus nicht schlau. Entschuldigung

Die Muhkuh 29. Apr 2008 17:14

Re: Welche Komponente führt die Metode aus?
 
Wo hapert es denn?

Du kannst per

Delphi-Quellcode:
(Sender as TButton).Name
an den Namen des Buttons dran kommen.

napsterxx 29. Apr 2008 17:18

Re: Welche Komponente führt die Metode aus?
 
Geht das denn auch mit Arrays? Ich habe ein Array von TJvThreads, jedoch wenn ich mit ShowMessage und dann dem Code von eben arbeiten möchte funktioniert das nicht. Ungültige Typenumwandlung

mkinzler 29. Apr 2008 17:24

Re: Welche Komponente führt die Metode aus?
 
Zeig mal den Code

napsterxx 29. Apr 2008 17:41

Re: Welche Komponente führt die Metode aus?
 
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  LI: TListItem;
begin                
  Inc(Index, 1);
  SetLength(Views, Index+1);
  SetLength(Threads, Index+1);

  { Neue ListView erstellen }
  Views[Index] := TJvListView.Create( self);
  Views[Index].Parent := panel1;

  Threads[Index] := TJvThread.Create(Form2);
  Threads[Index].OnExecute := ThreadsExecute;
  Threads[Index].Tag := Index;

  { Eigenschaften der neuen Listview zuweisen }
  with Views[Index] do
  begin
    Columns := JvListView1.Columns;
    ViewStyle := vsReport;
    Width := JvListView1.Width;
    Height := JvListView1.Height;
    Top := JvListView1.Top;
    Left := JvListView1.Left;
  end;
  Threads[Index].ThreadDialog := nil;
  Threads[Index].Execute(self);

  Tabs.AddTab(Edit1.Text);
  Tabs.SelectedTab := Tabs.Tabs.Items[Index];
end;

procedure TForm2.ThreadsExecute(Sender: TObject; Params: Pointer);
var
  I: Integer;
begin
  ShowMessage((Sender as TJvThread).Name);
end;

mkinzler 29. Apr 2008 17:49

Re: Welche Komponente führt die Metode aus?
 
Lass dir mal Anzeigem von Welchem Typ Sender ist.

napsterxx 29. Apr 2008 18:01

Re: Welche Komponente führt die Metode aus?
 
Und wie :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Seite 1 von 4  1 23     Letzte »    

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