[Module] StringEx (all OS)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: [Module] StringEx (all OS)

Beitrag von mk-soft »

Für macOS sind noch nicht die richtigen färben eingetragen...

Zeile 1457

Code: Alles auswählen

        CompilerSelect #PB_Compiler_OS ;{ Color
          CompilerCase #PB_OS_Windows
            StrgEx()\Color\Front         = GetSysColor_(#COLOR_WINDOWTEXT)
            StrgEx()\Color\Back          = GetSysColor_(#COLOR_WINDOW)
            StrgEx()\Color\Focus         = GetSysColor_(#COLOR_HIGHLIGHT)
            StrgEx()\Color\Button        = GetSysColor_(#COLOR_3DLIGHT)
            StrgEx()\Color\Border        = GetSysColor_(#COLOR_WINDOWFRAME)
            StrgEx()\Color\WordColor     = GetSysColor_(#COLOR_HOTLIGHT)
            StrgEx()\Color\Highlight     = GetSysColor_(#COLOR_HIGHLIGHT)
            StrgEx()\Color\HighlightText = GetSysColor_(#COLOR_HIGHLIGHTTEXT)
          CompilerCase #PB_OS_MacOS
            StrgEx()\Color\Front     = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor textColor"))
            StrgEx()\Color\Back      = BlendColor_(OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor textBackgroundColor")), $FFFFFF, 80)
            StrgEx()\Color\Focus     = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor keyboardFocusIndicatorColor"))
            StrgEx()\Color\Button    = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor controlBackgroundColor"))
            StrgEx()\Color\Border    = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor grayColor"))
            StrgEx()\Color\Highlight = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor selectedTextBackgroundColor"))
          CompilerCase #PB_OS_Linux
So geht es auch im Darkmode
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: [Module] StringEx (all OS)

Beitrag von mk-soft »

EDIT

Man kann bei macOS nicht aus einem Thread auf einem CanvasGadget zeichnen.

Hier mal die Lösung über ein PostEvent aus dem Thread heraus. Dazu verwendet man den EventType Change, da dieser vom CanvasGadget nicht verwendet wird.

Mit PauseThread ist auch nicht so gut. Dieses führte zu undefinierten Dead-Lock mitten im Zeichnen.

P.S. Man könnte jetzt wieder auf den Mutex verzichten, da nicht mehr im Thread gezeichnet wird.

Hier mal den gesamten Code...
Werde ich später wieder entfernen.

Edit 2

Code: Alles auswählen

; Code wie gesagt wieder entfernt ;)
Ach ja,
Bei Verwendung von Thread müssen unbedingt die Threads beim verlassen des Programmes auch beendet werden.
Sonst schließt das Programm nicht.
Zuletzt geändert von mk-soft am 29.03.2019 16:57, insgesamt 2-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: [Module] StringEx (all OS)

Beitrag von mk-soft »

Kleines Update hinterher...

Mutex entfernt. Es wird durch den PostEvent (Change) nur noch im MainScope gezeichnet...
Bei Free KillThread nur bei bedarf.

PauseThread hatte zu einem Dead-Lock geführt.

P.S. Man könnte noch ein Semaphore anlegen zum wecken des Threads verwenden, damit dieser nicht unnötig durchläuft.

P.P.S Habe mal den Semaphore zum wecken des Threads eingebaut...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] StringEx (all OS)

Beitrag von Thorsten1867 »

Ich hoffe, ich kann mit dieser Version alle Macs friedlich und kooperativ stimmen.

Changes: Cursor-Handling und Thread
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] StringEx (all OS)

Beitrag von Thorsten1867 »

Update:
  • globalen Cursor-Thread für alle StringEx-Gadgets gemeinsam
  • Unterstützung von 'ModuleEx' (Master-Module für alle meine Gadgets)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] StringEx (all OS)

Beitrag von Thorsten1867 »

Update:
  • Flags: #Left / #Center / #Right
  • Attribut '#Padding' hinzugefügt
  • automatische Größenanpassung des Gadgets (#AutoResize)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] StringEx (all OS)

Beitrag von Thorsten1867 »

Bugfixes: Cursor
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] StringEx (all OS)

Beitrag von Thorsten1867 »

Update: dynamische Textgröße (benötigt ModuleEx.pbi)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] StringEx (all OS)

Beitrag von Thorsten1867 »

Update: StringEx::SetInputMask()

Beispiele:
  • Datum: "____/__/__/" or "__.__.____"
  • Zeit: "__:__:__"
  • Lizenznummer: "___-___-___"
  • Geld: " *,__€ "
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] StringEx (all OS)

Beitrag von Thorsten1867 »

Update: Hintergrundtext hinzugefügt

Code: Alles auswählen

StringEx::SetText(#String, "Background Text", StringEx::#Background)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Antworten