Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-79225
_vop_
2003-09-28 20:18
2003.11.24
Как послать WM_DROPFILES?


3-78782
Term
2003-11-05 16:31
2003.11.24
DBGried.......


14-79112
Voprosik
2003-11-02 12:46
2003.11.24
Стоит ли менять GeForceFX 5200 на Titanium 4200???


3-78853
djon
2003-11-03 15:08
2003.11.24
Ошибка ClientDataSet.ApplyUpdates


1-78954
KSergey
2003-11-11 13:55
2003.11.24
Исходники ф-ций из модуля System, ф-ция Pos





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский