PDA

View Full Version : راست چین کردن ControlBar



mahdy.asia
سه شنبه 08 اسفند 1391, 22:02 عصر
من ControlBar در نرم افزارم استفاده کردم می خواهم کلیدهایی را که روی آن می زارم از سمت راست نظام بگیرند (هنگام تغییر سایز فرم در منتهی راست باشند)

BORHAN TEC
چهارشنبه 09 اسفند 1391, 23:19 عصر
از کدی مثل این استفاده کن:
const
WS_EX_NOINHERITLAYOUT = $00100000;
// Disable inheritence of mirroring by children
WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring

procedure SetWinControlBiDi(Control: TWinControl);
var
ExStyle: Longint;
begin
ExStyle := GetWindowLong(Control.Handle, GWL_EXSTYLE);
SetWindowLong(Control.Handle, GWL_EXSTYLE, ExStyle or WS_EX_RTLREADING or
WS_EX_RIGHT or WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
Control: TWinControl;
begin
// by Shaahin Ashayeri (^_^)
SetWinControlBiDi(ControlBar1);
ControlBar1.Invalidate;
for I := 0 to ControlBar1.ControlCount - 1 do
begin
if (Control is TWinControl) then
begin
SetWinControlBiDi(Control);
end;
end;
end;

developing
شنبه 12 اسفند 1391, 13:18 عصر
با سلام

اگه درست متوجه شده باشم شما می خواهید که اگه فرم به سمت راست کشیده شد کنترل های شما فاصلشون رو با سمت راست حفظ کنن.

اگه اینطور باشه شما باید خاصیت anchors بخش right رو true کنید

mahdy.asia
چهارشنبه 16 اسفند 1391, 10:31 صبح
اگه درست متوجه شده باشم شما می خواهید که اگه فرم به سمت راست کشیده شد کنترل های شما فاصلشون رو با سمت راست حفظ کنن.

اگه اینطور باشه شما باید خاصیت anchors بخش right رو true کنید
در حقیقت درخواست من راست چین شدن کامپوننت است اما این روش هم که شما می گید اگه ابتدا با یک ترفند کلیدهای روی کنترل بار را به منتهی راست بیاورم که این کار را انجام دادم و خاصیت anchorsدرست کار کند که درست کار نکرد خواسته من پوشش داده می شود اما هنوز کد دوستمان Object Pascal (http://barnamenevis.org/member.php?75214-Object-Pascal)را چک نکردم

mahdy.asia
سه شنبه 22 اسفند 1391, 20:47 عصر
از کدی مثل این استفاده کن:
من با دلفی 7 کار میکنم کد شما تو این خط خطای invalid class typecast
رو میده
Control := (ControlBar1.Controls[I] as TWinControl);

BORHAN TEC
سه شنبه 22 اسفند 1391, 21:01 عصر
چه کامپوننتهایی را روی ControlBar قرار داده اید؟

mahdy.asia
شنبه 10 فروردین 1392, 22:24 عصر
چه کامپوننتهایی را روی ControlBar قرار داده اید؟
TSpeedButton

BORHAN TEC
یک شنبه 11 فروردین 1392, 02:05 صبح
کد مربوطه برای رفع این مشکل بروزرسانی شد.