بدست آوردن اینکه مانیتور چند اینچ است
بدست آوردن اینکه مانیتور چند اینچ است
سلام :
اینچ صفحه نمایش رو برای چی می خوای . اگه منظور شما رزولوشن صفحه است که این روش ها است :
ResX:=Screen.Width;
ResY:=Screen.Height;
یا
procedure SetResolution(ResX, ResY: DWord);
var
lDeviceMode : TDeviceMode;
begin
EnumDisplaySettings(nil, 0, lDeviceMode);
lDeviceMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
lDeviceMode.dmPelsWidth :=ResX;
lDeviceMode.dmPelsHeight:=ResY;
ChangeDisplaySettings(lDeviceMode, 0);
end;
مثال =>
SetReolution(800,600);
برای راحت تر کار کردن با این سایت بهتره " جستجو " رو ابتدا انجام بدین ...
سلام
مانیتورها مشخصات زیادی دارن .
ازجمله این مشخصات به زبان ساده تعداد پیکسل در هر اینچ هست . مثلا میگن رزولوشن این صفحه نمایش 1024 در 768 هست . این یعنی تو این صفحه نمایش 1024 ستون پیکسل و 768 سطر پیکسل قرار داره . حالا اگه تعداد پیکسل در هر اینچ صفحه نمایش متفاوت باشه اندازه اون صفحه نمایش هم تغییر می کنه .
مشخصه دیگه سایز صفحه نمایشه که فاصله مثلا گوشه بالایی سمت چپ صفحه تا گوشه سمت راست پایینی صفحه نمایش بر حسب اینچ هست . مثلا میگن این صفحه نمایش 17 اینچه .
از دو مطلب بالا این نتیجه رو میشه گرفت که از روی رزولوشن نمیشود اندازه صفحه نمایش را تشخیص داد . مثلا ممکنه رزولوشن یه صفحه نمایش 19 اینچ 1200 در 768 باشه و رزولوشن یه صفحه نمایش دیگه ی 19 اینچ 1600 در 800 باشه .
برای اطلاعات بیشتر : یه مشخصه دیگه صفحه نمایش نسبت اندازه تصویره . مثلا 16:9 . این نشون دهنده یه صفحه نمایش عریضه که نسبت اندازه طول به عرض صفحه نمایش 16 به 9 میباشد .
موفق باشید .
مرسی از جوابتون اما میخوام dpi مانیتور رو در رزولوشن های مختلف یا طول و عرض مانیتور رو به سانتیمتر یا اینچ بتونم بدست بیارم
اینکه دوباره همون سواله که .
و جوابشم همون .
بطور خلاصه : همه مانیطورها تراکم پیکسل یکسان ندارند و نمی توان اندازه صفحه نمایش رو از رو رزولوشن بدست آورد . تنها راهش داشتن مشخصات صفحه نمایشی هایی هست که قراره روشون برنامه نمایش داده بشه ، مثلا بدونی مدل W2053 ال-جی مانیتور بیست اینچ با رزولوشن 1600x900 هست .
من می خوام از هر راهی که میشه اندازه مانیتور که چند اینچ یا چند سانت هست رو پیدا کنم ، فکر می کنید راهی هست ؟
بله یه راه خوب براتون پیدا کردم :
یه فرم درست کنید و یک کنترل Edit به نام Edit1 رو فرم بزارین و بعد یه دکمه رو فرم قرار بدین و توی کد دکمه این چندتا خط رو بنویسید . بعد از زدن دکمه اندازه صفحه نمایش توی کنترل ادیت نوشته میشه :
procedure TForm1.btn1Click(Sender: TObject);
var f : TForm;
l : TLabel;
t : TEdit;
b : TButton;
r : string;
begin
f:= TForm.Create(self);
with f do begin
BorderStyle:= bsDialog;
Width:= 300;
Height:= 120;
l:= TLabel.Create(f);
l.SetBounds(10,10,200,30);
l.Caption:= 'How mach size of your Display ?';
l.Parent:= f;
b:= TButton.Create(f);
b.SetBounds(10,45,60,30);
b.Caption:= 'OK';
b.Parent:= f;
t:= TEdit.Create(f);
t.SetBounds(100,50,150,20);
t.Parent:= f;
t.TabOrder:= 0;
b.ModalResult:= mrOk;
b.Default:= True;
ShowModal;
r:= t.Text;
end;
Edit1.Text:= r;
end;
ممنون میشه یه توضیح کوچیک راجع به برنامتون بدین که دقیقا چیو بر می گردونه ؟؟ من سانت یا اینچ مانیتورو میخوام ....
دلیلش اینه که یه TImage روی فرم داریم که روی اون چند تا Lable وجود داره و این Lable ها مشخص میکنه که دقیقا تو اون نقطه عکس اون چیزی که میخوایم چاپ بشه ، حالا وقتی انو به quick Report میفرستیم برای اینکه دقیقا روی کاغذ واقعی هم هونجا چاپ بشه باید sclae عکس 100 باشه تا با quick report همخونی داشته باشه و یه چیز دیگه ای هم که میخواد اینه که دقیقا Top و Left یه QRLabel رو هم بر حسب scale 100 حساب کنیم ، مثلا اگه وضوح صفحه نمایش 1440 در 900 است و Top و Left لیبل روی فرم 120 و280 است ما باید یه سری محاسبه انجام بدیم و عدد sclae صفحه نمایش رو در 100 برای QRLabel و Top و Left حساب کنیم که با اون عدد قبلی تفاوت خواهد داشت از چه راهی میشه اینچ مانیتور رو حساب کرد تا از روی اون بتونی به یه فرمول برسی و در هر رزولوشن که باشی Scale 100 رو برای محاسبه QRLabelهای روی Quick Report برای و Top و Left هاشون حساب کنی ؟؟؟؟
سلام
توضیح اون کد اینه :
تنها راه شما پرسیدن از کاربره .!
برا این کارایی که شما گفتین که نیاز به اینا ندارین .
اصلا صفحه نمایش هیچ تاثیری رو هیچ محاصبه ای نداره . شما باید بر اساس مقیاس فرمتون و مقیاس گزارشتون برنامه رو درست کنین . مثلا فرمتون مقیاسش پیکسل هست و گزارشتون مقیاسش سانتی متره ، شما باید اینارو به هم تبدیل کنید .
راه حل سادشم اینه که هر دوشون تو یه مقیاس باشن . مثلا هر دو پیکسل باشند .
موفق باشید .
واقعا ممنون از جوابتون ، خیلی خیلی جالبه
آخرین ویرایش به وسیله aliekhasteh : جمعه 20 اسفند 1389 در 15:47 عصر
بهترین راه برای بدست آوردن مشخصات سیستم :
برای مثال بدست آودرن مشخصات مانیتور:
MessageBox.Show("Monitor Size:" + SystemInformation.PrimaryMonitorSize);
سلام چطور میشه اندازه صفحه نمایش رو به اینچ از طریق HTML دریافت کرد؟
طول و عرض هم میشه به اینچ دریافت کرد؟ چند ماهه دنبالشم ولی جایی پید نکردم.
سلام. از طریق html یعنی چه؟
وقتی مشخصات مونیتور رو دریافت می کنید، یکی از اونها dpi یا دات پر اینچ است که مشخص می کنه در هر اینچ چند پیکسل وجود داره. با یک عملیات ساده می تونید اندازه واقعی رو هم بیرون بکشید.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی
double width = 0;
double height = 0;
double diagonal = 0;
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("\\root\\wmi", "SELECT * FROM WmiMonitorBasicDisplayParams");
foreach (ManagementObject mo in searcher.Get())
{
width = (byte)mo["MaxHorizontalImageSize"] / 2.54;
height = (byte)mo["MaxVerticalImageSize"] / 2.54;
diagonal = Math.Sqrt(width * width + height * height);
// Console.WriteLine("Width {0:F2}, Height {1:F2} and Diagonal {2:F2} inches", width, height, diagonal);
}
MessageBox.Show("width:" + width.ToString());
MessageBox.Show("height:" + height.ToString());
MessageBox.Show("diagonal:" + diagonal.ToString());
}
catch (ManagementException es)
{
MessageBox.Show("An error occurred while querying for WMI data: " + es.Message);
}
سلام یه سوال داشتم
من میخاستم اینچ مانیتور کامپیوترم رو بدست بیارم
اگه اندازه فاصله گوشه بالایی سمت چپ تا گوشه پایینی سمت راست رو با اینچ اندازه بگیرم ، عدد به دست آمده همون سایز مانیتور میشه؟
سلام. از نظر تئوری بله. ممکنه سازنده ها به اسم مثلا 30 اینچ 29 اینچ بدن و قاب رو هم حساب کنن، ممکن هم هست نکنن
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی