Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TComponentName Auswerten bzw "verarbeiten" (https://www.delphipraxis.net/79445-tcomponentname-auswerten-bzw-verarbeiten.html)

Thorben_K 22. Okt 2006 20:43


TComponentName Auswerten bzw "verarbeiten"
 
Hallo all zusammen,

ich less schon seit Wochen dieses Forum und habe bis jetzt immer gefunden was ich suche, ein nachträgliches Danke andieser Stelle^^

Nun komm ich aber nicht weiter ;(

Mein Problem ist das ich ein Popup Menu nutzte. Dieses Menu aber von mehrern Buttons aufgerufen werden kann. Ich muss dummerweise wissen welcher Button das Popup Menu aufgerufen hat. Nach rum Suchen in der der DP habe ich die Eigenschaft PopupMenu1.PopupComponent gefunden. Ich brauche die letzte Zahl des Names des Buttons. z.B Button1. Also muss ich die "1" extrahieren. Das wäre ansich auch kein Grosses Probleme ich weiss nur nicht wie ich den Rückgabewert von PopupMenu1.PopupComponent, der vom Typ TComponent ist, in ein String konvertiere, oder wie ich allgemeint mit TComponent umgehen muss, also wie ich den Namen Splitte

wenn jemand eine lösungs Idee hat, wäre ich ihm sehr Dankbar wenn er sie mir Mitteilt :)

Gruss Thorben

mkinzler 22. Okt 2006 20:46

Re: TComponentName Auswerten bzw "verarbeiten"
 
hat jeder Button eine eigene .onClick-Methode?

Thorben_K 22. Okt 2006 20:51

Re: TComponentName Auswerten bzw "verarbeiten"
 
Nein, die Procedur wird mit dem PopUp Menu gestartet. Wenn jeder ne .onclick hätte wäre es ja kein prob ....

ein popup menu eintrag startet die procedure, und die muss wissen welche Button sie gestartet hat

mkinzler 22. Okt 2006 20:54

Re: TComponentName Auswerten bzw "verarbeiten"
 
Wie rufst du dann das Menü von verschiedenen Buttons auf?

Thorben_K 22. Okt 2006 20:59

Re: TComponentName Auswerten bzw "verarbeiten"
 
ich glaube wir reden aneinander vorbei

jeder button hat das Popupmenu in den eigenschaften drin. aber mit onclick wird das nicht gestartet

dataspider 22. Okt 2006 21:10

Re: TComponentName Auswerten bzw "verarbeiten"
 
Hi,

es gibt einige Lösungen. Die einfachste ist über den Name, welcher ja in TComponent schon existiert.
Delphi-Quellcode:
procedure TForm1.Clickmich1Click(Sender: TObject);
Var
  AName: String;
begin
  AName := PopupMenu1.PopupComponent.Name;
  ShowMessage(AName);
  // zerlege den Name
end;
Cu, Frank

Thorben_K 22. Okt 2006 21:14

Re: TComponentName Auswerten bzw "verarbeiten"
 
Vielen Dank Frank, das hat Funktioniert^^

Ich bleibe ab nun der DB true, ihr habt ein neues Mitglied :)

dataspider 22. Okt 2006 21:16

Re: TComponentName Auswerten bzw "verarbeiten"
 
Man kann auch der Einfachheit halber jedem Button ein Tag verpassen und über dieses steuern:
Delphi-Quellcode:
if Assigned(PopupMenu1.PopupComponent) then
begin
  case PopupMenu1.PopupComponent.Tag of
    0: mach dies;
    1: mach das
  end;
end;
[EDIT] das spart das Zerlegen des Strings...
Frank

raiguen 22. Okt 2006 21:23

Re: TComponentName Auswerten bzw "verarbeiten"
 
man kann es auch auf diese (einfache) Art machen:
Delphi-Quellcode:
  if PopupMenu1.PopupComponent = ButtonXYZ then
    ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 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