Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать чтобы image не мигала когда я рисую??? [D6, Win95/98]


Devid ©   (2002-03-10 18:40:00) 

Как сделать чтобы image не мигала когда я рисую??? ПЛЗ. Скажите кто знает!


Dimka Maslov   (2002-03-12 10:32:00) [1]

Image1.Parent.DoubleBuffered:=True


Stan4Ever   (2002-03-10 21:46:00) [2]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure FormActivate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Image1Click(Sender: TObject);

private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
x,y,w,vnext,h,vExit:Integer;
ColorPalette: Array[0..15] of TColor = (clRed, clGreen, clYellow, clBlue, clWhite, clGray, clFuchsia, clTeal, clNavy, clMaroon, clLime, clOlive, clPurple, clSilver, clAqua, clBlack);
Graph:TBitmap;
Ende:Boolean;
implementation

{$R *.DFM}

procedure TForm1.FormActivate(Sender: TObject);
begin
Graph:=TBitmap.Create;
x:=50;
y:=50;
w:=Screen.Width;
h:=Screen.Height;
vnext:=0;
Graph.Width:=640;
Graph.Height:=480;
Ende:=False;

end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
If Ord(KEy) =27 Then vExit := 30;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
Repeat
vnext:=vnext+1;
//Image1.Canvas.Pen.Color:=clBlack;
//Image1.Canvas.Brush.Color:=clBlack;
//Image1.Canvas.Rectangle(0,0,640,480);
With Graph.Canvas Do
begin

Pen.Color:=clBlack;
Brush.Color:= clBlack;
Rectangle(0,0,w,h);
//Sleep(0);
Pen.Color:=clYellow;
Brush.Color:=clYellow;
Rectangle(vnext,50,vnext+100,150);

//Sleep(0);
end;
Image1.Canvas.Draw(0,0,Graph);
Sleep(0);
Application.ProcessMessages;
until vExit=30;
//Close;
Canvas.Pen.Color:=clWhite;
Canvas.TextOut(300,10,IntToStr(vnext));
end;

end.


VuDZ   (2002-03-10 21:39:00) [3]

рисуй на одной канве, а потом переноси на другую - это быстрее чем прорисовка


Anatoly Podgoretsky   (2002-03-10 20:25:00) [4]

DoubleBuffered := True;


Devid   (2002-03-10 20:11:00) [5]

Подскажи как ей пользоваться?! Если можно код.


Anatoly Podgoretsky   (2002-03-10 19:06:00) [6]

Есть такая вещь как DoublrBuffer, может помочь


Наверх

Титульная страница Поиск, карта сайта Написать письмо