ToolBarImageButton() und PB_any

Fragen und Bugreports zur PureBasic 4.0-Beta.
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

ToolBarImageButton() und PB_any

Beitrag 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
1. Win10
PB6.1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag 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
1. Win10
PB6.1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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")))
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag 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.
1. Win10
PB6.1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Habe Fred informiert und um Aufklärung gebeten.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag 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.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag 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
1. Win10
PB6.1
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag 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.
Gesperrt