-
تبديل double به int
چطور ميتونم يه كنترلي كه متغير double قبول ميكنه بهش مقداري از نوع integer بديم؟
مثلا دستور mediaplayer.duration از نوع double هست . و من ميخام به trackbar.max كه از نوع integer هست ربطش بدم در كل اينطوري ميشه trackbar.max:=mediaplayer.duration
اما نميشه. چكار بايد كنم؟
-
سلام
خوب دوست عزيز مسلماً نميتوني يه مقدار اعشاري رو به صحيح بدي. ولي مي توني عددت رو روند كني (يعني قسمت صحيحش رو جدا كني). براي اين كار مي توني از تابع Round استفاده كني. اين تابع عددت رو به نزديك ترين عدد صحيح تبديل ميكنه. مثلاً 25.2 رو به 25 و 25.9 رو به 26 تبديل مي كنه. كه براي كار شما به نظر مياد بايد مقدار صحيح بيشتر از مقدار اعشاري باشه. پس شما در هر حال بايد 26 رو داشته باشي. مي توني از كد زير استفاده كني:
کد:
var
fl:double;
int:integer;
begin
fl:=51.95;
if (fl-Round(fl)>0) then
int:=Round(fl)+1
else
int:=Round(fl);
showmessage(inttostr(int));
end;
ولي راه ديگه اي هم هست كه بهتره. استفاده از تابع Trunc كه فقط مقدار صحيح رو جدا ميكنه. حالا چه 25.9 داشته باشي چه 25.2 ، او مياد و 25 بهت ميده. پس كد زير بهتره:
کد:
var
fl:double;
int:integer;
begin
fl:=51.2;
int:=trunc(fl)+1;
showmessage(inttostr(int));
end;
اينطوري يه شرط كمتر داري.
نميدونم تونستم كمكت كنم يا نه.
موفق باشي
-
كنترل مديا پلير
با سلام.
من از ocx مديا پلير تو برنامم استفاده ميكنم . اما كنترل trackbar رو نميتونم بدم به يه trackbar ديگه.
كسي نمونه پروژه اي چيزي داره؟
ممنون