AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi "Direkter zugriff auf auslösendes Objekt"
Thema durchsuchen
Ansicht
Themen-Optionen

"Direkter zugriff auf auslösendes Objekt"

Ein Thema von asusbob · begonnen am 8. Okt 2007 · letzter Beitrag vom 10. Okt 2007
Antwort Antwort
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#1

"Direkter zugriff auf auslösendes Objekt"

  Alt 8. Okt 2007, 20:27
Hallooo,

hab da mal ne Frage... ich hab nen Ganzes Formular mit Buttons und immerwieder ähnlichen Codesegmenten.
Nun frag ich mich obs ne Möglichkeit gibt auf die Eigenschaften des "aufrufenden Objekts" also des Buttons der gedrückt wurde zuzugreifen OHNE seinen Bezeichner zu verwenden...

was ich machen möchte ist also, aus dem hier:

Delphi-Quellcode:
procedure TfrmMain.btnBspClick(Sender: TObject);
  var beschreibung, code : string;
begin
  beschreibung := 'blah';
  code := 'blubb';
  addElem(beschreibung,code,strtoint(btnBsp.Caption),'1','1');
end;
sowas hier:

Delphi-Quellcode:
procedure TfrmMain.btnBspClick(Sender: TObject);
  var beschreibung, code : string;
begin
  beschreibung := 'blah';
  code := 'blubb';
  addElem(beschreibung,code,strtoint(this.Caption),'1','1');
end;

zu machen...

gibts da irgned ne Möglichkeit?

Greetz
Asus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: "Direkter zugriff auf auslösendes Objekt"

  Alt 8. Okt 2007, 20:29
Das auslösende Objekt bekommst du im Parameter Sender
Markus Kinzler
  Mit Zitat antworten Zitat
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#3

Re: "Direkter zugriff auf auslösendes Objekt"

  Alt 8. Okt 2007, 20:31
jaaaaaa schooooo aber wie komm ich an die Caption? Irgendwie raff ich des nüch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: "Direkter zugriff auf auslösendes Objekt"

  Alt 8. Okt 2007, 20:32
Du musst das Objekt in den passenden Typ Casten:

z,B.:

(Sender as TButton).Caption := 'Ba Bla';
Markus Kinzler
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: "Direkter zugriff auf auslösendes Objekt"

  Alt 8. Okt 2007, 20:33
Das ist kein Grund zum Masochisten zu werden - ehrlich!
Du musst einfach nach TButton casten:
Delphi-Quellcode:
addElem(beschreibung,code,strtoint(TButton(Sender).Caption),'1','1');
//oder
addElem(beschreibung,code,strtoint((Sender as TButton).Caption),'1','1');
Bei der zweiten Variante wird zusätzlich noch eine Überprüfung gemacht, ob es sich wirklich um einen Button handelt, allerdings dauert das natürlich geringfügig länger.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#6

Re: "Direkter zugriff auf auslösendes Objekt"

  Alt 8. Okt 2007, 20:36
vielen vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#7

Re: "Direkter zugriff auf auslösendes Objekt"

  Alt 10. Okt 2007, 12:11
Kleine Anmerkung noch zu den zwei unterschiedlichen Varianten: Bei größeren Projekten empfiehlt es sich, wo immer möglich die "Sender as"-Variante zu benutzen, man spart sich dadurch viel Haareraufen wenn man mal irgendwo eine Komponente ändert und dadurch an zig Stellen die blinden Typecastings mehr oder weniger Chaos verursachen Code an zeitkritischen Stellen muss man dann halt so gut wie möglich anderweitig absichern wenn man wirklich jede Millisekunde braucht.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:37 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