Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Backspace-Taste geht nicht in meinem Editorprogramm

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Thomas Antoni



Anmeldungsdatum: 12.10.2004
Beiträge: 220
Wohnort: Erlangen

BeitragVerfasst am: 30.12.2004, 23:03    Titel: Backspace-Taste geht nicht in meinem Editorprogramm Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 02.01.2005, 12:03    Titel: Antworten mit Zitat

Also folgender Code ist vielleicht etwas waghalsig:
Code:

SLEEP
a$ = INKEY$


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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 02.01.2005, 13:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 02.01.2005, 13:17    Titel: Antworten mit Zitat

Vielleicht dürfte der Artikel

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html

aus meiner Sammlung das Passende zu diesem ganzen Thema darstellen. Dort wird auch ein Ersatz für INPUT vorgestellt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz