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
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

bei den beispielen (*.exe) wird das disable/enable bei mir immer erst sichtbar, sobald die maus in den toolbar-bereich kommt.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Funktioniert wunderbar bei mir :allright:
Unter Vista Business sogar ;)

Was ich noch gerne hätte:
Dass die Icons beim Disablen des Buttons auch ein wenig angrauen, genauo leicht, wie der Text. Also optional.

Ansonsten hätte ich es gerne, dass man die MessageID übergeben könnte. Sofern man verschiedene Sachen mit der Toolbar machen möchte, ist man selber Herr über die interne Nachrichten-Gruppierung. Zudem wir ja eh eine ID zum Erstellen der Toolbar brauchen, kann diese auch gleich die Nachricht sein.

Also anstatt

Code: Alles auswählen

CallFunction(0,"PGDR_SetMessageOffset",100)
CallFunction(0,"PGDR_SetTBButton",#TB_Button_0,"Hinauf  ",ImageID(#Image_0))
eher einfach die ID des Buttons nehmen. Dann ist ButtonID=Nachricht.

Code: Alles auswählen

Enumeration #WM_USER
  #TB_Button_0
  #TB_Button_1
EndEnumeration

CallFunction(0,"PGDR_SetTBButton",#TB_Button_0,"Hinauf  ",ImageID(#Image_0))
CallFunction(0,"PGDR_SetTBButton",#TB_Button_1,"Runter  ",ImageID(#Image_1))
Meine nächste Idee wäre, tatsächlich "Nachrichten" zu schicken, und nicht nur die ID des jeweiligen Knopfes. Nachteil wäre hierbei, das man eine kleine INCLUDE braucht mit den Nachrichtenkonstanten, die man empfangen kann. Dann wird die Callback aber auch standardkonformer. Also in der Include würde dann stehen

Code: Alles auswählen

Enumeration #WM_USER
#PGDR_Msg_ButtonAdded
#PGDR_Msg_ButtonDown
#PGDR_Msg_ButtonUp
#PGDR_Msg_ButtonAdded
#PGDR_Msg_ButtonDeleted
EndEnumeration
Im Normalfall würde eh nur "ButtonDown" oder so benutzt werden. Die Nachrichten sollten in der Callback an "wMSG" übergeben werden. In hWnd steht das Handle der jeweiligen Toolbar (oder lieber das Handle des Parentwindow der Toolbar-> aber das ist ne Designfrage). Im wParam steht die ID (die wir ja vorher definiert hatten) und im lParam könntest du noch extrainformationen anbieten, die mir in diesem Fall aber irgendwie nicht einfallen wollen ;) Ne Möglichkeit wäre ne X/Y Koordinate des Mausklicks zu übergeben (im Normalfall ist der lParam ein DWORD, den man in 2 WORDS aufteilen kann- also kannst du in eine Variable 2 Koordinaten packen, sofern sie nicht zu groß sind).

Ich weiß nicht, ob das mit PB möglich ist, aber das sollte es eigentlich: Wenn du die Toolbar hinzufügst, kannst du die Windowcallback des Fensters auf welche du die legst verwenden. Also standardmäßig. Einziges Manko: Du musst dann zusätzlich eine Funktion anbieten, die "manuell" die Callback setzt, sofern man eine eigene für die Toolbar verwenden möchte, und nicht in der Windowcallback des Parents selber. Diese Methode hätte aber (wenn ich das System von Pure richtig verstehe) den Vorteil, dass normale PB-Nutzer sich nicht mit Callbacks herumschlagen müssen. Die können dann einfach mit

Code: Alles auswählen

Repeat
  Event = WaitWindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()
  
  If Event = #PGDR_Msg_ButtonDown
    If GadgetID = #TB_Button_1
      MessageRequester("Info", "Button 1 wurde gedrückt")
    EndIf
   EndIf
Until Event = #PB_Event_CloseWindow
EndIf
arbeiten, so wie sies gewohnt sind. Und wenn mans gerne "extra" hätte, gibts dann eben die Funktion "PGDR_SetTBCallBack(hToolbarHandle, @WndCallback())".

Bitte verstehe das nicht als gemecker, sondern als Kritik- ich finde deine Toolbar "echt geil", aber um richtig damit zu arbeiten fehlt meines Erachtens noch ein wenig. Für den einfachen Gebraucht ist sie natürlich super (und würde mit der ID-Geschichte ja NOCH einfacher laufen ;) ). Und für PureUser wäre es eben angenehm, ihr System mit den Events zu behalten.

Ansonsten: WEITER SO! Prinzipiell bin ich begeistert, weil sie ist echt formschön ist und einfach gehalten!

Gr33tz
Tafkadasom2k5 :allright:
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
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 »

@NULL
Was hast du für ein Betriebssystem ?
Habe die Toolbar unter XP und Vista getestet,
ob sie auch unter 98,Me,2000 funktioniert kann ich leider nicht feststellen.

@Tafkadasom2k5
Freut mich wenn dir die Toolbar gefällt ! :mrgreen:
Habe leider (nein, zum Glück) momentan viele Termine, aber wenn
ich wieder Zeit finde werde ich deine Vorschläge sicher einfließen lassen.

Danke für die ausführliche, konstruktive Kritik ! :)

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
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

xp, sp2.
mit den pb-codes das gleiche.
wenn ich nach drücken von disable das fenster minimiere und wieder maximiere, ohne dabei die bar mit der maus zu berühren, wird das umschalten auch sichtbar, scheint also nicht direkt was mit dem mouseover zu tun zu haben, aber irgendwie werden scheinbar events verschluckt.
my pb stuff..
Bild..jedenfalls war das mal so.
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 »

Ist schon komisch, kann das ganze nicht nachvollziehen.
Hast du vielleicht eine anderes XP-Theme (Skin) als orginal ?

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
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

"visuelle stile für fenster und schaltflächen" ist bei mir aus.
wenn ich es aktiviere tritt das problem nicht mehr auf.
my pb stuff..
Bild..jedenfalls war das mal so.
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 »

Alles klar !
Visuelle Stile für Fenster und Schaltflächen muss an sein
sonst funzt es nicht.

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!
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag von marco2007 »

Ich verwende die LIB jetzt schon eine seit geraumer Zeit. Sie ist echt traumhaft!

Seit heute habe ich jedoch ein kleines Problem....Ein Button wird ab und zu von einem Bild überlagert.

@Legion: Kann ich Dir 2 Screenshots schicken? Vielleicht weißt Du, was das Problem sein könnte.

Danke!
Windows 11 - PB 6.03 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 »

Hallo !

Freut mich wenn dir meine Toolbar.dll gefällt ! <)
Natürlich helfe ich dir, Screenshot sind OK aber noch besser du schickst
mir den ganzen Sourcecode damit ich das Problem analysieren kann.

E-Mailadresse kommt per PN.

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 »

Hallo !

Hab jetzt aus der DLL eine Lib für Purebasic gebastelt.
Ist meine erste PB-Lib ! Hoffe es funktioniert alles wie es soll !
Über konstruktive Kritik würde ich mich freuen.
Viel Spaß beim Testen ! <)

PGDR_ToolbarLib
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Antworten