Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизClientRect Найти похожие ветки
← →
webpauk (2003-11-13 16:51) [0]Может кто подскажет как изменить ClientRect TPanel, чтобы вышележащие компоненты, имеющие Align=alClient отображались только в определенной области TPanel (например, Rect(10, 10, 20, 20))
← →
Ru (2003-11-13 16:54) [1]может им (я так понял это потомки) просто присвоить left,top,heigth,width?
← →
REA (2003-11-13 17:03) [2]Так они же alClient - т.е. все свободное пространство.
Скажи что надо то? Там еще есть constraints, alCustom...
← →
webpauk (2003-11-13 17:05) [3]компонент, наследник TPanel имеет специальную область, куда вышележащие компоненты не должны залазить
← →
Ru (2003-11-13 17:07) [4]>webpauk (13.11.03 17:05) [3]
"вышележащие компоненты" это "компоненты лежащие на панели"?
← →
webpauk (2003-11-13 17:10) [5]ага
← →
webpauk (2003-11-13 17:11) [6]неохота на TPanel создавать еще один Tpanel. Хочется просто отрисовать нужную область
← →
Ru (2003-11-13 17:14) [7]>webpauk (13.11.03 17:11) [6]
можно или вторую панель (как и говоришь) или отслеживать положение дочерних компанент программно (ложи панель)
← →
webpauk (2003-11-13 17:15) [8]not cool
← →
serge (2003-11-13 17:22) [9]Смотри в сурсах:
procedure TCustomPanel.AdjustClientRect(var Rect: TRect);
var
BevelSize: Integer;
begin
inherited AdjustClientRect(Rect);
InflateRect(Rect, -BorderWidth, -BorderWidth);
BevelSize := 0;
if BevelOuter <> bvNone then Inc(BevelSize, BevelWidth);
if BevelInner <> bvNone then Inc(BevelSize, BevelWidth);
InflateRect(Rect, -BevelSize, -BevelSize);
end;
Может поможет!
Удачи!
← →
webpauk (2003-11-13 17:27) [10]serge, СПАСИБО! СПАСИБИЩЕ!!!
← →
serge (2003-11-13 17:29) [11]Скажешь спасибо когда получится :о)
← →
webpauk (2003-11-13 17:39) [12]дык получилось
procedure TPanel1.AdjustClientRect(var Rect: TRect);
var
BevelSize: Integer;
begin
inherited AdjustClientRect(Rect);
InflateRect(Rect, -BorderWidth, -BorderWidth);
OffsetRect(Rect, 0, 20);
Dec(Rect.Bottom, 21);
end;
← →
webpauk (2003-11-13 17:43) [13]точнее говоря:
unit Panel1;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, Graphics;
type
TPanel1 = class(TPanel)
private
{ Private declarations }
protected
{ Protected declarations }
procedure Paint; override;
procedure AdjustClientRect(var Rect: TRect);override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
constructor TPanel1.Create(AOwner: TComponent);
begin
inherited;
ControlStyle:=ControlStyle-[csSetCaption]+[csAcceptsControls];
Height:=105;
end;
destructor TPanel1.Destroy;
begin
inherited;
end;
procedure TPanel1.Paint;
var
fR: TRect;
fCanvas: TCanvas;
begin
inherited;
fCanvas:=TCanvas.Create;
fCanvas.Handle:=GetWindowDC(Handle);
fR:=Rect(1, 1, Width-2, 20);
fCanvas.Brush.Color:=clBlue;
fCanvas.Pen.Color:=clBlue;
fCanvas.FillRect(fR);
fCanvas.Handle:=0;
fCanvas.Free;
end;
procedure TPanel1.AdjustClientRect(var Rect: TRect);
begin
inherited AdjustClientRect(Rect);
InflateRect(Rect, -BorderWidth, -BorderWidth);
OffsetRect(Rect, 0, 20);
Dec(Rect.Bottom, 21);
end;
procedure Register;
begin
RegisterComponents("Standard", [TPanel1]);
end;
end.
← →
serge (2003-11-13 17:57) [14]Я тоже делал как-то панельку с капшином с возможностью перетаскивания - типа тулнвидоу, только вот енту процедуру я там не использовал - небыло надобности, теперь добавлю, благо ты напомнил о сей веши!
Удачи!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.029 c