شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.!
#1
بسم الله الرحمن الرحيم
سريعاّ:
انا شخصياّ بستخدم هذه الطريقة لتظبيط مقاسات المكونات حتى تعمل على اى شاشه بغض النظر عن حجمها سواء بئى 5 او 7 بوصه أو اى مقاس أخر  وهى أنى بعد ما أنهى البرنامج على الوندز وكل شئ تمام بحسب المقاس بالنسبه المؤيه وهذه النسبه بستغلها وأجعلها ثابته حتى تتعامل مع شاشات الموبيلات وغيرها دون النظر الى حجمها كما أشرت وللحصول على النسبه المؤية للمكون بالطريقة الاتيه
كود :
procedure TForm2.getsize(AOwner: TEdit;x,y:Single);
begin
ShowMessage(AOwner.Name+'.Width:= '+FloatToStr(AOwner.Width*100/Form2.Width));
ShowMessage(AOwner.Name+'.Height:= '+FloatToStr(AOwner.Height*100/Form2.Height));
end;


 أنت كده يظهر لك المكون بيساوى كم فى المائة وللــ أستخدام هكذا
كود :
getsize(edt1,edt1.Width,edt1.Height);


وللتعديل على المقاسات هكذا
كود :
procedure TForm2.editsize(AOwner: TEdit;x,y:Single);
begin
 AOwner.Width:=x*Form2.Width/100;
 AOwner.Height:=y*Form2.Height/100;
end;


ثم الان تكتب النسبه المؤية التى تريدها وياريت يكون نفس النسبه التى حصلت عليها من الاجراء الاول
كود :
editsize(edt1,50,10);

أرجو فى النهاية لو أستفد وحتى ولو بشئ بسيط بأن تدعو لولدى بالرحمه والمغفره والسلام عليكم ورحمه الله وبركاته
> مبرمج مبتدئ < سبحان الله بحمده... سبحان الله العظيم
[-] كل من 2 users say قال شكرا ل karika2 على المشاركة المفيدة
  • bassem_43, أبو معاذ
الرد
#2
و عليكم السلام ورحمة الله وبركاته
بارك الله فيك karika2 و نسال الله ان يرحمهم و يغفر لهم و لجميع المسلمين
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
الرد
#3
جزاك الله خيرا ،
هلا أعطيتنا  مثالا كاملا  في المرفقات  ؟
بارك الله فيك.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#4
السلام عليكم
كما قال لك الاخ Unprogramme هل من مثال على دلك
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
الرد
#5
حسناّ
وهذه صورة من التابلت 7 بوصه
[صورة: 5aabf4cf2adf1.png]

[صورة: d9fab58c69fc2.png]



code
كود :
unit Unit2;

interface

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
 FMX.Edit, FMX.Controls.Presentation, FMX.Objects;

type
 TForm2 = class(TForm)
   btn1: TButton;
   edt1: TEdit;
   pnl1: TPanel;
   edt2: TEdit;
   img1: TImage;
   procedure FormCreate(Sender: TObject);
   procedure FormResize(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;
 px,py,w,h:array[0..4] of single;
implementation

{$R *.fmx}

procedure TForm2.FormCreate(Sender: TObject);
var
i:Integer;

begin
   for i := 0 to ComponentCount-1  do
   begin
    px[i]:=TControl(Components[i]).Position.X;     // get Components[i]).Position.X
    py[i]:=TControl(Components[i]).Position.y;    // get Components[i]).Position.y
    w[i]:=TControl(Components[i]).Width;     // get Components[i]).Width
    h[i]:=TControl(Components[i]).Height;   // get Components[i]).Height

   end;


end;

procedure TForm2.FormResize(Sender: TObject);
var
i:Integer;
begin
 //  759 = form width now     //  480 = form Height now
for i := 0 to ComponentCount-1  do
 begin
  TControl(Components[i]).Position.x:= px[i]*1000/759*Form2.Width/1000;
  TControl(Components[i]).Position.y:= py[i]*1000/480*Form2.Height/1000;
  TControl(Components[i]).Width:= w[i]*1000/759*Form2.Width/1000;
  TControl(Components[i]).Height:= h[i]*1000/480*Form2.Height/1000;

 end;

end;

end.
> مبرمج مبتدئ < سبحان الله بحمده... سبحان الله العظيم
[-] كل من 1 user says قال شكرا ل karika2 على المشاركة المفيدة
  • bassem_43
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم