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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2007, 12:52   #1
shkiper
 
Регистрация: 05.04.2007
Сообщений: 4
По умолчанию Создание пиксельной сетки в MDI приложении

Нужно создать пиксельную сетку на подобие такой как в CADовских приложениях.По ходу реализовал это канвой(ниже приведен код),но уж больно медленно прорисовывается она при создании дочернего окна.
procedure TChildForm.FormResize(Sender: TObject);
var
dx,dy: integer; //шаг сетки
w,h: integer; //ширина и высота сетки
Wcount_pxl,Hcount_pxl: integer; //количество пикселей
begin
x := 0;
y := 0;
w := ChildForm.Width;
h := ChildForm.Height;
dx := 10;
dy := 10;
Wcount_pxl := w div dx;
Hcount_pxl := h div dy;

i:=0;
while w-10>i do
begin
j:=0;
while h-10>j do
begin
j:=j+10;
Canvas.Pixels[i,j]:=clWhite;
end;
i:=i+10;
end;
end;

Какие будут соображения по этому поводу?Есть у меня предположение что на этот счет существует специальная компонента,но пока ничего подобного не нашел.Жду предложений!Спасибо!
shkiper вне форума Ответить с цитированием
Старый 05.06.2007, 17:11   #2
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от shkiper Посмотреть сообщение
Нужно создать пиксельную сетку...
Может быть такие компоненты и есть, но можно и "по-домашнему".
Можно заранее заготовить нужный рисунок (и не только сетку) и выводить его на форму, особенно если размер формы постоянный. А можно использовать свойство кисти холста Canvas.Brush.Bitmap и заполнять фон шаблоном.
Например, в FormCreate написать
Код:
Bitmap := TBitmap.Create; // Какая-нибудь глобальная переменная
Bitmap.LoadFromFile('file.bmp');
а в обработчике FormPaint нужной формы записать
Код:
FormXXX.Canvas.Brush.Bitmap := Bitmap;
FormXXX.Canvas.FillRect(FormXXX.ClientRect);
Вот только не помню насчет размера изображений. Но шаблон 8х8 годится абсолютно точно.
Jeni вне форума Ответить с цитированием
Старый 05.06.2007, 17:20   #3
shkiper
 
Регистрация: 05.04.2007
Сообщений: 4
По умолчанию

Оно конечно годится,но в перспективе планируется привязка к этой сетке...потому думаю нужна другая технология...По ходу пытаюсь вьехать в OpenGL.С этим не сталкивался?
shkiper вне форума Ответить с цитированием
Старый 05.06.2007, 17:32   #4
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

"Привязка к сетке" - это логическое понятие, слабо связанное с тем, как эту сетку наносят (рисуют). Трудно даже представить, какая "технология" может такое обеспечить.
Jeni вне форума Ответить с цитированием
Старый 05.06.2007, 18:35   #5
shkiper
 
Регистрация: 05.04.2007
Сообщений: 4
По умолчанию

Отож и мне тяжело представить...Ну вот в PCAD, ACAD и т.д. это ж как то сделано?!
shkiper вне форума Ответить с цитированием
Старый 06.06.2007, 18:56   #6
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

рисовать на Tbitmap .. потом BitBlt
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание координатной сетки на компоненте Image Thasraney Общие вопросы Delphi 5 03.06.2008 14:16
Звук в приложении Артэс Win Api 1 31.05.2008 20:52
Открытие файлов в MDI-приложении Eofol Общие вопросы Delphi 2 20.12.2007 22:05
музончик в приложении krem Общие вопросы Delphi 1 25.07.2007 14:53
TBitmap в многопоточном приложении Sergey_nl Мультимедиа в Delphi 3 09.07.2007 00:34