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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2007, 09:45   #1
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию Как же нарисовать линию на форме? (Вопрос новичка)

Я новичёк
Просмотрел несколько готовых примеров отрисовки графики, почитал инфу, но так и не разобрался до конца.
Разъясните пожалуйста в деталях (кому не жалко времени), как нарисовать прямую горизонтальную линию заданной длины, ширины и цвета на форме. С самого начала, как только запустил Delphi и передо мной пустая форма.
grey вне форума Ответить с цитированием
Старый 28.10.2007, 10:08   #2
YERokez
 
Регистрация: 27.10.2007
Сообщений: 3
По умолчанию

Самое простое и быстрое это положить на форму Panel, убрать его Caption, раздвинуть как надо и задать цвет (Color).
Можно также вместо Panel использовать Label.
YERokez вне форума Ответить с цитированием
Старый 28.10.2007, 10:13   #3
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию

Мне нужны прямые горизонтальные линии, параметры которых я буду брать потом из переменных.
grey вне форума Ответить с цитированием
Старый 28.10.2007, 10:14   #4
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Для рисования есть 4 класса:
TFont - шрифт,
TPen - перо для вычерчивания линий,
TBrush - штриховка,
TCanvas - холст для рисования, который инкапсулирует в себя первые 3 класса.
Сначала нужно определиться где рисовать, рекомендую компонент Image.
Кидаем его на форму и рисуем:

//меняем цвет линии
Image1.Canvas.Pen.Color:=clRed;
//меняем толщину линии
Image1.Canvas.Pen.Width:=3;
//чертим линию от точки x=10, y=10 до точки x=110, y=10
Image1.Canvas.MoveTo(10,10);
Image1.Canvas.LineTo(110,10);
_Dmitry вне форума Ответить с цитированием
Старый 28.10.2007, 10:18   #5
YERokez
 
Регистрация: 27.10.2007
Сообщений: 3
По умолчанию

Self.Panel1.Width:=110;
Self.Panel1.Height:=2;
Self.Panel1.Color:=clRed;
YERokez вне форума Ответить с цитированием
Старый 28.10.2007, 10:25   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
как нарисовать прямую горизонтальную линию заданной длины, ширины и цвета на форме. С самого начала, как только запустил Delphi и передо мной пустая форма.
Прямо на форме, по нажатию кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Canvas do
begin
Pen.Color:=clRed;
Pen.Width:=3;
MoveTo(10,10);
LineTo(110,10);
end;
end;
Кроме того, можете использовать компонент ТShape (вкладка Additional), все параметры будете задавать через его свойства.
Но первый метод предпочтительнее, поскольку вы можете рисовать линии не только горизонтальные, но и под любым углом, задавая начало и конец линии.
mihali4 вне форума Ответить с цитированием
Старый 28.10.2007, 10:26   #7
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

YERokez, тогда уж приведи пример, как программно создавать новые панели. Заранее ведь неизвестно сколько будет линий
_Dmitry вне форума Ответить с цитированием
Старый 28.10.2007, 10:30   #8
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

mihali4, если рисовать прямо на форме, то после перекрытия окна программы другим окном, все что нарисовали пропадет, так что лучше в Image
_Dmitry вне форума Ответить с цитированием
Старый 28.10.2007, 10:45   #9
YERokez
 
Регистрация: 27.10.2007
Сообщений: 3
По умолчанию

_Dmitry, я понял, что программно надо не создавать линию, а управлять ее параметрами.
А что, TImage можно программно ложить на форму? Я не пробовал.
YERokez вне форума Ответить с цитированием
Старый 28.10.2007, 10:48   #10
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию

Попробовал Image - в моём случае подошло.
Спасибо.
Цитата:
Заранее ведь неизвестно сколько будет линий
Линий будет ровно 400 - четырёхсотточечная отрисовка профиля рукава флакона.
grey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисовать на координатной площади линию a*x+b*y+c=0 НУБ!!! Общие вопросы Delphi 4 13.05.2008 22:48
Задача на Ломанную Линию SpLaT Помощь студентам 1 09.05.2008 19:18
Нарисовать линию под указанным градусом nikleb Паскаль, Turbo Pascal, PascalABC.NET 7 06.02.2008 15:22
Вопрос (новичка) по переменным. grey Помощь студентам 5 03.11.2007 17:25
Не все готовые исходники компилируются (Вопрос новичка) grey Помощь студентам 9 28.10.2007 19:18