Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2010, 12:24   #11
Я_и
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 37
По умолчанию

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

Рисовать через Image и Shape - заставить на старых компах мигать экран((((
Рисовать надо на рисунок *.BMP в памяти...Обьявляем:
Var BitMap:TBitMap //Содержится в модуле Graphics
При событии OnCreate пишем
BitMap:=TBitMap.Create
При OnResize:
BItMap.WIdth:=ClientWidth
BitMap.Height:=ClientHeight
При OnDestroy:
BitMap.Free

Рисуем нужный рисунок на обьекте BitMap.Canvas
Нарисовать же треугольник (или любой многоугольник) можно процедурой
BItMap.Canvas.Polygon(A:Array of TPoint);

Тут уже элементарно, но все-равно обьясню:
Для каждого треугольника создоаем переменную
var A1:Array of TPoint
И где-то в коде заполняем ее
SetLength(A,3);
A[0].X:=
A[0].Y:=
A[1].X:=
A[1].Y:=
A[2].X:=
A[2].Y:= //Заполняем координатами вершин...
В процедуре Polygon автоматически многоугольник закрашивается. Цвет закраски можно установить так:
BitMap.Canvas.Brush.Color:=clRed//Красный цвет закраски

Потом по событию OnPaint (желательно именно там) пишем
Form1.Canvas.Draw(0,0,BitMap) //Выносим наш рисунок на экран

Таким образом, с экраном мы работаем один раз, а не сотней команд MoveTo - мигания не будет

Последний раз редактировалось Я_и; 23.10.2010 в 12:28. Причина: Ошибка в тексте
Я_и вне форума Ответить с цитированием
Старый 25.10.2010, 12:49   #12
WhiteSpirit
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 82
По умолчанию

Ну, в этом случае всё равно придётся стирать ёлку на старом месте и копировать битмап на новое, проще изменять координаты TImage, а всю работу по стиранию и перерисовке возьмёт на себя операционная система
WhiteSpirit вне форума Ответить с цитированием
Старый 25.10.2010, 14:32   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
with xxx do begin
// ...
end;
и т.п. быдлокодство. Переносить трудно, что за сишная привычка, не переносить. Читать-разбирать НЕ удобно.
Alter, коллега, позвольте с Вами не согласиться. я на С никогда не писал, а вот с бегином очень часто так поступаю. Ибо экономится драгоценная строчка кода по вертикали. А то, что читать неудобно - поверьте, это дело привычки..

всё это ИМХО, разумеется...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.01.2011, 01:47   #14
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
По умолчанию

Цитата:
Сообщение от Alter Посмотреть сообщение
Писать так

Код:
with xxx do begin
// ...
end;

if xxx then begin
// ...
end;
и т.п. быдлокодство. Переносить трудно, что за сишная привычка, не переносить. Читать-разбирать НЕ удобно.

Правильно будет:

Код:
with xxx do
begin
// ...
end;

if xxx then
begin
// ...
end;
накипело
а еще правильней вот так
Код:
if xxx then
 begin
 //yyy
 end;
Vervolf вне форума Ответить с цитированием
Старый 18.01.2011, 23:49   #15
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

WhiteSpirit, вы в корне не правы. Не разбирая подробностей - лучше отрисовывать изображение на объекте класса TBitMap, а затем выводить BitMap на форму. Класс TImage использует слишком много ресурсов. Может, если делать просто программы с иллюстрациями - он лучше, но для анимаций и игр - никак не вариант.
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
анимация в delphi 7 Ignessa Общие вопросы Delphi 19 15.06.2010 00:33
Анимация в Delphi Haskell Помощь студентам 0 06.12.2009 12:27
Анимация, Delphi xMass Помощь студентам 9 21.06.2009 18:17
Анимация Delphi elta Помощь студентам 20 21.06.2009 16:55
Анимация в Delphi yulia Помощь студентам 7 29.11.2007 16:55