DialogDesign0R V1.85
Re: DialogDesign0R V1.64
@Hex0r
Es ist alles gut, auch dein Dark-Theme funktioniert und man kann Text eingeben.
Also ich brauche kein Disable beim Theme.
Das einzige was man unbedingt unter MacOs beachten muss ist der Dateipfad von der App.
Hierbei muss man erst alle Ressourcen in den Mac-Ordner des erstellten App-Archives kopieren.
(Ansonsten z.B. zum Debuggen/Testen lieber einen extra Verzeichnisflag anlegen und diesen dann mit GetCurrentDirectory() behandeln. Beim "Release" können die jetzige Pfadangaben aber so bleiben.)
Es ist alles gut, auch dein Dark-Theme funktioniert und man kann Text eingeben.
Also ich brauche kein Disable beim Theme.
Das einzige was man unbedingt unter MacOs beachten muss ist der Dateipfad von der App.
Hierbei muss man erst alle Ressourcen in den Mac-Ordner des erstellten App-Archives kopieren.
(Ansonsten z.B. zum Debuggen/Testen lieber einen extra Verzeichnisflag anlegen und diesen dann mit GetCurrentDirectory() behandeln. Beim "Release" können die jetzige Pfadangaben aber so bleiben.)
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: DialogDesign0R V1.64
Für macOS ein PB IDE-Tool um alle Daten in den Contents Ordner automatisch zu kopieren.
Dazu im Projekt Ordner ein Ordner "MyAppData" erstellen und in diesen den Ordner "Resources" und bei bedarf den Ordner "Library" erstellen.
Zwei mal in Werkzeug konfigurieren. Nach dem Kompilieren und Starten, Nach dem Erstellen der Executable.
PB IDE-Tool MyAppdata
PathHelper
Dazu im Projekt Ordner ein Ordner "MyAppData" erstellen und in diesen den Ordner "Resources" und bei bedarf den Ordner "Library" erstellen.
Zwei mal in Werkzeug konfigurieren. Nach dem Kompilieren und Starten, Nach dem Erstellen der Executable.
PB IDE-Tool MyAppdata
PathHelper
Code: Alles auswählen
;- TOP
; Comment: PathHelper v1.01 by mk-soft
Macro GetParentPath(Path)
GetPathPart(RTrim(Path, #PS$))
EndMacro
Procedure.s GetProgramPath()
Protected r1.s
r1 = GetPathPart(ProgramFilename())
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
r1 = GetParentPath(r1)
r1 = GetParentPath(r1)
CompilerEndIf
ProcedureReturn r1
EndProcedure
Procedure.s GetResourcesPath()
Protected r1.s
r1 = GetPathPart(ProgramFilename())
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
r1 = GetParentPath(r1)
CompilerEndIf
r1 + "Resources" + #PS$
ProcedureReturn r1
EndProcedure
Procedure.s GetLibraryPath()
Protected r1.s
r1 = GetPathPart(ProgramFilename())
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
r1 = GetParentPath(r1)
CompilerEndIf
r1 + "Library" + #PS$
ProcedureReturn r1
EndProcedure
CompilerIf #PB_Compiler_IsMainFile
Debug GetProgramPath()
Debug GetResourcesPath()
Debug GetLibraryPath()
CompilerEndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- HeX0R
- Beiträge: 2960
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: DialogDesign0R V1.64
Nun gut... und wie genau hilft das dem DD?
Kann das nicht einer der MacOS-Jünger in den Source basteln?
Ist doch alles da!
(Sehr cleveres Macro übrigens!)
Kann das nicht einer der MacOS-Jünger in den Source basteln?
Ist doch alles da!
(Sehr cleveres Macro übrigens!)
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
Re: DialogDesign0R V1.64
Bei MacOS ist eine APP ein Ordner. Das PB IDE-Tool kümmert sich darum, das die Daten OnFly in dem APP Ordner kopiert wird.
Also nur für MacOS um sich die Arbeit mit dem Resources zu vereinfachen.
Im Code muss nur noch per CompilerIF der path zu dem Resources angepasst werden.
Also nur für MacOS um sich die Arbeit mit dem Resources zu vereinfachen.
Im Code muss nur noch per CompilerIF der path zu dem Resources angepasst werden.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: DialogDesign0R V1.64
Ich habe die Bugs beseitigt.
Vorgehensweise:
IDE-Menü->Bearbeiten->Suchen in Dateien->Suche: GetPathPart(ProgramFilename()) (in *.pb und *.pbi) ->Ersetzen gegen: GetProgramPath()
und dann kommt bei Theme "Keins" immer noch der ERROR:
[ERROR] *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]
BUG:
Unter MacOS darf der Font-Name nicht "" sein.
Wenn man in dieser Procedure:
...die Namen mit einem Font-Namen belegt funktioniert es unter MacOS und der ERROR ist weg.
Damit läuft es problemlos mit dem Theme "Keins" und "Dark" und es kommt keine Fehlermeldung mehr und man kann Text eingeben.
Anbei:
Hier die 1 gegen eine 2 zu ersetzen hat zwar auch den Bug behoben, aber dann wurde die Schrift nicht mit im Theme eingebunden.
(Also die i = 2 war doch noch nicht ganz korrekt)
->Hier kann i = 1 bleiben.
Vorgehensweise:
IDE-Menü->Bearbeiten->Suchen in Dateien->Suche: GetPathPart(ProgramFilename()) (in *.pb und *.pbi) ->Ersetzen gegen: GetProgramPath()
Code: Alles auswählen
(Modifiziert)
Macro GetParentPath(Path)
GetPathPart(RTrim(Path, #PS$))
EndMacro
Procedure.s GetProgramPath()
Protected r1.s
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
r1 = GetParentPath(r1)
r1 = GetParentPath(r1)
CompilerEndIf
ProcedureReturn r1
EndProcedure
[ERROR] *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]
BUG:
Unter MacOS darf der Font-Name nicht "" sein.
Wenn man in dieser Procedure:
Code: Alles auswählen
Procedure _NoTheme() ;Preset values for non set theme
If DisableThemeing = #False
With THEME
\WinBackColor = #PB_Default
\WinFontColor = #PB_Default
\LogFont\Name = "Arial"
\TreeFont\Name = "Arial"
\MainFont\Name = "Arial"
\LogBackColor = #PB_Default
\LogFontColor = #PB_Default
\TreeBackColor = #PB_Default
\TreeFontColor = #PB_Default
\TreeMarkedColor = $0AD7F3
\TreeMarkedBackColor = $241524
\TreeLineColor = #PB_Default
\MainBackColor = #PB_Default
\MainFontColor = #PB_Default
\CommentColor = #PB_Default
EndWith
_SetTheme()
Else
THEME\TreeMarkedBackColor = $241524
THEME\TreeMarkedColor = $0AD7F3
THEME\TreeBackColor = #PB_Default
THEME\TreeFontColor = #PB_Default
THEME\CommentColor = #PB_Default
EndIf
EndProcedure
Damit läuft es problemlos mit dem Theme "Keins" und "Dark" und es kommt keine Fehlermeldung mehr und man kann Text eingeben.
Anbei:
Hier die 1 gegen eine 2 zu ersetzen hat zwar auch den Bug behoben, aber dann wurde die Schrift nicht mit im Theme eingebunden.
Code: Alles auswählen
For i = 2 To XMLChildCount(*Node)
If ChildXMLNode(*Node, i) <> #Null
_SetMainGadgets(Dialog, ChildXMLNode(*Node, i))
EndIf
Next i
->Hier kann i = 1 bleiben.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
- HeX0R
- Beiträge: 2960
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: DialogDesign0R V1.64
Vielen Dank, werde ich bei Gelegenheit einbauen!
Dir ist aber schon klar, dass das hier gar nichts zurückgibt?
Dir ist aber schon klar, dass das hier gar nichts zurückgibt?
Code: Alles auswählen
Procedure.s GetProgramPath()
Protected r1.s
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
r1 = GetParentPath(r1)
r1 = GetParentPath(r1)
CompilerEndIf
ProcedureReturn r1
EndProcedure
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
Re: DialogDesign0R V1.64
jaHeX0R hat geschrieben: Dir ist aber schon klar, dass das hier gar nichts zurückgibt?
Aber diese Procedure kann ja als globale Procedure für zu ersetzenden Pfadangaben dienen.
In die Procedure können evtl. weitere CompilerIf rein und die normale Pfadangabe wie bisher vorhanden. (Nur eben mit einer Außnahne: Ausführen von MacOs-Apps über die IDE.)
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
- HeX0R
- Beiträge: 2960
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: DialogDesign0R V1.64
Irgendwas scheint in Deinen Ausführungen falsch zu sein.
Es gibt keine SetGadgetFont-Aufrufe mit einem leeren String!
Überall wird geprüft, ob der Fontname = "" ist, und falls ja, wird der Font mit #PB_Default gesetzt (siehe _SetTheme() in DD_internalProcedures.pbi).
Also kann es eigentlich gar nix bringen, einfach irgendwelche Fontnamen zu vergeben, es sei denn MacOS unterstützt kein #PB_Default??
Desweiteren habe ich mal genauer nach den Instanzen von ProgramFilename() gesucht.
Wenn da ein falscher Pfad zurückgegeben wird, würden einfach keine Themes zur Auswahl stehen, keine alternativen Definitionen (wie SpiderBasic) und keine anderen Sprachen als Englisch.
Aber funktionieren müsste der Designer dennoch (habe das einfach mal unter Windows getestet, indem ich den Haken bei "temp Source im Sourceordner erstellen" abgehakt hatte).
Mir scheint das alles nicht schlüssig zu sein, so kann ich das nicht einbauen.
Es gibt keine SetGadgetFont-Aufrufe mit einem leeren String!
Überall wird geprüft, ob der Fontname = "" ist, und falls ja, wird der Font mit #PB_Default gesetzt (siehe _SetTheme() in DD_internalProcedures.pbi).
Also kann es eigentlich gar nix bringen, einfach irgendwelche Fontnamen zu vergeben, es sei denn MacOS unterstützt kein #PB_Default??
Desweiteren habe ich mal genauer nach den Instanzen von ProgramFilename() gesucht.
Wenn da ein falscher Pfad zurückgegeben wird, würden einfach keine Themes zur Auswahl stehen, keine alternativen Definitionen (wie SpiderBasic) und keine anderen Sprachen als Englisch.
Aber funktionieren müsste der Designer dennoch (habe das einfach mal unter Windows getestet, indem ich den Haken bei "temp Source im Sourceordner erstellen" abgehakt hatte).
Mir scheint das alles nicht schlüssig zu sein, so kann ich das nicht einbauen.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
Re: DialogDesign0R V1.64
Hi Hex0r,
ich kann dich gut versehen und es kommt mir selber sehr seltsam vor, aber es ist wirklich so.
Kann das bitte auch mal ein anderer Mac-User bezeugen?
Hier ein Beweisvideo:
https://workupload.com/file/n7WPyYzKDB4
Anbei:
Ich habe extra noch mal ein komplett neues Zip heruntergeladen, entpackt und (fast) alle Vorkommen von "GetPathPart(ProgramFilename())" ersetzt (in *.pb/*pbi). Danach habe ich dieses Video aufgenommen. (Sonst wurde nix geändert.)
Ich habe in meinem Video bemerkt, dass ich zweimal den Pfadnamen nicht ersetzt habe.
Hier:
If FileSize(GetProgramPath() + "save_template.json") = -1 And FileSize(GetProgramPath() + "default_save_template.json") > 0
CopyFile(GetProgramPath() + "default_save_template.json", GetProgramPath() + "save_template.json")
Aber das ändert nichts an der Tatsache.
ich kann dich gut versehen und es kommt mir selber sehr seltsam vor, aber es ist wirklich so.
Kann das bitte auch mal ein anderer Mac-User bezeugen?
Hier ein Beweisvideo:
https://workupload.com/file/n7WPyYzKDB4
Anbei:
Ich habe extra noch mal ein komplett neues Zip heruntergeladen, entpackt und (fast) alle Vorkommen von "GetPathPart(ProgramFilename())" ersetzt (in *.pb/*pbi). Danach habe ich dieses Video aufgenommen. (Sonst wurde nix geändert.)
Ich habe in meinem Video bemerkt, dass ich zweimal den Pfadnamen nicht ersetzt habe.
Hier:
If FileSize(GetProgramPath() + "save_template.json") = -1 And FileSize(GetProgramPath() + "default_save_template.json") > 0
CopyFile(GetProgramPath() + "default_save_template.json", GetProgramPath() + "save_template.json")
Aber das ändert nichts an der Tatsache.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: DialogDesign0R V1.64
Die Änderung von ccode_new mit Rückgabe von einem Leerstring ist natürlich Blödsinn (Sorry ccode_new)
Es müsste die Funktion GetResourcesPath eingesetzt werden und diese nach bedarf an den Ordner und OS angepasst werden,
um auf die eigenen Programm Dateien zugriff zu haben.
Somit funktioniert es auch auf allen OS, auch mit dem Tool MyAppData für macOS.
P.S
Hatte deinen gelöschten Beitrag in "plistTool" noch gelesen
Eine Hochachtung, das du macOS als VM zum laufen bekommen hast. Auch wenn du macOS als %@$ empfindet.
Für macOS muss man bereit sein. Ich war so weit als mich Windows mit seinen Änderungen genervt hatte (Muss jeden Tag damit Arbeiten)
Was mir an macOS gefällt ist der Unix basierte Kernel (Darwin) und nach dem einschalten ohne zusätzliche Software alles funktioniert.
Was mir an Apple nicht gefällt ist der viel zu hohe Preis und das nicht auf Kundenwünsche besonders eingegangen wird.
Noch gibt es Macs mit Intel Prozessoren, was ich auch noch Brauche für die VMs. Mal schauen wie neuen Prozessoren auf die Zukunft von Windows und Linux auswirkt.
Es müsste die Funktion GetResourcesPath eingesetzt werden und diese nach bedarf an den Ordner und OS angepasst werden,
um auf die eigenen Programm Dateien zugriff zu haben.
Somit funktioniert es auch auf allen OS, auch mit dem Tool MyAppData für macOS.
P.S
Hatte deinen gelöschten Beitrag in "plistTool" noch gelesen
Eine Hochachtung, das du macOS als VM zum laufen bekommen hast. Auch wenn du macOS als %@$ empfindet.
Für macOS muss man bereit sein. Ich war so weit als mich Windows mit seinen Änderungen genervt hatte (Muss jeden Tag damit Arbeiten)
Was mir an macOS gefällt ist der Unix basierte Kernel (Darwin) und nach dem einschalten ohne zusätzliche Software alles funktioniert.
Was mir an Apple nicht gefällt ist der viel zu hohe Preis und das nicht auf Kundenwünsche besonders eingegangen wird.
Noch gibt es Macs mit Intel Prozessoren, was ich auch noch Brauche für die VMs. Mal schauen wie neuen Prozessoren auf die Zukunft von Windows und Linux auswirkt.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive