Ich hab ne Eigenschaft vom Typ TPersistent (
siehe hier) und möchte, dass wenn der TPen, der ja eine Eigentschaft von TZeiger ist, geändert wird, repaintet wird, was ich so:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TZeiger.SetLength(newValue: Real); begin FLength := newValue; FOwner.Invalidate end;
procedure TZeiger.Setpen(newValue: TPen); begin FPen := newValue; FOwner.Invalidate end; |
normalerweise ja machen könnte
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| constructor TZeiger.Create; begin inherited Create;
if AOwner is TCustomControl then FOwner := TCustomControl(AOwner) else FOwner:=nil;
Pen :=TPen.Create; end; |
aber irgendwas stimmt hier nicht
Ich bekomme eine Zugriffsverletzung direkt beim Start (wo ja die Funktionen zum erstenmal aufgerufen werden)
Ohne das FOwner.Invalidate gehts, wird jedoch nicht aktualisiert
Für alle hilfe dankbar: Fis
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.