TextEingabe Feld

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: TextEingabe Feld

BeitragSo, März 25, 2007 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, ich habe mir hier mal ein kleines texteingabe feld programmiert, ist es so gut? ( frage an progfis ^^ ) falls nicht wie macht man es besser?

ansonsten habe ich auch noch eine frage sonst würde ich ja hier falsch sein,
man kann mit dem cursor nach rechts und nach links wandern aber schreiben tut er immer nur am ende, und das dürfte ja nicht sein. wie mache ich es nun das er da schreibt wo der cursor gerade ist?

währe echt eine erleichterung wenn jemand den code besser gesatallten kann oder erweitern kann und ihn dann hier zurückposten kann, da ich keinen ausweg mehr weiss.

aber hier der code
Code: [AUSKLAPPEN]
Graphics 800,600,32,2

Global Benutzereingabe$, BenutzereingabeTemp$
Global Befinden=0
Global Maxweite=300/StringWidth("W")

Repeat
   Cls
   Color 255,255,255
   Rect 50,50,300,20,0
   Color 192,192,192
      
   Text 52,53,BenutzereingabeTemp$

   Color 255,0,0
   If Befinden=>Maxweite Then Befinden = Maxweite
   If Befinden=<0 Then Befinden=0
   If Befinden=>Len(BenutzereingabeTemp) Then Befinden=Len(BenutzereingabeTemp)
   Line 50+Befinden*StringWidth("W")+2,48, 50+Befinden*StringWidth("W")+2,74
   
   Eingabe()

   Flip
Until KeyDown(1)
End


Function Eingabe()
   a=GetKey()
   If a<>0 Then
      If a=8 Then
         Benutzereingabe$=Left (Benutzereingabe$,Len(Benutzereingabe)-1)
         Befinden=Befinden-1
         Goto Uberspring
      EndIf

      If a=63234 Then Befinden=Befinden-1 :Goto Uberspring
      If a=63235 Then Befinden=Befinden+1 :Goto Uberspring

      
      Befinden=Befinden+1
      Benutzereingabe$=Benutzereingabe+Chr(a)
      .Uberspring
   EndIf

   ;String umwandeln damit es noch im textfield reinpasst

   If StringWidth (Benutzereingabe)=>300 Then

      ;hier muss nun der string verschoben werden damit man naja was eingeben kann ^^
      For zahl=1 To Len(Benutzereingabe)
         BenutzereingabeTemp$=Right(Benutzereingabe,zahl)
         If StringWidth(BenutzereingabeTemp)>300-StringWidth("W") Then Exit
      Next
      
      
   Else
      BenutzereingabeTemp$=Benutzereingabe$
   EndIf
   
End Function


danke wie immer im voraus

Silver_Knee

BeitragSo, März 25, 2007 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
nimm den text an der stelle auseinander mit dem Code: [AUSKLAPPEN]
mid(BenutzereingabeTemp,0,befinden)
bekommst du das vor dem curser und mit dem Code: [AUSKLAPPEN]
mid(BenutzereingabeTemp,befinden+1)
das was nach dem curder steht damit lässt sich auch das mit dem stringwidth("W") verbessern

Mathias-Kwiatkowski

BeitragSo, März 25, 2007 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
wie soll ich das machen, bei mir funktioniert es nichtmal richtig ^^

TheMatrix

BeitragSo, März 25, 2007 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja ist noch einiges Verbesserungswürdig. Üb nochmal weiter und sie dir mal ein Inputfeld an (Bsp. Html:<input>). Das kann man eigentlich alles nachproggen.
°_° °.° °~° °v° .. -.-

Mathias-Kwiatkowski

BeitragSo, März 25, 2007 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
das man es nachproggen kann weiss ich, die frage ist nur wie wird es vernümpftig gemacht? wie baut man sowas also ganz perfekt auf?

Markus2

BeitragMo, März 26, 2007 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Asyncrone Eingabe Routine
https://www.blitzforum.de/foru...highlight=

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group