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

Вниз

Анонимно о поразительном факте.   Найти похожие ветки 

 
Радуга   (2004-06-14 22:34) [0]

Меня глючит или у TPanel никогда не было канвы?


 
Fenik   (2004-06-14 22:36) [1]

Глючит.


 
Радуга   (2004-06-14 22:51) [2]

Да нету её.


 
Fenik   (2004-06-14 22:57) [3]

Есть, только недоступно для пользования.

TPanel = class(TCustomPanel)

TCustomPanel = class(TCustomControl)  

TCustomControl = class(TWinControl)
 private
   FCanvas: TCanvas;
   procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
 protected
   procedure Paint; virtual;
   procedure PaintWindow(DC: HDC); override;
   property Canvas: TCanvas read FCanvas;
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 end;

...

procedure TCustomPanel.Paint;
...
 Frame3D(Canvas, Rect, Color, Color, BorderWidth);
...


 
Радуга   (2004-06-14 23:11) [4]

Это проклятье. Ладно, спасибо.


 
able ©   (2004-06-14 23:29) [5]


> Это проклятье.

Что именно?


 
Радуга   (2004-06-14 23:45) [6]

2 able:

Проклятье то, что канва скрыта. Очень уж хотелось порисовать её методами.


 
able ©   (2004-06-14 23:47) [7]


> Проклятье то, что канва скрыта. Очень уж хотелось порисовать
> её методами.

Понятно


 
Alex Konshin ©   (2004-06-15 00:51) [8]

Открыть же очень просто.
Пишешь где-нибудь в implementation
type
 THackPanel = class(TPanel)
 end;

И там, где тебе нужна canvas пишешь
 THackPanel(panel).Canvas


 
pasha_golub ©   (2004-06-15 01:06) [9]

Радуга   (14.06.04 23:45) [6]
Тю, мне бы ваши проблемы. Прислушайтесь к Alex Konshin ©   (15.06.04 00:51) [8] :-)


 
Радуга   (2004-06-15 20:40) [10]

2 Alex Konshin:

А мне для интерфейса надо. Сделал панельку синей, поместил наверх и хотел на ней рисовать, а никак. Поместил TPaintBox наверх, хотел сделать синей - и никак. :((((((((((


 
Alex Konshin ©   (2004-06-16 07:04) [11]

Дык сделай свой компонент. Делов-то.


// (c) Alex Konshin mailto:alexk@mtgroup.ru 28.04.99

unit CavnasControl;

interface

uses
 SysUtils, Windows, Classes, Forms, Controls;

type

 TCanvasControl = class(TCustomControl)
 protected
   FOnPaint : TNotifyEvent;
   procedure Paint; override;
 public
   constructor Create( AOwner : TComponent ); override;
 published
   property OnPaint : TNotifyEvent read FOnPaint write FOnPaint;
   property Canvas;
   property Align;
   property Anchors;
   property BiDiMode;
   property Constraints;
   property Ctl3D;
   property DragCursor;
   property DragKind;
   property DragMode;
   property Enabled;
   property Font;
   property ParentBiDiMode;
   property ParentColor;
   property ParentCtl3D;
   property ParentFont;
   property ParentShowHint;
   property PopupMenu;
   property ShowHint;
   property TabOrder;
   property TabStop;
   property Visible;
   property Color;
   property OnClick;
   property OnDblClick;
   property OnDragDrop;
   property OnDragOver;
   property OnEndDock;
   property OnEndDrag;
   property OnKeyDown;
   property OnKeyPress;
   property OnKeyUp;
   property OnMouseDown;
   property OnMouseMove;
   property OnMouseUp;
   property OnMouseWheelDown;
   property OnMouseWheelUp;
   property OnStartDock;
   property OnStartDrag;
 end; { TCanvasControl }

 procedure Register;

//=============================================================
implementation

//uses

//=============================================================
procedure Register;
begin
 RegisterComponents("Additional", [TCanvasControl]);
end;

//==TCanvasControl=============================================
constructor TCanvasControl.Create( AOwner : TComponent );
begin
 inherited Create(AOwner);
 Width := 64;
 Height := 64;
end;
//-------------------------------------------------------------
procedure TCanvasControl.Paint;
begin
 if Assigned(FOnPaint) then FOnPaint(Self);
end;

end.


 
Danilka ©   (2004-06-16 07:55) [12]

А еще можно и штатными средствами, через TControlCanvas, например так:

procedure TForm1.Button1Click(Sender: TObject);
begin
 with TControlCanvas.Create do begin
   Control := Panel1;
   TextOut(10,10,"Проба пера");
 end;
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
9-1078922162
Delpher_Gray
2004-03-10 15:36
2004.07.04
Выдирание ресурсов из игры Князь


14-1087325194
XIII
2004-06-15 22:46
2004.07.04
Проблемка


6-1084109098
WHS
2004-05-09 17:24
2004.07.04
winsock


14-1084969501
nikkie
2004-05-19 16:25
2004.07.04
Fritz8 - Мастера Дельфи


14-1087193128
Rule
2004-06-14 10:05
2004.07.04
Как Вы относитесь к максималистам ... ?