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



  • 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



  • riennevaplus schrieb:

    [...] da von eurer seite ja kaum bzw. relativ unbrauchbare hilfe kam [...] Da ist mir mein Gehirn aber wichtiger als 2 seiten im Forum 😉

    Ich bin mir sicher, dass du bei so einer Einstellung in Zukunft hier auf besonders viel Hilfe hoffen kannst ...
    Das sind nicht einfach nur "2 seiten im Forum" sondern auch ein paar Leute, die ihre Zeit dafür aufbringen, sich über deine Probleme Gedanken zu machen.


Anmelden zum Antworten