Seite 3 von 5

Verfasst: 30.10.2007 23:53
von #NULL
bei den beispielen (*.exe) wird das disable/enable bei mir immer erst sichtbar, sobald die maus in den toolbar-bereich kommt.

Verfasst: 31.10.2007 10:55
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:

Verfasst: 31.10.2007 12:54
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

Verfasst: 31.10.2007 13:07
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.

Verfasst: 31.10.2007 13:17
von legion
Ist schon komisch, kann das ganze nicht nachvollziehen.
Hast du vielleicht eine anderes XP-Theme (Skin) als orginal ?

Lg. Legion

Verfasst: 31.10.2007 13:36
von #NULL
"visuelle stile für fenster und schaltflächen" ist bei mir aus.
wenn ich es aktiviere tritt das problem nicht mehr auf.

Verfasst: 31.10.2007 13:50
von legion
Alles klar !
Visuelle Stile für Fenster und Schaltflächen muss an sein
sonst funzt es nicht.

Lg. Legion

Verfasst: 15.04.2008 21:19
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!

Verfasst: 16.04.2008 15:00
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

Verfasst: 23.05.2008 12:49
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