Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.04.2008, 13:37
step step вне форума
Прохожий
 
Регистрация: 11.04.2008
Сообщения: 4
Репутация: 10
По умолчанию Работа с Canvas

Такая вот проблема .. Рисую сетку на image1.canvas
как сделать так чтобы при изменении размеров окна и соответственно image1 происходила перерисовка новой сетки на более большой размер.. ?

вот что получается при запуске в маленьком окне:

а это уже при разворачивании окна:


ниже код процидуры прорисовки сетки
Цитата:

procedure TForm1.FormPaint(Sender: TObject);

function cx(X: integer): integer;
begin
Result:=X;
end;
function cy(Y: integer): integer;
begin
Result:=image1.Height-Y;
end;


var
i: integer;
h: integer;
w: integer;
s: integer; // отступ поля

greedstep: integer;
begin

with image1.Canvas do
begin
greedstep:=20;
S:=20;
h:=round(image1.Height/greedstep)*greedstep; // Выста поля сетки
w:=round(image1.Width/greedstep)*greedstep; // Ширина поля

pen.Color:=130;
pen.Width:=1;
pen.Style:=psDot;
for i:=round(s/greedstep) to round ((h-s)/greedstep) do
begin
moveto(cx(s),cy(i*greedstep));
lineto(cx(round(w/greedstep)*greedstep-s),cy(i*greedstep));
end;

for i:=round(s/greedstep) to round ((w-s)/greedstep) do
begin
moveto(cx(i*greedstep),cy(s));
lineto(cx(i*greedstep),cy(round(h/greedstep)*greedstep-s));
end;
end;

end;

Последний раз редактировалось step, 12.04.2008 в 14:01.
Ответить с цитированием
  #2  
Старый 14.04.2008, 21:39
Аватар для Ross
Ross Ross вне форума
Активный
 
Регистрация: 15.10.2005
Адрес: Казань
Сообщения: 250
Репутация: 30
По умолчанию

Перед тем как рисовать новую сетку, надо прорисовать сетку со старыми параметрами - это сотрёт старую сетку.
Ответить с цитированием
  #3  
Старый 15.04.2008, 11:45
step step вне форума
Прохожий
 
Регистрация: 11.04.2008
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ross
Перед тем как рисовать новую сетку, надо прорисовать сетку со старыми параметрами - это сотрёт старую сетку.

не я втом смысле что на форме image1.canvas растягивается вместе с формой , но при растежении image1.canvas не меняет поле для прорисовки сетки т.е сетка почему-то рисуется в таком же маленьком окне , хотя по сути оно должно быть на всю форму( в коде использую значения высоты и ширины image1)..
Ответить с цитированием
  #4  
Старый 16.04.2008, 13:22
Гудвин Гудвин вне форума
Прохожий
 
Регистрация: 18.03.2008
Сообщения: 24
Репутация: 10
По умолчанию

поставь перед прорисовкой rectangle(0,0,image1.width,image1.height);
на всяк случай image.align=alClient ?
З.Ы. у тебя здесь бред реально написан, юзай масштабирование

Последний раз редактировалось Гудвин, 16.04.2008 в 13:27.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter