Главная страница
    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.48 MB
Время: 0.035 c
1-1087330567
Костик
2004-06-16 00:16
2004.07.04
Обращении к функции CopyFile в WinXp


9-1072257746
Kerby
2003-12-24 12:22
2004.07.04
GLSCENE


3-1086690447
kalliopiy
2004-06-08 14:27
2004.07.04
Прокручивание Grid а


3-1086759294
Smalik
2004-06-09 09:34
2004.07.04
не сохраняются данные с помошью ClientDataSet1.ApplyUpdates(-1)


1-1087581978
zep
2004-06-18 22:06
2004.07.04
Listbox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский