ورود

View Full Version : نمایش چند نسخه از یک فرم در موقعیت خاص و بالای هم



mahdy.asia
چهارشنبه 21 آبان 1393, 01:58 صبح
من می خواهم یک فرم را در موقعیت خاص از فرم اصلی نمایش بدم (پایین فرم گوشه سمت چپ) و نسخه بعدی رو درست بالای فرم قبلی تا مثلا 5 نسخه بگونه ایی که روی هم رو نگیرند

Mask
چهارشنبه 21 آبان 1393, 15:04 عصر
کافیه از دو دستور Screen.Width و Screen.Height مشخصات اسکرین رو بگیری و با تفریق اندازه فرمت ،Top و Left نمایش فرم رو تعیین کنی.

mahdy.asia
پنج شنبه 22 آبان 1393, 11:45 صبح
من برای اینکار کد زیر رو نوشتم درست هم جواب داد


procedure TF_main.ShowForm;
var
ff : TF_Det ;
begin
ff := TF_Det.Create(self);
ff.Top := PubTop - ((ff.Height - 2) * countForm );
inc(countForm) ;
ff.Left :=Left + 2 ;


if (ff.Top < 0 ) then
exit ;


ff.Show ;


end;
اما اگر یکی رو کاربر ببنده باید بقیه رو مرتب کنم که جای خالی فرم بسته شده پر بشه اینم کدش رو نوشتم حالا اگر هنگام بسته شدن کد اجرا بشه جاش خالی نشده که پر بشه اگر بعد از بسته شد اجرا بشه چطور کد مرتب سازی رو اجرا کنم



procedure TF_main.OrderForm ;
var
iFound,i : integer ;
FC : TFormClass;
FF : TForm ;
begin
Timer1.Enabled := false ;
Fc := TF_Det ;
countForm := 1 ;
for i := 1 to Screen.FormCount -1 do
if Screen.Forms[i] is FC then
begin
ff := Screen.Forms[i] ;
ff.Top := PubTop - ((ff.Height - 2) * countForm );
ff.Left :=Left + 2 ;
inc(countForm) ;
end;
end;