Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#15

Re: feststellen ob geklickt ohne Klick-Prozedur

  Alt 5. Dez 2004, 16:33
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
Angehängte Dateien
Dateityp: zip zip_101.zip (202,2 KB, 6x aufgerufen)
I come from outer space to save the human race
  Mit Zitat antworten Zitat