Announcement

Collapse
No announcement yet.

Probleme mit TFont-Fenster

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit TFont-Fenster

    Hallo!

    Folgendes Problem:
    Ich entwickele eine Komponente unter D4 die ein TFont-Property besitzt soll. Läuft auch alles, solange ich die Einstellungen des TFont-Property nur über die Liste der Objekteigenschaften verändere. Sobald ich das Einstellfenster von TFont einmal geöffnet habe, kann ich weder das Projekt starten noch schließen, weil die Meldung „Zugriffsverletzung“ eingeblendet wird. Ein weiterarbeiten ist nur noch durch „Strg+Alt+Entf“ möglich.
    Die Komponente ist von TGraphicControl abgeleitet. Im folgenden die Wichtigsten Teile:

    <pre>
    constructor TArmaturRund.Create (AOwner:TComponent);
    begin
    inherited Create(AOwner);
    f_Skalabeschriftung:=TFont.Create;
    f_Skalabeschriftung.OnChange:=AnzeigeChanged;
    ….
    End;

    destructor TArmaturRund.Destroy;
    begin
    ...
    f_Skalabeschriftung.Free;
    f_Skalabeschriftung:=nil;
    inherited Destroy;
    end;

    procedure TArmaturRund.Set_Skalabeschriftung (value:TFont);
    begin
    f_Skalabeschriftung:=value;
    Neu_Zeichnen;
    end;
    </pre>

    Ich hoffe es kann mir jemand helfen

    Mit freundlichen Grüßen
    Rasmus

  • #2
    in Set_Skalabeschriftung:

    f_Skalabeschriftung.Assign(value);

    statt der direkten Zuweisung. Es sollen schliesslich nur die neuen Werte übernommen werden, bei o.g. Code würde eine andere (nicht existierende)Instanz zugewiesen, dadurch die Zugriffsverletzung.

    MfG
    Dir

    Comment

    Working...
    X