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:

zwischen Inputs hin- und herspringen

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



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 10.11.2006, 14:16    Titel: zwischen Inputs hin- und herspringen Antworten mit Zitat

Hi,

ist es möglich, diesen

Code:
locate 1, 1: input "String 1"; a$
locate 2, 1: input "String 2", b$
locate 3, 1: input "String 3"; c$


so zu modifizieren, dass man mit den Pfeiltasten zwischen den 3 Abfragen frei wählen kann? Oder muss man da eine ganze neue Input-Routine proggen?

Danke schonmal für eure Hilfe!!

Gruß s-m-n
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 10.11.2006, 14:51    Titel: Antworten mit Zitat

Man muss sich eine eigene Input routine bauen, anders geht es nicht.
So schwer ist das aber nicht, man muss da mit INKEY arbeiten und die Zeichencodes prüfen. In etwa so:

Code:

Dim As String text(1 to 3), inky
Dim As Integer ptext=1, i

cls

Do
    inky=Inkey
   
    If inky<>"" Then
        Select Case Asc(inky)
            Case 13  'enter
                If ptext=3 Then Exit Do Else ptext+=1
            Case 8   'backspace
                If len(text(ptext))>0 Then text(ptext)=Left(text(ptext), Len(text(ptext))-1)
            Case 9   'tab
                ptext+=1
                If ptext>3 Then ptext=1
            Case 255
                If inky=Chr(255)+"H" THen 'hoch
                    ptext-=1
                Elseif inky=Chr(255)+"P" Then 'runter
                    ptext+=1
                End If
                If ptext>3 Then ptext=1
                If ptext<1 Then ptext=3
            Case Else    'alles andere
                text(ptext)+=inky 
        End Select
       
        'text auf dem bildschirm schreiben
        For i = 1 to 3
            Locate i,1
            Print text(i);
            If ptext=i Then Print "_ " Else Print " "
        Next i
    End If
    Sleep 10
Loop

_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


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

BeitragVerfasst am: 10.11.2006, 16:14    Titel: Antworten mit Zitat

Habe sonst einen Artikel dazu:

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

Das meiste dort Gezeigte dürfte mit geringen Anpassung auch in FreeBasic laufen (sind nicht einige INKEY$-Tastenstrings etwas anders?).

Alternative, die man in FreeBasic noch zusätzlich hat: Echte Win32-GUI-Programmierung, d.h. die vom Betriebssystem zur Verfügung gestellten Fensterdialogelemente verwenden, so dass sich die komfortable Navigation von selber ergibt, ähnlich dies in HTML bei <FORM> und <INPUT> auch der Fall ist.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 10.11.2006, 17:29    Titel: Antworten mit Zitat

dreael hat Folgendes geschrieben:
(sind nicht einige INKEY$-Tastenstrings etwas anders?).

Ja, sind sie. Alles, was in QB mit CHR(0) begann, muss jetzt CHR(255) lauten.
QB's up_arrow CHR(0) + "H" heißt in freeBASIC also CHR(255) + "H". Ansonsten dürfte sich aber nichts geändert haben.
Achtung nur im GFX-Modus: Ein Klick auf den Schließen-Button liefert CHR(255, 107) züruck, den Code für [ALT] + [F4].
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 10.11.2006, 19:15    Titel: Antworten mit Zitat

Naja, es wird nicht einfach sein, aber InputLn war eigentlich für solche Fälle gedacht und sollte dafür angepaßt werden können..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
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 FreeBASIC. 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