Текущий архив: 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