Seite 1 von 2
ToolBarImageButton() und PB_any
Verfasst: 19.03.2006 20:33
von Toshy
hallo.
warum kann man bei ToolBarImageButton() nicht pb_any nutzen wie bei so vielen anderen Funktionen auch?
"ToolBarImageButton(#PB_Any,...)" funktioniert nicht.
Zwar wird der Button erstellt, aber keine nutzbare ID zurückgeliefert.
(getestet under Win98)
Gruß
Toshy
Verfasst: 19.03.2006 21:07
von ts-soft
Da haste etwas mißverstanden. Das Image mußte Mithilfe der Image Library laden, die selbstverständlich auch #PB_Any usw. unterstützt. Die dort erhaltene ImageID übergibst Du an den ToolBarImageButton
Verfasst: 19.03.2006 21:45
von Toshy
Hi.
Das weiß ich. es geht nicht darum das Icon zu laden, das klappt. Sondern man kann ja bei (fast) allen Objekten entweder eine feste "ID" vergeben (0,1,4,5...) oder #pb_any. Durch #pb_any wird dann ja normal durch die Funktion die variabel von PB erstelle ID zurückgegeben mit der man das Objekt ansprechen kann. Loadimage wie du meinst macht das ja, entweder mit loadimage(3,) oder loadimage(#pb_any,..).
Nun wollte ich folgendes machen:
ToolBarImageButton_Web_Refresh = ToolBarImageButton(#PB_Any, ImageID(IconImage(4)))
ToolBarToolTip(ToolBar_1, ToolBarImageButton_Web_Refresh, "Erneuern")
Das klappt aber nicht. Na ja, es klappt schon. Button wird mit Grafik erstellt, aber immer nur "1" zurück geliefert. Also geht es wohl mit #pb_any nicht. Weshalb? Kann mir das jemand sagen oder mache ich was falsch?
Gruß
Toshy
Verfasst: 19.03.2006 22:09
von ts-soft
Habs nicht ganz verstanden, hab aber jetzt alles per #PB_Any gemacht und funzt:
Code: Alles auswählen
TB_ID = ToolBarImageButton(#PB_Any, ImageID(LoadImage(#PB_Any, "E:\Icons\210.ico")))
Verfasst: 19.03.2006 22:25
von Toshy
Code: Alles auswählen
Window_0 = OpenWindow(#PB_Any, 99, 5, 605, 404, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )
ToolBar_1 = CreateToolBar(#PB_Any, WindowID(Window_0))
TB_ID = ToolBarImageButton(#PB_Any, ImageID(LoadImage(#PB_Any, "C:\Daten\Purebasic\Projekte\ProfanBase\pfeilnachlinks.ico")))
Debug TB_ID
TB_ID = ToolBarImageButton(#PB_Any, ImageID(LoadImage(#PB_Any, "C:\Daten\Purebasic\Projekte\ProfanBase\pfeilnachlinks.ico")))
Debug TB_ID
TB_ID = ToolBarImageButton(#PB_Any, ImageID(LoadImage(#PB_Any, "C:\Daten\Purebasic\Projekte\ProfanBase\pfeilnachlinks.ico")))
Debug TB_ID
While 1
WindowEvent.l = WaitWindowEvent()
Wend
Klappt nicht wirklich.
Wie schon gesagt klappt das erstellen schon, aber der Rückgabewert nicht. Die Funktion gibt NICHT eine ID zurück die "durch #pb_any" erstellt wird, sondern nur immer den Wert #TRUE.
Dadurch kann man den Button natürlich nicht ansprechen.
Es kann ja gut sein, das #pb_any für die Toolbar nicht vorgesehen ist. Denn bei der Toolbarfunktion steht nicht das man #pb_any nutzen kann.
Ich kenne mich mit Toolbars nur sehr wenig aus, wenn man theoretisch nur eine einzige Toolbar erstellen kann, das wäre en #pb_any für die Buttuns ja eh nicht sinnvoll.
Ist mir halt nur aufgefallen und ich wollte halt wenn ich schon bei allem #pb_any nutze auch dabei bleiben, wenn es geht.
Verfasst: 19.03.2006 22:37
von ts-soft
Dann unterstützt der ToolBarImageButton anscheinend kein #PB_Any, ist auch in der Hilfe nicht erwähnt. Oder ist ein Bug?
Ich bin überfragt

Verfasst: 19.03.2006 22:49
von Andre
Habe Fred informiert und um Aufklärung gebeten.
Verfasst: 22.03.2006 01:48
von Andre
ToolBarImageButton() does not support #PB_Any
... its a bug or a missing feature?
Fred hat geschrieben:
It doesn't support button with #PB_Any, it's like a menu item. Only
the CreateToolbar() supports #PB_Any.
Ist also Absicht so und daher auch nicht in der Hilfe dokumentiert.
Verfasst: 22.03.2006 01:56
von Toshy
Sehr Schade, wäre ja trotzdem möglich gewesen.
Aber nicht schlimm, dann nutze ich halt Konstanten oder ne eigene "pb_any"-funktion.
Da es wie Menüitems arbeitet brauche ich dann ja in der Procedure nur um jeweils "1" erhöhen.
Danke dir Andre, jetzt bin ich schlauer.
Vielleicht kann ja als Hinweis in der Hilfedatei eine Anmerkung eingefügt werden (bei Menüitem und Toolbarbuttons) das man hier #pb_any nicht nutzen kann.
Wer neu ist in PB oder vielleicht sogar allgemein jeder der ansonsten #pb_any bei allem nutzt kommt vielleicht nicht auf die Idee das es hier nicht geht, baut es automatisch ein und wundert sich lange warum es nicht geht.
Brauch ja nur ein einziger Satz sein, "#pb_any läßt sich bei diesem Befehl nicht nutzen". Punkt aus
Gruß
Thorsten
Verfasst: 22.03.2006 02:04
von Konne
Oder man baut PB_any als Feature ein. Oder meiner Meinung nach das beste keine Konstanten mehr fuer dagegts usw verwenden sondern in einem neuen Variablen Typ die hwnd usw speichern. Dann kann die Befehle auch endlich fuer dlls und andere Fenster nutzen.