Avatar billede _on_ Nybegynder
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
Avatar billede stone Forsker
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!!!!
Avatar billede stone Forsker
12. marts 2008 - 20:55 #2
Følgende eksempler var at finde på eksperten, så det anbefales at man bruger søgefunktionen.."S"
Avatar billede _on_ Nybegynder
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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester