Improved Console 4.0



  • Gibt nur ein kleines Problem mit meinem Hoster. Ich hoffe das regelt sich noch heute, habe dort eine Vertragsänderung durchgeführt.

    MfG SideWinder



  • Einstweilen findet ihr hier die Seite: http://web56.hermes.server-pool.de/pages/ic.c-plusplus.net/index.php

    MfG SideWinder



  • Außerdem hoffe ich, dass ich im Juli dann auch endlich mal Zeit finde für IC 5.0

    MfG SideWinder



  • Hi.
    Ich bin zwar nicht sicher, ob die Frage "wirklich" hier rein gehört, aber:

    ich raff einfach nicht, wie das mit dem Fullscreen-mode (oder doch One-Screen-Mode?) gemacht wird..
    Aus der Codevervollständigung von DEVC++ werde ich leider nicht schlauch,
    da hab ich nur "Varibale SETCONSOLEDISPLAYMODE SetConsoleDisplayMode" drin stehen.
    Würde halt gerne die Fenstergröße auf eine feste Größe einstellen..
    Aber wie genau das jetzt eingesetzt wird verstehe ich nicht...
    Hab auch schon sicher ne Halbe Stunde nach nem Beispielcode gesucht, der das bentutz, bin aber jedes mal wieder hier gelandet... *schnaub*



  • Und ich raff einfach nicht, wie ich di IC entpacken kann. Bei mir ist keine zip-datei vorhanden. *grins*



  • Ich habe eine kleine Wishlist für IC5.0:

    - Unicodesupport! Ich will das deutsche Umlaute und ggf. andere schön dargestellt werden.
    Hier steht wies geht:
    http://c-plusplus.net/forum/viewtopic-var-t-is-193737.html

    - Eigene getch-Methode. Nicht alle haben Borland 😃
    - Abkehr von C++ IO-Streams. Die sind nicht für Unicode ausgelegt.
    - schönerer code 😃



  • achja, mit schönerem code meinte ich sowas:
    Statt

    void Console::enableWndBufMode ()
    

    soll

    void console::enable_window_buffer_mode (void)
    

    oder statt

    SetConsoleDisplayMode(hConsoleOutput,CONSOLE_WINDOWED_MODE,&newScreenBufferDimensions);
    

    sollte

    SetConsoleDisplayMode (hConsoleOutput, CONSOLE_WINDOWED_MODE, &newScreenBufferDimensions);
    

    werden. In jeder normalen Sprache (z. B. Englisch, Deutsch usw.) wird auch hinter einem Komma ein Leerschritt gesetzt. Auch in Foren ist es besser für Zeilenumbrüche wenn der Code zu lang wird 😉

    Ist erheblich schöner im aussehen und leichter zu lesen, als so cryptischer kram. sind ja nicht mehr im Jahre 1988 😉

    Würde mir auch Rückgabewerte wünschen!



  • hallo, bräuchte mal eure hilfe. hab MVS C++ express, SDK installiert aber wenn ich jetzt einen einfachen code wie diesen hier:

    #include <iostream>
    #include "ic.hpp"
    using namespace std;
    using namespace ic::shorties;
    using namespace ic;
    
    int main()
    {
    	textcolor(FG_RED);
    	return 0;
    }
    

    kompilieren will kommen folgende Fehlermeldungen:

    1>ic.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShowWindow@8" in Funktion ""public: void __thiscall ic::Console::hide(void)" (?hide@Console@ic@@QAEXXZ)".

    1>ic.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetWindowRect@8" in Funktion ""public: int __thiscall ic::Console::getWndPosX(void)const " (?getWndPosX@Console@ic@@QBEHXZ)".

    1>ic.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetWindowPos@28" in Funktion ""public: void __thiscall ic::Console::setWndPos(int,int)" (?setWndPos@Console@ic@@QAEXHH@Z)".

    und daraus werd ich net schlau, ic.hpp & ic.cpp hab ich im projekt eingebunden.
    ich hoffe ihr könnt mir helfen



  • Benutz lieber ncurses. Das ist portabler und einfacher.
    www.gnu.org/software/ncurses



  • ncurses-Fan schrieb:

    Benutz lieber ncurses. Das ist portabler und einfacher.
    www.gnu.org/software/ncurses

    scheiss auf portabler! das hier ist das Forum "DOS und Win32-Konsole" was will man hier mit deinem Murks?



  • pdcurses!!! 😃



  • langeweile schrieb:

    pdcurses!!! 😃

    jo, noch mehr murks, wenn man sich den Quellcode allein schon ansieht, bekommt man einen Lachkrampf und kann eigentlich nur noch den Kopfschütteln...

    Absolut schlechter Code, schlecht Kommentiert, Buggy (Kein wunder bei Frickelcode und globalen Variablen) und man soll für seine Konsolenanwendung noch was extra dazulinken von Dritten und ggf. eine DLL von Dritten mitliefern?

    Erbärmlich...



  • Allein schon bei sowas, bekommt ein richtiger Programmierer ja schon Alpträume:

    static int _get_font(void)
    {
    	int retval;
    
    	retval = getdosmemword(0x485);
    
    	/* Assume the MDS Genius is in 66 line mode. */
    
    	if ((retval == 0) && (pdc_adapter == _MDS_GENIUS))
    		retval = _FONT15;
    
    	switch (pdc_adapter)
    	{
    	case _MDA:
    		retval = 10;	/* POINTS is not certain on MDA/Hercules */
    		break;
    
    	case _EGACOLOR:
    	case _EGAMONO:
    

    Nicht mal an die Namenskonventionen für Compiler-Hersteller wurde gedacht - im gegenteil! Sie wird mit Füßen regelrecht getreten! Nicht mal Coding-Conventions scheinen für sowas bei diesem Frickel-Code zu existieren. Wie kann man nur so unklug sein und so einen Murks beführworten, "langeweile" und "ncurses-Fan"?

    Das solche Software überhaupt im Umlauf ist, ist mehr als nur grob fahrlässig... 👎



  • hi, ich habe ic jetzt in mein bcb 6 integriert, nur wo stehen die verfügbaren befehle für ic?

    kk. habs raus, man muss mit con.

    danke ^^ ( konntes aus den beiträgen ableiten )



  • hi,
    finde die IC ganz cool, kann sie vielseitig anwenden und hab sie um viele eigene funktionen erweitert, aber hab noch 2 fragen.

    In der MoverDemo seht ja am Ende folgendes:
    // Wie geht es weiter?
    // Man lernt sehr leicht, wenn man sich mit der Improved Console etwas
    // beschäftigt! Ganz einfach ein neues Projekt anlegen, die Improved Console
    // einbinden und loslegen. Gebt "con." in die main()-Funktion ein und schon
    // erhaltet ihr eine Liste von Methoden die ihr benützen könnt. Eine Liste
    // aller Shorties erhält ihr mit Eingabe von "ic::shorties::"
    //
    // Viel Spaß!
    Wie ist ds gemeint? wenn ich con. oder ic::shorties:: eingebe, kommt garnichts, so als ob da kein Befehl stehen würde.
    Ist aber nicht so wichtig weil ich mir das meiste vom code erschließen kann, nur bei ein paar wenigen funktionen weiß ich nicht was ich damit anfangen kann.

    Und wie macht man das weg, dass man nicht scrollen kann?
    Also diesem One-Screen-Mode, der ist komischerweise von anfang an einstestellt.

    mfg :xmas1:



  • In visual studio geht das nur 😃



  • k thx...
    falls es jemanden interessiert hier 2 funktionen von mir, die ihr einfügen könnt.

    void Console::grafladen(int x)
        {
             setCurPos(10, 24);
             con.setTextColor(FG_GREEN); // Neue Textfarbe setzen
             con.setBgColor(BG_RED); // Neue Hintergrundfarbe setzen
             cout << "                                                            ";
             //eine sekunde = 17
             int s;
             s = x * 17;
             setCurPos(10, 24);
             for (int i=0; i<=59; i++)
             {
                 cout << char(219);
                 Sleep(s);
    
             }
    
        }
    }
    

    int x = 1 wär dann für eine sekunde

    void Console::laden(int x)
        {
             con.setCurPos (70, 23);
             cout << "loading";
             for(int i =1; i<=x; i++)
             {
                con.setCurPos (77, 23);
                cout << ".  ";
                Sleep(333);
                con.setCurPos (78, 23);
                cout << ".";
                Sleep(333);
                con.setCurPos (79, 23);
                cout << ".";
                Sleep(333);
    
             }
    
        }
    

    das selbe gilt hierbei
    hab nochenpaar aber die sind unnütz 😃
    :xmas1:



  • die sind doch auch unnützlich, weil sie nur auf Improved C. funktionen zugreifen 🙄



  • öhmmm joa is doch net schlimm oder?



  • nein, aber man kann doch ja auch so die hintergrundfarbe setzen. für die funktion laden könntest du dir was besseres einfallen lassen, zbsp. nen zweiten Parameter, der zbsp etwas berechnet oder was spezielles ausgibt.


Anmelden zum Antworten