Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jet X gesperrt

Anmeldungsdatum: 05.01.2005 Beiträge: 447
|
Verfasst am: 14.06.2005, 13:07 Titel: Eingabe Feld aber wie ? Mit Input ? |
|
|
Hallo Leute , mich würde es mal Interesieren wie ich es mache das ich ein
Eingabe Feld habe , wie beim Texteditor oder so ... bei dem mann auch
weiter runter gehen kann ... Mit dem einfachen Input Befehl geht das ja nicht!
Und vorallem wie bekomme ich es hin das man es auch noch abspeichern kann ?
Grüße JET X |
|
Nach oben |
|
 |
Xolios aka Ray

Anmeldungsdatum: 07.12.2004 Beiträge: 589 Wohnort: Wildeshausen
|
Verfasst am: 14.06.2005, 14:30 Titel: |
|
|
Hallo.
Ich weiß net ob du das meinst was ich denke...
Wie beim Editor???
Ich hab net viel ahnung aber als Alternative:
open "tmp.mni" for output as #1
DO
Input "TEXT: ",txt$
write #1,txt$
LOOP
Gruß
Ray _________________ www.ray-earth.de
Anm.: Neue ICQ |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 14.06.2005, 14:34 Titel: |
|
|
Ich glaub, ich weiß was Jet X meint.
Ich hab sowas schon mal gesucht, aber nicht gefunden. Du meinst bestimmt so ein Text eingabefeld wie das von QBasic bzw. das vom notepad, oder??
Ich weiß auch nicht wie das geht. Sowas hab ich mal ohne Erfolg versucht zu machen. Ich probiers nochmal.
Mfg
Michael |
|
Nach oben |
|
 |
Jet X gesperrt

Anmeldungsdatum: 05.01.2005 Beiträge: 447
|
Verfasst am: 14.06.2005, 14:54 Titel: |
|
|
Jap , sowas meine ich  |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 14.06.2005, 15:41 Titel: |
|
|
Habs geschafft. Ich hab das wohl noch ohene speichern und noch ein bisschen doof. Ich mach das bis gleich mal was besser. Habs aber auch mit Maus, hab ne routine aus QBMonFaq.
Ich poste die datei gleich mal. Muss das noch brennen.(habs auf nem anderen pc)
EDIT: Hier jetzt der Code. Wenn man einen text eingegeben hat und dann irgendwo hinklickt, dann ist der buchstabe rechts neben dem cursor weg. Arbeite noch daran.
Code: |
DEFINT A-Z
DECLARE SUB Mouse (x, y, t)
DECLARE SUB MousePointer (SW)
DIM SHARED a(9)
DEF SEG = VARSEG(a(0))
FOR i = 0 TO 17
READ r
POKE VARPTR(a(0)) + i, r
NEXT i
DATA &HB8,&H00,&H00 : DATA &H55 : DATA &H8B,&HEC
DATA &HCD,&H33 : DATA &H92 : DATA &H8B,&H5E,&H06
DATA &H89,&H07 : DATA &H5D : DATA &HCA,&H02,&H00
MousePointer 0
MousePointer 1 'aktiviert den Mauszeiger
MousePointer 3
COLOR 0, 7
CLS
COLOR 15, 4
PRINT " Text Editor (c) Michael Laumen, 2005 ";
COLOR 0, 7
PRINT " Mausroutine vom QBMonFAQ "
PRINT
PRINT " Willkommen beim Qbasic Text Editor"
PRINT " ------------------------------------------"
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT " Taste drü?cken zum starten."
SLEEP
CLS
blink = 1
m% = 1
n% = 1
WHILE INKEY$ <> CHR$(27) 'beenden mit ESC
IF t = 1 THEN
m% = INT(y / 8) + 1
n% = INT(x / 8) + 1
inpu = 1
END IF
start! = TIMER
DO
a$ = INKEY$
Mouse x, y, t
IF a$ <> "" OR t <> 0 THEN EXIT DO
LOCATE m%, n% + 1
IF blink = 1 THEN
PRINT "_"
ELSE
PRINT " "
END IF
LOOP UNTIL TIMER > start! + .2
blink = blink * -1
LOCATE m%, n% + 1: PRINT " "
IF a$ <> "" AND a$ <> CHR$(8) AND a$ <> CHR$(13) THEN
n% = n% + 1
LOCATE m%, n%
PRINT a$
ELSEIF a$ = CHR$(8) THEN
LOCATE m%, n%
PRINT " "
n% = n% - 1
ELSEIF a$ = CHR$(13) THEN
m% = m% + 1
n% = 1
LOCATE m%, n%
END IF
WEND
MousePointer 2 'deaktiviert die Maus
DEF SEG
END
SUB Mouse (dx, cx, bx)
POKE VARPTR(a(4)), &H92
CALL absolute(cx, VARPTR(a(0)))
POKE VARPTR(a(4)), &H91
CALL absolute(dx, VARPTR(a(0)))
POKE VARPTR(a(4)), &H93
CALL absolute(bx, VARPTR(a(0)))
END SUB
'
SUB MousePointer (SW)
POKE VARPTR(a(0)) + 1, SW
CALL absolute(c, VARPTR(a(0)))
END SUB
|
|
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 14.06.2005, 18:24 Titel: |
|
|
Ich glaube aber nicht, dass das Jet-X konkret was nützt.
Und außerdem hat es den Nachteil, dass das Abspeichern schwer wird, denn du
schreibst ja nur auf den Bildschirm.
Müsste man was mit SCREEN() machen.
Also, so ein "Eingabefeld" würde ich so angehen:
1. Ein Feld vom Typ String deklarieren
Code: |
DIM TextFeld$(Zeilen) AS STRING * Spalten
|
Wobei für Spalten und Zeilen vernünftige Werte eingesetzt werden
müssen.
Das Feld ist dann dein "virtuelles" Eingabefeld, das dann nur noch
angezeigt werden muss.
Code: |
CLS
FOR zeile = 1 TO maxzeile
PRINT TextFeld$(zeile)
NEXT zeile
|
2. Dann das Elementare: Die Tastaturabfrage:
Das erledigst du mit INEKY$ und SELECT CASE.
Code: |
A$ = INKEY$
SELECT CASE INKEY$
CASE CHR$(13)
REM Enter
[...]
CASE CHR$(8)
REM Backspace
[...]
CASE CHR$(31) TO CHR$(128)
REM die "normalen" ASCII-Codes
[...]
END SELECT
|
Die [...]-Zeilen durch vernünftigen Code ersetzen, der die
entsprechende Zeile mit Buchstaben füllt.
3. Das ganze in eine Schleife packen.
Das wäre jetzt nur ein sehr sehr einfacher kleiner Editor, aber mit ein bisschen Arbeit kann
man da ganz schön was zaubern
jb |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 14.06.2005, 19:51 Titel: |
|
|
Pfeiltasten, damit man nicht immer den ganzen Text bis zum Fehler löschen muss und ne Möglichkeit das prog zu beenden wären zB noch ganz nett  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 14.06.2005, 22:04 Titel: |
|
|
sag mal dreael, warum hast du in deinen Beispielen eigentlich keine Einrückungen? Ich find das irgendwie unübersichtlich..
Schieb die Codes doch einfach mal durch so nen Strukturierer wie sie bei QB-City mal Auftrag waren, vllt geht das ja ganz gut  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 14.06.2005, 22:15 Titel: |
|
|
Bei meinem Beispiel(ist noch lange nicht fertig) kann man doch en Bildschirm am ende einfach mit screen auslesen
[/code] |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 15.06.2005, 13:59 Titel: |
|
|
In diesem Forum kann man seine eigenen Beiträge nicht löschen.
Es gibt aber einen EDIT-Button
jb |
|
Nach oben |
|
 |
|