Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi welche Informationen schickt eigentlich (Sender: TObject) (https://www.delphipraxis.net/54519-welche-informationen-schickt-eigentlich-sender-tobject.html)

Tau 5. Okt 2005 21:54


welche Informationen schickt eigentlich (Sender: TObject)
 
Hallo Leute

Hätte da ein bar fragen zu (Sender: TObject)

wie kann ich feststellen welche Informationen von Sender an das onChange Ereignis weitergegeben werden?
Oder besser noch von welcher Komponente sind die informationen. :gruebel:

Kann man vielleicht auch eine Liste in ein Memo schreiben?


Schöne Grüsse
Tau

dizzy 5. Okt 2005 22:13

Re: welche Informationen schickt eigentlich (Sender: TObject
 
In Sender wird dir eine Referenz auf das auslösende Objekt übergeben. Wenn also ein Button1 eine OnClick-Routine auslöst, so ist Sender vom Typ TButton und du kannst auf ihn zugreifen. Das ist praktisch wenn mehrere Komponenten ein und die selbe Ereignisbehandlungsprozedur erhalten. Du kannst dadurch also ermitteln wer genau das Ereignis ausgelöst hat, und auch gleich mit dem Objekt interagieren.
Es ist deswegen vom Typ TObject, da TObject Vorfahre aller Komponenten ist. Somit kann dort jeglicher Typ drin übergeben werden ohne die OOP zu treten. Bevor du jedoch die Methoden von z.B. TButton verwenden kannst, musst du casten.
Delphi-Quellcode:
procedure OnClick(Sender: TObject);
begin
  (Sender as TButton).Caption := 'Ich bin geklicked';
end;
Sollte Sender hier kein TButton sein gibt's eine Exception. Daher lässt sich das über den is-Operator auch im Vorfeld abprüfen.


Gruss,
Fabian

leddl 5. Okt 2005 22:16

Re: welche Informationen schickt eigentlich (Sender: TObject
 
Sender ist vom Typ Tobject (Steht ja auch schon da ;)) und beinhaltet das Objekt, von dem aus die Methode aufgerufen wird. Also in einer OnClick-Prozedur eines Buttons ist es der gedrückte Button. So kannst du zB eine Methode mehreren Komponenten zuordnen und per Typenüberprüfung trotzdem alles richtig zuordnen.
Zitat:

Kann man vielleicht auch eine Liste in ein Memo schreiben?
:gruebel: Die Frage versteh ich jetzt irgendwie nich...

//Edit:
Ich sollte öftes vor dem Abschicken mal unten im Fenster nachschauen :roll:

Grishnak 5. Okt 2005 22:18

Re: welche Informationen schickt eigentlich (Sender: TObject
 
'OnChange' ist ein TNotifyEvent und folgendermaßen deklariert:
Delphi-Quellcode:
type
  TNotifyEvent = procedure(Sender: TObject) of object;
Das einzige was du bekommst, ist das auslösende Objekt.

Zitat:

Zitat von Tau
Kann man vielleicht auch eine Liste in ein Memo schreiben?

Was meinst du damit? Wenn du ein TStringList-Objekt hast, dann kannst du dessen Inhalt (die Strings) mittels
Delphi-Quellcode:
Memo1.Text:=StringList1.Text;
in ein TMemo-Objekt kopieren.

Tau 5. Okt 2005 22:28

Re: welche Informationen schickt eigentlich (Sender: TObject
 
Hi

Zitat:

Das einzige was du bekommst, ist das auslösende Objekt.
ich möcht wissen welcher Komponenten Type (TButton, TAction usw.) hat es ausgelöst.

An diese Informationen möchte ich rankommen.


Tau
:hi:

Grishnak 5. Okt 2005 22:32

Re: welche Informationen schickt eigentlich (Sender: TObject
 
per "Sender.ClassName" (String) oder "Sender.ClassType" (TClass)!

Tau 5. Okt 2005 22:50

Re: welche Informationen schickt eigentlich (Sender: TObject
 
Hi


D A N K E ! ! !

der tipp mit "Sender.ClassName" war genau das was ich gesucht hatte.


:witch: :dancer2: :witch:

Tau
:hi:

ArmyMan 24. Apr 2006 11:50

Re: welche Informationen schickt eigentlich (Sender: TObject
 
Hallo allerseits

Hab noch eine kleine Frage zu dem Sender : TObject.
Kann man im Sender ausfinden von welchem Event aus diese Procedure aufgerufen wurde?

z.B. wenn man in einem TEdit in dem OnChange und in dem OnExit die gleiche Procedure aufruft, kann man in der aufgerufenen Procedure rausfinden ob diese von OnChange oder von OnExit aufgerufen wurde??

Thx & Greetz

himitsu 24. Apr 2006 11:53

Re: welche Informationen schickt eigentlich (Sender: TObject
 
TEdit(Sender) ist dein TEdit

du kannst es genauso wie die Variable verwenden ... z.B. TEdit(Sender).Text

aber ob's nun von OnChange, oder OnExit kommt kannst du meines Wissens nicht rausbekommen.


[add]
ach ja, viele verwenden stadt TEdit(Sender) lieber (Sender as TEdit) es kommt aber etwa auf's selbe raus

ArmyMan 24. Apr 2006 11:57

Re: welche Informationen schickt eigentlich (Sender: TObject
 
Gibt es irgend ein "work around" um doch rauszubekommen woher es kommt?

Greetz


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.
Seite 1 von 3  1 23      

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