Главная страница
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.038 c
3-1129731138
Yrka
2005-10-19 18:12
2005.12.04
Как добавить поле выбора?


1-1131272986
maxXP
2005-11-06 13:29
2005.12.04
Эмкляция щелчка мыши


4-1128300987
Macho
2005-10-03 04:56
2005.12.04
Игнорировать нажатие клавиш мыши для CheckBox


14-1132037712
Ega23
2005-11-15 09:55
2005.12.04
Можно ли антигриппозной вакциной детей вмазывать?


2-1131995292
Wishmaster
2005-11-14 22:08
2005.12.04
ЧТо-то не то... DLL