Funktionsbibliothek für Commandline-Programme (CMD) gesucht

Anfängerfragen zum Programmieren mit PureBasic.
Kaltstart
Beiträge: 17
Registriert: 27.07.2008 12:43

Funktionsbibliothek für Commandline-Programme (CMD) gesucht

Beitrag von Kaltstart »

Um meine Command-Line-Programme etwas 'aufzupäppeln' möchte ich zukünftig gerne mit der Grafischen Console arbeiten. (EnableGraphicalConsole(1))

Früher gab es da für DOS-Programme Funktionsbibliotheken mit denen man z.B: Fenster 'zeichnen' konnte:

#inclucde( 'Funktionsbibliothek_Rahmen.inc' )

Code: Alles auswählen

ZeichneFläche( Zeile, Spalte, Breite, Länge, Farbe, Schatten)
oder

Code: Alles auswählen

ZeichneHintergrund( Zeile, Spalte, Breite, Länge, Farbe)

und dann hatte man eine 'Schattenrahmen' oder ein Menü in welchen man via ConsoleLocate (24,12) und PrintN() Text plazieren kann.

Kennt jemand eine Funktionsbibliothek im Quelltext in der solche grafischen Spielereien (mit ASCII-Zeichen) bereits umgesetzt sind? (Gerne auch andere Sprachdialekte, da es im Grunde nur wieder um den Aufbau der 'Schleifen' und Steuercodes geht.)

Gruss
Kaltstart
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Und was Spricht dagegen richtige Windows zu verwenden^^?
(\/) (°,,,°) (\/)
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Er will Command-Line-Programme schreiben. Wenn einer wissen will, wo er Briefumschläge kaufen kann, fragst Du dann auch "was spricht dagegen, das Telefon zu verwenden?" :roll:

@ Kaltstart: es gibt eine Library namens "curses", ich wüßte zwar nicht daß davon eine PB-Anbindung existiert, aber vielleicht läßt sich das ja leicht wrappen (kenne mich mit dem Wrappen nicht so aus, aber hier gibt's einige im Forum, die das können).
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

solche Layout-Funktionen für die Grafische Konsole lassen sich recht einfach selber realisieren.

Rahmen und Flächen sind da wirklich easy.

etwas schwieriger wird ein Schatten, der vorherigen Text durchscheinen läßt,
der muss vorhandene Information nehmen und nur die Farbe verändern.

und es gab auch Bibliotheken, die richtige fenster auf Textmode emuliert haben,
da wird das ganze noch anspruchsvoller.

die von dir benannten Funktionen sind wohl stufe1 maximal stufe2.
bei einem Fensterhändling wäre eigenständiges drüberzeichnen von Flächen und Hintergründen nicht mehr zulässig.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Kaltstart
Beiträge: 17
Registriert: 27.07.2008 12:43

Beitrag von Kaltstart »

@ZeHa:
Ganz genau. Bin halt einfach ein alter 'Konsolensack'.
Brauche kein Grafik-Klimbim wenn eine Aufgabe schnell über die Kommandozeile gehen kann. Und gerade da sehe ich in PureBasic eine große Stärke.
(Ich liebe z.B. Horst Schaeffer's DELAGE32: http://home.mnet-online.de/horst.muc/wbat32d.htm)

Werd mal nach 'curses' googeln...
Danke.

@Kaeru Gaman:
Kaeru Gaman hat geschrieben: etwas schwieriger wird ein Schatten, der vorherigen Text durchscheinen läßt,
der muss vorhandene Information nehmen und nur die Farbe verändern.
Die Schatten werden einfach duch Vordergrundfarbe auf 'schwarzer Balken' realisiert. Also keine wirklichen Schatten sondern nur Pseudo.
Wir reden von 'einfachen' ASCII-Boxen

Wir reden auch nicht von wirklichem Fensternhandling sondern von 'Malen auf Bildschirm'. Vielleicht kennst Du noch die 'alten' Ghost-(Imager)-Versionen vor Version 7. Die waren im Grunde auch DOS-Programme haben aber ausgesehen als ob sie in Fenstern laufen.


Problem sind die (mir nicht bekannten) ASCII-Zeichen.
Habe experimentiert mit 'copy-and-paste' und diversen Sonderzeichen über ALT+<Nummer>.

Um es besser zu verdeutlichen: habe mal kurz gegoogelt und folgende Seite gefunden
http://www.apollosoft.de/ASCII/indexde.htm
dort sieht man deutlich die Sonderzeichen für die Boxen (7. Zeile in den Beispiel-Fonts)

Evtl. ist ein Ansatz, daß man irgendwie den Font in der Console aktivieren kann und dann die Zeichen PrintN'ted. Auf jeden Fall bekomm ich die 'Ecken' und 'Striche' nicht hin.

Gruss
Kaltstart
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

Hallo Kaltstart,
ich habe in den frühen '90ern einige Consolenprogramme in "PowerBasic" erstellt und mir dafür ein "Standard-Include" geschrieben, das mir die Oberflächengestaltung erleichterte.

Darin enthalten sind Befehle zum Erzeugen von Fenstern, Ja/Nein-Dialogen, selbstdefinierbaren Fragedialogen, Rechtecken, Textausgabe in einen rechteckigen Bereich usw. mit oder ohne Schatten und mit 6 verschiedenen grafischen Fensterstyles.

Ferner Routinen zum erstellen von Stringeingabefeldern und numerischen Eingabefeldern inkl. der zugehörigen Cursor- und Editierfunktionen. Routinen zum Prüfen von Mausklicks innerhalb von rechteckigen Breichen und eine Mauscursorroutine die quasi den Eventloop darstellt (allerdings auf Tastaturbasis, denn für die Mausunterstützung wurde ein Programm benutzt, das die Mausbewegungen in Cursorbewegungen umwandelte).

Außerdem gibt es Prozeduren zum Buffern von Hintergründen, die es ermöglichen mehrere Fenster oder Dialoge übereinander darzustellen und den verdeckten Hintergrund mit einem einzigen RestoreBefehl wiederherzustellen.

Es ist wie gesagt kein PureBasic sondern PowerBasic, aber ich würde mich freuen, wenn diese alten Routinen Dir trotzdem weiterhelfen würden. Die hab ich schon fast wieder vergsssen. ;)

Code: Alles auswählen

REM ----------------------------------------------------------------
REM --- WINIT: INITROUTINE --- WCLEAR: ALLE VARIABLEN L™SCHEN ------
REM ----------------------------------------------------------------

WINIT:
REM Variablen f
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Habe damals noch mit Pascal in Textmode gearbeitet. Um Speicherplatz zu Sparen habe ich meine Fenstertechnik so geschrieben das der Grafikkarten speicher zur Pufferung der der untergelagerten Fenster nutzte.

War noch richtig interessant eigene Routinen für Eingabe und Ausgabefelder zu schreiben mit der gesamten Auswertung der Tastaturcodes.

Lang ist her 8)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
horst
Beiträge: 70
Registriert: 08.09.2004 19:33
Wohnort: München
Kontaktdaten:

Beitrag von horst »

mk-soft hat geschrieben:Lang ist her 8)
Ich habe immer noch meine alten DOS-Tools auf meiner Website, u.a. WBAT, mit dem man Menüs und Dialogboxen in Batch-Abläufen zaubern kann, auch mit Fenster-Schatten etc.. Die Demo läuft sogar im Fenster unter XP (Quick-Edit muss abgeschaltet sein).
horst
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

horst hat geschrieben:Ich habe immer noch meine alten DOS-Tools auf meiner Website, u.a. WBAT, mit dem man Menüs und Dialogboxen in Batch-Abläufen zaubern kann
Das ist echt fett :allright:
Schade daß ich das grad nirgendwo brauche, aber echt beeindruckend!
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Kaltstart hat geschrieben:Problem sind die (mir nicht bekannten) ASCII-Zeichen.
Habe experimentiert mit 'copy-and-paste' und diversen Sonderzeichen über ALT+<Nummer>.
PureBasic -> Help -> Referenz-Handbuch -> Zusätzliche Informationen -> ASCII-Codes mit Zeichen

dort die zweite Tabelle: DOS erweiterte Zeichen

da findest du die Grafikzeichen für die Console.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten