Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#25

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 19. Apr 2006, 07:57
Zitat von MaBuSE:
Zu den Schutzverletzungen:
Das scheint ein Bug im Delphi zu sein oder wir machen was grundlegend falsch.
Ich ahnte schon, das wir etwas falsch machen, deshalb habe ich es fett gemacht

Zitat von Sidorion:
Ich nehm mal schwer an, das liegt an der Zuweisung:
FFont:=Value Ich geh mal davon aus, dass Value das Fontobjekt des Eigenschafteditors ist. Wenn ja, dann wirds nach dem Aufruf der Property plattgeschlafen und in FFont stehr ien Zeiger in die Pampa.
Besser ist wohl:
FFont.Assign(Value)
Sidorion, Du hast Recht. Borland macht es ja genau so.
Delphi-Quellcode:
{*******************************************************}
{       Borland Delphi Visual Component Library         }
{  Copyright (c) 1995-2002 Borland Software Corporation }
{*******************************************************}
unit Controls;
...
procedure TControl.SetFont(Value: TFont);
begin
  FFont.Assign(Value);
end;
...
Das heißt bei Objekten sollte nie folgendes verwenden:
Delphi-Quellcode:
...
property Eigenschaft: TEigenschaft read FEigenschaft write FEigenschaft;
...
Da dort ja das selbe gemacht wird.
Besser ist dann
Delphi-Quellcode:
...
private
  FEigenschaft: TEigenschaft;
  procedure SetEigenschaft(Value: TEigenschaft);
published
  property Eigenschaft: TEigenschaft read Feigenschaft write SetEigenschaft;
...
In SetEigenschaft muß dann das Objekt "richtig" übergeben werden.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat