Wie wird bei der GUI Programmierung die main() Funktion ersetzt? Wichtig!!!



  • Tut mir leid, nur leider sind solche Reaktionen sinnlos und helfen keinem.

    Sorry



  • riennevaplus schrieb:

    Tut mir leid, nur leider sind solche Reaktionen sinnlos und helfen keinem.

    Genau so wie deine Reaktion ala "Amen". Ende der Diskussion. Wenn du trotzdem noch den Bedarf weiterer Diskussionen verspüren solltest, eröffne einen THread im OT-Forum oder pack deine Argumente in ein EMail

    -junix



  • @ Jansen

    Habe mich jetzt schon länger damit beschäftigt, trotzdem ist mir nicht klar wie ich das bestehende Konsolenprogramm in eine GUI Anwendung überführen kann.

    Hab mich auch schon tot gegoogled und nichts, aber auch gar nichts, gefunden...

    Bin am verzweifeln.



  • Also wenn ich mir dein Code so angucken müssen z.b Sachen wie

    cout <<
    cin >>
    

    usw weg! Das ist Konsole und hat nichts mit GUI zu tun. main() wird wie gesagt WinMain() usw...



  • Im Prinzip musst du die Programmlogik nochmals nachbauen... einfach überführen kannste ned... Wenn das Programm allerdings halbwegs nach den Regeln der Kunst geschrieben wurde, kannst du die meisten Libraries und Funktionen einfach übernehmen. Der Nachbau der Programmlogik dürfte dann das kleinste Problem sein...
    Da - wie du schon selber erkannt hast - GUIs Event driven sind und nicht wie Konsolenanwendungen ablaufgesteuert sind, lässt sich die Applikation nicht ohne einen gewissen Aufwand umbauen...

    -junix



  • Hi,
    wenn du gerne mal mit GUI programmierung anfagen willst(ich denke mal, dass du windows benutzt) dann schau dir doch mal http://www.winprog.net/tutorial/ an. Mit der VCL von Borland geht es zwar leichter, aber du hast, wenn du nur die VCL benutzt, kein wirkliches verständniss, wie Windows funktioniert. Desshalb schau dir doch mal dir Windows API an.



  • Am liebsten würde ich mein Konsolenprogramm hier mal posten...

    Also ich erkenne schonmal das die komplette Ein und Ausgabe ersetzt werden muss..aber das Problem ist das ich in meinen Programm 2 Klassen habe

    " Zentrale " und " Filiale "

    In meiner Konsolen main() Funktion habe ich zunächst eine Zentrale erzeugt

    Zentrale eineZenttrale(1.07,300)

    dann habe ich über eine Methode "baueFiliale()" Filialen erzeugt und mittels this Zeiger eine Assoziation zur Zentrale erzeugt

    Was folgte sind einige polymorphe Methoden zur Auswertung und Geschäftvorfälle mittels rand() Funktionen, die beispielsweise die Attribute Umsatz, Tankinhalt der einzelnen Filialen ändern.

    Die Filialen habe ich in einen STL - Vektor gespeichert der auch innerhalb der Zentrale gespeichert wurde und mit .pushback() die filialobjekte gleich nach erzeugen in den Vektor gespeichert und ausschließlich über for() schleifen auf alle Objekte im Vektor zugegriffen.

    Wie ihr seht ist das Beispiel ziemlich komplex und ich weiß nicht wie ich in der GUI die ObjektInstanzen und den Vektor und die Assoziationen implememntieren soll...

    HILFE!!! 😮



  • riennevaplus schrieb:

    In meiner Konsolen main() Funktion habe ich zunächst eine Zentrale erzeugt

    Na das machst du jetzt eben im Konstruktor der Form oder in OnCreate, aber auf jeden Fall mit new()!
    Die Funktionen deiner Klassen haben ja so weit ich das sehen aknn nichts mit Ausgabe zu tun. Wenn da nur gerechnet oder so wird, kannst du das einfach übernehmen.

    riennevaplus schrieb:

    HILFE!!! 😮

    hatten wir das nicht schon mal?



  • Versuche das doch mal.

    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {   
      Zentrale eine_zentrale(1.07,300); 
    
      eine_zentrale.baueFiliale("Europaplatz 5 - 1194 Hamburg",500,0,0); 
      eine_zentrale.baueFiliale("Brunnen Str 1 - 4252 Berlin",500,0,0); 
      eine_zentrale.baueFiliale("Hauptstrasse 3 - 4557 Mein",500,0,0); 
    
      eine_zentrale.setzeLiterpreis(1.08); 
    
      do 
      { 
        eine_zentrale.kundenTanken(); 
      } 
      while(MessageBox(0, "Sollen die Tankstellen geschlossen werden?", "Frage", MB_YESNO) == IDYES ); 
    
      eine_zentrale.auswerten(); 
    
      return 0; 
    
    }
    

    Mit der Windows Funktion
    MessageBox( 0, "Nachricht", "Nachricht", MB_OK )
    kannst du auch einfache meldungen ausgeben.

    Das wird wohl das leichteste sein.

    Vergiss #include <windows.h> nicht!



  • hmm das ist glaube ich keine gute idee, da der nutzer über das gui ja die filialen selber erstellen soll...

    andere ideen?



  • *hochschieb* :p

    hat keiner einen ansatz instanzen eigener klassen in einer gui dynamisch zu erzeugen und in stl vektoren zu speichern???? 😡



  • Lies den Thread nochmals von oben durch...

    -junix



  • vielen dank 😞



  • rien schrieb:

    vielen dank 😞

    ja was? Es wurden zu Beginn Ansätze geliefert...

    -junix



  • so leute, da von eurer seite ja kaum bzw. relativ unbrauchbare hilfe kam, hab ich den gestrigen tag investiert und es nun doch hinbekommen.

    wollt ich nur mal kund tun 😋



  • riennevaplus schrieb:

    kaum bzw. relativ unbrauchbare hilfe

    Hattest du erwartet, dass dir hier jemand dein Programm fertig konvertiert?



  • nein, sicher nicht. ist ja okay 😉



  • riennevaplus schrieb:

    so leute, da von eurer seite ja kaum bzw. relativ unbrauchbare hilfe kam, hab ich den gestrigen tag investiert und es nun doch hinbekommen.

    ...Wieso nicht einfach gleich selber mal in die Hände spucken sondern erst 2 Tage lang Resourcen verschwenden?

    -junix



  • Da ist mir mein Gehirn aber wichtiger als 2 seiten im Forum 😉



  • riennevaplus schrieb:

    Da ist mir mein Gehirn aber wichtiger als 2 seiten im Forum 😉

    Eben. Deswegen solltest du ihn ja auch benutzen. Denn nur so bleibt er auch intakt und dir erhalten 😉
    Heißt es nicht so in Biologie (Evolution):
    Was nicht verwendet wird, stirbt aus?!
    Oder so.. 🙂

    xy


Anmelden zum Antworten