Форум: "Начинающим";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];
ВнизРисование на Panel Найти похожие ветки
← →
Bor © (2007-12-18 23:37) [0]Здравствуйте, уважаемые мастера!
У меня чего-то опять ничего не получается. Можно ли рисовать на Panel?
Делал так:bmp: TBitmap;
-------------
bmp:=TBitmap.Create;
bmp.LoadFromFile("picture.bmp");
Panel1.Brush.Bitmap:=bmp;
Но ничего не менялось.
← →
fics © (2007-12-18 23:41) [1]А зачем тебе на пенеле рисовать, если не секрет? Рисуй на PaintBox.
← →
fics © (2007-12-18 23:47) [2]У TPanelа ведь нет TCanvas, поэтому ничего не получится, для этого есть другие компоненты.TImage TPaintBox ну и на форме можно.
← →
niKo (2007-12-18 23:49) [3]
> У TPanelа ведь нет TCanvas, поэтому ничего не получится,
> для этого есть другие компоненты.TImage TPaintBox ну и
> на форме можно.
неправда!
← →
fics © (2007-12-18 23:51) [4]Ну подскажите тогда как быть, мне тоже интересно будет узнать, а если неправда извеняюсь.
← →
homm © (2007-12-18 23:54) [5]> [0] Bor © (18.12.07 23:37)
> Можно ли рисовать на Panel?
Закон не запрещает.
> bmp:=TBitmap.Create;
> bmp.LoadFromFile("picture.bmp");
> Panel1.Brush.Bitmap:=bmp;
>
> Но ничего не менялось.
А должно? Где здесь рисование то?
← →
Efir (2007-12-19 00:09) [6]var
C:TCanvas;
begin
C:=TCanvas.Create;
try
C.Handle:=GetDC(Panel1.Handle);
C.LineTo(10,10);
finally
C.Free;
end;
end;
← →
Bor © (2007-12-19 00:10) [7]
> homm
Ну, да, действительно. И как быть?
← →
homm © (2007-12-19 00:42) [8]> [7] Bor © (19.12.07 00:10)
> И как быть?
Рисовать?
← →
Loginov Dmitry © (2007-12-19 07:57) [9]> У TPanelа ведь нет TCanvas
Есть. Точно также, как и у любого другого контрола.
← →
Рамиль © (2007-12-19 09:22) [10]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
{ Public declarations }
end;
TExtPanel = class(TPanel);
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
TExtPanel(Panel1).Canvas.MoveTo(1, 1);
TExtPanel(Panel1).Canvas.LineTo(100, 100);
end;
end.
← →
Washington © (2007-12-19 11:25) [11]А нельзя на панель кинуть Image и загрузить в него картинку. ИМХО проще
← →
{RASkov} © (2007-12-19 11:31) [12]> [11] Washington © (19.12.07 11:25)
ужасно.... (
:)
Что в самом деле проще, так это взять, как советуют, ПаинтБокс и не извращаться)
ЗЫ У нас же "компы" совремнные что нам до этих ресурсов.... подумаешь хэндлы(
:о)
← →
Washington © (2007-12-19 12:24) [13]А почему ужасно?
P.S. Просто интересно, т.к. я так делал. Может переделать надо.
← →
{RASkov} © (2007-12-19 12:35) [14]> [13] Washington © (19.12.07 12:24)
> А почему ужасно?
>
> P.S. Просто интересно, т.к. я так делал
Ты расскажи о великой надобности, в этом "нелегком деле", панели.... Да и TImage зачем?
Если всего-то необходимо нарисовать нечто на канве.....)
А, ну да, забыл.... у нас же мощные компы :)
← →
Washington © (2007-12-19 12:36) [15]Ну мне не рисовать, а готовую картинку надо было вставить.
← →
{RASkov} © (2007-12-19 12:40) [16]> [15] Washington © (19.12.07 12:36)
А какая разница??? Рисовать или "вставить" - чем отличаются?
← →
Washington © (2007-12-19 12:44) [17]То есть PaintBox с разрисованной канвой можно использовать вместо панели?
← →
Виктор007 (2007-12-19 13:00) [18]Вот, в DelphiWorld нашел:
У всех компонентов, порожденных от TCustomControl, имеется свойство Canvas типа TCanvas. Грубо говоря, это аналог TDC из OWL. Те операции, которые нельзя выполнить с помощью методов TCanvas, можно выполнить с помощью WinAPI. Для этого у обьектов класса TCanvas имеется свойство Handle - это и есть Хэндл Дисплейного Контекста ОС Windows (HDC), который необходим графическим функциям WinAPI. Если свойство Canvas недоступно, Вы можете достучаться до него созданием потомка и переносом этого свойства в раздел Public.type
TcPanel = class(TPanel)
public
property Canvas;
end;
А если у объекта нет свойства Canvas (у TDBEdit, вpоде-бы нет), по кpайней меpе в D3 можно использовать класс TControlCanvas. Пpимеpное использование:var
cc: TControlCanvas;
...
cc := TControlCanvas.Create;
cc.Control := youControl;
...
и далее как обычно можно использовать методы Canvas.
← →
Виктор007 (2007-12-19 13:13) [19]У меня еще вопрос, как установить обработчик onPaint для панели. Мне нужна простая синяя панель с белым текстом по центру - но при включеных темах Windows цвет панели меняется на серый, в итоге белого текста не видно... Вообще по идее подошел бы и Label, но он не может выравнивать текст по центру, и также при включенных темах его фон сбрасывается...
PaintBox использовать вместо меток тоже не хочется.
← →
Washington © (2007-12-19 13:19) [20]А что цвет панели в clBlue выставить и Caption прописать нельзя?
← →
Виктор007 (2007-12-19 13:22) [21]Спасибо... что-то я совсем притупел :(
← →
Washington © (2007-12-19 13:24) [22]Да не за что )
← →
{RASkov} © (2007-12-19 14:14) [23]> То есть PaintBox с разрисованной канвой можно использовать
> вместо панели?
> PaintBox использовать вместо меток тоже не хочется.
И почему все так боятся использовать ПаинтБокс? :)
А ведь его борландцы как раз для этих целей придумали)
> Вообще по идее подошел бы и Label, но он не может выравнивать
> текст по центру, и также при включенных темах его фон сбрасывается...
На счет фона и тем не знаю, но вот выравнивать текст лабел умеет... См. Alignment и Layout
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.05 c