Prozentzahl



  • 🙂 wollte nur die situation etwas auflockern 😉
    aber ich verstehe auch die ernsten punkte deines postings :p

    also, da gibts eine schleife.
    deren vorschritt gebe ich schon in form einer progressbar aus.
    doch würde ich auch noch gerne die prozentzahl des vortschritts ausgeben.

    wie mache ich das?



  • Hmmmm Prozentrechnungen... wie war das noch gleich? Prozent = per cent = pro 100 ... also muss ich irgendwie die Menge m und bearbeitete Menge b so miteinander verrechnen, dass ich am Schluss eine Zahl zwischen 1 und 100 habe...

    Ob ich da wohl mit einem 3-Satz zu Rande käme?

    -junix



  • ok ok ok, so gehts auch.
    dachte da gäbe es vielleicht auch etwas im builder selber.
    hätte ja sein können 🙂

    besten dank,
    Bj



  • oder du verwendest statt TProgressBar CGauge (aus Gruppe Beispiele). Da steht der Prozentwert schon drin. Ich weis jetzt aber nicht ob deise Komponente bei allen Builder-Versionen dabei ist.

    Ciao



  • naja gut, wenn du schon nicht weißt, ob diese kompo bei allen versionen dabei ist, dann wird sie wohl kaum bei meiner dabei sein.
    die wunderbare museeums-version 😞



  • Bj schrieb:

    dachte da gäbe es vielleicht auch etwas im builder selber.

    Der Builder ist kein Compile-O-Mat, da musst du schon noch selber etwas Arbeit reinstecken (o;

    -junix



  • Braunstein schrieb:

    oder du verwendest statt TProgressBar CGauge (aus Gruppe Beispiele)...

    Ohh... nein, lieber nicht! 🙂

    @Bj
    damit du ein paar fragen sparst:
    ProgressBar->Min ==> CGauge->MinValue,
    ProgressBar->Max ==> CGauge->MaxValue,
    ProgressBar->Position ==> CGauge->Progress,...

    🙂



  • ich weiß, anfänger sidn nervig 😉

    CGauge, aha, wie ich dein posting verstehe, wäre ProgressBar->Min gleich CGauge->MinValue.
    usw...

    * in HILFE nachschau *
    * nix gefunden * 😮

    aber wo bekomme ich denn CGauge her? 🙂
    und was ist das überhaupt?



  • In der Hilfe steht dazu auch nix. Das ist eine Beispielkomponente die oben in der Komponentenpalette unter Beispiele zu finden ist. Zumindest bei Builder 4 und 5 (ich hatte zwar auch mal 1 und 3 kann mich aber nicht mehr erinnern ob es sowas da schon gab).



  • *vergeblich such nach bepielen*

    in der komponentenliste gibt es bei mir keinen punkt "beispiele"

    mhhh, aber ich versuchte es anders.

    Form1 -> lb_prozent -> Caption = String (anzahl_eintraege / azaehler *100);
    // anzahl_eintraege = gesamt
    // azaehler = ändert sich immer
    

    denke mal die rechnung ist korreckt.
    aber während des durchlaufs zeigt er auf dem label natürlich nix an.
    schafft das programm das nicht?
    nur zum schluss steht da:
    100 prozent.
    naja aber diese codezeile steht in der schleife selber drin.
    ändert sich wohl immer so schnell das man nix mehr erkennen kann, gell?
    was soll ich denn jetzt tun?

    thx
    Bj



  • suchen: Stichwort: 'ProcessMessages'



  • Bj schrieb:

    denke mal die rechnung ist korreckt.

    Sicher? Mir war da noch was bezüglich Punkt vor Strich regeln und so...

    Ahja:
    http://c-plusplus.net/forum/viewtopic.php?t=9815

    -junix



  • punkt vor strich?
    da gibt es nur divison und multiplikation.
    ich sehe nicht wo dann in dieser rechnung da problem sein soll 🙂

    danke für den link 🙂



  • WARUM KLAPPT DAS DENN NOCH NICHT?

    int prozent = (azaehler/anzahl_eintraege)*100;
    // azaehler: 1......max
    // anzahl_einträge: max
    Application->ProcessMessages();
    Form1 -> lb_prozent -> Caption = String(prozent);
    

    was ist denn daran falsch? 😡
    es läuft auch, aber er zeigt die ganzen 20 sekunden die die schleife durchläuft immer 0 an, und zum schluss 100.

    da ist doch kein fehler drin!???!?!??!

    Bj 😡



  • Oh, Man!

    int prozent = (azaehler/anzahl_eintraege)*100; 
    // azaehler: 1......max 
    // anzahl_einträge: max 
    Form1->lb_prozent->Caption = String(prozent);
    Application->ProcessMessages();
    


  • so geht es leider auch nicht! 😡
    du hast ja
    Application->ProcessMessages();
    nur dahinter geschrieben!

    aber so zeigt er während der lauzeit auch nur 0 an, und wenn die schleide durchlaufen ist, 100.

    was stimmt denn da noch nicht?

    thx
    Bj



  • zeige doch mal dein code



  • Vermutlich ergibt diese Teilrechnung: (azaehler/anzahl_eintraege) eine Zahl < 1. (logisch) da du aber nur mit Integerzahlen rechnest und diese keine Kommastellen haben, werden diese abgeschnitten und durch 0.x wird 0. 0 x 100 = 0. Soviel zur Mathematik.

    Was du nun tun kannst ist, den einen faktor (azaehler) VOR dem Teilen mit 100 zu multiplizieren und anschliessend erst durch anzahl_eintraege zu dividieren... dann dürfte das Ergebnis wohl den gewünschten effekt zeigen.

    -junix



  • int prozent = ((azaehler/anzahl_eintraege)*100);
    Form1 -> lb_prozent -> Caption = String(prozent);
    Application->ProcessMessages();
    

    Wobei ich zur laufzeit auch die variablen überprüft habe, welche aber stimmen.
    azaehler: zählt immer weiter hoch.
    anzahl_einträge: dort steht immer 3376 drin.

    dort müsste doch alles stimmen?
    trotzdem errechnet er immer 0.

    thx
    Bj



  • zusammen mit der schleife


Anmelden zum Antworten