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

Вниз

Проблема с Image   Найти похожие ветки 

 
Goast   (2005-11-09 14:28) [0]

Здравствуйте мастера!!!
Итак.. попробую объяснить…:) Есть форма….на форме компонент image растянутый на всю форму. Соответственно в image загружена цветастая картинка...:) Так же на форме расположено куча labеl!!!!картинку делаю прозрачной...image1.Transparent:=false и  как бы все становится красиво…но вот и сама проблема то….у меня эти label каждый 10 секунд обновляются. (меняют значения) и из за этого в момент изменения label картинка «мерцает» Как сделать так что бы она не мерцала…и вообще возможно ли это???? Спасибо!


 
Amoeba ©   (2005-11-09 14:34) [1]

DoubleBuffered у формы установи в True в ее OnCreate.


 
Goast   (2005-11-09 14:48) [2]


> Amoeba ©   (09.11.05 14:34) [1]
> DoubleBuffered у формы установи в True в ее OnCreate.

пробовал не все равно мыргает....:(


 
Leonid Troyanovsky ©   (2005-11-09 16:19) [3]


> Goast   (09.11.05 14:28)  
> Здравствуйте мастера!!!
> Итак.. попробую объяснить…:) Есть форма….на форме компонент
> image растянутый на всю форму. Соответственно в image загружена
> цветастая картинка...:) Так же на форме расположено куча
...
> «мерцает» Как сделать так что бы она не мерцала…и вообще
> возможно ли это????


Кучу label убрать и рисовать прямо на форме (OnPaint).
Вот, например, как можно менять текст по таймеру

type
 TForm1 = class(TForm)
   Image1: TImage;
   Timer1: TTimer;
   procedure FormCreate(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure FormPaint(Sender: TObject);
 private
   { Private declarations }
   FText: String;
   FDisplay: TBitmap;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Image1.Hide;
 Brush.Style := bsClear;
 FDisplay := TBitmap.Create;
 FDisplay.Width := Image1.ClientWidth;
 FDisplay.Height:= Image1.ClientHeight;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 r: TRect;
begin
 FText := IntToStr(GetTickCount)+ #13#10+IntToStr(GetTickCount);
 r:= Image1.BoundsRect;
 InvalidateRect(Handle, @r, false );
end;

procedure TForm1.FormPaint(Sender: TObject);
var
 r: TRect;
begin
 FDisplay.Canvas.Draw(0, 0, image1.Picture.Bitmap);
 r:= Rect( Image1.Width div 2, Image1.Height div 2, Image1.width,
           Image1.Height );
 FDisplay.Canvas.Font := Font;
 FDisplay.Canvas.Font.Color := clYellow;
 SetBKMode(FDisplay.Canvas.Handle, TRANSPARENT);
 DrawText(FDisplay.Canvas.Handle, PChar(FText),
           Length(FText), r,
           DT_LEFT or DT_NOPREFIX);
 Canvas.Draw(0, 0, FDisplay);
end;


--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.056 c
14-1131695823
Mike Kouzmine
2005-11-11 10:57
2005.12.04
Рыжков выполняет свои обещания...


14-1132050748
Ega23
2005-11-15 13:32
2005.12.04
Есть знатоки немецкого?


3-1129900566
Tom
2005-10-21 17:16
2005.12.04
SQL server+ ADO + Multithreading


2-1132051704
RiP
2005-11-15 13:48
2005.12.04
время выполнения массива


10-1108373934
Homa_Programer
2005-02-14 12:38
2005.12.04
поиск в Ворде