Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
Вниз
прорисовка канвы Найти похожие ветки
← →
redfield (2003-07-08 07:36) [0]Помогите начинающему!
Пытаюсь нарисовать поле для игры, запускаю такой модуль, всё проходит, но канва на форме не прорисовывается! (enabled true, все дела) Unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
N,d,c,i,j: Integer;
A: array of array of Boolean;
begin
N:=30;
d:=320;
c:=d div N;
SetLength(A,N);
for i:=0 to (N-1) do
SetLength (A[i],N);
for i:=1 to N do begin
for j:=1 to N do begin
A[i,j]:= False;
PaintBox1.Canvas.Pen.Color:= clBlack;
PaintBox1.Canvas.Brush.Color:= clWhite;
PaintBox1.Canvas.Rectangle(c*(i-1),c*(j-1),c*i-1,c*j-1);
end;
end
end;
end.
← →
MBo (2003-07-08 07:48) [1]PaintBox не сохраняет то, что нарисовано на его Canvas, так что нужно рисовать в его OnPaint, при необходимости обновляя (Invalidate, Refresh)
← →
wl (2003-07-08 09:53) [2]аха, и не нужно рисовать в методе OnCreate.
И ещё, Invalidate работает очень медленно(мерцает), поэтому
Лучше сразу вызывать PaintBox1Paint(nil); в том месте кода, где нужна перерисовка поля. А лучше рисовать вообще на Form1->Canvas
← →
Radionov Alexey (2003-07-08 09:57) [3]Invalidate не мерцает :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c