Canvas
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Canvas
Merhaba,
Sorunuz çok anlaşılır değil. Çözemediğiniz sorun nedir? Yapmak istediğiniz.
Teşekkürler.
Sorunuz çok anlaşılır değil. Çözemediğiniz sorun nedir? Yapmak istediğiniz.
Teşekkürler.
Re: Canvas
Canvas ile herhangi bir şeyi bir yazıyı butonun clickine yazıyorum . Direkt form üzerine vermeli yazııyı image vesaire kullanmamalıyım. Sonrasında bu yazının yerini scrollbarlar ile sağa sola aşağı yukarı hareket ettirebilmeliyim butonu 2.defa kullanmadan. Ancak ben butonu tıklıyorum yazı geliyo sonra scrollbarın konumunu değiştirip tekrar tıklıyorum butona , yanına bir tane daha bir daha yazıyo .Yani ne yerini değiştirmiş oluyorum çünkü ilk yazı orda duruyo 2. bir tane yazmış oluyorum ne de butonu tekrar kullanmadan yapabiliyorum.
Re: Canvas
Canvas aslında bir kağıt gibidir. Yazdığınızı silmeniz gerekir. Aşağıda çok basitleştirilmiş bir örnek mevcut.
Optimizasyon için eski yazı boyutlarını saklayıp sadece eski yazıyı silebilirsiniz. Bütün formu boyamaktan daha hızlı olacaktır.
Optimizasyon için eski yazı boyutlarını saklayıp sadece eski yazıyı silebilirsiniz. Bütün formu boyamaktan daha hızlı olacaktır.
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FX, FY: Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Canvas.Pen.Style := TPenStyle.psClear;
Form1.Canvas.Brush.Style := TBrushStyle.bsClear;
Form1.Canvas.Brush.Color := Form1.Color;
Form1.Canvas.Rectangle(0, 0, Form1.Width, Form1.Height);
Inc(FX, 30);
Inc(FY, 30);
Form1.Canvas.TextOut(FX, FY, 'deneme');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FX := 0;
FY := 0;
end;
end.