1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Professionelle MS-DOS Anwendungen erstellen

Discussion in 'Programmieren' started by schwarzm, Mar 29, 2005.

Thread Status:
Not open for further replies.
  1. schwarzm

    schwarzm Viertel Gigabyte

    Program Test2;
    uses crt;

    procedure Init;
    begin
    TextMode(Co80);
    Window(1, 1, 80, 2);
    TextColor(black);
    TextBackGround(green);
    clrscr;
    Write('Beispielanwendung schwarzm&michi0815');
    Window(1, 3, 80, 24);
    TextColor(White);
    TextBackGround(Blue);
    clrscr;
    Writeln(' Nummer ³ Name ³ Adresse ');
    writeln(' ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ');
    writeln(' 4711 ³ blablabla ');
    writeln(' 4711 ³ blablabla ');
    Window(1, 25, 80, 25);
    TextColor(LightGray);
    TextBackGround(Red);
    clrscr;
    write('->³ ENTER = Beenden ³ F3-Lfs');
    Window(50, 3, 75, 24);
    TextColor(White);
    TextBackGround(Magenta);
    clrscr;
    Writeln;
    Writeln(' A..Kundendaten');
    writeln(' B..Transaktionen');
    end;

    Procedure Kundendaten;
    begin
    Window(5, 5, 75, 20);
    TextColor(Green);
    TextBackGround(Black);
    clrscr;
    Writeln;
    Writeln(' Kundendaten');
    writeln(' Text, BlaBlaBla');
    end;

    Procedure Hilfe;
    begin
    Window(10, 10, 70, 15);
    TextColor(Blue);
    TextBackGround(Yellow);
    clrscr;
    Writeln;
    Writeln(' Text');
    writeln(' Noch mehr Text');
    end;

    var c: word;
    begin
    Init;

    repeat
    c:=ord(readkey); // Zeichen einlesen
    if c = 0 then // "Spezialtaste" gedrückt
    c:=ord(readkey) + 256;

    case c of
    13: begin end; // Programmende; nichts passiert hier
    315: begin // F1-Taste (59 + 256)
    Hilfe;
    { Irgendwas }
    end;
    65, 97: begin // grosses A und kleines a
    Kundendaten;
    end;
    { weitere Tastencodes }
    else begin
    Init; // Stellt den Ausgangszustand wieder her
    Window(1, 1, 80, 25);
    gotoxy(77, 25);
    TextColor(Black);
    TextBackGround(Red);
    write(c);
    end;
    end;
    until c = 13;
    end.
    macht das wenn ich 'a' drücke (TectColor geht nicht wirklich im gnome-terminal):

    Hier werden mir drei Fehler angezeigt!
    Wo liegen die denn jetzt?
    Gruß
     
  2. Michi0815

    Michi0815 Guest

    sorry, ich seh' deinen monitor momentan ganz schlecht und die kristallkugel ist auch so unscharf :rolleyes:

    zeile/spalte des fehlers wär' hilfreich, die message wär' einfach eine wucht :D
     
  3. schwarzm

    schwarzm Viertel Gigabyte

    habs selber hingekriegt, aber jetzt plagt mich nochwas:

    Gibt es eine Möglichkeit das Datum und die Uhrzeit anzuzeigen. Das Datum und auch die Ihrzeit sollen immer aktuell sein.

    Gruß
    schwarzm
     
  4. Michi0815

    Michi0815 Guest

    klar geht das auch, macht da proggy nichteinmal sonderlich komplizierter...

    ich poste nur die neuen oder veränderten teile;

    Code:
    Program Test2;
    uses crt, dos;
    
    { <--Rest des Codes --> }
    
    Procedure Uhr;
    const WeekDay: array[0..6] of string = ('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
          Monat:   array[1..12] of string = ('Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun',
                                             'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez');
    var std, min, sec, hsec, yr, mon, day, wday: word;
        s1, s2: string;
    begin
         GetTime(std, min, sec, hsec);
         GetDate(yr, mon, day, wday);
         str(day:2, s1);
         str(yr:4, s2);
         s1:=Weekday[wday] + ', ' + s1 + '. ' + Monat[mon] + ' ' + s2; // 16 Zeichen
         str(std:2, s2);
         s1:=s1 + '; ' + s2 + ':'; // 21 Zeichen
         str(min:2, s2);
         s1:=s1 + s2 + ':';        // 24 Zeichen
         str(sec:2, s2);
         s1:=s1 + s2;              // 26 Zeichen
         window(1, 1, 80, 24);
         TextColor(black);
         TextBackGround(green);
         gotoxy(54, 1);
         write(s1);
    end;  
    
    var c: word;
    begin                           // Beginn *main*
         Init;
         Uhr;
         
         repeat
              c:=65535;             // Code für "nichts interessantes geschehen"
              
              if keypressed then    // Taste gedrückt?
              begin
                   c:=ord(readkey); // Zeichen einlesen
                   if c = 0 then    // "Spezialtaste" gedrückt
                        c:=ord(readkey) + 256;
              end;
              
              case c of 
                 13:  begin end;    // Programmende; nichts passiert hier
                 315: begin         // F1-Taste (59 + 256)
                           Hilfe;
                           { Irgendwas }
                      end;
                 65, 97: begin      // grosses A und kleines a
                           Kundendaten;
                      end;
                 { weitere Tastencodes }
                 65535:    Uhr;     // nur Uhr anktualisieren und das war`s
                 else begin
                           Init;    // Stellt den Ausgangszustand wieder her
                           Window(1, 1, 80, 25);
                           gotoxy(77, 25);
                           TextColor(Black);
                           TextBackGround(Red);
                           write(c);
                      end;           
              end;
              delay(100);           // 1/10 Sekunde warten.
         until c = 13;
    end.   
     
  5. schwarzm

    schwarzm Viertel Gigabyte

    Vielen Dank für deine Antwort!

    Das finde ich aber schon . . .

    Gruß
    schwarzm
     
  6. Michi0815

    Michi0815 Guest

    :huh: warum so sarkastisch?
     

    Attached Files:

  7. schwarzm

    schwarzm Viertel Gigabyte

    Bei mir kommt da was komisches raus, beim compilieren.

    Sollte das was mit der Uhr zu tun haben?
     
  8. Michi0815

    Michi0815 Guest

    lass mich nicht dumm sterben! WAS kommd da komisches raus?

    beschreibung oder gar ein bild?
     
  9. schwarzm

    schwarzm Viertel Gigabyte

  10. Michi0815

    Michi0815 Guest

    seltsam, hat sicher mit dem eigenen fenster für zeit/dateum zu tun. probiere in der procedure uhr mal folgendes
    Fenster(54, 1, 27, 1, black, green, 0, 0);

    oder wirf das fenster ganz raus und mach
    window(1, 1, 80, 24);
    gotoxy(54, 1);
    write(s1);
     
  11. Michi0815

    Michi0815 Guest

  12. schwarzm

    schwarzm Viertel Gigabyte



    Das ist das komplette Ende des Proggis. Hau das mal in deinen Compiler ein.
    Aber die 0 bei delay, kann man da noch in den Minusbereich gehen?

    Gruß
     
  13. Michi0815

    Michi0815 Guest

    ja und?
    was soll delay(0) bringen? lass es weg, wenn dir die reaktionszeit zu lang erscheint (:D)
    negative werte gehen wegen kausalität und so nicht wirklich ;)
     
  14. schwarzm

    schwarzm Viertel Gigabyte

    Ja das ist es! Hört sich komisch an is aber so!
    Ich lass es jetzt mal weg!
     
  15. Michi0815

    Michi0815 Guest

    3x der selbe sourcecode, 3x verschiedenes aussehen:

    links oben: natives linuxprogramm
    rechts unten: natives windows-programm
    rechts oben: windows-programm mit wine auf linux
    http://img83.echo.cx/img83/3826/test2all0bq.png

    da kommt man ins grübeln ;)
     
  16. Michi0815

    Michi0815 Guest

    @grafen
    :spitze: toller trick

    @mm
    nein... was meinst du denn?
     
  17. Michi0815

    Michi0815 Guest

    ich weiss; aber unter windows stimmt die codepage doch offensichtlich...
     
Thread Status:
Not open for further replies.

Share This Page