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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.05.2012, 21:09
sova_bos sova_bos вне форума
Прохожий
 
Регистрация: 27.03.2012
Адрес: Ставрополь
Сообщения: 12
Версия Delphi: XE3/7
Репутация: 10
По умолчанию Вывод линии в канве

Если оставить одно из условий, то линия вырисовывается, а если так как в коде ниже, то не вырисовывается ничего ни при каких значениях.
Предупреждение при компилции "FOR-Loop variable 'x'\'y' may be undefined after loop"
Спасибо
Код:
procedure TForm1.Button1Click(Sender: TObject);
var x,x1,x2,y,y1,y2:integer;
begin
x1:=strtoint(edit1.text);
x2:=strtoint(edit2.text);
y1:=strtoint(edit3.text);
y2:=strtoint(edit4.text);
if (x1<x2) and (y1=y2) then
  for x:=x1 to x2 do
  Form1.Canvas.Pixels[x,y]:=clBlack;
if (y1<y2) and (x1=x2) then
  for y:=y1 to y2 do
  Form1.Canvas.Pixels[x,y]:=clBlack;
if (x1>x2) and (y1=y2) then
  for x:=x1 downto x2 do 
  Form1.Canvas.Pixels[x,y]:=clBlack;
if (y1>y2) and (x1=x2) then
  for y:=y1 downto y2 do
  Form1.Canvas.Pixels[x,y]:=clBlack;
if (x1<>x2) and (y1<>y2) then
  ShowMessage('Начальные и конечные значения одной из осей должны быть равны!');
end;
Ответить с цитированием
  #2  
Старый 08.05.2012, 21:17
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Конечно должно быть предупреждение:
Код:
...
if (x1<x2) and (y1=y2) then
  for x:=x1 to x2 do
  Form1.Canvas.Pixels[x,y]:=clBlack;
...
откуда берётся значение переменной y? И так по всем циклам.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 08.05.2012, 21:26
sova_bos sova_bos вне форума
Прохожий
 
Регистрация: 27.03.2012
Адрес: Ставрополь
Сообщения: 12
Версия Delphi: XE3/7
Репутация: 10
По умолчанию

ой, точно
спасибо
Ответить с цитированием
  #4  
Старый 08.05.2012, 21:29
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Но лучше рисовать линии не по пикселам, а использовать LineTo, MoveTo.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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