Seite 3 von 3

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 07.11.2010 00:18
von PB42
Doch, Clausth... ist auch gut :D

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 07.11.2010 10:19
von DarkDragon
Mach mal

Code: Alles auswählen

Debug GetCurrentDirectory()
irgendwohin. Dort muss dann der Ordner "Daten" existieren. Wenn du den Ordner woanders haben willst kannst du in den Compiler-Optionen das Arbeitsverzeichnis festlegen und/oder "Temporäre Executable im Quelltextverzeichnis erstellen" anklicken.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 07.11.2010 11:35
von PB42
Danke für den Tip, aber ich weiß ja, wo der Ordner "Daten" ist und letztenendes war das Problem ja auch gelöst. Aber dann kam der Hammer, daß ich das Editorgadget nichtmal ordentlich editieren konnte, nur weil die Returntaste als AddKeyboardshortcut für den Enterbutton verwendet wird. Den shortcut wollte ich aber nicht aufgeben und deshalb habe ich gestern abend kurzen Prozess gemacht und die Sache mit dem Editorgadget komplett rausgeworfen. Ist noch nie vorgekommen, daß ich bei einem Programmierproblem die Brocken einfach hinschmeiße.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 07.11.2010 13:18
von DarkDragon
PB42 hat geschrieben:Danke für den Tip, aber ich weiß ja, wo der Ordner "Daten" ist
Jo sorry, hab leider erst jetzt gemerkt dass dieses Thema mehrseitig ist und nur die erste Seite gelesen. Da hörte es sich ganz danach an als ob du im falschen Verzeichnis die EXE startest.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 07.11.2010 13:21
von HeX0R
PB42 hat geschrieben:Ist noch nie vorgekommen, daß ich bei einem Programmierproblem die Brocken einfach hinschmeiße.
Naja, das kam ja irgendwie mit Ankündigung, wenn man sich diesen Thread so durchliest.
Das einzige Problem bei deiner Aufgabenstellung ist wohl, dass das EditorGadget das EventType() nicht unterstützt.
Deswegen "ging dein RemoveKeyboardShortcut" auch nicht (besser: es wurde einfach nie aufgerufen).

Du hast auch nie verraten, wieso deine Datei denn "plötzlich" doch korrekt beschrieben wurde,
da liegt doch die Vermutung nahe, dass du da doch was falsch gemacht hattest?

Falls du mit einer Windows-Only-Variante leben kannst:

Code: Alles auswählen

OpenWindow(0, 0, 0, 300, 270, "", #PB_Window_SystemMenu)
EditorGadget(0, 5, 5, 290, 230)
StringGadget(1, 5, 240, 225, 22, "")
ButtonGadget(2, 235, 240, 60, 22, "Senden")

Repeat
	Select WaitWindowEvent()
		Case #PB_Event_CloseWindow
			Break
		Case #WM_CHAR
			If EventwParam() = 13
				If GetActiveGadget() <> 0
					AddGadgetItem(0, -1, GetGadgetText(1))
					SetGadgetText(1, "")
				EndIf
			EndIf
	EndSelect
ForEver

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 07.11.2010 17:25
von PureLust
PB42 hat geschrieben:RemoveKeyboardShortcut() bewirtkt GAR NICHTS, DAS ist die Wahrheit!!!
Waren vielleicht doch ein paar Bier zuviel. ;)

Kiffi lag (meiner Meinung nach) mit RemoveKeyboardShortcut() schon richtig.
Das Problem ist halt, das PB (mal wieder /:-> ) diverse Events nicht sauber durchreicht und man beim EditorGadget keinen #PB_EventType_Focus und #PB_EventType_LostFocus bekommt.

Wenn Du jedoch einfach das aktuell aktive Gadget abfragst, kannst Du Dir das zur Not ja auch leicht selber basteln und Kiffis Vorschlag mit RemoveKeyboardShortcut() funktioniert dann genau so wie Du's wolltest:

Code: Alles auswählen

OpenWindow(0, 0, 0, 300, 270, "", #PB_Window_SystemMenu)
EditorGadget(0, 5, 5, 290, 230)
StringGadget(1, 5, 240, 225, 22, "")
ButtonGadget(2, 235, 240, 60, 22, "Senden",#PB_Button_Default)

AddKeyboardShortcut(0,#PB_Shortcut_Return,2)
ReturnShortCutActive = #True

Repeat
  Event = WaitWindowEvent()
  
  ; ---- Hier der eigentlich wichtige Teil.
  
  If GetActiveGadget() <> 0
    If Not ReturnShortCutActive
      AddKeyboardShortcut(0,#PB_Shortcut_Return,2)
      ReturnShortCutActive = #True
    EndIf
  Else
    If ReturnShortCutActive
      RemoveKeyboardShortcut(0,#PB_Shortcut_Return)
      ReturnShortCutActive = #False
    EndIf
  EndIf
  
  ; -----
  
  Select Event
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 2
          Select EventType()
            Case #PB_EventType_LeftClick
              Debug "'Senden' wurde ausgelöst."
          EndSelect
      EndSelect
    Case #PB_Event_Menu
      Select EventMenu()
        Case 2
          Debug "'Senden' wurde ausgelöst."
      EndSelect
  EndSelect
ForEver
Gruß, PL.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 07.11.2010 18:24
von PB42
Vielen Dank auch für die letzten beiden Beiträge. Die werde ich abspeichern und später darauf zurückkommen, falls ich doch nochmal die Sache mit dem Editorgadget versuche.