Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.08;
Скачать: CL | DM;

Вниз

Не рисуется на TPanel   Найти похожие ветки 

 
TStas ©   (2008-05-13 22:15) [0]

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-13 22:18) [1]

Удивительно, но проблема ришилась добавлением строчки
Application.ProcessMessages; перед рисованием.
Или это чедеса или я чего-то важного не знаю.


 
Игорь Шевченко ©   (2008-05-13 22:49) [2]


> Не рисуется на TPanel


Больно слышать.

Наверное ты не в тот момент рисуешь


 
Юрий Зотов ©   (2008-05-14 00:38) [3]

А на фига такие пляски с бубнами, ежели у панели уже есть и канва, и даже готовый метод Paint? Хоть слона в нем рисуй.


 
Loginov Dmitry ©   (2008-05-14 00:48) [4]

> Удивительно, но проблема ришилась добавлением строчки
> Application.ProcessMessages; перед рисованием.


Чудеса!...


 
Германн ©   (2008-05-14 01:07) [5]


> Юрий Зотов ©   (14.05.08 00:38) [3]
>
> А на фига такие пляски с бубнами, ежели у панели уже есть
> и канва

У панели есть канва?


 
Loginov Dmitry ©   (2008-05-14 07:47) [6]

> У панели есть канва?


Она и у TCustomControl есть.


 
Германн ©   (2008-05-14 17:27) [7]


> Loginov Dmitry ©   (14.05.08 07:47) [6]

Хм. Вот и советуй после этого читать справку. :(((


 
Игорь Шевченко ©   (2008-05-14 17:47) [8]

Германн ©   (14.05.08 17:27) [7]

В справке написано, что есть, но protected...


 
Германн ©   (2008-05-14 17:48) [9]


> Игорь Шевченко ©   (14.05.08 17:47) [8]

В справке из Д6 ничего не написано :(


 
Игорь Шевченко ©   (2008-05-14 17:50) [10]

Германн ©   (14.05.08 17:48) [9]

Не имея D6 рискну предположить, что там есть раздел hierarchy или inheritance или как-то подобно


 
Германн ©   (2008-05-14 17:57) [11]


> Игорь Шевченко ©   (14.05.08 17:50) [10]

Есть конечно. Именно из hierarchy я в конце концов и понял свою ошибку. Но...


 
Юрий Зотов ©   (2008-05-14 21:04) [12]

Protected, конечно. И что? Никаких проблем. Можно наследника в три (если точно - в четыре) строчки написать, можно hack-классом туда достучаться.


 
Юрий Зотов ©   (2008-05-14 21:07) [13]

Чтобы не услышать "код давай", даю код. Ровно четыре строчки, как обещал.

TMyPanel = class (TPanel)
public
 property Canvas;
end;

:о)


 
Loginov Dmitry ©   (2008-05-14 21:26) [14]

> Ровно четыре строчки, как обещал.


Целых три лишних строчки... Эх...
=)


 
Loginov Dmitry ©   (2008-05-14 21:28) [15]

Хотя...
Хм... Зато универсально. Из любого модуля работать будет...


 
TStas ©   (2008-05-15 21:38) [16]


> Юрий Зотов ©   (14.05.08 00:38) [3]
> А на фига такие пляски с бубнами, ежели у панели уже есть
> и канва, и даже готовый метод Paint? Хоть слона в нем рисуй.
>

Юрий, создание потомка панельки, у которого есть канва - это, конечно, очень хороший способ, но создавать его пришлось бы в RunTime"е, а вот этого бы очень не хотель, учитывая, что нарисовать мне было надо лишь одну-единственную косую черту.
Просто там много нанелек и групбоксов, которые последовательно вложены друг в друга.
А за ответ спасибо большое. Вот не знал, что у панельки есть канва, хотя, по идеек, должна быть - она (панелька) ведь окошку родственница.


 
Германн ©   (2008-05-15 21:52) [17]


> TStas ©   (15.05.08 21:38) [16]
>
>
> > Юрий Зотов ©   (14.05.08 00:38) [3]
> > А на фига такие пляски с бубнами, ежели у панели уже есть
> > и канва, и даже готовый метод Paint? Хоть слона в нем
> рисуй.
> >
>
> Юрий, создание потомка панельки, у которого есть канва -
>  это, конечно, очень хороший способ, но создавать его пришлось
> бы в RunTime"е, а вот этого бы очень не хотель

Ты не понял. Про создание потомка ЮЗ ничего не говорил.
Посмотри его совет в http://delphimaster.net/view/2-1210834088/


 
TStas ©   (2008-05-15 22:02) [18]

Вот теперь понял, спасибо. :)



Страницы: 1 вся ветка

Текущий архив: 2008.06.08;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.025 c
2-1210753314
031178
2008-05-14 12:21
2008.06.08
Запрос в MS SQL


2-1211133293
Favorit
2008-05-18 21:54
2008.06.08
Работа с InterBase


2-1210990173
Qilgamesh
2008-05-17 06:09
2008.06.08
Как внедрить (вклеить) в файл другие файлы


15-1208931582
ILR
2008-04-23 10:19
2008.06.08
Помогите с задачей


2-1210741269
noviceman
2008-05-14 09:01
2008.06.08
Уничтожение объекта из "своего" события.