 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Thomas Antoni

Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
|
Verfasst am: 30.12.2004, 23:03 Titel: Backspace-Taste geht nicht in meinem Editorprogramm |
|
|
Marcel Denia ( eiffel56@swissinfo.org )hat mir folgendes Problen gemailt. Kann da jemand helfen?
Ich habe ein kleines Problem bei QuickBasic und hoffe,dass sie mir helfen
können.Ich arbeite gerade an einem kleinem
Editor,der komplett auf Screen 0 läuft.Damit er auch gut funktioniert,habe
ich eine kleine eigene eingabe "Engine" entworfen.
Der Code des kompletten Editors ist angehängt(und leider auch relativ
unsauber geschrieben).Naja,dass Problem an der Sache ist folgendes:Die
Backspace Taste kann man,wenn überhaupt,nur einmal pro zeile Benutzen.Wie
krieg ich das hin das die immer
Funktioniert.
Das Forum habe ich schon probiert,aber irgendwie will das seit schon immer
bei mir nicht richtig.Auch das alte wollte nie.
Threads die ich damals gemacht habe(im neuen und im alten) wurden nie
richtig eingetragen(waren dann immer weg) und im moment will das Forum
mein Benutzernamen nicht mehr kennen.
MfG
Marcel Denia alias eiffel56
Code: |
DECLARE SUB edit ()
COMMON SHARED zeile%
COMMON SHARED zeichen%
PRINT "DX-EDIT V0.1 by eiffel56"
PRINT "Lade..."
conf.file$ = COMMAND$
IF conf.file$ = "" THEN
conf.file$ = "dx-edit.cfg"
END IF
ON ERROR GOTO make.conf.file
PRINT "Konfigurationsdatei: "; : PRINT conf.file$
OPEN conf.file$ FOR INPUT AS #1
INPUT #1, max.size%
CLOSE #1
DIM SHARED text$(max.size%)
PRINT "Fertig!"
SLEEP 2
CLS
COLOR 0, 7
PRINT " Datei Bearbeiten Suchen Optionen "
'12
CALL edit
END
make.conf.file:
PRINT ""
PRINT "Erster start von DX-EDIT!"
PRINT "Erstelle Konfigurationsdatei 'dx-edit.cfg'..."
OPEN "dx-edit.cfg" FOR OUTPUT AS #1
max.size% = 999
PRINT "Maximale Dateigr”sse: 999 Zeilen"
PRINT #1, max.size%
CLOSE #1
RESUME
SUB edit
'75
'80
COLOR 7, 0
zeile% = 1
main.edit:
SLEEP
a$ = INKEY$
IF a$ = CHR$(27) THEN
'call menu
ELSEIF a$ = CHR$(13) THEN
zeile% = zeile% + 1
LOCATE 1, 75
COLOR 0, 7
PRINT zeile%
COLOR 7, 0
LOCATE zeile% + 1, 1
zeichen% = 0
ELSEIF a$ = CHR$(8) THEN
LOCATE zeile% + 1, zeichen%
PRINT " "
LOCATE zeile% + 1, zeichen%
ELSEIF a$ = CHR$(0) THEN
zeichen% = zeichen% + 1
PRINT " "
ELSE
PRINT a$;
zeichen% = zeichen% + 1
END IF
IF zeichen% = 80 THEN
zeile% = zeile% + 1
LOCATE 1, 75
COLOR 0, 7
PRINT zeile%
COLOR 7, 0
LOCATE zeile% + 1, 1
zeichen% = 0
END IF
GOTO main.edit
END SUB
|
_________________ +++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++ |
|
Nach oben |
|
 |
helium

Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 02.01.2005, 12:03 Titel: |
|
|
Also folgender Code ist vielleicht etwas waghalsig:
Allgemein macht man sowas mit:
Code: |
do
a$ = inkex$
loop until a$ <> ""
|
und dann
Code: |
ELSEIF a$ = CHR$(0) THEN
|
Wie gibt man denn Chr$(0) ein? Doch höchstens mit Alt + 0. _________________ Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit. |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 02.01.2005, 13:05 Titel: |
|
|
Hallo
Beim drücken von Backspace wird bei dir einfach nur das letzte Zeichen mit einem Leerfeld überschrieben. Du müsstest zusätlich von der Variablen zeichen% eins abziehen bzw. wenn der Anfang einer Zeile erreicht wird, zeichen% wieder auf 80 setzen und zeile%=zeile%-1 usw. Ich würde sowieso ein Array anlegen, indem die einzelnen Zeichen abgelegt werden. Dann kannst du auch mit den Pfeiltasten im Text herumfahren und beim Backspace nachfolgenden Text mit zurückziehen.
Zitat: |
Wie gibt man denn Chr$(0) ein? Doch höchstens mit Alt + 0. |
Mit den Pfeiltasten, Entf usw. wird bei dieser einfachen Methode CHR$(0) übergeben.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|