Hallo,
Zitat von
TheAn00bis:
... Leider hat ein Panel ja kein Canvas, deshalb geht Panel1.Canvas.pixels[x,y] ja nicht. ...
Das ist so nicht richtig. TPanel hat eine Canvas property. Nur nicht sichtbar, da protected.
So ein Problem lößt man am schnellsten mit einem TPanel-Dummy.
Hier kommt der Dummy:
Delphi-Quellcode:
Type
TPanelCanvas = class(TPlanel)
public
property Canvas;
end;
Das ist erstmal alles!
Jetzt kannst Du in dem OnMouseUpEventhandler folgendes schreiben
Delphi-Quellcode:
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If Sender is TPanel then
TPanelCanvas(Sender).Canvas.Pixels[X,Y]:=clRed;
end;
Wie man sieht, wird nie eine Instanz der TPanelCanvas erzeugt, sondern das Ding
wird nur für einen Typecast verwendet.
In der Anlage ist ein kleines Beispiel