Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Font-Editor löst AV bei eigener Komponente aus (https://www.delphipraxis.net/67772-font-editor-loest-av-bei-eigener-komponente-aus.html)

Sascha L 19. Apr 2006 17:23


Font-Editor löst AV bei eigener Komponente aus
 
Hi,

habe eine eigene Komponente die als Eigenschaft "Font" hat.

Codeausschnitt:

Delphi-Quellcode:
fMyFont: TFont;

// Im Public-Teil
property MyFont: TFont; read fMyFont write fMyFont;

// Im Constructor der Komponente
fMyFont := TFont.Create;

// Im Destroy der Komponente
fMyFont.Free;
(Falls die Syntax falsch ist, liegt es daran, dass ich das eben aus dem Kopf heraus geschrieben habe und nicht aus meinem Quellcode kopiert habe!)


Im Prinzip funktioniert auch alles. D.h. ich kann die Schriftart, etc. ändern, ohne dass es Probleme gibt.

Wenn ich aber im OI auf den kleinen Button "..." drücke, sodass der Font-Editor sich öffnet und ich dort dann etwas einstelle und auf OK klicke gibt es endlos viele AVs :(

Wie kann ich das verhindern bzw. was mach ich falsch?

Dieser Fehler trat bei Delphi 2005 und 2006 auf.

Gruß
Sascha

Hawkeye219 19. Apr 2006 17:50

Re: Font-Editor löst AV bei eigener Komponente aus
 
Hallo Sascha,

Du mußt für die neue Font-Eigenschaft eine Setter-Methode schreiben:

Delphi-Quellcode:
// in der Klassendeklaration
private
  procedure SetMyFont (AFont: TFont);
published
  property MyFont: TFont read FMyFont write SetMyFont;

// Implementierung
procedure TEChecker.SetMyFont (AFont: TFont);
begin
  FMyFont.Assign (AFont);
end;
So sollte es funktionieren.

Gruß Hawkeye

Sascha L 19. Apr 2006 18:05

Re: Font-Editor löst AV bei eigener Komponente aus
 
Macht das Read/write das nicht schon?

Hawkeye219 19. Apr 2006 18:14

Re: Font-Editor löst AV bei eigener Komponente aus
 
Der direkte Schreibzugriff kopiert nur den Zeiger, durch den Setter wird der Inhalt des Font-Objekts kopiert.

Gruß Hawkeye

Sascha L 19. Apr 2006 18:19

Re: Font-Editor löst AV bei eigener Komponente aus
 
Ok, dann ist alles klar.

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 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