![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рисование в TPanel [D5, Win2k]
Юра © (2003-01-09 15:56:00)Хочется рисовать на панели. Сделал так:
type
TMyPanel = class(TPanel)
published
property Canvas;
end;
При попытках рисовать ничего не происходит.
with MyPanel do begin
Canvas.Pen.Style := psSolid;
Canvas.Pen.Color:=clBlack;
Canvas.Rectangle(4, 4, 13, 13);
Canvas.FillRect(Rect(1,1,10,10));
end;
MyPanel, конечно, порождаю.
Что не так?
Положить на панель PaintBox не хочу :-)
Юра (2003-01-09 17:10:00) [1]Возможно, я пошел немножко не тем путем. Нужно мне это вот для чего: есть палитра (TToolPanel), с нее на форму кидаются элементы - как в Delphi. Реально я создаю в run-time такой вот наследник панели, в котором еще лежат различные картинки и некая логика. Нужно это, например, для моделирования логических схем - на палитре лежат элементы И, ИЛИ, НЕ, MUX, CD, DC и т.п., "внутри" TMyPanel - символика того, что рисуется на панели и логика работы элемента.
Возможно, я избрал не лучший путь и есть лучший вариант?
Юра (2003-01-09 17:01:00) [2]ОК, заработало, спасибо.
Axis_of_Evil (2003-01-09 17:00:00) [3]Можно наверное так
var
PanelCanvas: TCanvas;
begin
PanelCanvas := TCanvas.Create;
PanelCanvas.Handle := GetDC(Panel1);
// рисуем ...
...
end;
Кстати, если на API, то как, ведь, например
Rectangle( Handle: hdc ; ...);
Alex Che (2003-01-09 16:51:00) [4]Создай объект TCanvas и прилепи его к панели (свойство Control) и рисуй...
Игорь Шевченко (2003-01-09 16:27:00) [5]Попытка, надеюсь, происходит на обработке сообщения WM_PAINT ?