C++ und Frames



  • Hio 😃
    Ich habe folgendes Problem(jetzt ehr planerisch als Quellcode technisch, wenns das falsche Forum ist-->kickt mich ins richtige :))
    Ein User soll bei meinem Programm verschiedene Dinge eingeben, wie z.B:
    -Name
    -Datum
    -Zeit
    -Ja/Nein

    Nun dachte ich mir, dass man das Ganze ganz gut mit Frames machen könnte (ist auf Konsole) indem ich einfach ein Feld für den Namen habe und für die anderen drei Felder ein Art Scrollbar, sprich wen der User die Pfeiltasten drück erhöt sich der Wert um 1 etc.
    (Beispiel: "Zeit: 19:00" -> Nach Pfeiltaste "Oben" "Zeit: 19:01"
    Das ist für den User einfacher mit dem Eingeben und für mich besser, da ich immer in einem Schmema drin bin.
    Kenn nun jemand ein Tutorial zu Frames (hab keines bei google gefunden...) bzw. ist das mit Frames überhaupt gut realisierbar oder gibt es da einfachere Wege? (außer ein richtiges Fenster etc. zu programmieren, sollte schon auf Konsolen ebene bleiben)

    Danke



  • Standard-C++ kennt keine "Frames" und ich verstehe auch nicht richtig, was du dir unter "Frames" vorstellst. Ich bin mir aber sicher, dass du dafür auf spezielle Bibliotheken zurückgreifen musst, die solch eine Funktion anbieten.



  • Hi,

    Generell sollte man sich als C++ Programmierer eine andere Denkweise als z.B. ein HTML'ler aneignen. Du wirst nie irgendwelche Themen zu "Frames in der Konsole" finden.

    Ich habe deine Frage noch nicht ganz verstanden, meinst du, der User kann mit den Pfeiltasten z.B. die Uhrzeit verstellen (19.01, 19.02 ...) oder meinst du etwas ähnliches wie eine Auswahlliste, in der man mit den Pfeiltasten auf und ab scrollen kann ? Im Prinzip ist beides relativ einfach zu lösen, wobei letzteres natürlich etwas komplizierter wird. Als Scrollbalken würden sich simple ASCII Zeichen eignen. Zum Einlesen der Pfeiltasten ist getchar () zuständig, und die restliche Programmlogik muss man dann selber austüfteln ... So etwas ähnliches habe ich bei meinem Terminmanager gemacht, dort kann man auch mit den Pfeiltasten bestimmte Einträge selektieren. Wenn du mir eine etwas genauere Problembeschreibung geben könntest, werde ich dir besser helfen können.

    BTW: Da es sich u.A. nicht um Standard C++ handelt, gehört sich das hier ins Konsolenforum verschoben 😉

    MfG mikey.



  • Also unter Frames verstehe ich sowas wie es die unter Pascal gab.
    Da konnte mann, ähnlich wie in HTML, bestimmte Bereiche des Konsolenfensters aufteilen bzw. Fablich anders gestalten etc.
    Damals, zu DOS zeiten wurde viele Verwaltungsprogramme so geschreiben bzw. sin dheute noch so.
    Das Ganze ist eigentlich wie heutigen Fenster zu sehen:
    Man hat bestimmte Felder, die bestimmten Variaben zugeordnet sind, so kann der User mehrere Felder nacheinander ausfüllen(bzw. durchtappen und vielleicht was ändern...), hat aber immer alle Eingaben im Blick.
    Das ist halt einfacher,schöner und übersichtlicher, als alles nacheinander mit dem üblichen "Brauche A" A; "Brauche B" B; "Brauche C" C - verfahren einzugeben.

    Was ich persönlich jetzt brauche ist so:
    Der User muss in einem Dialog übersichtlich verschiedene Werte eingeben, dass geht von frei wählbaren Sachen wie z.B. Name bis hin zu Dingen, die in einem festen Format sein müssen wie z.B. das Datum. Das Ganze nacheinander in der Konsole abzufragen fand ich ein wenig zu doof.

    Ihr könnt euch das wie so ne Art Terminplaner vorstellen (hast du ja Ehfahrung mit mikey)



  • Achso, du willst also Semigrafik in der Konsole, sowas wie EDIT. Leider ist das nicht so einfach wie in PASCAL, denn Standard C++ beherrscht keine vergleichbaren Sachen. Früher wurden nützliche Funktionen dazu bei der conio.h mitgelierfert, doch mittlerweile sind die meisten nützlichen Funktionen daraus verschwunden ... Entweder man macht das alles mit der Hand, oder man benutzt extra dafür vorgesehene Bibliotheken, leider weis ich im Moment auch keine ... Aber google hilft ja weiter. Alternativ dazu gibts auch ein paar nette WinAPI Befehle, siehe diesen Link:

    http://msdn2.microsoft.com/en-us/library/ms686971.aspx

    Zur Ausgabe von Scrollbalken etc. kannst du wiegesagt normale ASCII Zeichen hernehmen, für weitere Hilfe bsuche einfach meine Homepage, und lade dir den "ASCII - Table" runter 😉

    Bei komplexeren Sachen wie eben ganze Menüs usw. ist es wirklich sinnvoller wenn du eine entsprechende Library nimmst, evtl. taugt sogar Allegro etwas, keine Ahnung ob das auch für die Konsole vorgesehen ist.

    Achja, und das "ASCII Tabelle" ist unter "Projekte" zu finden.

    MfG mikey.



  • Hmm...
    Ich bin gerade am Überlegen, wenn das nicht sogar dann für die 5Eingaben zu viel Arbeit ist, ich weiss nicht. Ich denke ich bau das erstmal in nem Dialog und setze mich dann seperat mit dem Thema auseinander...
    Aber woher hast du die Infos für die Farbe etc. bei dem Terminmanager? ICh find da kaum was brauchbares



  • Pille456 schrieb:

    (außer ein richtiges Fenster etc. zu programmieren, sollte schon auf Konsolen ebene bleiben)
    Danke

    Warum eigendliche? Die Zeit als Dos-basierte Programme state of the art waren ist vor gut 15 Jahren abgelaufen... Selbst Handies benutzen windows-basierte Betriebssysteme...



  • Hab vorher viel mit Delphi geproggt, also das wäre eigentlich weniger das Problem, müsste mich nur ein wenig in Fenster programmieren {ohne Visual C++ } einarbeiten.
    Aber ich finde für das Programm reicht Konsole vollkommen aus und bin wirklich ein wenig zu faul im moment mich in die Fensterprogrammieren mit C++ einzuarbeiten. Das mach ich wenn ich das Programm fertig hab



  • Ich habe mir die meisten Infos aus der Improved Console, einigen Tutorials, und der MSDN geholt ... Den Sourcecode zur Improved Console findest du im Konsolenforum. Zur Zeit bin ich eh dabei, meinen Terminmanager neu zu programmieren, bald werde ich das erste Release veröffentlichen. Evtl. werden dir dann die dort enthaltenen Methoden weiterhelfen !

    MfG mikey.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten