AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

SetText überschreiben?

Ein Thema von marvin.maybe · begonnen am 19. Feb 2004 · letzter Beitrag vom 20. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2   
marvin.maybe

Registriert seit: 12. Jan 2004
17 Beiträge
 
#1

SetText überschreiben?

  Alt 19. Feb 2004, 17:19
Hallo,

von TLabel leite ich meine eigene Label-Klasse ab, bei der ich etwas spezielles tun möchte, wenn dem Property Caption ein Wert zugewiesen wird. Also dachte ich mir einfach die Methode SetText zu überschreiben. Leider finde ich nirgendwo eine der Doku diese Methode und der Compiler meckert, dass meine Methode anders definiert wäre...

Ein Workaround für mein eigentliches Problem habe ich gefunden aber grundsätzlich würde mich interessieren, wo man in solchen Fällen am besten nachschaut. Gibt es irgendwo die Source der Interfaces?

Gruß, Marvin.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: SetText überschreiben?

  Alt 19. Feb 2004, 17:23
Zeig mal Code, wie du es versucht hast. Die Klassen Deklaration und die Implementierung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: SetText überschreiben?

  Alt 19. Feb 2004, 17:26
Wenn du einen anderen Text darstellen möchtest
Überschreib:

    function GetLabelText: string; override;
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: SetText überschreiben?

  Alt 19. Feb 2004, 17:29
Das wird wohl die read Property sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#5

Re: SetText überschreiben?

  Alt 19. Feb 2004, 17:32
Nicht ganz!

GetLabelText wird in der Paint Methode gerufen!
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: SetText überschreiben?

  Alt 19. Feb 2004, 18:13
überschreib doch einfach das property caption...

GetLabelText wird in der Paint Methode gerufen = Read

denn wenn ich auf die canvas male muss ich ja nur die aktuelle caption lesen und nicht neu setzen..
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: SetText überschreiben?

  Alt 19. Feb 2004, 18:19
GetLabelText ist deshalb nicht die Read-Property, weil es den Caption-Text anpasst, dazu kann er gelesen werden. Ich könnte aber auch etwas ganz anderes wie in der Caption Property steht zurückgeben!

Caption wurde übrigens von TControl geerbt. Und kann über die Nachrichten WM_GETTEXT (read) und WM_SETTEXT (write) beeinflusst werden.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: SetText überschreiben?

  Alt 19. Feb 2004, 18:23
ähm, für mich ist "function GetLabelText: string" eindeutig ein Readproperty da der funktion nix übergeben wird und als result etwas zurückgegeben. Anhand der Funktion kann man die Caption nicht ändern nur "falsch" zurückgeben. Der Wert der gesetzt wird wenn ich "caption := 'xyz';" aufrufe wird auf keinen fall durch GetLabelText geändert außer die Methode wurde bereits geändert, im orginalzustand (Delphiauslieferung) ist es ein höchstwahrscheinlich das read-property von Caption
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#9

Re: SetText überschreiben?

  Alt 19. Feb 2004, 18:37
Nochmal falls es nicht deutlich war:

Caption-Eigenschaft wird gesetzt und gelesen über die Nachrichten
Code:
[b]read[/b] WM_GETTEXT
   wParam = BufSize Integer
   lParam = Buffer PChar
   Result = Länge des Textes

[b]read[/b] WM_GETTEXTLENGTH
   wParam = 0
   lParam = 0
   Result = Länge des Textes

[b]write[/b] WM_SETTEXT
   wParam = 0
   lParam = Buffer PChar
Damit sollte die Frage eigentlich beantwortet sein

GetLabelText gibt zwar Std.-mäßig die Caption zurück, kann sie aber auch modifiziert zurückgeben.

Nochmal klar:

per Def. GetLabelText <> Caption nur im Std. GetLabelText = Caption
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
marvin.maybe

Registriert seit: 12. Jan 2004
17 Beiträge
 
#10

Re: SetText überschreiben?

  Alt 20. Feb 2004, 11:30
Es geht mir nicht um GetText. Meine Operation soll durchgeführt (der neue Text wird analysiert und damit werden spezielle Datenstrukturen gefüllt, die ich später brauche) werden , wenn neuer Text dem Property Caption zugewiesen wird. In der Deklaration vom property TCustomLabel.Caption wird laut Doku die SetText Methode verwendet. Diese möchte ich überschreiben, was mir nicht gelingt, da ich die Deklaration nicht kenne (in der Doku habe ich nichts gefunden).
Vielleicht ist es ein Fehler in der Doku: Entweder wird beim Schreiben des Property Caption nicht die Methode SetText aufgerufen oder SetText wurde in der Doku vergessen?

(Ich habe mit einem Delphi 8 .Net herumgespielt)

Gruß, Marvin.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:35 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