Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

PenPos или "как нарисовать линию" [D5, Win2k]


Вопрос ©   (2004-07-18 15:57:00) 

Подскажите пожалуйста пару строк кода, как нарисовать линию.

Например, такой код у меня не работает почему-то.

   with Chart1.Canvas do
    begin
     PenPos.x:=10;
     PenPos.y:=10;
     Pen.Color:=ClRed;
     LineTo(201,101);
    end;

Возникает ошибка: "Undeclared identifier: PenPos". Странно. Причем, если сделать код:

   with Chart1.Canvas do
    begin
     PenPos.x:=10;
     PenPos.y:=10;
     Pen.Color:=ClRed;
     LineTo(201,101);
    end;
то ошибок не возникает, но и линия из точки (0,0) не рисуется. Наверняка что-то не так сделал (хотя поглядел в хелпы).


Вопрос   (2004-07-18 18:29:00) [1]

"..\Borland\Delphi5\Demos\Teechart"
Спасибо.. Оказалось, линии просто "затирались". Поставил этот же код в обработчик Chart1AfterDraw и всё сработало.

Теперь другой вопрос:
Как сделать преобразование - из координат на графике в координаты на канве? Т.е. я хочу, чтобы моя горизонтальная линия, начиналась именно там, где на оси абсцисс - еденица. Но на канве этой точке соответсвует точка с координатами где-то (20, 100). Как быть?

В том примере наверняка есть, но там десятки юнитов - как найти?


/v\   (2004-07-18 17:46:00) [2]

..\Borland\Delphi5\Demos\Teechart


Вопрос   (2004-07-18 17:33:00) [3]

Хм.. Не работает. Вернее, если сделать

With Form1.Canvas do
begin
 MoveTo(5,5);
 LineTo(5,100);
end;

то всё работает.

А вот так (как мне, собственно, и надо):

With Chart1.Canvas do
begin
 MoveTo(5,5);
 LineTo(5,100);
end;

не работает. Линии не видно. В чем может быть проблема?


Вопрос   (2004-07-18 17:14:00) [4]

ОК, спасибо, попробую.


grom   (2004-07-18 17:12:00) [5]

procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.MoveTo(5,5);
Canvas.LineTo(5,100);
//Canvas.LineTo(100,5);
end;


Вопрос   (2004-07-18 16:56:00) [6]

Опс... прошу прощения. Во втором случае тож самое но без этого PenPos. Т.е. линия должна рисоваться из 0,0.

Самое интересное, что по F1 - PenPos есть в качестве Properties для Canvas.. А он говорит - неописанный идентификатор. Странно.

"в общем случае надо вызывать
MoveTo
LineTo"
в смысле? Как модифицировать код? MoveTo разве нужен?


Гаврила   (2004-07-18 16:31:00) [7]

в общем случае надо вызывать
MoveTo
LineTo


Гаврила   (2004-07-18 16:30:00) [8]

а какая разница между двумя кодами ?
в упор не вижу


Наверх

Титульная страница Поиск, карта сайта Написать письмо