einfach zu verwendende Konsole
Übersicht

KlaasBetreff: einfach zu verwendende Konsole |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sollte für sich selber sprechen
Code: [AUSKLAPPEN] Type console_line Field row$ End Type Global console_current_row.console_line = New console_line Global console_current_pos,console_tick,console_cursor_blink,console_pos Global console_status Global console_x = 0 Global console_y = 0 Global console_width = GraphicsWidth() Global console_height = 300 Global console_cls_r = 30 Global console_cls_g = 30 Global console_cls_b = 30 Global console_border_r = 250 Global console_border_g = 10 Global console_border_b = 10 Global console_font_r = 250 Global console_font_g = 250 Global console_font_b = 100 Global console_buffer = BackBuffer() ;-------------------------- so wirds verwendet timer = CreateTimer(25) While Not KeyHit(1) WaitTimer(timer) eingabe$ = consoleInput$() If eingabe <> "" Then consoleInsert("Du hast gesagt: "+eingabe$) consoleDraw(0,0,320,200) Flip() Wend ;-------------------------- Function consoleInsert(txt$) c.console_line = New console_line Insert c After First console_line c\row$ = txt$ End Function Function consoleInput$() newKey = GetKey() If KeyHit(28) Or KeyHit(156);enter ret$ = console_current_row\row$ console_current_row.console_line = New console_line Insert console_current_row Before First console_line console_current_pos = 0 ElseIf KeyHit(14);backspace If console_current_pos > 0 console_current_row\row$ = Left(console_current_row\row$,console_current_pos-1) + Right(console_current_row\row$,Len(console_current_row\row$)-console_current_pos) console_current_pos = console_current_pos - 1 EndIf ElseIf KeyHit(211);entfernen If console_current_pos < Len(console_current_row\row$) console_current_row\row$ = Left(console_current_row\row$,console_current_pos) + Right(console_current_row\row$,Len(console_current_row\row$)-console_current_pos-1) console_current_pos = console_current_pos EndIf ElseIf KeyHit(203);left If console_current_pos > 0 console_current_pos = console_current_pos - 1 EndIf ElseIf KeyHit(205);right If console_current_pos < Len(console_current_row\row$) console_current_pos = console_current_pos + 1 EndIf ElseIf KeyHit(200);up c.console_line = After console_current_row If c <> Null console_current_row\row$ = c\row console_current_pos = Len(console_current_row\row$) EndIf ElseIf KeyHit(208);down console_current_row\row$ = "" console_current_pos = 0 ElseIf KeyHit(207);ende console_current_pos = Len(console_current_row\row$) ElseIf KeyHit(199);pos1 console_current_pos = 0 ElseIf newKey > 31 console_current_row\row$ = Left(console_current_row\row$,console_current_pos) + Chr(newKey) + Right(console_current_row\row$,Len(console_current_row\row$)-console_current_pos) console_current_pos = console_current_pos + 1 EndIf Return ret$ End Function Function consoleDraw(xoff,yoff,width,height) SetBuffer(console_buffer) Color(console_cls_r,console_cls_g,console_cls_b) Rect(xoff,yoff,width,height,1) Color(console_border_r,console_border_g,console_border_b) Rect(xoff,yoff,width,height,0) Color(console_font_r,console_font_g,console_font_b) theight = FontHeight() + 3 x = xoff + 5 y = yoff + height - 5 ;cursor If Not console_tick Then console_cursor_blink = Not console_cursor_blink If console_cursor_blink l = Len(console_current_row\row$) cx = StringWidth(Left(console_current_row\row$,l-(l-console_current_pos))) + x Line(cx,y,cx,y-theight) EndIf console_tick = (console_tick + 1) Mod 8 For r.console_line = Each console_line y = y - theight If y < yoff Delete r Return Else Text(x,y,r\row) EndIf Next End Function |
||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
feine sache sowas, werd ich gleich mal in meine libs reinwerfen.
mfg stfighter |
||
Denken hilft! |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ja, fein... Leider, leider kann man aber über den Rand der Konsole hinausschreiben... Und Schade das es kein "Verlauf" gibt durch den man mit Cursor Up/Down navigieren kann... grüße |
||
![]() |
Bms |
![]() Antworten mit Zitat ![]() |
---|---|---|
...da streikt leider mein b+... | ||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Soll das als Eingaberoutine dienen oder wofür soll das gut sein?
(Es sprach nur ein Unwissender^^) Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
Noob-Paul |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
...bei mir auch... | ||
Der Klügere gibt nach ....
...weil die Klugen immer nachgeben, regieren die Dummen die Welt! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group