Aktuelle Zeit: 26.01.2021 10:53

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 210 Beiträge ]  Gehe zu Seite Vorherige  1 ... 17, 18, 19, 20, 21
Autor Nachricht
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 31.12.2020 13:35 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
mk-soft hat geschrieben:
Die Änderung von ccode_new mit Rückgabe von einem Leerstring ist natürlich Blödsinn (Sorry ccode_new)


Das war auch nicht der eigentliche Sinn.
Der Sinn war eine anpassbare Funktion für die Pfadangaben zu haben und keine fixe Ausgabe von:
GetPathPart(ProgramFilename())

Wie der Name dieser "Pfadanpassungsfunktion" heißt ist mir eigentlich Latte.
In diesen Fall kling aber "GetProgramPath()" ganz brauchbar.

Für Debugging ist eine leere Zeichenkette aber unter MacOS funktionsfähig.

Das eigentliche Problem war aber das:

[ERROR] *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]

BUG:
Unter MacOS darf der Font-Name nicht "" sein.

...weil dadurch ständig das Programm abstürzte und man keine Eingaben in Textfelder vollführen konnte.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 31.12.2020 13:58 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Mit leeren Font Name funktioniert es, oder ich habe deine Aussage nicht verstanden.
Code:
If OpenWindow(0, 0, 0, 222, 130, "SetGadgetFont", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ;If LoadFont(0, "Arial", 16)
  If LoadFont(0, "", 16)
    SetGadgetFont(#PB_Default, FontID(0))   ; geladenen Arial 16 Zeichensatz als neuen Standard festlegen
  EndIf
  ButtonGadget(0, 10, 10, 200, 30, "Button - Arial 16")
  SetGadgetFont(#PB_Default, #PB_Default)   ; Zeichensatzeinstellungen auf den originalen Standard zurücksetzen
  ButtonGadget(1, 10, 50, 200, 30, "Button - standard")
  If LoadFont(1,"Courier",10, #PB_Font_Bold | #PB_Font_Underline)
    SetGadgetFont(#PB_Default, FontID(1))   ; geladenen Courier 10 Zeichensatz als neuen Standard festlegen
  EndIf
  TextGadget(2, 10, 90, 200, 40, "Bold + underlined Courier 10 Text", #PB_Text_Center)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf


P.S. Underline funktioniert nicht (Bug)

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.7x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 31.12.2020 14:06 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
mk-soft hat geschrieben:
Mit leeren Font Name funktioniert es, oder ich habe deine Aussage nicht verstanden.


Ja, ich verstehe meine Aussage eigentlich auch nicht so richtig.
Dein Beispiel funktioniert.

Ich fasse es noch mal zusammen und deklariere es als BUG.

Wenn ich bei:
\MainFont\Name = ""
den Schriftname weg lasse ist der Bug weg und alles ist gut.

Der Bug lautet:
Unter MacOS darf der Font-Name nicht "" sein. (Nur beim DialogDesign0r von Hex0r)

->Der Fehler wird durch dieser Procedure:
SetGadgetFont(DialogGadget(#Dialog_Main, "LAN_001"), #PB_Default)
in der Else-Verzweigung bei _SetTheme() -> If \MainFont\Name
ausgelöst.

Zitat:

\ MainFont \ Name = ""
Bug with missing font names

The bug is:
Under MacOS the font name must not be "". (Only with DialogDesign0r from Hex0r)

-> The error is caused by this procedure:
SetGadgetFont (DialogGadget (#Dialog_Main, "LAN_001"), #PB_Default)
in the Else branch at _SetTheme () -> If \ MainFont \ Name
triggered.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 31.12.2020 20:10 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Ich konnte das zwar nachstellen, aber verstehe immer noch nicht, wieso das überhaupt auftritt.
Leider ist meine macOS VM so unbeschreiblich trääääge (ich habe leider nur AMD Prozessoren, da muss der Intel auch noch emuliert werden...), da macht das Fehlersuchen nicht wirklich Spaß.
Daher habe ich im Moment tatsächlich erst mal die Fontnamen mit Arial ersetzt (den Source gibt's aber noch nicht online).
Die Pfade habe ich auch schon angepasst, aber ich möchte meine ganze Source-Struktur nicht nur wegen mac umbasteln und hoffe noch, dass dieses plistTool das kann.
(Weil dann kann ich einfach entsprechende Kommentare in den Source pflanzen und jeder macOS User muss es nur noch kompilieren).

mk-soft hat geschrieben:
P.S
Hatte deinen gelöschten Beitrag in "plistTool" noch gelesen :wink:

Ähm ja, ich hatte im Nachhinein entschieden meine Meinung besser für mich zu behalten ;)

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 31.12.2020 20:45 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
HeX0R hat geschrieben:
Ich konnte das zwar nachstellen, aber verstehe immer noch nicht, wieso das überhaupt auftritt.


Du glaubst gar nicht wie sehr ich auf so eine Antwort gehofft habe.

Beheben kann ich es ja, aber ich will diesen Fehler eigentlich auch verstehen.
Das Ganze ist mir zu mysteriös.

Anbei:

Guten Rutsch, Gesundheit, Schaffenskraft, ... und was man sich sonst noch so wünscht.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 31.12.2020 22:41 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
SO!
Damit keiner von uns doof ins nächste Jahr übergehen muss, hab ich mir hier in einer elendlangen Zeitlupenaktion (mag gar nicht an die verschwendete Lebenszeit denken) dem Problem angenommen und den Bug auch gefunden!
Murphys Gesetz hat leider auch noch zugeschlagen, es war der allerletzte GadgetType, den ich getestet hatte... das ComboBoxGadget!
Es mag offensichtlich kein #PB_Default im SetGadgetFont.
Siehe Code hier, einfach einmal auf die ComboBox klicken und große Augen bekommen.
Code:
OpenWindow(0, 0, 0, 200, 200, "ComboBox macOS")
ComboBoxGadget(0, 5, 5, 190, 24)
SetGadgetFont(0, #PB_Default)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow


...und nun lass ich's krachen, wünsche guten Rutsch und gutes (viel besseres!) neues Jahr.

Bug Report dürfen gerne die macOS-Jünger machen, bei Rückfragen muss ich sonst wieder tauchen gehen...

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 31.12.2020 23:49 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Vielen Dank für deine Mühe! :praise:

Aber das:
HeX0R hat geschrieben:
Murphys Gesetz hat leider auch noch zugeschlagen, es war der allerletzte GadgetType, den ich getestet hatte... das ComboBoxGadget!
Es mag offensichtlich kein #PB_Default im SetGadgetFont.

stimmt irgendwie auch nur teilweise.

Ich habe einen Trick gefunden wie es doch geht.

Mit #PB_ComboBox_Editable geht es und es ist dann auch plötzlich nicht mehr editierbar, aber das StringGadget bleibt editierbar.
(Das ist zwar nicht das erwartete Verhalten, aber irgendwie ist es das benötigte Verhalten.)

Code:
OpenWindow(0, 0, 0, 200, 200, "ComboBox macOS")
ComboBoxGadget(0, 5, 5, 190, 32, #PB_ComboBox_Editable)
AddGadgetItem(0, -1, "Eingabe 1")
AddGadgetItem(0, -1, "Eingabe 2")
SetGadgetState(0, 0)
StringGadget(1, 5, 50, 190, 30, "Eingabe-Test")

LoadFont(0, "Comic Sans MS", 12)
If IsFont(0)
  SetGadgetFont(0, FontID(0))
EndIf
SetGadgetFont(0, #PB_Default)

Repeat : Until WindowEvent() = #PB_Event_CloseWindow


Guten Rutsch!

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 01.01.2021 14:05 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Mal ein Bugfix
Code:
;-TOP

; Comment: Fix Set default font on macOS
; Version: v1.0.0
; Author : mk-soft
; Create : 1.1.2021

CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
 
  Macro _PB_(Function)
    Function
  EndMacro
 
  Procedure FixSetGadgetFont(Gadget, FontID)
    Static SystemFontID
    Protected FontSize.CGFloat
    If FontID = #PB_Default
      If Not SystemFontID
        CocoaMessage(@FontSize, 0, "NSFont systemFontSize") : FontSize - 1
        SystemFontID = CocoaMessage(0, 0, "NSFont systemFontOfSize:@", @FontSize)
      EndIf
      _PB_(SetGadgetFont)(Gadget, SystemFontID)
    Else
      _PB_(SetGadgetFont)(Gadget, FontID)
    EndIf
  EndProcedure
 
  Macro SetGadgetFont(Gadget, FontID)
    FixSetGadgetFont(Gadget, FontID)
  EndMacro
 
CompilerEndIf

CompilerIf #PB_Compiler_IsMainFile
  OpenWindow(0, 0, 0, 200, 200, "ComboBox macOS")
  ComboBoxGadget(0, 5, 5, 190, 30, #PB_ComboBox_Editable)
  StringGadget(1, 5, 40, 190, 30, "Test 1")
  AddGadgetItem(0, -1, "Test 1")
  AddGadgetItem(0, -1, "Test 2")
  SetGadgetFont(0, #PB_Default)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
CompilerEndIf

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.7x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.64
BeitragVerfasst: 01.01.2021 17:08 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Nett!

Anbei:
Ich habe mir gerade echt mal den ganzen Beitragsverlauf von Anfang an durchgelesen.
Dabei bin ich kurz vor Ende auf diese Aussage von mk-soft gestoßen.

Zitat:
Was mir an macOS gefällt ist der Unix basierte Kernel (Darwin) und nach dem einschalten ohne zusätzliche Software alles funktioniert.


Ja man muss für MacOS bereit sein.
Aber die Aussage das nach dem Einschalten alles ohne zusätzliche Software funktioniert ist auch ziemlich MacOS freundlich daher gesagt.

Unter MacOS hat man zum Beispiel per Standard noch nicht mal Zugriff auf NTFS formatierte Festplatten.
Diese Feature liefern die meisten modernen Linux-Distributionen schon mit.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DialogDesign0R V1.69
BeitragVerfasst: 06.01.2021 15:42 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
V1.69

Für macOS muss immer noch etwas Handarbeit erledigt werden, ich bin einfach nicht bereit, die Struktur der zusätzl. Dateien zu verändern, nur weil Apple das so mag.

Neuerungen, soweit ich das noch weiss:
  • Statusbar/Menüs/Toolbars können (durch einen Hack) in den Dialogen untergebracht werden
  • Zuletzt geöffnete Dateien werden gespeichert
  • Ein paar Schönheitsreparaturen
  • Linux sollte mit qt Subsystem kompiliert werden
  • kleinere macOS Verbesserungen
  • ein paar Programmschalter hinzugefügt (-nothemes, -nomenus, -portable (wird /portable demnächst ersetzen))
  • ...hab ich vergessen

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 210 Beiträge ]  Gehe zu Seite Vorherige  1 ... 17, 18, 19, 20, 21

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye