PDA

View Full Version : در دست گیری محدویت پنجره ها در فرم های ReSizeable سفارشی



Pichidehtarin
شنبه 21 شهریور 1383, 09:35 صبح
با سلام
من یه پنجره سفارشی درست کردم
با استفاده از BoundsRect عملیات ReSizeable رو انجام دادم مثلا برای تغییر اندازه سمت چپ پنجره کد زیر رو نوشتم:


procedure TMainForm.LeftPanelMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
RX : TRect;
begin
if ssLeft in Shift then begin
RX := BoundsRect;
RX.Left := Mouse.CursorPos.X;
BoundsRect := RX;
end;
end;

وبه همین ترتیب برای جا های دیگه .

اما این کد با محدودیت پنجره (Min Width ، MinHeight) مشکل داره
چطوری میتونم مشکل رو بر طرف کنم ؟

اگه این مشکل برطرف بشه واقعا پنجره خوبی در میاد که من Source رو اینجا خواهم گذاشت .

متشکرم .

_alish_
شنبه 21 شهریور 1383, 10:24 صبح
ببین با این حل می شه


procedure TForm1.FormResize(Sender: TObject);
begin
if (BoundsRect.Bottom-BoundsRect.Top)<Constraints.MinHeight then
Abort;
end;

Pichidehtarin
شنبه 21 شهریور 1383, 10:37 صبح
شما باید کد من رو امتحان کنید تا جریان رو متوجه بشید :

بعد از اینکه اندازه برابر با محدودیت میشه فرم حرکت میکنه .

در ضمن یکه کد دقیق میخوام که پنجره یه مقدار هم جابجایی نداشته باشه .

بازم متشکرم .

_alish_
شنبه 21 شهریور 1383, 11:08 صبح
منظور از حرکت چیه ؟

Pichidehtarin
شنبه 21 شهریور 1383, 12:30 عصر
منظور از حرکت چیه ؟

حرکت = جابجایی

omidsm
شنبه 21 شهریور 1383, 16:40 عصر
بله در حالت عادی هم این اتفاق در بعضی جهات میافتهههههه

Pichidehtarin
یک شنبه 22 شهریور 1383, 08:58 صبح
بله در حالت عادی هم این اتفاق در بعضی جهات میافتهههههه

منظور شما از حالت عادی چیه ؟

پنجره های معمول ویندوز ؟؟؟؟؟!!!!!!!!

Pichidehtarin
دوشنبه 23 شهریور 1383, 13:10 عصر
آقا مثل اینکه درسته :متفکر: :o

پس پنجره ای که من ساختم درست کار میکنه .

omidsm
سه شنبه 24 شهریور 1383, 14:09 عصر
پس آفرین به شما :D

Pichidehtarin
سه شنبه 24 شهریور 1383, 15:27 عصر
عکسش رو تو این تاپیک گذاشتم :

http://www.barnamenevis.org/forum/viewtopic.php?t=14588