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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2008, 21:57   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Плохо Рисование в Делфи

Здравствуйте, помогите мне пожалуйста! Напишите каким образом можно рисовать в Делфи. Например, мне нужно с правого края Label1 провести линию до левого края строки CheckListbox1 если галочка поставлена на данной линии, при снятии галочки - линия окрашивается в белый өвет (ее становится невидно), , а линий - 4, заранее спасибо
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 10.08.2008, 22:16   #2
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Canvas.Pen.Color := clRed;
Canvas.MoveTo(0,0);
Canvas.LineTo(100,0);

чтобы цвет менять
Canvas.Pen.Color := clWhite; // белый цвет
Canvas.MoveTo(0,0); // Начальная координата
Canvas.LineTo(100,0);// Конечная координата
Я просто не совсем понял чего именно вы хотели, поэтому возможно это вам поможет, если разберетесь.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 10.08.2008, 22:23   #3
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

спс, но не до конца
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 10.08.2008, 22:52   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

procedure FormPaint
в цикле пройтись по листбоксу, если галка стоит, то
Код:
Canvas.MoveTo(Label1.Left+Label1.Width, Label1.Top);
Canvas.LineTo(CheckListbox1.Left, <номер строки * высоту строки>);
по событию OnCheck (может не так называться) те же самые две строки

При снятии галочки не надо красить в белый цвет, просто вызываешь Repaint.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось Stilet; 11.08.2008 в 11:30.
mutabor вне форума Ответить с цитированием
Старый 11.08.2008, 11:33   #5
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

вот что в результате у меня получилось, спасибо большое!
Код:
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
   if CheckListBox1.Checked[CheckListbox1.ItemIndex] then
   begin
   Canvas.Pen.Color:=clRed;
   Canvas.MoveTo(Label1.Left+Label1.Width, Label1.Top);
   Canvas.LineTo(CheckListbox1.Left,CheckListbox1.ItemHeight*CheckListbox1.ItemIndex+130)
   end
   else
   begin
   Canvas.Pen.Color:=clWhite;
   Canvas.MoveTo(Label1.Left+Label1.Width, Label1.Top);
   Canvas.LineTo(CheckListbox1.Left,CheckListbox1.ItemHeight*CheckListbox1.ItemIndex+130);
   end;
   end;

end.
From Stilet: Господа! Не забываем, пожалуйста, оформлять код спецтегом (#). Читабельность респективнее
Программирование - это великое искусство... Такое же как например и живопись!

Последний раз редактировалось zetrix; 11.08.2008 в 16:57.
Rusl92 вне форума Ответить с цитированием
Старый 11.08.2008, 12:01   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Rusl92, а теперь попробуй задвинь окно за край экрана и высунь, или сверни и разверни. Или проведи сверху другим окном.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 11.08.2008, 15:32   #7
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

mutabor прав, вообще вот компоненты лавел, чеклистбокс на панели1-вообще черт знает где рисуются линии, помогите пож. исправить!

это из-за того, что он берет left,top,width,height не компонентов, а панелИ!!!

помогите пожалуйста, есть какие варианты решения данной проблемы?
Программирование - это великое искусство... Такое же как например и живопись!

Последний раз редактировалось Stilet; 11.08.2008 в 15:55.
Rusl92 вне форума Ответить с цитированием
Старый 11.08.2008, 15:56   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А не проще ли бы взять обычный TChart и линии в нем проводить уже по реальным координатам?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.08.2008, 16:53   #9
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

слушайте, я поставил между Image1 и CheckListBox1 Ris(TImage), и на нем на канве пытался рисовать: но почему то как только ставлю галочку (должна отрисовываться линия), ris становится полностью белым, обьясните почему так???
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 11.08.2008, 16:58   #10
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Кидай проект сюды....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование на Shape Stark[SG!] Мультимедиа в Delphi 8 09.06.2011 13:22
рисование на форме Kostua Помощь студентам 2 26.07.2008 16:24
Рисование... HunterMan Win Api 10 30.04.2008 23:46
Замедленное рисование Chepa Общие вопросы Delphi 5 01.02.2007 06:55