Seite 1 von 1
Console Cursor finden! [gelöst]
Verfasst: 18.12.2007 10:18
von SimonSimCity
Hi, Leute
Ich will bei mir so ne kleine Console proggen und hab jetzt das Problem, das ich zwar sagen kann: "setzte Cursor auf X | Y" aber ich kann nicht sagen, dass der Cursor um eine Zeile weiter hoch / runter oder nach links / rechts springen soll...
Hier soll zum Beispiel dieses Zeichen in der Schleife immer wieder überschrieben werden und hinter dem eingegebenen Text erscheinen, egal wie viele Zeichen der Text hat... (ähnlich wie bei Linux oft....)
Habt ihr nen paar Beispiele zu diesem Code:
Code: Alles auswählen
OpenConsole()
EnableGraphicalConsole(1)
ClearConsole()
ConsoleColor(10, 0)
Print("EF.3B.68.D8@root\>")
PrintN(" Das geht klar!")
Input()
For i=0 To 200
Delay(100)
Print("-")
Delay(100)
Print("/")
Delay(100)
Print("|")
Delay(100)
Print("\")
Next i
Input()
ConsoleColor(12, 0)
PrintN(" Invaild MemoryProcess!")
ConsoleColor( 9, 0)
PrintN(" Console closed")
Delay(4000)
CloseConsole()
End
Verfasst: 18.12.2007 10:40
von Bisonte
Ich gehe jetzt mal davon aus, das Du eine CursorAnimation meinst.
Dann sollte das mit CursorLocate nicht wirklich das Problem darstellen.
Code: Alles auswählen
Procedure CursorAnim(x.l,y.l,Pause.l,Schleife.l)
Protected i.l
For i = 0 To Schleife
ConsoleLocate(x,y)
Print("-")
Delay(Pause)
ConsoleLocate(x,y)
Print("\")
Delay(Pause)
ConsoleLocate(x,y)
Print("|")
Delay(Pause)
ConsoleLocate(x,y)
Print("/")
Delay(Pause)
Next i
EndProcedure
Dann baust Du in deinen Code zwischen den beiden Inputs() ein :
Cursoranim(0,2,100,200)
Wenn du jetzt nicht die Animation meinst, sorry... grad kein kaffee da um mein hirn zu aktivieren
Edit: Ich sehe gerade... du hast nicht ein einziges mal CursorLocate() benutzt.... sondern ConsoleColor() ...damit kann man den Cursor natürlich nicht setzen ... Drück doch mal F1 und schau dir die Hilfe an... da unter Console schauen....
Verfasst: 18.12.2007 13:18
von SimonSimCity
Du hast mein Problem nicht verstanden! Ich glaube der Theard is besser im ALLGEMEIN-Forum aufgehoben...
Ich wollte so einen Befehl machen, das der Cursor ein Zeichen zurück geht, ohne das ich weiß, wo er jetzt steckt!
Oder auch mal ne Zeile hoch.
Aber halt alles ohne X oder Y vorzugeben, wie du das jetzt gemacht hast.
Was mir auch schon sehr helfen würde ist eine Prozedure zu schreiben, mit der ich einfach nur X Zeichen zurück gehen kann...
Der obere Code sollte ungefähr so was ergeben:
-> Nur jetzt soll halt noch, wenn ich hier mehr Zeichen eingebe soll dann dieser Status automatisch eingerückt werden...
Code: Alles auswählen
Define s1.s, s2.s, s3.s, s4.s, command.s
OpenConsole()
EnableGraphicalConsole(1)
ClearConsole()
ConsoleColor(10, 0)
ConsoleLocate(0,0)
Sprung:
Print("EF.3B.68.D8@root\>")
Inp.s = Input()
Select Inp
Case "me.root"
PrintN(" Das geht klar!")
For i=0 To 2
ConsoleLocate(20, 1)
Delay(100)
Print("-")
ConsoleLocate(20, 1)
Delay(100)
Print("/")
ConsoleLocate(20, 1)
Delay(100)
Print("|")
ConsoleLocate(20, 1)
Delay(100)
Print("\")
ConsoleLocate(20, 1)
Next i
PrintN(" ")
Goto Sprung
EndSelect
ConsoleColor(12, 0)
PrintN(" Invaild MemoryProcess!")
ConsoleColor( 9, 0)
PrintN(" Console closed")
Delay(4000)
CloseConsole()
End
Verfasst: 18.12.2007 14:03
von bobobo
sowas?
Code: Alles auswählen
Define s1.s, s2.s, s3.s, s4.s, command.s
prompt.s="EF.3B.68.D8@root\>"
y=0
OpenConsole()
EnableGraphicalConsole(1)
ClearConsole()
ConsoleColor(10, 0)
ConsoleLocate(0,0)
Sprung:
Print(prompt)
ConsoleLocate(Len(prompt),y)
Inp.s = Input()
y+1
Select Inp
Case "me.root"
PrintN(" Das geht klar!")
l=Len(" Das geht klar!")+1
ConsoleCursor(0)
For i=0 To 2
ConsoleLocate(l, y)
Delay(100)
Print("-")
ConsoleLocate(l, y)
Delay(100)
Print("/")
ConsoleLocate(l, y)
Delay(100)
Print("|")
ConsoleLocate(l, y)
Delay(100)
Print("\")
ConsoleLocate(l, y)
Next i
ConsoleCursor(1)
PrintN(" ")
y+1
Goto Sprung
EndSelect
ConsoleColor(12, 0)
PrintN(" Invaild MemoryProcess!")
ConsoleColor( 9, 0)
PrintN(" Console closed")
Delay(4000)
CloseConsole()
End
GOTO

Verfasst: 18.12.2007 14:20
von SimonSimCity
DANKE!
Das is genau das gesuchte...
Is zwar sehr simpel gelöst, aber darauf bin ich jetzt nicht gekommen

Verfasst: 18.12.2007 16:01
von Bisonte

Wusst ich's doch... ohne Kaffee.... nix verstehen

aber ne Procedure, die das Print ersetzen würde hätt ich dann auch noch gehabt

ohne dass man weiss wo der Cursor steht....
Verfasst: 18.12.2007 18:10
von SimonSimCity
@Bisonte:
Kannst du die Procedure auch noch mal posten (wenn du sie so auf die Schnelle findest...) ?
vlt kann die ein anderer, der diesen Theard liest besser gebrauchen...