Seite 1 von 1

Probleme nach dem Erstellen der Exe ?

Verfasst: 25.06.2007 12:44
von Dark Skillu
Ich hab in der letzten Zeit versucht nen HTML-Editor zu proggen, habe auch schon einige Sachen eingebaut ( interne Vorschau mit Webgadget, zuletzt bearbeitete Datei wird geöffnet ...), funktioniert auch soweit wenn ich den Code im Editor teste , aber nachdem ich die exe erstellt habe gibt es probleme damit das Programm zu schließen, also ich brauche mehrere Klicks auf X und das Menü will auch nicht wie ich will sowie die Shortcuts funktionieren auch erst nach mehrmaligem Drücken ... Woran liegt das?

Code: Alles auswählen

;coded By DarkSkillu

Enumeration
 #Window
 #Editor_Gadget
 #New
 #Open
 #Save
 #Save_as
 #Quit
 #About
 #Text_Gadget
 #Vorschau
 #Window_2
 #Web_Gadget
EndEnumeration

Procedure Open_Window()
If OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 600, 309, "EasyEdit by DarkSkillu", #PB_Window_SystemMenu | #PB_Window_TitleBar ) And CreateMenu(1, WindowID(#Window)) And CreateGadgetList(WindowID(#Window))
    EditorGadget(#Editor_Gadget, 20, 30, 550, 240)
    TextGadget(#Text_Gadget,20,272,40,40,update$)
    SendMessage_(GadgetID(#Editor_Gadget), #EM_SETLIMITTEXT,10000, #Null)
    SendMessage_(GadgetID(#Editor_Gadget),#EM_SETTARGETDEVICE, #Null, #False)
 EndIf
 
 MenuTitle("Datei")
 MenuItem(#New, "Neu")
 MenuItem(#Open, "Öffnen                        Strg+O")
 MenuItem(#Save, "Speichern                    Strg+S")
 MenuItem(#Save_as, "Speichern als")
 MenuItem(#Vorschau, "Vorschau                      F5")
 MenuItem(#Quit, "Programm beenden ...")
 MenuTitle("?")
 MenuItem(#About, "Info")
 EndProcedure
 

Open_Window()

AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_S, #Save)
AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_O, #Open)
AddKeyboardShortcut(0, #PB_Shortcut_F5, #Vorschau)
AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_N, #New)




If ReadFile(0,"history.txt")
history_1$ = ReadString(0)
CloseFile(0)
EndIf

If ReadFile(0, history_1$)
Repeat
AddGadgetItem(#Editor_Gadget, -1, ReadString(0)) 
Until Loc(0) = Lof(0)
CloseFile(0)
Else
MessageRequester("Error","History File konnte nicht geöffnet werden oder es wurde keine Datei bisher bearbeitet ...")
EndIf

Repeat

Event= WaitWindowEvent()

Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          Select EventWindow()
            Case #Window
             quit=1
            Case #Window_2
              CloseWindow(#Window_2)
          EndSelect
EndSelect
  
Select Event
Case #PB_Event_Menu
Select EventMenu()

Case #Quit
quit=1

Case #Open

Openfilename$ = OpenFileRequester("HTML Datei Öffnen", "index.html", "HTML (*.html)|*.html;|Alle Dateien (*.*)|*.*", 0)

If ReadFile(0, Openfilename$)
Repeat
AddGadgetItem(#Editor_Gadget, -1, ReadString(0)) 
Until Loc(0) = Lof(0)
CloseFile(0)
EndIf


Case #Save_as
save$ = GetGadgetText(#Editor_Gadget)
Savefilename$ = SaveFileRequester("HTML Datei speichern", "index.html", "HTML (*.html)|*.html;|Alle Dateien (*.*)|*.*", 0)
If Savefilename$ <> "" 
If CreateFile(0, Savefilename$)
WriteString(0, save$ )
CloseFile(0)
EndIf
EndIf

Case #New
SetGadgetText(#Editor_Gadget,"")


Case #Vorschau


save$ = GetGadgetText(#Editor_Gadget)
If CreateFile(0, "vorschau.html")
WriteString(0, save$ )
CloseFile(0)
EndIf

If OpenWindow(#Window_2, #PB_Ignore, #PB_Ignore, 760, 457, "Vorschau",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) And CreateGadgetList(WindowID(#Window_2))
   WebGadget(#Web_Gadget, 10, 10, 740, 440, "file://C:\Dokumente und Einstellungen\Sebastian\Desktop\Vorschau.html")
EndIf
 

history$ = Openfilename$
history$ = Savefilename$


EndSelect
EndSelect

Until quit=1

history$ = Openfilename$
history$ = Savefilename$
 
If history$ = ""

Else

If CreateFile(0,"history.txt")
WriteString(0,history$)
CloseFile(0)
Else
MessageRequester("Error","History File konnte nicht erstellt werden ...")
EndIf
EndIf
Schonmal Danke für eure Antworten ...

Gruß DarkSkillu

Re: Probleme nach dem Erstellen der Exe ?

Verfasst: 25.06.2007 13:07
von Kiffi
Dark Skillu hat geschrieben:Woran liegt das?
daran:

Code: Alles auswählen

Event= WaitWindowEvent()
Select WaitWindowEvent() 
Grüße ... Kiffi

Verfasst: 25.06.2007 13:11
von Hartmut
Hi,

was ich so auf die Schnelle sehe ist :

Für #Save_as ist der Shortcut nicht eingerichtet.
Für #Save ist er zwar eingerichtet, wird aber nicht abgefragt in der Hauptschleife.

Das Problem, dass das Hauptfenster bei X nicht schließt, habe ich auch, wenn man keine eigene exe erstellt - liegt also vermutlich an der Art, wie du die Windows-Events abarbeitest.
(EDIT : Ooops - Kiffi war schneller :allright:)

Rück doch mal alle deine Schleifen und Select-Strukturen ein, dann sieht man schon klarer.

Gruß : Hartmut

Verfasst: 25.06.2007 13:17
von Kiffi
Hartmut hat geschrieben:(EDIT : Ooops - Kiffi war schneller :allright:)
"also ich brauche mehrere Klicks auf X und das Menü will auch nicht wie ich will"

... riecht immer nach mehrfach verwendeten (Wait)WindowEvent().
Demzufolge wusste ich ziemlich schnell, wonach ich schauen musste ;-)

Grüße ... Kiffi

Verfasst: 25.06.2007 15:00
von Dark Skillu
Danke Kiffi funktioniert jetzt, ich habe mehrere Event Schleifen, ich habe aber keine Ahung wie ich alles in eine Schleife packen könnte. Habe die ganzen Shortcuts noch nicht definiert ...

Verfasst: 25.06.2007 15:25
von Kiffi
Dark Skillu hat geschrieben:ich habe aber keine Ahung wie ich alles in eine Schleife packen könnte.
Du fragst WaitWindowEvent() einmal ab und speicherst das Ergebnis in
eine Variable. Diese kannst Du dann beliebig oft abfragen.

Code: Alles auswählen

WWE = WaitWindowEvent()
Select WWE
 [...]
Grüße ... Kiffi

Verfasst: 25.06.2007 18:08
von Dark Skillu
Also

Code: Alles auswählen

WWE = WaitWindowEvent()
Select WWE
Case #PB_Event_Gadget
Select EventGadget()
.
.
.
Case #PB_Event_Menu
Select EventMenu()

 [...]
??

Verfasst: 25.06.2007 20:28
von Kiffi
Dark Skillu hat geschrieben:??
yupp! :allright:

Grüße ... Kiffi

Verfasst: 25.06.2007 21:25
von Dark Skillu
Ok werde ich mal ausprobieren habe grtade eh nich viel zu tun da ich nur noch probleme mitm Internet habe ... kann ads sein , dass manche Spiele nicht im internet funktioniern wenn die Verbindung nur "niedrig" ist?