ABA


"בעיה עם חישוב התקדמות בProgressBar"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10486 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10486
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   12:57   13.10.11   
אל הפורום  
  בעיה עם חישוב התקדמות בProgressBar  
 
   אני רוצה שהתוכנה שלי תראה את קצב ההתקדמות של העברת קובץ.

אז הנתונים שיש לי כרגע הם:
*גודל כל הקובץ, נגיד נקרא לזה X
*כמה נשאר להעביר,נגיד נקרא לזה Y


עכשיו, רציתי לחשב את האחוזים של ההתקדמות וכך בעצם לעדכן כל פעם את הערך של הProgressBar.

עשיתי זאת כך:

(x-y)/x * 100

בקוד זה נראה ככה:


int precents = (int)Math.Ceiling((double)((allFileSize - fileSizeLeft) / allFileSize));
progressBar1.Value = precents * progressBar1.Maximum;

משימה פשוטה אבל משום מה יש איזה משהו שאני מפספס...כי זה לא עובד. עזרה(?)


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אני לא רואה את ההכפלה שלך ב 100 בקוד.. Yariv-H 13.10.11 17:20 1
     זה שווה להכפלה במקסימום של הPROGRESSBAR ronen333  13.10.11 18:11 2
  רגע, לא הבנתי. אתה רוצה שבר ואתה מנסה לכפול בשלם ldan192  13.10.11 19:38 3
     צודק במליון אחוז ronen333  13.10.11 20:41 5
  תתקן את הקוד, לשורה הבאה: Net_Boy  13.10.11 20:07 4
     תודה לך! :) ronen333  13.10.11 20:41 6

       
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק, 2 נקודות
   17:20   13.10.11   
אל הפורום  
  1. אני לא רואה את ההכפלה שלך ב 100 בקוד..  
בתגובה להודעה מספר 0
 
  



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   18:11   13.10.11   
אל הפורום  
  2. זה שווה להכפלה במקסימום של הPROGRESSBAR  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   19:38   13.10.11   
אל הפורום  
  3. רגע, לא הבנתי. אתה רוצה שבר ואתה מנסה לכפול בשלם  
בתגובה להודעה מספר 0
 
הרי percent אמור להיות שבר, נכון (מתוך ה-Maximum)?
אז למה אתה ממיר ל-int? למה מבצע ceiling?


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   20:41   13.10.11   
אל הפורום  
  5. צודק במליון אחוז  
בתגובה להודעה מספר 3
 
   ערכתי לאחרונה בתאריך 13.10.11 בשעה 20:48 בברכה, ronen333
 
בהתחלה עשיתי הכל בשורה אחת בלי משתנים, ואז רציתי ליפות את זה עם משתנים ובטיפשותי ובאופן אוטומתי שמתי int. תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   20:07   13.10.11   
אל הפורום  
  4. תתקן את הקוד, לשורה הבאה:  
בתגובה להודעה מספר 0
 
   progressBar1.value = (allFileSize-fileSizeLeft) / (double)allFileSize * progressBar1.Maximum


הסברים:
- מספיק לעשות רק Cast לאחד מהמשתנים ל DOUBLE ואז הפעולה תתבצע עבור מספרים ממשיים.
- אין צורך לעשות Ceiling כי אוטומטית שממירים מספר עשרוני למספר שלם זה מעוגל כלפי מטה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   20:41   13.10.11   
אל הפורום  
  6. תודה לך! :)  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 13.10.11 בשעה 20:49 בברכה, ronen333
 
כעקרון השתמשתי בסילינג כי רציתי לעגל למעלה, אבל זה לא באמת משנה... תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net