![]() |
|
شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.! - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : مصادر دلفي مفتوحة تعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=14) +--- الموضوع : شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.! (/showthread.php?tid=8551) |
شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.! - karika2 - 28-03-2017 بسم الله الرحمن الرحيم سريعاّ: انا شخصياّ بستخدم هذه الطريقة لتظبيط مقاسات المكونات حتى تعمل على اى شاشه بغض النظر عن حجمها سواء بئى 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);أرجو فى النهاية لو أستفد وحتى ولو بشئ بسيط بأن تدعو لولدى بالرحمه والمغفره والسلام عليكم ورحمه الله وبركاته RE: شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.! - bassem_43 - 29-03-2017 و عليكم السلام ورحمة الله وبركاته بارك الله فيك karika2 و نسال الله ان يرحمهم و يغفر لهم و لجميع المسلمين RE: شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.! - أبو معاذ - 29-03-2017 جزاك الله خيرا ، هلا أعطيتنا مثالا كاملا في المرفقات ؟ بارك الله فيك. RE: شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.! - bassem_43 - 17-04-2017 السلام عليكم كما قال لك الاخ Unprogramme هل من مثال على دلك RE: شرح لكى تجعل مكونات برنامجك تتعامل مع جميع المقاسات.! - karika2 - 18-04-2017 حسناّ وهذه صورة من التابلت 7 بوصه ![]() ![]() 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. |