Multicolor Toolbar Neue PB-Lib oder DLL

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
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Multicolor Toolbar Neue PB-Lib oder DLL

Beitrag von legion »

#EDIT:
Bild

Hallo !

PGDR_TOOLBAR

ist eine Dll für PureBasic, Delphi und C++ Builder und implementiert eine Toolbar im Hauptfenster. Mit der beiligenden PGDR_TOOLBAR.LIB kann die Dll über Import-Funktion (siehe Beispiel) ohne Callfunktion eingebunden werden.

Funktionen in Version V1.01

AUTOSCALING
Die Toolbar passt immer genau an die Fenstergrösse an.

AUTOMENUE
Sollte im Fenster bei der Initialisieung ein Menü vorhanden sein, so verschiebt sich die Toolbar um die Menübreite automatisch nach unten.

MESSAGEOFFSET
Die Toolbar sendet standartmässig die Messages für ToolButtonClick an das aufrufende Fenster über WM-USER +100. Sollte dieser Message-Bereich von einem Programm bereits verwendet werden, so kann man diesen über einen Offset verändern.

DISABLEBUTTON
Jeder Toolbutton kann einzeln disable und enable Status erhalten. Im disable Status wird die Schrift grau unterlegt und der Button kann nicht mehr gewählt werden.

TRANSPARENTICON
Jedem Toolbutton kann ein Icon mit 16x16 Pixel zugewiesen werden. Die Transparents von Icons wird unterstützt. Sollten ihr keine Icons nutzen, so wird die Schrifft am Toolbutton automatisch ausgerichtet.

MULTICOLORING
Die toolbar kann über die Befehle
PGDR_GreyscaleToolbar
PGDR_SetBrightness
PGDR_SetColorFilter
PGDR_BoostContrast
PGDR_SetFontColor
individuell angepasst werden.

Bild

Nicht vergessen die Pfade anzupassen !
Visuelle Stile für Fenster und Schaltflächen muss an sein !
Viel Spaß beim Testen !

PGDR_ToolbarDLL
PGDR_ToolbarLib NEU ! ! ! ! ! ! ! !

Lg. Legion
Zuletzt geändert von legion am 23.05.2008 22:40, insgesamt 9-mal geändert.
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hi Legion,

scheint vielversprechend zu sein,

leider funz der link nicht!

Ciao
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Beitrag von legion »

Sorry ! Aber der Link will nicht funktionieren !
Arbeite daran !

Lg. Legion
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Beitrag von legion »

So, der Link sollte jetzt funktionieren ! :mrgreen:

Sorry, Lg. Legion
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hi Legion,

jetzt klappt's :-)


die ToolbarTest2.exe scheint nicht zu funktionieren ..

ist eine vertikale toolbar möglich?

Ciao
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Beitrag von legion »

tut mir leid, die ToolbarTest2.exe ruft einen Pfad "K:\PGDR-Toolbar DLL\"
auf den es nur auf meiner Platte gibt.
Das hab ich leider übersehen, ich werde das ändern. :freak:

Vertikale Toolbar ist nicht möglich !

Lg. Legion
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

evtl sollte der topic nach Feedback-Anwendungen
verschoben werden, da dies nicht so in Tips&Tricks
reinpasst (Imho) .
oder nach K:\ verschieben ;)
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Deluxe0321
Beiträge: 336
Registriert: 19.05.2006 00:31
Kontaktdaten:

Beitrag von Deluxe0321 »

Danke dir legion, die DLL kann ich gut gebrauchen ;)

Aber mal ne Frage, wie berechnest du die Farbverläufe der Toolbar?
Ich würde den Effekt nämlich auch gerne für meine Buttons verwenden,
komme aber nicht dahinter wie ich das am besten zeichnen/berechnen soll..

Danke & grüße Deluxe0321
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Beitrag von legion »

Deluxe0321 hat geschrieben:Danke dir legion, die DLL kann ich gut gebrauchen ;)

Aber mal ne Frage, wie berechnest du die Farbverläufe der Toolbar?
Ich würde den Effekt nämlich auch gerne für meine Buttons verwenden,
komme aber nicht dahinter wie ich das am besten zeichnen/berechnen soll..

Danke & grüße Deluxe0321
Die Toolbar ist ein nur 1Pixel breiter Farbverlauf (ein Image) das mit einer
Farbe überzogen wird.

Code: Alles auswählen

Procedure AddColorFilter(ImageNumber,ColorFilter)
Protected HBmp,HDC,ri,bi,gi,r,g,b
  HBmp = ImageID(ImageNumber) 
  If HBmp 
   HDC  = StartDrawing(ImageOutput(ImageNumber)) 
   If HDC 
    ImageWidth  = ImageWidth(ImageNumber) : ImageHeight = ImageHeight(ImageNumber) 
    mem = GlobalAlloc_(#GMEM_FIXED|#GMEM_ZEROINIT,ImageWidth*ImageHeight*4) 
    If mem 
     bmi.MyBITMAPINFO 
     bmi\BMIHeader\biSize   = SizeOf(BITMAPINFOHEADER) 
     bmi\BMIHeader\biWidth  = ImageWidth 
     bmi\BMIHeader\biHeight = ImageHeight 
     bmi\BMIHeader\biPlanes = 1 
     bmi\BMIHeader\biBitCount = 32 
     bmi\BMIHeader\biCompression = #BI_RGB 
     If GetDIBits_(hDC,hBmp,0,ImageHeight(ImageNumber),mem,bmi,#DIB_RGB_COLORS) <> 0 
      *pixels.MyLONG = mem        
      For a = 1 To ImageWidth*ImageHeight 
       ri = (*pixels\l >>16) & $FF 
       gi = (*pixels\l >> 8) & $FF 
       bi = (*Pixels\l     ) & $FF              
            
       r=(ri/255.0)*Red(ColorFilter) 
       g=(gi/255.0)*Green(ColorFilter) 
       b=(bi/255.0)*Blue(ColorFilter) 

       *pixels\l = RGB(b,g,r) 
       *pixels + 4 
       Next a 

          If SetDIBits_(hDC,hBmp,0,ImageHeight(ImageNumber),mem,bmi,#DIB_RGB_COLORS) <> 0 
            Result = hBmp 
          EndIf 
        EndIf 
        GlobalFree_(mem) 
      EndIf 
    EndIf 
    StopDrawing() 
  EndIf 
  ProcedureReturn Result 
EndProcedure 
Ich hoffe das hilft die weiter.

Lg. Legion
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Multicolor Toolbar über DLL

Beitrag von HeX0R »

legion hat geschrieben:#EDIT:
Wegen allgemeinen Desinteresse wieder gelöscht !
Lg. Legion
Nach 35 Stunden schon wieder gelöscht ?
Es mag jetzt zwar völlig aus der Luft gegriffen klingen, aber es gibt Leute, die nur alle 2 Tage oder sogar (Achtung: Jetzt wirds absolut utopisch!) noch seltener ins Board schauen.

*Kopfschüttel*
Antworten