View Full Version : سوال: Center Horizontally کنترل های روی فرم
hasandrw
چهارشنبه 26 مرداد 1390, 17:32 عصر
با سلام
من کنترل های روی فرم رو با دکمه Center Horizontally خود دلفی درقسمت وسط فرم قرار دادم.حالا می خوام با کدنویسی این کار را انجام بدم ولی نیاز به همکاری دارم.
اگه کسی چیزی میدونه از ما بی دریغ نکنه.
پیشتر ممنونم.
یا حق
Felony
چهارشنبه 26 مرداد 1390, 17:49 عصر
var
Control: TComponent;
begin
for Control in Self do
if Control is TControl then
TControl(Control).Left:= (Self.Width div 2) - (TControl(Control).Width div 2);
end;
MohsenB
چهارشنبه 26 مرداد 1390, 18:24 عصر
سلام
دلفی برا این کارا فکر بهتری کرده که نیاز به کد هم نداره :
"همه زیر خصیصه های خصوصیت Anchors غیر از Top از کنترل مورد نظر را به False تغییر بدین ."
hasandrw
چهارشنبه 26 مرداد 1390, 19:12 عصر
متشکرم آقای تاجیک
ولی برای Center Vetically باید جچوری براش بنویسم؟
.................................................. ......................
جناب MohsenB منظور شما خاصیت Anchors منترل است یا فرم؟ من هر دو رو امتحان کردم ولی جواب نداد!
.................................................. ....................................
MohsenB
چهارشنبه 26 مرداد 1390, 19:23 عصر
جناب MohsenB منظور شما خاصیت Anchors منترل است یا فرم؟ من هر دو رو امتحان کردم ولی جواب نداد!
"همه زیر خصیصه های خصوصیت Anchors غیر از Top از کنترل مورد نظر را به False تغییر بدین ."
باید جواب بده . شما مگه از روش خواصی فرمتون رو رسایز می کنید ؟ ویا کنترل مورد نظرتون روی چه پرنتی هست؟ آیا این پرنت هم ریسایز میشه؟
hasandrw
چهارشنبه 26 مرداد 1390, 20:38 عصر
حالا فهمیدم جناب MohsenB :
منظور شما اینکه با Maximaize یا Restor Down کردن فرم، کنترل های روی فرم هم مطابق ریساز شدن فرم تغییر کنه! ولی منظور من چیز دیگه است!
منظور من این بود که مثلا:من یک فرم دارم و می خوام در دو قسمت از برنامه ام از اون فرم استفاده کنم در یک قسمت می خوام تو این فرم دوتا Button باشه و هر دو وسط صفحه و در قسمت دیگه هم می خوام سه تا Button باشه و هر سه هم دقیقا جای اون دو تا Button اولی وسط فرم باشند.و این Button ها در هر فرمی که نمی خوامشون visible اونها را false می کنم.
حالا دیگه فکر کنم منظورم رو فهمیده باشی.
Felony
چهارشنبه 26 مرداد 1390, 21:09 عصر
متشکرم آقای تاجیک
ولی برای Center Vetically باید جچوری براش بنویسم؟
.................................................. ....................................
var
Control: TComponent;
begin
for Control in Self do
if Control is TControl then
begin
TControl(Control).Top := (Self.Height div 2) - (TControl(Control).Height div 2);
TControl(Control).Left := (Self.Width div 2) - (TControl(Control).Width div 2);
end;
end;
hasandrw
چهارشنبه 26 مرداد 1390, 23:09 عصر
73965
منظور من اینه که اگه Button های روی فرم به این صورت باشند می با کد نویسی بصورت شکل زیر در بیان.یعنی وقتی روی فرم لود شد بصورت زیر نمایش بده.
73966
حالا دیگه فکر کنم منظورم رو رسونده باشم.
متشکرم از راهنمایی تمامی دوستان
MohsenB
پنج شنبه 27 مرداد 1390, 00:24 صبح
سلام
از این کد میتونید استفاده کنید :
const c_SP = 10;
var m_Count :Byte;
procedure TForm1.FormCreate(Sender: TObject);
begin
m_Count:= 3;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
if m_Count=3 then begin
btn2.Left:= (ClientWidth div 2) - (btn2.Width div 2);
btn1.Left:= btn2.Left - c_SP - btn1.Width;
btn3.Left:= btn2.Left + btn2.Width + c_SP;
end else begin
btn1.Left:= (ClientWidth div 2)-(c_SP div 2) - btn1.Width;
btn2.Left:= (ClientWidth div 2)+(c_SP div 2);
end;
end;
ولی اگر برنامتون رو یکم سروسامون بدین میتونید از کد تمیزتری استفاده کنید .
hasandrw
پنج شنبه 27 مرداد 1390, 02:24 صبح
کد دیگه مثلا چه کدی؟
MohsenB
پنج شنبه 27 مرداد 1390, 19:13 عصر
کد دیگه مثلا چه کدی؟
منظورم اینه که اگر همه چیز برنامه مشخص باشه ، مثلا بدونیم تمام Button ها یه اندازه هستن و یا دکمه ها رو بصورت آرایه ای درست کنید و ...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.