Seite 1 von 5

Multicolor Toolbar Neue PB-Lib oder DLL

Verfasst: 26.10.2007 10:23
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

Verfasst: 26.10.2007 10:37
von jpd
Hi Legion,

scheint vielversprechend zu sein,

leider funz der link nicht!

Ciao
jpd

Verfasst: 26.10.2007 10:41
von legion
Sorry ! Aber der Link will nicht funktionieren !
Arbeite daran !

Lg. Legion

Verfasst: 26.10.2007 10:47
von legion
So, der Link sollte jetzt funktionieren ! :mrgreen:

Sorry, Lg. Legion

Verfasst: 26.10.2007 10:57
von jpd
Hi Legion,

jetzt klappt's :-)


die ToolbarTest2.exe scheint nicht zu funktionieren ..

ist eine vertikale toolbar möglich?

Ciao
jpd

Verfasst: 26.10.2007 11:12
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

Verfasst: 26.10.2007 11:56
von Rings
evtl sollte der topic nach Feedback-Anwendungen
verschoben werden, da dies nicht so in Tips&Tricks
reinpasst (Imho) .
oder nach K:\ verschieben ;)

Verfasst: 26.10.2007 14:37
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

Verfasst: 26.10.2007 16:23
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

Re: Multicolor Toolbar über DLL

Verfasst: 29.10.2007 13:41
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*