![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не рисуется на TPanel
TStas © (2008-05-13 22:15:00)DC := GetDC(Panel1.Handle);
Canva := TControlCanvas.Create;
Canva.Handle := DC; //Подготовил канву для рисования
y1 := SpinEdit2.Top;
x1 := SpinEdit2.Left - d;
y2 := SpinEdit1.Top + SpinEdit1.Height;
x2 := SpinEdit1.Left + SpinEdit1.Width + d;
With Canva do
begin
Pen.Color := clBlack;
Pen.Width := 2;
Pen.Style := psSolid;
MoveTo(x1, y1);
LineTo(x2, y2);
end;
Canva.Free; //Убил канву после рисования
ReleaseDC(Panel1.Handle, DC);
И ControlCanvas тоже не ришает проблему почему-то. Как же всё-таки нарисовать что-то на панельке?
TStas (2008-05-15 22:02:00) [1]Вот теперь понял, спасибо. :)
Германн (2008-05-15 21:52:00) [2]
> TStas © (15.05.08 21:38) [16]
>
>
> > Юрий Зотов © (14.05.08 00:38) [3]
> > А на фига такие пляски с бубнами, ежели у панели уже есть
> > и канва, и даже готовый метод Paint? Хоть слона в нем
> рисуй.
> >
>
> Юрий, создание потомка панельки, у которого есть канва -
> это, конечно, очень хороший способ, но создавать его пришлось
> бы в RunTime'е, а вот этого бы очень не хотель
Ты не понял. Про создание потомка ЮЗ ничего не говорил.
Посмотри его совет в http://delphimaster.ru/cgi-bin/forum.pl?id=1210834088&n=18
TStas (2008-05-15 21:38:00) [3]
> Юрий Зотов © (14.05.08 00:38) [3]
> А на фига такие пляски с бубнами, ежели у панели уже есть
> и канва, и даже готовый метод Paint? Хоть слона в нем рисуй.
>
Юрий, создание потомка панельки, у которого есть канва - это, конечно, очень хороший способ, но создавать его пришлось бы в RunTime'е, а вот этого бы очень не хотель, учитывая, что нарисовать мне было надо лишь одну-единственную косую черту.
Просто там много нанелек и групбоксов, которые последовательно вложены друг в друга.
А за ответ спасибо большое. Вот не знал, что у панельки есть канва, хотя, по идеек, должна быть - она (панелька) ведь окошку родственница.
Loginov Dmitry (2008-05-14 21:28:00) [4]Хотя...
Хм... Зато универсально. Из любого модуля работать будет...
Loginov Dmitry (2008-05-14 21:26:00) [5]> Ровно четыре строчки, как обещал.
Целых три лишних строчки... Эх...
=)
Юрий Зотов (2008-05-14 21:07:00) [6]Чтобы не услышать "код давай", даю код. Ровно четыре строчки, как обещал.
TMyPanel = class (TPanel)
public
property Canvas;
end;
:о)
Юрий Зотов (2008-05-14 21:04:00) [7]Protected, конечно. И что? Никаких проблем. Можно наследника в три (если точно - в четыре) строчки написать, можно hack-классом туда достучаться.
Германн (2008-05-14 17:57:00) [8]
> Игорь Шевченко © (14.05.08 17:50) [10]
Есть конечно. Именно из hierarchy я в конце концов и понял свою ошибку. Но...
Игорь Шевченко (2008-05-14 17:50:00) [9]Германн © (14.05.08 17:48) [9]
Не имея D6 рискну предположить, что там есть раздел hierarchy или inheritance или как-то подобно
Германн (2008-05-14 17:48:00) [10]
> Игорь Шевченко © (14.05.08 17:47) [8]
В справке из Д6 ничего не написано :(
Игорь Шевченко (2008-05-14 17:47:00) [11]Германн © (14.05.08 17:27) [7]
В справке написано, что есть, но protected...
Германн (2008-05-14 17:27:00) [12]
> Loginov Dmitry © (14.05.08 07:47) [6]
Хм. Вот и советуй после этого читать справку. :(((
Loginov Dmitry (2008-05-14 07:47:00) [13]> У панели есть канва?
Она и у TCustomControl есть.
Германн (2008-05-14 01:07:00) [14]
> Юрий Зотов © (14.05.08 00:38) [3]
>
> А на фига такие пляски с бубнами, ежели у панели уже есть
> и канва
У панели есть канва?
Loginov Dmitry (2008-05-14 00:48:00) [15]> Удивительно, но проблема ришилась добавлением строчки
> Application.ProcessMessages; перед рисованием.
Чудеса!...
Юрий Зотов (2008-05-14 00:38:00) [16]А на фига такие пляски с бубнами, ежели у панели уже есть и канва, и даже готовый метод Paint? Хоть слона в нем рисуй.
Игорь Шевченко (2008-05-13 22:49:00) [17]
> Не рисуется на TPanel
Больно слышать.
Наверное ты не в тот момент рисуешь
TStas (2008-05-13 22:18:00) [18]Удивительно, но проблема ришилась добавлением строчки
Application.ProcessMessages; перед рисованием.
Или это чедеса или я чего-то важного не знаю.