Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: CL | DM;

Вниз

прорисовка канвы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-67883
guest0
2003-07-07 07:14
2003.07.21
Обработка событий


1-67903
Alexdream
2003-07-08 14:22
2003.07.21
Delphi Source


3-67726
Lucky
2003-06-15 12:32
2003.07.21
IBQuery и IBUpdateSQL как сделать ApplyUpdates корректным


4-68134
PSA
2003-05-19 16:14
2003.07.21
Работа с окнами на ActiveX


7-68091
Dion
2003-05-13 07:33
2003.07.21
Подскажите, Плз, как можно программно определить имя пользователя