Strings ...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

Kiffi hat geschrieben:@DarkSkillu:

Da! Ich habe den Fehler in Deinem Code gefunden:

Code: Alles auswählen

;coded by DarkSkillu
;Copyright (c) 2007 
stimmt nicht ganz. Da müsste eher sowas wie folgt stehen

Code: Alles auswählen

;Programmiert (mit Unterstützung) von Kaeru Gaman, PureBasic4.0, TomS, ts-soft
;Zusammengestellt und leider nicht verstanden von DarkSkillu (HeXOR hat's geahnt)
;-)

Im Ernst und auch wirklich nicht böse gemeint: Anhand Deiner Fragen
kann man erkennen, dass Du die elementaren Funktionsweisen "Deines"
Codes nicht verstanden hast.

Mein ernsthaft gut gemeinter Rat: Bevor Du Dich jetzt an eine Erweiterung
des Codes machst, würde ich an Deiner Stelle erst einmal versuchen, zu
verstehen, was der Code überhaupt macht.

Grüße ... Kiffi
Meiner Meinung ist es böse gemeint ... schau dir mal deinen avatar an
Ich benutze PureBasic 4.0.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

reg dich mal ab.

wenn Kiffi extra noch hinschreibt, es ist nicht böse gemeint, dann kannst du ihm das glauben.

(was meinst du, wie das aussieht, wenn Kiffi oder ich was böse meinen...) ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

ich hab mir mal in der hilfe setgadgettext() angeschaut und mal kains code verändert und versucht den inhalt des strings in einem gadget anzeigen zu lassen. Ist der Code soweit richtig?Er funktioniert jedenfalls :) Den messageRequester kann doch weggelassen werden oder?Der inhalt des Gadgets wird trotzdem im string gespeichert oder?

Code: Alles auswählen

If OpenWindow(0,0,0,100,100,"Fenstertitel", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar) ;Öffnen eines Fensters dessen Flag es in die Mitte des Bildschirmes derstellt
  If CreateGadgetList(WindowID(0))
    StringGadget(1,0,0,100,20,"Text")
    ButtonGadget(2,0,20,100,20,"Button Text")
    TextGadget(3,0,40,100,20,"Button Text")
    ButtonGadget(4,0,60,100,20,"Button Text")
    ButtonGadget(5,0,80,100,20,"Beenden")
    
  EndIf
EndIf
Repeat ;Startet die Schleife
  Event = WindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()
 
  If Event = #PB_Event_Gadget ;fragt ab ob ein Eventgeplant ist
    If GadgetID = 2 ; Fragt ab ob der Button gedrückt wurde
      String$ = GetGadgetText(1) ; Speichert den Inhalt vom StringGadget ind einem String$
      MessageRequester("Ausgabe", String$) ; Gibt eine Naricht aus mit dem Inhalt des srtings
    EndIf
 EndIf
 
 If Event = #PB_Event_Gadget ;fragt ab ob ein Eventgeplant ist
 If GadgetID = 4 ; Fragt ab ob der Button gedrückt wurde
 SetGadgetText(3, String$) 
 EndIf
 EndIf
 
 If Event = #PB_Event_Gadget ;fragt ab ob ein Eventgeplant ist
 If GadgetID = 5 ; Fragt ab ob der Button gedrückt wurde
 a=1
 EndIf
 EndIf
 
Until a = 1 ; Beendet die Schleife mit der Bedingung das die Variabel "a" gleich 1 ist.
End ; Beendet die Anwendung
Ich benutze PureBasic 4.0.
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

Ich hab hier einen kleinen Code geschrieben und man kann über die buttons verschiedene strings in das editorgadget einfügen, das problem dabei ist das alles im editor gadget überschrieben wird.Ich würde gerne den Inhalt des strings nach dem letzten zeichen des editorgadgets einfügen. Wie schaffe ich das?

Code: Alles auswählen

;strings
Hallo$ = "Hallo"
Halllo$ = "Halllo"


If OpenWindow(0, 45, 100, 570, 300, "Tab 4", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget) And CreateGadgetList(WindowID(0))
  
        EditorGadget(1, 30, 90, 510, 180)
        ButtonGadget(2, 30,  45, 60, 30, "1")
        ButtonGadget(3, 105, 45, 60, 30, "2")
        ButtonGadget(4, 180, 45, 60, 30, "3")
        ButtonGadget(5, 255, 45, 60, 30, "4")
        ButtonGadget(6, 330, 45, 60, 30, "5")
        ButtonGadget(7, 405, 45, 60, 30, "6")
        ButtonGadget(8, 480, 45, 60, 30, "7")
        
EndIf

Repeat

Event = WindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()

  If Event = #PB_Event_CloseWindow
   a=1
  EndIf
  
  If Event = #PB_Event_Gadget ;fragt ab ob ein Eventgeplant ist
   If GadgetID = 2 ; Fragt ab ob der Button gedrückt wurde
     SetGadgetText(1, Hallo$) 
   EndIf
  EndIf
  
  If Event = #PB_Event_Gadget ;fragt ab ob ein Eventgeplant ist
   If GadgetID = 3 ; Fragt ab ob der Button gedrückt wurde
     SetGadgetText(1, Halllo$) 
   EndIf
  EndIf

Until a = 1
Ich benutze PureBasic 4.0.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Du musst natürlich erst den bestehenden Inhalt irgendwo zwischenspeichern. Ich denke GetGagdetText() eignet sich ganz gut! :allright:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

Hab ich das richtig verstanden: Wenn der Button gedrückt wird der jetzige text im editorgadget in nem string gespeichert und der andere string zusammen mit dem bestehenden Inhalt eingefügt ? Kann man dafür benutzen
Ich benutze PureBasic 4.0.
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

Ich hab das jetzt so versucht aber funktioniert noch nicht :(

Code: Alles auswählen

;strings
Hallo$ = "Hallo"
Halllo$ = "Halllo"



If OpenWindow(0, 45, 100, 570, 300, "Tab 4", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget) And CreateGadgetList(WindowID(0))
  
        EditorGadget(1, 30, 90, 510, 180)
        ButtonGadget(2, 30,  45, 60, 30, "1")
        ButtonGadget(3, 105, 45, 60, 30, "2")
        ButtonGadget(4, 180, 45, 60, 30, "3")
        ButtonGadget(5, 255, 45, 60, 30, "4")
        ButtonGadget(6, 330, 45, 60, 30, "5")
        ButtonGadget(7, 405, 45, 60, 30, "6")
        ButtonGadget(8, 480, 45, 60, 30, "7")
        
EndIf

Repeat

Event = WindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()

  If Event = #PB_Event_CloseWindow
   a=1
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 2 
        String$ = GetGadgetText(1)
     SetGadgetText(1, Hallo$) And SetGadgetText(1, String$)
   EndIf
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 3 
     SetGadgetText(1, Halllo$) 
   EndIf
  EndIf

Until a = 1
Ich benutze PureBasic 4.0.
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

Vielen Dank für die Hilfe habs schon selbst gelöst:

Code: Alles auswählen

;strings
Hallo$ = " Hallo"
Halllo$ = "Halllo"



If OpenWindow(0, 45, 100, 570, 300, "Tab 4", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget) And CreateGadgetList(WindowID(0))
  
        EditorGadget(1, 30, 90, 510, 180)
        ButtonGadget(2, 30,  45, 60, 30, "1")
        ButtonGadget(3, 105, 45, 60, 30, "2")
        ButtonGadget(4, 180, 45, 60, 30, "3")
        ButtonGadget(5, 255, 45, 60, 30, "4")
        ButtonGadget(6, 330, 45, 60, 30, "5")
        ButtonGadget(7, 405, 45, 60, 30, "6")
        ButtonGadget(8, 480, 45, 60, 30, "7")
        
EndIf

Repeat

Event = WindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()

  If Event = #PB_Event_CloseWindow
   a=1
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 2 
        String$ = GetGadgetText(1)
     SetGadgetText(1, String$+Hallo$) 
   EndIf
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 3 
     SetGadgetText(1, Halllo$) 
   EndIf
  EndIf

Until a = 1
Zuletzt geändert von Dark Skillu am 26.04.2007 17:53, insgesamt 1-mal geändert.
Ich benutze PureBasic 4.0.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

bitte keine Doppel- oder Dreifachpostings. Es gibt dafür einen Edit-Button,
mit dem man seine Beiträge ändern kann.
a²+b²=mc²
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

so intelligent bin ich auch :wink: habs aber vergessen sorry
ich hab jetzt mit eurer hilfe nen kleinen texteditor programmiert, der aber nur eine vordefinierte textdatei öffnen und speichern kann, wie schaffe ich es eine andere datei zu öffnen oder einen anderen namen für die zu speichernde datei auszuwählen?Explorer Gadget?Hab absolut keine ahnung wie ich das realisieren kann:

Code: Alles auswählen

;coded by DarkSkillu
;Vielen Dank an die Mitglieder des PureBoards für ihre Hilfe

;strings
Hallo$ = " Hallo"
Halllo$ = " Halllo"



If OpenWindow(0, 45, 100, 570, 300, "Texteditor by DarkSkillu ", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget) And CreateGadgetList(WindowID(0))
  
        Editor(1, 30,  90, 510, 180 , )
        ButtonGadget(2, 30,  45, 60, 30, "1")
        ButtonGadget(3, 105, 45, 60, 30, "2")
        ButtonGadget(4, 180, 45, 60, 30, "3")
        ButtonGadget(5, 255, 45, 60, 30, "4")
        ButtonGadget(6, 330, 45, 60, 30, "5")
        ButtonGadget(7, 405, 45, 60, 30, "Öffnen")
        ButtonGadget(8, 480, 45, 60, 30, "Speichern")
        
EndIf

Repeat

Event = WindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()

  If Event = #PB_Event_CloseWindow
   a=1
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 2 
        String$ = GetGadgetText(1)
     SetGadgetText(1, String$+Hallo$) 
   EndIf
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 3 
     String$ = GetGadgetText(1)
     SetGadgetText(1, String$+Halllo$) 
   EndIf
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 7 
     speichern$ = GetGadgetText(1)
      OpenFile(0,"text.txt")
      oeffnen$=ReadString(0)
      SetGadgetText(1, oeffnen$) 
      CloseFile(0)
      
      
   EndIf
  EndIf
  
  If Event = #PB_Event_Gadget 
   If GadgetID = 8 
     speichern$ = GetGadgetText(1)
      CreateFile(0,"text.txt")
       WriteString(0, speichern$ )
      CloseFile(0)
   EndIf
  EndIf
  
  

Until a = 1
Ich benutze PureBasic 4.0.
Antworten