PDA

View Full Version : سوال: maximize در فرم



pandco
پنج شنبه 11 مرداد 1397, 18:12 عصر
با درود و احترام

یه فرمی هستش که در داخلش چند تا editbox و dbgrid هستش چطوری میشه وقتی کاربر روی maximize کلیک کرد و صفحه بزرگ شد editbox و dbgrid نیز هم فونت ها و خودشون بزرگ بشن و دوباره روی maximize کلیک کرد به حالت اولیه برگردن. خاصیتی باید تغییر بدم یا کد داره ؟ البته لطف میکنین کمکم کنید

با تشکر

یوسف زالی
شنبه 13 مرداد 1397, 12:21 عصر
سلام
اندازه فونت رو درست کنید، ببینید در حالت بزرگ چه اندازه ای مناسبه، در حالت کوچک چی، و نسبتش رو محاسبه کنید و در رویداد FormResize اونها رو ست کنید

pandco
یک شنبه 14 مرداد 1397, 18:57 عصر
با درود و احترام
کد زیر رو formresize نوشتم اما کار نمیکنه یعنی وقتی بزرگ میکنم شرط اولی اجرا میشه و وقتی کوچک میکنم شرط دومی اجرا میشه

procedure TForm1.FormResize(Sender: TObject);
begin

if (WindowState=wsNormal) then
begin
Edit1.Top:=18;
Edit2.Top:=50;
end;
if (WindowState=wsMaximized) then
begin
Edit1.Top:=25;
Edit2.Top:=70;
end;
end;

اگه امکانش باشه لطفا یه نمونه کد بزارین.
با تشکر از توجهتان

یوسف زالی
یک شنبه 14 مرداد 1397, 23:56 عصر
unit Unit1;


interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;


type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
private
BaseHeight: integer;
BaseFontSize: integer;
public
{ Public declarations }
end;


var
Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
BaseHeight := Height;
BaseFontSize := Label1.Font.SIZE;
end;


procedure TForm1.FormResize(Sender: TObject);
var
Ratio: real;
begin
Ratio := Height / BaseHeight;
Label1.Font.SIZE := Round(BaseFontSize * Ratio);
end;


end.

pandco
سه شنبه 16 مرداد 1397, 19:26 عصر
ممنون از کمکتون

تو دکمه ها و دیبی گرید چطوری میتونم خود دیبی گرید و دکمه ها رو نیز بزرگ کنم با کد بالایی تست کردم فونت ها بزرگ شدن اما دکمه ها سایزشون بزرگ نشدن . البته لطف میفرمایید کمک میکنید

با تشکر

یوسف زالی
چهارشنبه 17 مرداد 1397, 17:40 عصر
برای بزرگ کردن کنترل ها باید از روش دیگری مثل anchor یا align استفاده کنید.
استفاده از روش بالا برای بزرگ کردن کنترل ها سخت و مستلزم دقت زیاد است.