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:

Eingabe Feld aber wie ? Mit Input ?

 
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
Jet X
gesperrt


Anmeldungsdatum: 05.01.2005
Beiträge: 447

BeitragVerfasst am: 14.06.2005, 13:07    Titel: Eingabe Feld aber wie ? Mit Input ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Xolios
aka Ray


Anmeldungsdatum: 07.12.2004
Beiträge: 589
Wohnort: Wildeshausen

BeitragVerfasst am: 14.06.2005, 14:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 14.06.2005, 14:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jet X
gesperrt


Anmeldungsdatum: 05.01.2005
Beiträge: 447

BeitragVerfasst am: 14.06.2005, 14:54    Titel: Antworten mit Zitat

Jap , sowas meine ich zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 14.06.2005, 15:41    Titel: Antworten mit Zitat

Habs geschafft. Ich hab das wohl noch ohene speichern und noch ein bisschen doof. durchgeknallt 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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.06.2005, 18:24    Titel: Antworten mit Zitat

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 zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 14.06.2005, 19:51    Titel: Antworten mit Zitat

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 happy
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 14.06.2005, 21:58    Titel: Antworten mit Zitat

Habe zu diesem Thema einen hübschen Artikel:

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

Dort wird auf die Thematik ausführlich eingegangen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 14.06.2005, 22:04    Titel: Antworten mit Zitat

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 zwinkern
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 14.06.2005, 22:15    Titel: Antworten mit Zitat

Bei meinem Beispiel(ist noch lange nicht fertig) kann man doch en Bildschirm am ende einfach mit screen auslesen


[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 15.06.2005, 13:59    Titel: Antworten mit Zitat

In diesem Forum kann man seine eigenen Beiträge nicht löschen.

Es gibt aber einen EDIT-Button zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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