Ich benutze in einem Projekt die Klasse FPCanvas, genauer gesagt eine Ableitung davon mit eigenen Methoden. Mein konkretes Derivat stammt von FPImageCanvas ab.
Aber der ClipRecord wird doch schon in TFPCanvas definiert und instanziiert.
Code: Alles auswählen
procedure TFPCustomCanvas.SetClipRect(const AValue: TRect);
var
lNewRegion: TFPRectRegion;
begin
lNewRegion := TFPRectRegion.Create;
lNewRegion.Rect := AValue;
if FClipRegion <> nil then FClipRegion.Free;
FClipRegion := lNewRegion;
end;
Ich weise hier die Werte zu:
Code: Alles auswählen
procedure TVisibleControl.SetDimensions(Aleft, ATop, AWidth, AHeight: Integer);
var R: TRect;
begin
FLeft := ALeft;
FTop := ATop;
FWidth := AWidth;
FHeight := AHeight;
R.Left := ALeft; R.Width := AWidth;
R.Top := ATop; R.Bottom:= ATop + AHeight;
FCanvas.Width := FWidth;
FCanvas.Height := FHeight;
FCanvas.ClipRect := R;
end;
Warum erhalte ich dann für ClipRect.Left, ClipRect.Top, ClipRect.Right, ClipRect.Bottom den Wert 0?
.