FPCanvas, TFPCusomPen nicht zugewiesen, wieso?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

FPCanvas, TFPCusomPen nicht zugewiesen, wieso?

Beitrag von thosch »

Hallo,

Ich habe eine Canvas Klasse von TFPImageCanvas aus dem Ordner fclimage abgeleitet. TFPImageCanvas stammt von TFPPixelCanvas ab. Dort werden TFPCustomPen, TFPCustomBrush und TFPCustomFont erzeugt.

Dennoch erhalte ich in meinem Projekt, das meine von TFPImageCanvas abgeleitete Canvas Klasse nutzt, eine SIGSEGV Exception und der Debugger zeigt mir diese Stelle:

Code: Alles auswählen

function TFPCustomCanvas.GetPen : TFPCustomPen;
begin
  if assigned (FPen) then    /// #### HIer hält der Debugger !!! ####
    result := FPen
  else
    result := FDefaultPen;
end;
Warum ist das so und welchen Workaround gibt es. Für den Font will ich eine neue Klasse, von TFPCustomFont abgeleitet, einführen, bei Brush und Pen genügen mir die Standardverhalten der bereits existierenden Klassen.

Was muss ich also tun, damit Brush und Pen gültig sind und meine zuküftige Fontklasse auch funktioniert, ich also dort diesen Fehler von vornherein vermeide?

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: FPCanvas, TFPCusomPen nicht zugewiesen, wieso?

Beitrag von PascalDragon »

Sicher, dass du

Code: Alles auswählen

mycanvas := TMyCanvasDescendant.Create;
und nicht

Code: Alles auswählen

mycanvas.Create
gemacht hast? Klingt nämlich verdächtig danach, wenn es beim Assigned knallt.
FPC Compiler Entwickler

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: FPCanvas, TFPCusomPen nicht zugewiesen, wieso?

Beitrag von wp_xyz »

Bist du sicher, dass dein eigener Canvas erzeugt wurde?

Antworten