Auslesen einer Stringvariablen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ironsmurf
Beiträge: 111
Registriert: 04.01.2006 12:57
Computerausstattung: AMD FX(tm)-6300 Six-Core Processor
3.50 GHz / 8 GB Ram
Windows 7 / 64bit / Ultimate
Purebasic 5.20 LTS (Windows - x86)
Wohnort: Deutschland

Auslesen einer Stringvariablen

Beitrag von Ironsmurf »

Hallo zusammen
BOBOBO war so nett mir ein Beispielprogramm für ein Chat Fenster zu geben. Leider sind bis jetzt alle Versuche fehl geschlagen, den Inhalt der Textvariablen zu ermitteln, die brauceh ich aber um eine if else schreiben zu können, wer ist so nett und schaut sich die Sache mal an.

Code: Alles auswählen

Enumeration 
    #Window_0 
    #LVIEW_0 
    #Eingabe
    #Key_Return 
    #Key_Escape
   EndEnumeration

If OpenWindow(#Window_0, 246, 14, 600, 600,  #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_TitleBar , "MAX - Der Butler") 
    If CreateGadgetList(WindowID()) 
        ListViewGadget(#LVIEW_0,5,5,585,555)
          StringGadget(#PB_Font_Bold |  #Eingabe, 5, 570, 585, 20, "") 
    EndIf
    AddKeyboardShortcut(#Window_0,#PB_Shortcut_Return,#Key_Return) 
    AddKeyboardShortcut(#Window_0,#PB_Shortcut_Escape,#Key_Escape) 
    For c = 0 To 500  ; 500 Einträge eintragen zum Nach-Unten-Schieben 
        AddGadgetItem(#LVIEW_0,c," ") 
    Next c 
EndIf 
Repeat 
    ActivateGadget(#PB_Font_Bold | #Eingabe)
    ;text$ = #Eingabe ; Fehlerhafte Zeile
    Event = WaitWindowEvent() 
    If EventMenuID()=#Key_Return
      SetGadgetFont(1, LoadFont(0, "Times New Roman", 14, #PB_Font_Bold)) 
        AddGadgetItem(#LVIEW_0,-1,GetGadgetText(#PB_Font_Bold |  #Eingabe)) 
        SetGadgetState(#LVIEW_0,CountGadgetItems(#LVIEW_0)-1) 
        SetGadgetState(#LVIEW_0,-1)
        SetGadgetText(#PB_Font_Bold | #Eingabe,"") 
    EndIf 
    If EventMenuID()=#Key_Escape 
        End 
    EndIf
    
    Debug #Eingabe ; auslesen der Variablen ergibt immer nur zahlen    
Until Event = #PB_Event_CloseWindow 
End 

Vielen Dank
Es kommt immer auf die Sichtweise des Betrachters an.
Jake
Beiträge: 121
Registriert: 28.05.2005 04:10
Wohnort: Berlin

Beitrag von Jake »

Code: Alles auswählen

Enumeration
    #Window_0
    #LVIEW_0
    #Eingabe
    #Key_Return
    #Key_Escape
   EndEnumeration

If OpenWindow(#Window_0, 246, 14, 600, 600,  #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_TitleBar , "MAX - Der Butler")
    If CreateGadgetList(WindowID())
        ListViewGadget(#LVIEW_0,5,5,585,555)
          StringGadget(#Eingabe, 5, 570, 585, 20, "")
    EndIf
    AddKeyboardShortcut(#Window_0,#PB_Shortcut_Return,#Key_Return)
    AddKeyboardShortcut(#Window_0,#PB_Shortcut_Escape,#Key_Escape)
    For c = 0 To 500  ; 500 Einträge eintragen zum Nach-Unten-Schieben
        AddGadgetItem(#LVIEW_0,c," ")
    Next c
EndIf
Repeat
    ActivateGadget(#Eingabe)
    text$ = GetGadgetText(#Eingabe)
    Event = WaitWindowEvent()
    If EventMenuID()=#Key_Return
      SetGadgetFont(1, LoadFont(0, "Times New Roman", 14, #PB_Font_Bold))
        AddGadgetItem(#LVIEW_0,-1,GetGadgetText(#Eingabe))
        SetGadgetState(#LVIEW_0,CountGadgetItems(#LVIEW_0)-1)
        SetGadgetState(#LVIEW_0,-1)
        SetGadgetText(#Eingabe,"")
    EndIf
    If EventMenuID()=#Key_Escape
        End
    EndIf
   
    Debug text$
Until Event = #PB_Event_CloseWindow
End
Das geht nicht, wenn du Flags angibst dann auch da wo die Flags hin kommen. Außerdem geht #PB_Font_Bold beim StringGadget nicht, da mußt du die Schrift vorher ändern.

Code: Alles auswählen

#PB_Font_Bold |  #Eingabe
Wenn du den Text schon in eine Variable schreibst (text$) dann muß du diese auch bei Debug angeben.

Code: Alles auswählen

Debug #Eingabe
Das gibt dir nur die Konstante zurück die in der Enumeration #Eingabe zugewiesen wurde.
Also entweder so:

Code: Alles auswählen

Debug text$
oder so:

Code: Alles auswählen

Debug GetGadgetText(#Eingabe)
MfG Jake
Antworten