OpenConsole()

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: OpenConsole()

Beitrag von RSBasic »

Code: Alles auswählen

If OpenConsole()    
  stdout.l=GetStdHandle_(#STD_OUTPUT_HANDLE)  
  NewSize.SMALL_RECT
  NewSize\top = 0
  NewSize\left = 0
  NewSize\bottom=50
  NewSize\right=50
  SetConsoleWindowInfo_(stdout,1,@NewSize)
  
  mySize.l
  mySize = (51 << 16) + 51
  SetConsoleScreenBufferSize_(stdout, mySize) 
  Debug(Str(GetLastError_()) ) 
  Input()
EndIf
http://forum.oszone.net/thread-75006.html
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: OpenConsole()

Beitrag von 7x7 »

Danke, RSBasic! Werde es nachher mal ausprobieren.

(seltsam, auf was für Seiten du dich rumtreibst... :D )
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: OpenConsole()

Beitrag von Shardik »

Eine Suche im deutschen oder englischen Forum hätte dort ähnliche Lösungen gefunden: :wink:
EgonEprom: http://www.purebasic.fr/german/viewtopi ... 87&start=4
Brice Manuel: http://www.purebasic.fr/english/viewtopic.php?t=26573
funkheld
Beiträge: 647
Registriert: 31.12.2009 11:58

Re: OpenConsole()

Beitrag von funkheld »

Interessantes Thema. So etwas habe ich auch gesucht.
Hab hier mal etwas gemischt aus einer Purebasicdemo und hier.

Jetzt kann ich meine Messdaten über die serielle Schnittstelle schön Farbig und mit Positionen reinsetzen.

gruss

Code: Alles auswählen

text$  = "der consolentest..."                 ; just a small text$ string
dlay   = 1000                                  ; delay will set to 4000
;-------- Open our Console --------
OpenConsole()  
stdout.l=GetStdHandle_(#STD_OUTPUT_HANDLE) 
NewSize.SMALL_RECT
NewSize\top = 0
newSize\left = 0
NewSize\bottom=50
NewSize\right=50
SetConsoleWindowInfo_(stdout,1,@NewSize)
 
mySize.l
mySize = (51 << 16) + 51
SetConsoleScreenBufferSize_(stdout, mySize) 

; First we must open a console
    ConsoleTitle ("Consolentest:")  ; Now we can give the opened console a Titlename ;)                                                  
    EnableGraphicalConsole(1)                                                                                                 
;-------- Ask and display the UserName -------- 
    ConsoleLocate (10,12)                          ; x y position 
    Print ("Bitte Namen eingeben: ")               ; Ask for name
    name$=Input()                                  ; Wait for user input

    ClearConsole()                                 ; This will clean the ConsoleScreen
    
    ConsoleLocate (10,10)                          ; x y position 
    PrintN ("Willkommen "+name$)                      ; Print our text and the UserName
    ConsoleLocate (16,12)                          ; x y position
    PrintN (text$)                                 ; Print our text

    Delay (dlay)                                   ; Waits for moment
;-------- Cls and Cycle the Text-BG-Color 0 to 15 --------                                                 
    ClearConsole()                                 ; This will clean the ConsoleScreen
                                                   ; Info: Standard colors are (8 for text, 0 for backround)
    For i = 0 To 15
        ConsoleColor (0,i)                         ; Change BackGround text color (max 15) in every loop         
        ConsoleLocate (10+i,4+i)                     ; x y position 
        Print (text$)                              ; Print our text
    Next i

    Delay (dlay)                                   ; Waits for moment
;-------- Cls and Cycle the Text-FG-Color 0 to 15 --------
    ConsoleColor(0,0)                              ; Set back to black (0,0) for complete background...
    ClearConsole()                                 ; This will clean the ConsoleScreen
                                                   ; Info: Standard colors are (8 for text, 0 for backround)
    For i = 0 To 15
        ConsoleColor (i,0)                         ; Change ForGround text color (max 15) in every loop         
        ConsoleLocate (10,4+i)                     ; x y position 
        Print (text$)                              ; Print our text
    Next i

    Delay (dlay)                                   ; Waits for moment
;-------- Cls and Cycle the Background-Color 0 to 15 --------
    For a = 1 To 15
        ConsoleColor(a,a)                          ; Cycle background color...
        ClearConsole()                             ; This will clean the ConsoleScreen
        ;                                          ; Info: Standard colors are (8 for text, 0 for backround)
        For i = 0 To 15
            ConsoleColor (i,a)                     ; Change ForGround text color (max 15) in every loop         
            ConsoleLocate (5,4+i)                  ; x y position 
            Print (text$)                          ; Print our text
        Next i
        ;
        Delay(dlay/8)                              ; Waits for moment
      Next a   
      
    Delay (dlay)                                   ; Waits for moment
;-------- Cls and Cycle the Background-Color 0 to 15 --------
    For a = 1 To 15
      ConsoleColor(a,a)                          ; Cycle background color...
      ClearConsole()                             ; This will clean the ConsoleScreen
      ;                                          ; Info: Standard colors are (8 for text, 0 for backround)
      For i = 0 To 15
        ConsoleColor (i,a)                       ; Change ForGround text color (max 15) in every loop         
        ConsoleLocate (8+i,14+i)                 ; x y position 
        Print (text$)                            ; Print our text
      Next i
      
     Delay(dlay/8)                               ; Waits for moment
   Next a  
   
   ConsoleColor (4,15)  
   ConsoleLocate (8,40)                          ; x y position 
   Print ("fertisch...") 
   
   Input()
   CloseConsole()
End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OpenConsole()

Beitrag von ts-soft »

Zeile 5 noch anpassen:

Code: Alles auswählen

stdout.i=GetStdHandle_(#STD_OUTPUT_HANDLE)
da ein Handle immer ein Integer ist, ansonsten könnte (muss nicht) es Probleme unter x64 geben :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
funkheld
Beiträge: 647
Registriert: 31.12.2009 11:58

Re: OpenConsole()

Beitrag von funkheld »

Habe mit dem "lel" keine Probleme, du....?
x64 sind heute nur ein zwangskauf beim Computerkauf, welches Programm nutzt schon dieses x64 ?

gruss
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OpenConsole()

Beitrag von ts-soft »

In "naher" Zukunft wohl jedes und wenn Du das dann erst ändern möchtest, sachlich ist es trotzdem schon falsch,
auch wenn es unter 32-Bit keinen Einfluss hat.

und vielleicht hier auch mal lesen: http://www.purebasic.fr/blog/?p=42
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: OpenConsole()

Beitrag von NicTheQuick »

funkheld hat geschrieben:Habe mit dem "lel" keine Probleme, du....?
x64 sind heute nur ein zwangskauf beim Computerkauf, welches Programm nutzt schon dieses x64 ?

gruss
:?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OpenConsole()

Beitrag von ts-soft »

Erinnert mich ein bissel an den Wechsel von 16-Bit auf 32-Bit
Da konnte sich erst auch keiner mit seinem 640 KB PC vorstellen, das 32-Bit
mal standard wird und man soviel RAM und Rechenleistung benötigt :mrgreen:
Als dann Win95 kam, waren die meisten Rechner aber erstmal zu Leistungsschwach.
Ich hab Win95 mit Tricks dann auch mit 4 MB RAM betrieben, Systemstart dauerte
dann eben mal 15 Minuten :bounce:
64-Bit braucht mit Sicherheit länger bis es Standard wird, aber die meiste Zeit davon
ist ja bereits Vergangenheit.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
funkheld
Beiträge: 647
Registriert: 31.12.2009 11:58

Re: OpenConsole()

Beitrag von funkheld »

64-Bit braucht mit Sicherheit länger bis es Standard wird....beim Starten... :bounce:

Auf 32Bit liefen/laufen auch alle 16Bitprogramme.... :allright:

Bei diesen Scheiss 64Bit muss ich jetzt schon oft den DOS-EMU einsetzen...so ne kacke...

Mal sehen wenn das 32Bit Windows7 günstiger wird....kommt das drauf auf dem Notebook, aber erst wenn die Garantie vorbei ist.


Ein junger Pureianer zu den Eltern, was er sich im "Neuem Jahr" wünscht :
Mama, Papa ich wünsche "Frieden auf Erden und Gesundheit für alle Menschen" und zum Spielen wünsche ich mir ein Kriegsspiel..... :D :D :D PROSIT...
Antworten