Einzelnen Beitrag anzeigen

Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#74
  Alt 18. Apr 2003, 14:04
Ein paar kleine Fehler...
Delphi-Quellcode:
procedure TRealEdit.CreateParams(var Params: TCreateParams);
const Alignments: array[TAlignment] of byte=(ES_Left, ES_Right, ES_Center);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or Alignments[fAlignment];
end;
Die Zuweisung von Params.Style muss natürlich VOR dem Aufruf von inherited erfolgen, damit der neue Stil im neuen Fenster auch wirklich vorhanden ist!

Delphi-Quellcode:
procedure TRealEdit.SetParent(AParent: TWinControl);
begin
  inherited SetParent(AParent);
  if FRealLabel = nil then exit;
  FRealLabel.Parent := AParent;
  FRealLabel.Visible := True;
end;
Hier sollte man noch die Position des Labels aktualisieren...!

Und außerdem muss man nicht jedesmal, wenn ein property geändert wird RecreateWnd aufrufen! RecreateWnd wir benötigt wenn ein Property geändert wird, dass ein elementarer Bestandteil eines Windows-Steuerelements ist, der zur Laufzeit nicht geändert werden kann wie zB der Fensterstil für die Ausrichtung. Wird die Ausrichtung geändert, dann muss das gesamte Fenster neu erstellt werden (-> neues Handle). Bei normalen Properties wie LabelSpacing, LabelPos, .. kann man sich das sparen.

Außerdem würd ich das Property RealLabel ReadOnly machen! Eine Set-Methode für das Label mit einer einfachen Zuweisung:
fRealLabel :=value; ist eine potenzielle Fehlerquelle!
Manuel Pöter
  Mit Zitat antworten Zitat