AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi OOP-TRealEdit von TEdit abgeleitet und Fähigkeiten erweitert
Thema durchsuchen
Ansicht
Themen-Optionen

OOP-TRealEdit von TEdit abgeleitet und Fähigkeiten erweitert

Ein Thema von Hansa · begonnen am 9. Apr 2003 · letzter Beitrag vom 14. Aug 2003
Antwort Antwort
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#1
  Alt 17. Apr 2003, 10:18
So.. ich meld mich auch nochmal zu Wort. Ich hab dir doch gestern im ICQ gesagt du sollst die Methode SetParent überschreiben, aber vielleicht hast du den Wink nicht ganz verstanden.

Dein Label vom LabelEdit braucht einen Parent - ganz klar, den braucht jedes Control, das irgendwo angezeigt werden soll! Der Erste Vorschlag war daher Label.Parent := TWinControl(AOwner). Dieser Vorschlag ist nicht nur unelegant und gefährlich (Owner <> Parent) sonder auch noch unflexibel. Wenn der Parent des Edits zur Laufzeit geändert wird kann der Parent des Labels nicht angepasst werden.

Ich hab mir gestern mal die Deklaration von TControl angeschaut (die Eigenschaft Parent wird mit dem TControl eingeführt). Die Methode SetParent ist als protected und virtual deklariert und kann daher in abgeleiteten Klassen überschrieben werden (dieser Weg wird auch beim "original" LabeledEdit eingeschlagen)! Des Rätsels Lösung ist also in deinem Code einfach folgende procedure einzufügen (das ist jetzt nur aus dem Kopf, also keine Garantie!):

Delphi-Quellcode:
type
  {...}
  protected
    procedure SetParent(Value: TWinControl); override;
  {...}
end;

procedure TRealEdit.SetParent(Value: TWinControl);
begin
  inherited;
  if fLabel.Parent <> Value then
    fLabel.Parent := Value;
end;
Das wäre einmal das wichtigste, denn damit erscheint dein Label dann auch auf der Form.. der Rest bleibt dann erstmal dir überlassen.
Manuel Pöter
  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 03:05 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