Probleme nach dem Erstellen der Exe ?

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

Probleme nach dem Erstellen der Exe ?

Beitrag 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
Ich benutze PureBasic 4.0.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Probleme nach dem Erstellen der Exe ?

Beitrag von Kiffi »

Dark Skillu hat geschrieben:Woran liegt das?
daran:

Code: Alles auswählen

Event= WaitWindowEvent()
Select WaitWindowEvent() 
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Hartmut
Beiträge: 56
Registriert: 15.09.2006 22:22
Kontaktdaten:

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag 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 ...
Ich benutze PureBasic 4.0.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

Also

Code: Alles auswählen

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

 [...]
??
Ich benutze PureBasic 4.0.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Dark Skillu hat geschrieben:??
yupp! :allright:

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag 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?
Ich benutze PureBasic 4.0.
Antworten