12. marts 2008 - 19:52
Der er
2 kommentarer og
1 løsning
TPanel & TCanvas
Hej
Jeg har brug for at kunne skrive tekst og tegne grafik på en TPanel. Jeg har prøvet at tegne på en TPanel med en TCanvas, men jeg har ikke kunne få det til at virke.
Nogen der har en idé, kan det lade sig gøre i det hele taget?
Mvh
ON
12. marts 2008 - 20:54
#1
Skrive på et TPanel:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TMyPanel = class(TPanel)
protected
procedure Paint;override;
end;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TMyPanel.Paint;
begin
inherited Paint;
{Draw what you want here, graphic etc}
Canvas.MoveTo(0,0);
Canvas.LineTo(height,width);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyPanel(Panel1).Canvas.TextOut(50,50,'Stone');
end;
end.
*******************************************************
Tegne på et TPanel:
var
MyCanvas : TControlCanvas;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyCanvas := TControlCanvas.Create;
MyCanvas.Control := Panel1;
end;
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
//MyCanvas.FillRect(ClientRect);
if SSLeft in Shift then
MyCanvas.Pixels[X,Y] := clBlack;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MyCanvas.Free;
end;
Når du holder venstre museknap nede på din TPanel tegnes der med sort på den!
Er testet!!!!
13. marts 2008 - 07:30
#3
Hej
Det du skriver som dit andet eksempel havde jeg også prøvet. Jeg har så opdaget at det rent faktisk virkede det jeg prøvede som test, men TPanel slettede det igen ved dens egen refresh (opdatering) :)
Jeg kan se du bruger, og overrider, en Paint event, men jeg var ikke klar over at en TPanel havde en Paint event.
Jeg tar' nok konsekvensen af det og bygger en ny kontrol baseret på en TCustomControl.
Anyway, tak for hjælpen...
Mvh
ON