Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Вниз

Как убрать мерцание?   Найти похожие ветки 

 
Lexa   (2003-03-28 23:47) [0]

Под скажите как убрать мерцание на Image.Я хочу вывести фигуру которая вращается.Вот пример кода.

procedure TMainForm.Timer1Timer(Sender: TObject);
begin
Move(T, -AFigure2[1,1], -AFigure2[1,2], -AFigure2[1,3]) ;
MulMatrix(AFigure2, KTop, T, TMP);
ClearCanvas(Image4);
RotateOx(Rx, T);
Mulmatrix(TMP, KTop, T, TMP);
RotateOy(Ry, T);
Mulmatrix(TMP, KTop, T, TMP);
RotateOz(Rz, T);
Mulmatrix(TMP, KTop, T, TMP);
Move(T, AFigure2[1,1], AFigure2[1,2], AFigure2[1,3]) ;
Mulmatrix(TMP, KTop, T, TMP);
ConstructionFigure(Image4.Height div 2-60, Image4.Width div 2, Image4);
if CheckBox1.Checked then inc(Rx);
if CheckBox2.Checked then inc(Ry);
if CheckBox3.Checked then inc(Rz);
end;

В паскале для этого можно было менять видеостраницы а как это сделать в Delphi.


 
multik   (2003-03-29 00:04) [1]

Я не знаю поможет тебе это, но вот статья, которую где-то нашлёл.
>>>
Как сделать анимацию немерцающей

Мерцание возникает, когда цвет точки меняется два раза подряд. Например, правильнее объект при его перемещении стирать и затем рисовать на новом месте не на экране, а в памяти, и выводить на форму уже готовое изображение поверх предыдущего. В таком случае смена цветов на экране происходит только один раз.

var
bm: TBitMap;

procedure TForm1.FormCreate(Sender: TObject);
begin
bm := TBitMap.Create;
bm.Width := Form1.ClientWidth;
bm.Height := Form1.ClientHeight;
with bm.Canvas do begin
Font.Name := "Arial";
Font.Size := 50;
Font.Color := clBlue;
end;
Timer1.Interval := 100;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
s: String;
Hour, Min, Sec, MSec: Word;

begin
DecodeTime(Time, Hour, Min, Sec, MSec);
with bm.Canvas do begin
Brush.Style := bsSolid;
Brush.Color := clWhite;
FillRect(ClipRect);
s := TimeToStr(Time);
TextOut((bm.Width - TextWidth(s)) div 2,
(bm.Height - TextHeight(s)) div 2, s);
Pen.Mode := pmMask;
Pen.Width := 20;
Pen.Color := clLime;
Brush.Style := bsClear;
Rectangle(bm.Width div 2 - (MSec * bm.Width) div 5000,
bm.Height div 2 - (MSec * bm.Height) div 5000,
bm.Width div 2 + (MSec * bm.Width) div 5000,
bm.Height div 2 + (MSec * bm.Height) div 5000);
end;
Form1.Canvas.Draw(0, 0, bm);
end;




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

Форум: "Основная";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
1-30432
Songoku
2003-03-30 16:01
2003.04.10
Помогите!!! Если я создал несколько RadioButton как мне создать..


14-30606
Tornado
2003-03-26 11:06
2003.04.10
Письмо Деду Морозу.


14-30520
DuBan
2003-03-22 07:32
2003.04.10
Народ , не подскажете как сделать чтобы в меню Открыть с по...


14-30535
Omar2002
2003-03-23 18:53
2003.04.10
Каждый хакер - ламер.


1-30364
Дмитрий К.К.
2003-03-30 18:51
2003.04.10
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский