Seite 12 von 13

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 16.12.2024 20:49
von H.Brill
Hallo,
es hat mir ja keine Ruhe mit dem freien PopUp-Menü gelassen.
Ja, du hast Recht : Das wird immer oben links angezeigt.
Nach einigem Knobeln habe ich es doch fertig bekommen.
Das war gar nicht so leicht und ich habe es über Probieren herausbekommen.

Code: Alles auswählen

Enumeration
  #Window1
  #Button1
  #Button2
  #LV1
  #Menu1
  #MenuItem2
  #MenuItem3
EndEnumeration
  
If OpenWindow(#window1, 100, 100, 600, 300, "Mein Grid", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(#Button1, 10, 10, 60, 25, "Fülle")
  ButtonGadget(#Button2, 430, 10, 60, 25, "Ende")
  ListIconGadget(#LV1, 5, 80, 400, 200, "Uhrzeit", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_GridLines) ; erste Spalte wird schon beim Erstellen des Gridgadget erstelllt.
  AddGadgetColumn(#LV1, 1, "Drehzahl", 150)
  AddGadgetColumn(#LV1, 2, "Watt", 200)
  
   If CreatePopupMenu(#Menu1)
      MenuItem(1, "Open")      
      MenuItem(2, "Save")      
      MenuItem(3, "Save as")
      MenuItem(4, "Quit")
   EndIf
     
    Repeat
     Event = WaitWindowEvent()
     Select EVent
      Case #PB_Event_Gadget
        Select EventGadget()
              Case #Button1
               ; Button gedrückt
               uhrzeit.s = FormatDate("%hh:%ii:%ss", Date())
               drehzahl.s = Str(Random(8000, 2000))
               watt.s = Str(Random(1000, 0))
               AddGadgetItem(#LV1, -1, uhrzeit + Chr(10) + drehzahl + Chr(10) + watt)
               SetGadgetItemState(#LV1, CountGadgetItems(2)- 1 ,#PB_ListIcon_Selected)
             Case #Button2
                 Break
             Case #LV1
                  If EventType() =  #PB_EventType_RightClick     ;#PB_Event_RightClick
                    DisplayPopupMenu(#Menu1, WindowID(#Window1), GadgetX(#LV1, #PB_Gadget_ScreenCoordinate) + 20, GadgetY(#LV1, #PB_Gadget_ScreenCoordinate) + 20)
                  EndIf  
         EndSelect         
     Case #PB_Event_Menu        ; ein Eintrag des Popup-Menüs wurde angeklickt
          Select EventMenu()       ; ermittle den angeklickten Menü-Eintrag...
            Case 1 : MessageRequester("Info", "Menu: Open", #PB_MessageRequester_Ok)
            Case 2 : MessageRequester("Info", "Menu: Save", #PB_MessageRequester_Ok)
            Case 3 : MessageRequester("Info", "Menu: Save AS", #PB_MessageRequester_Ok)
            Case 4 : End
         EndSelect
     EndSelect    
   Until Event = #PB_Event_CloseWindow
 EndIf
End
Du kannst es dir ja mal ansehen, aber ich schätze, daß das sehr starker Tobak für dich ist.
Da gehört schon einige Übung dazu, obiges auch zu verstehen.

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 16.12.2024 22:55
von jogo
schönes Beispiel :)
falls das Menü immer dort poppen soll, wo grad der Mauszeiger ist:

Code: Alles auswählen

;diese Zeile auskommentieren:
;DisplayPopupMenu(#Menu1, WindowID(#Window1), GadgetX(#LV1, #PB_Gadget_ScreenCoordinate) + 20, GadgetY(#LV1, #PB_Gadget_ScreenCoordinate) + 20)

;und durch diese Zeile ersetzen:
DisplayPopupMenu(#Menu1, WindowID(#Window1),  DesktopMouseX() + 2, DesktopMouseY() + 2)
getestet mit PB 6.12 auf Mint LMDE6 - sollte aber für alle BS funktionieren ;)

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 17.12.2024 08:43
von H.Brill
Auch schön zu wissen.
Der TO wollte aber, daß es speziell im Listicon aufpoppt, weil er wahrscheinlich den Inhalt des
Listicon speichern will. Da war halt GadgetX() + GadgetY() meine erste Wahl.

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 17.12.2024 09:47
von ChrigiGee
Hallo @all
Hallo H.Brill,

Die Zeitdifferenz ist ein Segen, denke ich für Euch.
Ihr braucht Euch nicht allzu sehr zu nerven, wenn ich dazwischen etwas schreibe
und eigentlich bereits eine Antwort besteht.

So in dem Fall, H. Brill hatte DIE Idee, welche ich hier etwas abgewandelt habe im Source
von mir.

Danke für die zündende Idee beim PopUp....
Und ich hab auch die Bitte, um bessere Bezeichnungen versucht umzusetzen.
Und ich habe nach Möglichkeit etwas mehr dokumentiert.

Ja, es gibt so ein / zwei Schönheitsfehler, aber auch die werde ich zu korrigieren.

Darf ich Euch mein Versuch hier präsentieren?
Ich würde mich über Rückmeldung sehr freuen zum neusten Schritt des Themas....


Ja, es wird nun nach und nach versucht, die einzelnen Module aus dem gesamten
was ich von Euch zu meinem Thema erhalten habe zu vereinen, aber noch bin ich
am Anfang des gesamten Werkes.

Herzliche Grüße
Christian

[EDIT]
Dokumentation wenn erwünscht
https://e.pcloud.link/publink/show?code ... 8mmFp56O7k
[\EDIT

Code: Alles auswählen

;= GUI Test for the procedure createpatch.pbi and patchit.pbi
;- Top
; -----------------------------------------------------------------------------
;           Name: PM-AUPT app
;    Description: Patch Maker und Auto UpDate Tool (GUI)
;         Author: Christian & all of the PureBasic Forum
;           Date: 2024-12-16
;        Version: Beta
;     PB-Version: 6.12
;             OS: WIN 11
;         Credit:
;          Forum:
;     Created by: Standard Window
; -----------------------------------------------------------------------------
; EnableExplicit

fileEnconding = #PB_UTF8


;}>SecOneA(1)
;| == 1. Aufzählungen (Enummeration) von Controlls
;|
;| § 1.1 -- Aufliestung der benötigten Elemente der Buttons sowie vorhandener
;| Strings und Menüs für die weiterführende GUI.
;{<

;}>SecOneB(2)
;|
;| § 1.2 --  Die Dokumentantion Elemente in dieser Source werden zugleich für die
;|           externe Dokumentantions Generierung mit doxler verwendet und als ASCIIdoc
;|           resp. HTML Datei generiert.
;|           So dass ich über die HTML oder SCIIdoc File gerade eine passende Dokumentation
;|           generier kann ohne weitere bemühungen
;|
;|           REFERENZEN: (Stand 16.12.2024)
;|
;|           https://www.purebasic.fr/german/viewtopic.php?p=353121&hilit=AsciiDoc#p353121
;|           https://tajmone.github.io/doxter/
;|           https://github.com/tajmone/doxter
;|
;|
;|
;| - Enumeration Gadget
;
;- Enumeration FormGadget
Enumeration FormGadget
  #Container_0
  #Text_0
  #Text_4
  #Text_6
  #Editor_0
  #Editor_5
  #Date_0
  #Container_2
  #ListIcon_0
  #Create_Bttn
  #Upload_Bttn
EndEnumeration
;{<

;}>SecOneC(3)
;|
;| § 1.3 --  Enumeration der Form Menü Elemente
;|
;- Enumeration FormMenü
Enumeration FormMenu
  #MenuItem_New
  #MenuItem_Open
  #MenuItem_Save
  #MenuItem_Save_as
  #MenuItem_Help
  #MenuItem_news
  #MenuItem_thanks
  #MenuItem_Law
  #MenuItem_About
  
  #MenuItem_Exit
EndEnumeration
;{<

;}>SecOneD(4)
;|
;| § 1.4 --  Enumeration der PopUp Menü Elemente
;|
;- Enumeration PopUpMenü
Enumeration FormMenu
#PopUpMenue1
EndEnumeration
;{<

;}>SecOneE(5)
;|
;| § 1.5 --  Enumeration der PopUp Menü Elemente
;|
;- Enumeration PopUp Menü
Enumeration FormFont
  #PopUpMenuItem_nothing_1
  #PopUpMenuItem_new
  #PopUpMenuItem_update
  #PopUpMenuItem_no_update
  #PopUpMenuItem_delete
  #Gadget
  #PopUpMenuItem_exit
EndEnumeration
;{<

;}>SecOneF(6)
;|
;| § 1.6 --  Enumeration der Font Elemente
;|
;| § 1.6.1 -- Öffnen oder Starten Font Fenster Gadget
;| § 1.6.2 -- Laden der eigentlich Schriftart
;|
;- Enumeration Form Font Gadget
Enumeration FormFont
  #Font_Window_0_0
EndEnumeration

;- Load Font
LoadFont(#Font_Window_0_0,"Antigone Pro Light", 12)
;{<

;}>SecTwoA(5)
;|
;|  == 2.     Fenster
;|
;| § 2.1 --  Öffnen des Fenster  Elemente
If  OpenWindow(0, x, y, 750, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
;|
;| § 2.2. -- Erstellen des Menü Gadget
;- Create Menü
If  CreateMenu(0, WindowID(0))
;|
;| § 2.3. -- Erstellen der Menü Einträge
;- Menü Einträge aufführen
  MenuTitle("&Datei")
  MenuItem(#MenuItem_new, "&Neu")
  MenuItem(#MenuItem_Open, "&Öffnen")
  MenuBar()
  MenuItem(#MenuItem_Save, "&Speichern")
  MenuItem(#MenuItem_Save_as, "Speichern &unter")
  OpenSubMenu("Projekte")
  CloseSubMenu() 
  MenuBar()
  MenuItem(#MenuItem_Exit, "&Beenden")
  MenuTitle("&?")
  MenuItem(#MenuItem_Help, "&Hilfe")
  MenuBar()
  MenuItem(#MenuItem_news, "Anpassungen")
  MenuItem(#MenuItem_thanks, "Danksagung")
  MenuItem(#MenuItem_Law, "Rechtliches")
  MenuBar()
  MenuItem(#MenuItem_About, "&Über")
;|
;| § 2.5. -- Erstellen des eigentlichen PopUpMenü (Window)
;- Elemente des PopUpMenü  
If  CreatePopupMenu(#PopUpMenue1)
  MenuItem(#PopUpMenuItem_nothing_1, "---")
  MenuItem(#PopUpMenuItem_new, "insert")
  MenuItem(#PopUpMenuItem_update, "update")
  MenuItem(#PopUpMenuItem_no_update, "NOupd")
  MenuItem(#PopUpMenuItem_delete, "delete")
  MenuItem(#PopUpMenuItem_exit, "exit") 
EndIf        
;|
;| § 2.4. -- Erstellen des eigentlichen Fenster (Window)
;- Elemente des Fentsers
  ContainerGadget(#Container_0, 10, 0, 720, 50, #PB_Container_Flat | #PB_Container_Raised)
  TextGadget(#Text_0, 10, 10, 70, 25, "Projekt:")
  SetGadgetFont(#Text_0, FontID(#Font_Window_0_0))
  TextGadget(#Text_4, 270, 10, 70, 25, "Version:")
  SetGadgetFont(#Text_4, FontID(#Font_Window_0_0))
  TextGadget(#Text_6, 470, 10, 60, 25, "Datum:")
  SetGadgetFont(#Text_6, FontID(#Font_Window_0_0))
  EditorGadget(#Editor_0, 80, 10, 180, 25, #PB_Editor_ReadOnly)
  SetGadgetFont(#Editor_0, FontID(#Font_Window_0_0))
  AddGadgetItem(#Editor_0, -1, "Projekt Name")
  EditorGadget(#Editor_5, 340, 10, 120, 25, #PB_Editor_ReadOnly)
  SetGadgetFont(#Editor_5, FontID(#Font_Window_0_0))
  AddGadgetItem(#Editor_5, -1, "Projekt Version")
  DateGadget(#Date_0, 540, 10, 170, 25, "")
  SetGadgetFont(#Date_0, FontID(#Font_Window_0_0))
  CloseGadgetList()
  ContainerGadget(#Container_2, 10, 70, 720, 250, #PB_Container_Flat | #PB_Container_Raised)
  ListIconGadget(#ListIcon_0, 10, 10, 700, 230, "Datei", 100, #PB_ListIcon_FullRowSelect)
  AddGadgetColumn(#ListIcon_0, 1, "Verzeichnis", 100)
  AddGadgetColumn(#ListIcon_0, 2, "Optionen", 100)
  CloseGadgetList()
  
  ButtonGadget(#Create_Bttn, 20, 330, 60, 25, "Create")
  ButtonGadget(#Upload_Bttn, 100, 330, 60, 25, "Upload")
EndIf
;{<

;}>SecThreeA(6)
;|
;|  == 3.     Repeat Schlaufe
;|
;- Schleife
Repeat
event =  WaitWindowEvent()
Select event
;|
;| § 3.1. -- Anzeigen und Auswerten Menü
;|
;- Elemente Menü & Auswertung
    Case #PB_Event_Menu
      Select EventMenu()
        Case #MenuItem_New
        Case #MenuItem_Open
        Case #MenuItem_Save
        Case #MenuItem_Save_as
        

       
        Case #MenuItem_Help
        Case #MenuItem_news
        Case #MenuItem_thanks
        Case #MenuItem_Law
        Case #MenuItem_About
        
        Case #MenuItem_Exit  
        Quit = 1
      EndSelect

    Case #PB_Event_Gadget
    
;        If EventGadget() = 0 And EventType() = #PB_EventType_RightClick
        If EventType() = #PB_EventType_RightClick
          DisplayPopupMenu(#PopUpMenue1, WindowID(0))
        EndIf
    
;      Select EventGadget()
;      EndSelect
      
 
      Case #PB_Event_Menu
      
        Select EventMenu()  ; To see which menu has been selected

          Case #PopUpMenuItem_nothing_1 ; ---
            MessageRequester("PureBasic", "nothing 1", 0)

          Case #PopUpMenuItem_new ; Insert
            MessageRequester("PureBasic", "Insert", 0)


          Case #PopUpMenuItem_update ; UpDate
            MessageRequester("PureBasic", "UpDate", 0)

          Case #PopUpMenuItem_no_update ; NO UpDate
            MessageRequester("PureBasic", "NO UpDate", 0)

          Case #PopUpMenuItem_delete ; ...
            MessageRequester("PureBasic", "Delete", 0) : DisableGadget(#PopUpMenuItem_exit, #True)

        EndSelect
       
      

      Case #PB_Event_CloseWindow  ; If the user has pressed on the close button
        Quit = 1 
      EndSelect
               
   Until Quit = 1
EndIf
;{<

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 17.12.2024 13:07
von ChrigiGee
Hallo und guten Abend @all,

So, nachdem ich das Menü danke Euch auch hinbekommen habe.
Tausend Dank

Habe ich die prefs wieder hervorgenommen.
Waren in ähnlicher Form bereits zum Einsatz gekommen, mit dem Patch Maker
Da ich das Problem hatte mit dem vorhanden sein resp. versehentlichen Löschen dieser welcher.
Hab ich heute Nachmittag versucht die etwas sicherer zu machen
etwas modden ....


Das wäre dabei herausgekommen heute Nachmittag.

Ebenfalls habe ich überlegt, PB hat doch eine art von History, was das Öffnen von Dateien betrifft.
Angefangen hab ich die Überlegung im vorhandenen Code.

Zwei Hürden, welche mich heute noch beschäftigten.
Wie kann ich die preffs so als Variable erstellen, dass ich im Main Programm angeben kann wie
groß oder weitreichend die History sein darf.

Das würde in der preffs gespeichert als History Wert.
Daraus resultiert, wie viel Projekte ich dort speichern kann.

In meinem Source hab ich ein Problem, die Menge ist dort auf JETZT 3 beschränkt.
Kann man das auch mit einer variablen Lösen ?

Menüeinträge kann ich eigentlich ja auch Variablen mäßig erweitern.
Und ich geb zu, es sind gerade nur noch Gedanken, ich bin etwas
müde nach dem ganzen, sorry.

Danach würde ich diese "History" als Einträge aus der preff Datei im Menü der Main Anwendung
unter History sehen und gegebenenfalls öffnen können

Das so meine Ürlegungs-Punkte weiter.

Argh, was ich vergessen habe, Ihr seht, das Popup ist gedacht um angeben zu können
was die einzelnen Dateien sollen.

  • Neue Datei
  • Updaten einer Datei
  • keine Änderung aber aufgeführt
  • Löschen besagter Datei, da nicht mehr vorhanden / benötigt

Entweder ich hab noch eine Blitz Einfall und ich mache weiter oder dann
Morgen wieder mit neuen Ideen vorwärtskommen.

Herzliche Grüsse
CHristian


Read Preferences: read_preference.pbi

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Preference example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;
path$ = GetEnvironmentVariable(GetCurrentDirectory())


  If Right(path$, 1) <> ""
    path$ + ""
  EndIf
  path$ + "./prefs"
  CreateDirectory(path$)
  path$ + "./PM-AUT.prefs"
  If OpenPreferences(path$) = 0
    CreatePreferences(path$)
  EndIf

PreferenceGroup("Projects")
    Project1$ = ReadPreferenceString ("Project_1","")
    Project2$ = ReadPreferenceString ("Project_2","")
    Project3$ = ReadPreferenceString ("Project_3","")

PreferenceGroup("Projects")  
    Debug  ReadPreferenceString ("Project_1","")
    Debug  ReadPreferenceString ("Project_2","")
    Debug  ReadPreferenceString ("Project_3","")
    
  PreferenceGroup("Global")
    Debug ReadPreferenceString("Application_Name", "")
    Debug ReadPreferenceString("Version", "")
    
ClosePreferences()


End
Write Preferences: write_preferences.pbi

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Preference example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;
path$ = GetEnvironmentVariable(GetCurrentDirectory())


  If Right(path$, 1) <> ""
    path$ + ""
  EndIf
  path$ + "./prefs"
  CreateDirectory(path$)
  path$ + "./PM-AUT.prefs"
  If OpenPreferences(path$) = 0
    CreatePreferences(path$)
  EndIf

PreferenceGroup("Projects")
    WritePreferenceString("Project_1",Project1$)
    WritePreferenceString("Project_2",Project2$)
    WritePreferenceString("Project_3",Project3$)

PreferenceGroup("Projects")  
    Debug  ReadPreferenceString ("Project_1","")
    Debug  ReadPreferenceString ("Project_2","")
    Debug  ReadPreferenceString ("Project_3","")
    
  PreferenceGroup("Global")
    WritePreferenceString("Aplication_Name", Aplication$)
    WritePreferenceString("Version",Version$)
    WritePreferenceString("History",History$)
    
ClosePreferences()

End


Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 17.12.2024 13:23
von Kiffi
ChrigiGee hat geschrieben: 17.12.2024 13:07

Code: Alles auswählen

path$ = GetEnvironmentVariable(GetCurrentDirectory())

  If Right(path$, 1) <> ""
    path$ + ""
  EndIf
  path$ + "./prefs"
  CreateDirectory(path$)
  path$ + "./PM-AUT.prefs"
  If OpenPreferences(path$) = 0
    CreatePreferences(path$)
  EndIf
* Schau Dir bitte in der Dokumentation an, was GetEnvironmentVariable() macht.

* mal abgesehen davon, dass der GetEnvironmentVariable()-Parameter falsch ist: die GetCurrentDirectory() - Problematik hatten wir hier schon einmal

Diese Zeilen solltest Du Dir anschauen. Das bekommt man auch als Anfänger hin:
ChrigiGee hat geschrieben: 17.12.2024 13:07

Code: Alles auswählen

  If Right(path$, 1) <> ""
    path$ + ""
  EndIf

was macht der Punkt hier?
ChrigiGee hat geschrieben: 17.12.2024 13:07

Code: Alles auswählen

    path$ + "./prefs"
CreateDirectory() hat einen Rückgabewert. Der sollte auch ausgewertet werden.

CreatePreferences() hat einen Rückgabewert. Der sollte auch ausgewertet werden.

...

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 17.12.2024 13:58
von H.Brill
So, wie es aussieht, hast du ja deine GUI mit Menüs usw. erstmal fertig. Da kommt bestimmt noch das eine oder
andere dazu (geht mir jedenfalls so). Mit der Zeit 'vermüllt' deine Schleife und man muß suchen, wo das eine oder
andere steht. Was für dich leichter wäre (sicherlich sollte man auch den Aufbau, wie bisher kennen bzw. verstanden haben),
sind diese Bind-Befehle von PB :
BindEvent(), BindGadgetEvent(), BindMenuEvent()
Es erleichtert als Anfänger ungemein die Lesbarkeit deines Codes und hält zusätzlich die Eventschleife sauber und
übersichtlich. Dort kommen nur noch Sachen (Events) rein, die man anders nicht behandeln kann.

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 17.12.2024 17:52
von jogo
H.Brill hat geschrieben: 17.12.2024 08:43 Auch schön zu wissen.
Der TO wollte aber, daß es speziell im Listicon aufpoppt, weil er wahrscheinlich den Inhalt des
Listicon speichern will. Da war halt GadgetX() + GadgetY() meine erste Wahl.
da du den Rechtsklick ja nur auswertest, wenn er im Listview stattfindet, poppt es auch nur dort auf, aber halt genau am Mauscursor.
Sollte auch nur eine Ergänzung darstellen, also als weitere Möglichkeit, wie man ein Popmenü gezielt platzieren kann - je nachdem, wie es passt ;)

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 18.12.2024 04:22
von ChrigiGee
Hallo und guten Morgen Kiffi,

Vielen herzlichen Dank für deine kritischen Ansichten.
Ich bin froh, wenn ich etwas übersehe und falsch interpretiere.
GetEnvironmentVariable() habe ich mir angeschaut, wahrlich wohl zu einem Zeitpunkt
wo meine Aufnahmefähigkeit den Bach runtergegangen war.

Ich nehme mich der Geschichte gerne an und versuche die Punkte zu bereinigen.
Bin wirklich froh über jede kritische Beurteilung.

Ich hab wohl mit dem ersten Auge geschaut, denn bekanntlich sieht man mit dem zweiten besser....
Also versuchen wir heute das zweite Auge zu nehmen....

Auf zu neuen Taten, auf zu neuen Ufern....

Vielen herzlichen Dank auch für den Link muss ich mir zu Gemüte führen.

Christian
Kiffi hat geschrieben: 17.12.2024 13:23
ChrigiGee hat geschrieben: 17.12.2024 13:07

Code: Alles auswählen

path$ = GetEnvironmentVariable(GetCurrentDirectory())

  If Right(path$, 1) <> ""
    path$ + ""
  EndIf
  path$ + "./prefs"
  CreateDirectory(path$)
  path$ + "./PM-AUT.prefs"
  If OpenPreferences(path$) = 0
    CreatePreferences(path$)
  EndIf
* Schau Dir bitte in der Dokumentation an, was GetEnvironmentVariable() macht.

* mal abgesehen davon, dass der GetEnvironmentVariable()-Parameter falsch ist: die GetCurrentDirectory() - Problematik hatten wir hier schon einmal

Diese Zeilen solltest Du Dir anschauen. Das bekommt man auch als Anfänger hin:
ChrigiGee hat geschrieben: 17.12.2024 13:07

Code: Alles auswählen

  If Right(path$, 1) <> ""
    path$ + ""
  EndIf

was macht der Punkt hier?
ChrigiGee hat geschrieben: 17.12.2024 13:07

Code: Alles auswählen

    path$ + "./prefs"
CreateDirectory() hat einen Rückgabewert. Der sollte auch ausgewertet werden.

CreatePreferences() hat einen Rückgabewert. Der sollte auch ausgewertet werden.

...

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Verfasst: 18.12.2024 04:31
von ChrigiGee
Hallo H. Brill,

Ja, die GUI hat noch sehr viele Elemente, welche aus dem Formeditor von PB stammen.
Ich werde noch das eine oder andere abändern, was hoffentlich auch zur Lesbarkeit des Codes für alle
beitragen könnte.

Der Anfang war, ich hab die GUI soweit, dass alles im ersten Durchgang klappt.
Feinschliff gehört dazu, aber war gestern nicht mehr so anwendbar für mich.

Preffs kommen noch rein, was ich mit dem Aufbau der beiden Files angedeutet hatte.
Die History für Projekte sowie Auswertung ob OnLine UpDate oder Offline Sprich Patch.

Das ListIconView bekommt das Verzeichnis mit Order zugewiesen und dem Bereich was mit der Datei passiert.
Das so die nächsten Punkte, die ich versuche zu erarbeiten.

Viele Grüße
Christian
H.Brill hat geschrieben: 17.12.2024 13:58 So, wie es aussieht, hast du ja deine GUI mit Menüs usw. erstmal fertig. Da kommt bestimmt noch das eine oder
andere dazu (geht mir jedenfalls so). Mit der Zeit 'vermüllt' deine Schleife und man muß suchen, wo das eine oder
andere steht. Was für dich leichter wäre (sicherlich sollte man auch den Aufbau, wie bisher kennen bzw. verstanden haben),
sind diese Bind-Befehle von PB :
BindEvent(), BindGadgetEvent(), BindMenuEvent()
Es erleichtert als Anfänger ungemein die Lesbarkeit deines Codes und hält zusätzlich die Eventschleife sauber und
übersichtlich. Dort kommen nur noch Sachen (Events) rein, die man anders nicht behandeln kann.