Ribbon Menü

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: Ribbon Menü

Beitrag von mk-soft »

Und einen dicken Hinweis auf "#PB_EventType_FirstCustomValue", da auch in anderen Module dieser verwendet sein könnte und eventuell angepasst werden muss!
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
jacdelad
Beiträge: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: Ribbon Menü

Beitrag von jacdelad »

Ah verstehe. Fred denkt an alles, aber da fehlt eine Funktion, dass man den FirstCustomValue-Wert für andere Module automatisch anheben lassen kann.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Ribbon Menü

Beitrag von STARGÅTE »

Ja das stimmt, es war auch schon im Gespräch, diese #PB_Event_FirstCustomValue Konstante ähnlich wie MacroExpandedCount arbeiten zu lassen, die sich ja mit jedem Aufruf erhöht.
Das Problem bleibt aber bestehen, wenn "kreuz und quer" seine eigenen Event-Konstanten setzt, wie sollen sich die Module da "absprechen".

Abhilfe:
Da du ja für dein Ribbon eh ein echtes Gadget benutzt, könnte man auch normal das #PB_Event_Gadget nutzen und dann bei besonderen Event lieber mit dem Custom EventType und #PB_EventType_FirstCustomValue arbeiten.
Da das Gadget ja "dir gehört" wird da auch kein anderes Modul reinfuchteln und wenn sich #PB_EventType Konstanten überschneiden, die aber gar nicht im selben "Arbeitsbereich" angesprochen werden, ist das ja wurscht.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
jacdelad
Beiträge: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: Ribbon Menü

Beitrag von jacdelad »

Ja, das leuchtet ein. Irgendwie. Die Umsetzung mit normalen Events und EventTypes mache ich noch, aber das dauert bei mir etwas länger.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Ribbon Menü

Beitrag von ts-soft »

Hier meine Lösung: An den Anfang des Codes:

Code: Alles auswählen

CompilerIf Defined(CommonConstants, #PB_Module) = 0
  DeclareModule CommonConstants
    ; Form
    Enumeration FormWindow
    EndEnumeration
    Enumeration FormGadget
    EndEnumeration
    Enumeration FormMenu
    EndEnumeration
    Enumeration FormImage
    EndEnumeration
    Enumeration FormFont
    EndEnumeration
    ; Event
    Enumeration EventCustom #PB_Event_FirstCustomValue
    EndEnumeration
    Enumeration EventTypeCustom #PB_EventType_FirstCustomValue
    EndEnumeration
  EndDeclareModule
  
  Module CommonConstants
  EndModule
CompilerEndIf

UseModule CommonConstants
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Ribbon Menü

Beitrag von mk-soft »

@ts-soft

das Thema hatten wird schon :wink:
das geht gut, für eigene Projekte. Damit es auch für Fremd Projekte funktioniert, müsten sich alle daran halten.
Tut nur keiner ...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
HeX0R
Beiträge: 2954
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: Ribbon Menü

Beitrag von HeX0R »

Ich bekomme das Projekt irgendwie von hier nicht heruntergeladen, aber müssen denn da tatsächlich Events innerhalb des Moduls verschickt werden?
Also ich mache das i.d.R. so, dass im Hauptcode die Events definiert werden (da ist ja üblicherweise auch die Eventschleife), und beim Erstellen des Gadgets (über das Modul), werden diese Events dort einfach mit übergeben.
Benutzeravatar
jacdelad
Beiträge: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: Ribbon Menü

Beitrag von jacdelad »

Hab's gerade probiert, der Download geht. Sonst vielleicht mal den Link abtippen, in einem anderen Browser hatte ich auch Probleme.

Ich hatte auch schon überlegt vielleicht mittels eines Initialisierungsbefehls dem Benutzer freie Hand zu geben ab wo die definierten Events gesendet werden.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
HeX0R
Beiträge: 2954
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: Ribbon Menü

Beitrag von HeX0R »

Ja, sorry, ich wollte damit nicht sagen, dass Dein Link nicht funktioniert, mit "hier" meinte ich aus dem Firmennetz heraus.
Benutzeravatar
jacdelad
Beiträge: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: Ribbon Menü

Beitrag von jacdelad »

Ach so. Hm, da hilft nur kündigen und neuen Job suchen.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Antworten