AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TObject.Name ????

Ein Thema von Tumm · begonnen am 18. Feb 2007 · letzter Beitrag vom 19. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
Tumm

Registriert seit: 17. Jun 2006
Ort: Celle
171 Beiträge
 
Turbo Delphi für Win32
 
#1

TObject.Name ????

  Alt 18. Feb 2007, 12:43
Hi

Kann man eigentlich den namen eines TObjects herausfinden? Klasse und so geht ja. Ich bräuchte das in einem OnClick Ereignis, dass für mehrere Komponenten eingsetzt wird. Nun soll das Programm herausfinden, welche Komponente ihm das gesendet hat, damit ich mit dieser dann weiterarbeiten kann.

Tumm
Code Gear = Kot Gier
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17
Online

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TObject.Name ????

  Alt 18. Feb 2007, 13:03
wenn Deine Objekte über Namen verfügen, kannst Du es so machen:

Delphi-Quellcode:
procedure OnClick(Sender : TObject);
begin
  if Sender is TObjectXY then
  begin
    if TObjectXY(Sender).Name = 'blathen
      tuwas;
  end;


end;
Sven Harazim
--
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: TObject.Name ????

  Alt 18. Feb 2007, 13:03
Du hast doch eine Referenz auf die Komponente (Sender-Variable). Vergleiche die doch mit den "original" Referenzen der Komponenten. Das geht allemal schneller als ein String-Vergleich.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObejct);
begin
  if Sender = btnOk then
    ...
  else if Sender = btnCancel then
    ...


  if (Sender as TComponent).Name = 'btnOkthen
    ...
  else if (Sender as TComponent).Name = 'btnCancelthen
    ...
end;
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#4

Re: TObject.Name ????

  Alt 19. Feb 2007, 06:45
Hi
Also, ich glaube nicht, das bei einem Button - Ereignis die Geschwindigkeit eine Rolle spielt...
Also, um nicht nur 1 oder 2 sondern n-Objekte zu verarbeiten wäre die Lösung schon in der Stringform des Namens..
Name z.B. BtTaste_1, BtTaste_2, .. BtTaste_n

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObejct);
Var RefName : String;
    ElementNr : String;
    xPos : Integer;
begin
  
  RefName:= (Sender as TComponent).Name;
  xPos:=Pos('_',RefName); // ergibt die Stelle vo Anfang der Zahl
  ElementNr:=Copy(RefName,xPos+1, Length(RefName)-xPos); // ergibt den Zahlenanteil des Namens
  Case ElementNr of '1': tu_eins;
                    '2': tu_Zwei;
                    ......
  end;
end;
Ich garantier euch, bevor ihr daran gedacht habt, die Maustaste loszulassen ist diese Procedure abgearbeitet...
Manchmal ist's einfacher, auf die Bearbeitungszeit zu pfeifen....
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Benutzerbild von yörsch
yörsch

Registriert seit: 10. Jan 2007
Ort: Lampertheim
206 Beiträge
 
Delphi XE2 Architect
 
#5

Re: TObject.Name ????

  Alt 19. Feb 2007, 07:46
HAI Zusammen,
Zitat von oldmax:
Ich garantier euch, bevor ihr daran gedacht habt, die Maustaste loszulassen ist diese Procedure abgearbeitet...Manchmal ist's einfacher, auf die Bearbeitungszeit zu pfeifen....
da hat oldmax einfach recht! es ist ja keine Echtzeitprogrammierung mit allen möglichen Berechnungen um z.B. eine Anlage zu steuern.
Für Menschen sind 10ms sehr kurz, ein PC kann da schon so manche
Berechnung machen...
Und wem es noch nicht aufgefallen ist , heut íst ROSENMONTAG
Jörg
have FUN
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.889 Beiträge
 
Delphi 12 Athens
 
#6

Re: TObject.Name ????

  Alt 19. Feb 2007, 08:03
Moin!

Dennoch gehe ich davon aus, dass die Case-Anweisung in die Hose geht.

Ein String ist kein ordinaler Typ.
Gruß

Thomas
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: TObject.Name ????

  Alt 19. Feb 2007, 08:06
TObject hat noch keinen Namen. Erst fuer TComponent wird ein Name bedeutsam. Selbst dann ist der Name aber nicht notwendig.
Die Objekt-Referenz selbst ist ja ein eindeutiger Bezeichner fuer das Objekt.
Wer seine Komponenten per Name sucht, der verwaltet nicht vernuenftig.
  Mit Zitat antworten Zitat
Muehle

Registriert seit: 24. Nov 2006
Ort: 92331 Parsberg
24 Beiträge
 
Delphi 2005 Architect
 
#8

Re: TObject.Name ????

  Alt 19. Feb 2007, 08:17
zu OnlineKater :

Ich denke chars wie 'a' , 'b' usw. ... fkt.
noch in der Case Struktur. Da nimmt Delphi zum
Vergleich den numerischen Code (Ordinal) des Char-Zeichens.
G.M.
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.889 Beiträge
 
Delphi 12 Athens
 
#9

Re: TObject.Name ????

  Alt 19. Feb 2007, 08:29
Zitat von Muehle:
Ich denke chars wie 'a' , 'b' usw. ... fkt.
Das schon, aber die in der Case-Anweiseung referenzierte Variable ist vom Typ String

Gruß

Thomas
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: TObject.Name ????

  Alt 19. Feb 2007, 08:37
Zitat von Robert Marquardt:
TObject hat noch keinen Namen. Erst fuer TComponent wird ein Name bedeutsam. Selbst dann ist der Name aber nicht notwendig.
Die Objekt-Referenz selbst ist ja ein eindeutiger Bezeichner fuer das Objekt.
Wer seine Komponenten per Name sucht, der verwaltet nicht vernuenftig.
Hi,

wie suchst du die Komponenten. Hast du für diesen Fall eine bessere Möglichkeit?
Ansgar
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 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