RAD EventDesigner V3

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

RAD EventDesigner V3

Beitrag von mk-soft »

Rapid Application Development - Event Designer V3

Da der Original-Code schon sehr alt ist, schreibe ich gerade diesen komplett neu um besseren und flexibleren Event-Codes zu erstellen.
Nur die Oberfläche habe ich übernommen.

Auf meinen Server liegen die Versionen für Window, Linux und macOS bereit

Link: Projekt EventDesigner V3 (Release)

Info MacOS. Mit Safari kann man FTP-Ordner leider nicht mehr öffnen. Auf einen anderen Browser ausweichen.
Mit der neuen Version wird jedes Formular eine eigene Event-Datei haben.
Eine nachträgliche Änderung oder Erweiterung der Formulardateien ist möglich. Nach dem Ändern der Formulardatei rufen Sie EventDesigner erneut auf.
Werden die Konstanten der Originalformulardatei geändert, erscheinen die Dialogfenster zur Zuordnung der alten Konstanten zu den neuen Konstanten.

Erstellen Sie mehrere Forms.pbf mit dem PureBasic FormDesigner ohne PB_Any und ohne Ereignisprozeduren und fügen Sie diese dem EventDesigner hinzu.
Nach erfolgreicher Erstellung der Ereigniscodes sind die folgenden Daten bereit.

- GuiCommonFile.pb
- GuiMainFile.pb
- GuiEventMainFile.pb
- GuiEvent[Formular].pb

* Die Option Bilder kopieren kopiert die Dateien in den Ordner [ProjectPath]/Resources.
* Mit macOS in den Ordner[ProjectPath]/MyAppData/Resources kopiert.

! macOS:
! Damit die Ressourcen zur Laufzeit in der APP zur Verfügung stehen, benötigen Sie das MacOS IDE-Tool MyAppData.
! Der für das Werkzeug erforderliche Code kann unter dem Menüpunkt Werkzeuge gespeichert werden.
Aufbau der Form-Datei ohne den FormDesigner von Purebasic

Code: Alles auswählen

;-TOP

; Enumeration not used

LoadFont(#Constant, ...)

Use[XY]ImageDecoder()

LoadImage(#Constant, ...)

; ----

;{ Begin : This always in the same form file

Procedure Open[Window_Constant]()
  If OpenWindow(#Window_Constant, ...)
    ; ...
  EndIf
EndProcedure

; ----

Procedure ResizeGadgets[Window_Constant]()
  ; ...
EndProcedure

;} End

; ----

Procedure InitPopupMenu()
  If CreatePopupImageMenu(#Popup_Constant[, ...]) 
    ; ...
  EndIf
EndProcedure : InitPopupMenu() ; On same line

; ----

Procedure [Others]()
  UseGadgetList(WindowID(#Window_Constant))
  ; ...
EndProcedure

Zuletzt geändert von mk-soft am 15.09.2019 12:23, insgesamt 10-mal geändert.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Projekt EventDesigner V3 (Alpha)

Beitrag von mk-soft »

Version v3.00 (Alpha 2
- Bugfixes
- Add Option Copy Images

* Mit der Option Copy Images werden die Dateien in den Ordner [ProjectPath]/Resources kopiert.
* Bei macOS in den Ordner [ProjectPath]/MyAppData/Resources kopiert

! macOS:
! Damit die Resources zur Laufzeit in der APP vorhanden sind, benötigt man noch das MacOS IDE-Tool MyAppData.
! Der erforderlichen Code für das Tool kann unter Menu Tools gespeichert werden.
Zuletzt geändert von mk-soft am 02.09.2019 23:31, insgesamt 1-mal geändert.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Projekt EventDesigner V3 (Alpha)

Beitrag von mk-soft »

Update v3.01 (Beta)
- Erste Beta Version

Link: FTP - EventDesigner V3
Info MacOS. Mit Safari kann man FTP-Ordner leider nicht mehr öffnen. Auf einen anderen Browser ausweichen.

Suche Beta Tester!

Mit der neuen Version wird für jede Form eine eigene Event-Datei stellt
Ein nachträgliches ändern oder erweitern der Form-Dateien ist möglich. Nach Änderung der Form-Datei den EventDesigner erneut aufrufen.

Mit den FormDesigner von PureBasic ohne PB_Any und ohne Event-Prozeduren mehrere Forms.pbf erstellen und diese zum EventDesigner hinzufügen.
Nach erfolgreichen erstellen der Event-Codes stehen folgende Daten bereit.

- GuiCommonFile.pb
- GuiMainFile.pb
- GuiEventMainFile.pb
- GuiEvent[Form].pb

Danke :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Projekt EventDesigner V3 (Beta)

Beitrag von mk-soft »

Update v3.01 (Beta 2)
- Bugfixes
- Auswertung von externen Prozeduren überarbeitet

Beispiel:
- Hinzufügen von PopupMenus zum Event-Management.

Der Code wird automatisch zum GuiCommonFile.pb angepasst hinzugefügt.

Code: Alles auswählen

;-TOP

; File: FormPopupMenus.pb

Procedure InitPopupMenu1()
 If CreatePopupImageMenu(#Popup1, #PB_Menu_ModernLook) 
    MenuItem(#Open, "Open")
    MenuItem(#Save, "Save")
    MenuItem(#SaveAs, "Save as")
    MenuItem(#Quit, "Quit")
    MenuBar()
    OpenSubMenu("Recent files")
    MenuItem(#SubMenu1, "PureBasic.exe")
    MenuItem(#SubMenu2, "Info.txt")
    CloseSubMenu()
  EndIf
EndProcedure : InitPopupMenu1()

Procedure InitPopupMenu2()
 If CreatePopupImageMenu(#Popup2, #PB_Menu_ModernLook) 
    MenuItem(#Open, "Open")
    MenuItem(#Save, "Save")
    MenuItem(#SaveAs, "Save as")
    MenuItem(#Quit, "Quit")
  EndIf
EndProcedure : InitPopupMenu2()
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
matbal
Beiträge: 246
Registriert: 30.03.2011 20:53

Re: Projekt EventDesigner V3 (Beta)

Beitrag von matbal »

Die Windows-Versionen scheinen noch nicht zu funktionieren.

Zum Testen habe ich zwei PBF-Dateien erstellt. Wenn ich auf "Start" klicke, kommt das Fenster "Save Project". Wenn ich dann auf speichern klicke, wird zwar im LOG-Bereich allerhand ausgegeben, aber es werden keine Dateien geschrieben, außer der Projekt-Datei.

Die letzten Zeilen im LOG lauten:
Copy old Files...
! - Error CopyDirectory
Cancel.
Eine Project.XML wird erstellt und ein Backup-Verzeichnis. Meine beiden PBF-Dateien sind danach blockiert; sie sind wahrscheinlich vom Eventdesigner noch geöffnet. Ich kann jedenfalls mit keinem Programm mehr auf die beiden PBF-Dateien zugreifen, bis ich den Eventdesigner geschlossen habe.

Ich weiß nicht welche Infos du noch brauchen könntest? Der LOG-Text läßt sich leider nicht kopieren. Mein Betriebssystem ist Win10 64bit.

---

Die MacOS-Version habe ich auch ausprobiert. Mit den gleichen PBF-Dateien. Hier hat alles funktioniert.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Projekt EventDesigner V3 (Beta)

Beitrag von mk-soft »

Update v3.04
- Bugfixes

Habe CloseFile(...) vergessen. :wink:

Bei mir unter macOS 1.14.6 ist es nicht aufgefallen?

Der PB-Editor bekommt manchmal nicht mit das die Dateien sich geändert haben... ?!
Habe lange nach dem Fehler gesucht, warum die Änderung der Datei nicht richtig übersetzt waren :|
Also besser die Dateien vorher schliessen.

Update v3.05
- Info hinzugefügt
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
matbal
Beiträge: 246
Registriert: 30.03.2011 20:53

Re: RAD EventDesigner V3

Beitrag von matbal »

Die Dateien werden jetzt erzeugt.

Unter Windows gibt es noch immer Probleme mit dem Resize-Code. Ich habe gesehen, daß du schon mit Macros ResizeGadget ersetzt hast. Aber aus irgendwelchen Gründen gibt es manchmal trotzdem noch Fehler.

Ich habe den Code für eine Form soweit reduzieren können:

Code: Alles auswählen

Enumeration FormWindow
  #Form1
EndEnumeration

Enumeration FormGadget
  #Panel
  #Editor
EndEnumeration

Declare ResizeGadgetsForm1()


Procedure OpenForm1(x = 0, y = 0, width = 600, height = 400)
  OpenWindow(#Form1, x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
  CreateMenu(0, WindowID(#Form1))
  MenuTitle("MenuTitle")
  PanelGadget(#Panel, 10, 5, 580, 305)
  AddGadgetItem(#Panel, -1, "Tab 1")
  EditorGadget(#Editor, 10, 13, 560, 230)
  CloseGadgetList()
EndProcedure

Procedure ResizeGadgetsForm1()
  Protected FormWindowWidth, FormWindowHeight
  FormWindowWidth = WindowWidth(#Form1)
  FormWindowHeight = WindowHeight(#Form1)
  ResizeGadget(#Panel, 10, 5, FormWindowWidth - 20, FormWindowHeight - MenuHeight() - 73)
  ResizeGadget(#Editor, 10, 13, GetGadgetAttribute(#Panel,#PB_Panel_ItemWidth) - 20, GetGadgetAttribute(#Panel,#PB_Panel_ItemHeight) - 53)
EndProcedure
Das ist die Fehlermeldung:
[20:42:22] [ERROR] GuiCommonFile.pb (Zeile: 54)
[20:42:22] [ERROR] Das angegebene #Gadget ist nicht initialisiert.
Den Fehler gibt es nicht, wenn ich das Menü entferne. Den Fehler gibt es nur unter Windows. Unter macOS läuft alles.

Ach, noch ein anderer Fehler. Dein Tool behandelt Umlaute nicht richtig.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: RAD EventDesigner V3

Beitrag von mk-soft »

Update v3.06
- Bugfix Macro ResizeGadget

Das Problem ist das beim hinzufügen von einem Menu bereits ein Event #PB_Event_SizeWindow ausgelöst wird
und somit auch die Procedure ResizeGadgetsXY()

Mit den neuen Macro wird jetzt die gesamte Zeile unterdrückt, wenn es das Gadget noch nicht gibt.

:wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: RAD EventDesigner V3

Beitrag von mk-soft »

Update v3.07
- Bugfix BOM UTF8 schreiben

Umlaute sollten jetzt auch gehen :roll:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: RAD EventDesigner V3

Beitrag von mk-soft »

Update v3.08
- Bugfix
- Restart Purebasic-IDE

Unter Linux wird das Tool "wmctrl" benötigt um automatisch die Purebasic-IDE zu beenden.
sudo apt-get install wmctrl
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten