Schaltflächen in einem Panelgadget deaktivieren
-
- Beiträge: 328
- Registriert: 06.06.2013 20:37
- Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10
Schaltflächen in einem Panelgadget deaktivieren
Hallöchen,
kann mir jemand sagen, wie man einzelne Schaltflächen eines Panelgadgets deaktivieren kann?
- Mit setgadgetstate kann man die aktive Schaltfläche umstellen.
- Mit removegadgetitem kann man einzelne Schaltflächen löschen.
Hier nun mein Problem:
In einem recht umfangreichen Programm, welches über ein Panel geführt wird, möchte ich einzelne Schaltlächen deaktivieren.
Dafür finde ich keine Infos.
Nun habe ich versucht die aktive Schaltläche wie gewünscht einzustellen und die überflüssigen Schaltflächen zu löschen.
Das geht auch, aber da damit auch sämtliche Gadgets auf den gelöschten Schaltflächen mit gelöscht werden, tritt dann ein Laufzeitfehler auf wenn ich bestimmte Aktionen auf der jetzt aktiven Schaltfläche durchführe.
Dieses Problem würde nicht auftreten, wenn alle Schaltflächen bleiben würden aber halt nicht geöffnet werden könnten.
Hoffe jemand hat einen Ansatz!
LG
Wolfgang
kann mir jemand sagen, wie man einzelne Schaltflächen eines Panelgadgets deaktivieren kann?
- Mit setgadgetstate kann man die aktive Schaltfläche umstellen.
- Mit removegadgetitem kann man einzelne Schaltflächen löschen.
Hier nun mein Problem:
In einem recht umfangreichen Programm, welches über ein Panel geführt wird, möchte ich einzelne Schaltlächen deaktivieren.
Dafür finde ich keine Infos.
Nun habe ich versucht die aktive Schaltläche wie gewünscht einzustellen und die überflüssigen Schaltflächen zu löschen.
Das geht auch, aber da damit auch sämtliche Gadgets auf den gelöschten Schaltflächen mit gelöscht werden, tritt dann ein Laufzeitfehler auf wenn ich bestimmte Aktionen auf der jetzt aktiven Schaltfläche durchführe.
Dieses Problem würde nicht auftreten, wenn alle Schaltflächen bleiben würden aber halt nicht geöffnet werden könnten.
Hoffe jemand hat einen Ansatz!
LG
Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
-
- Beiträge: 328
- Registriert: 06.06.2013 20:37
- Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10
Re: Schaltflächen in einem Panelgadget deaktivieren
Habe ich mir angesehen.
Das funktioniert wohl nur wenn das Panel über ein Array erzeugt wird.
Sämtliche Gadgets wurden aber mit dem FormGenerator von PB erzeugt, was auch nicht mehr geändert werden kann.
Damit funktioniert es wohl dann nicht mit dem Code!?
Das funktioniert wohl nur wenn das Panel über ein Array erzeugt wird.
Sämtliche Gadgets wurden aber mit dem FormGenerator von PB erzeugt, was auch nicht mehr geändert werden kann.
Damit funktioniert es wohl dann nicht mit dem Code!?
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
-
- Beiträge: 328
- Registriert: 06.06.2013 20:37
- Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10
Re: Schaltflächen in einem Panelgadget deaktivieren
Gibt es sonst keine Möglichkeit einzelne Flächen eines Panels zu deaktivieren?
Sehr schade! Da haben wir dann doch gleich wieder einen Verbesserungsvorschlag für PB!
Sehr schade! Da haben wir dann doch gleich wieder einen Verbesserungsvorschlag für PB!
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Re: Schaltflächen in einem Panelgadget deaktivieren
Ich benutze zwar den Visual Designer von Polo nicht, aber soweit ich weiß kannst du da nicht viel machen. Der VD ist da diesbezüglich leider sehr eingeschränkt, wenn es darum geht, Änderungen im Generierungscode vorzunehmen.
Entweder verzichtest du auf den VD und du erstellst den Gadgetcode selbst oder du suchst eine andere Möglichkeit. Z.B. kannst du im Eventcode abfragen, welche Schaltfläche gerade aktiv ist. Wenn beispielsweise Tab 5 aktiv ist, dann sorgst du dafür, dass automatisch die letzte Schaltfläche ausgewählt wird. Vielleicht klappt es ja.
Oder, wie du es bereits sagtest, erstellst du ein Thread im englischen Forum, aber wann dein Verbesserungsvorschlag umgesetzt wird, das weiß niemand.
Oder du erstellst/benutzt ein Präprozessor, um den Code vor dem Kompilieren automatisiert anzupassen oder du erstellst Macros.
Ansonsten habe ich bezüglich des Visual Designers von Polo keine Ahnung.
Entweder verzichtest du auf den VD und du erstellst den Gadgetcode selbst oder du suchst eine andere Möglichkeit. Z.B. kannst du im Eventcode abfragen, welche Schaltfläche gerade aktiv ist. Wenn beispielsweise Tab 5 aktiv ist, dann sorgst du dafür, dass automatisch die letzte Schaltfläche ausgewählt wird. Vielleicht klappt es ja.
Oder, wie du es bereits sagtest, erstellst du ein Thread im englischen Forum, aber wann dein Verbesserungsvorschlag umgesetzt wird, das weiß niemand.
Oder du erstellst/benutzt ein Präprozessor, um den Code vor dem Kompilieren automatisiert anzupassen oder du erstellst Macros.
Ansonsten habe ich bezüglich des Visual Designers von Polo keine Ahnung.
- 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
Re: Schaltflächen in einem Panelgadget deaktivieren
Ich verstehe das Problem jetzt überhaupt nicht. Warum sollte das ganze nicht mit dem VD von Polo funktionieren?
Alle Änderungen lassen sich doch auch ausserhalb des PBF codes durchführen. Das Array in der Größe
der Anzahl Tabs, enhalt doch nur 0 für Aktiv oder 1 für Inaktiv, damit mehrere Tabs deaktiviert werden können und
nicht nur einer.
Egal, wer nur mit VisuellDesignern arbeitet...
Wer nur Copy und Paste beherrscht, wird hierbei natürlich Schwierigkeiten haben
Gruß
Thomas
Alle Änderungen lassen sich doch auch ausserhalb des PBF codes durchführen. Das Array in der Größe
der Anzahl Tabs, enhalt doch nur 0 für Aktiv oder 1 für Inaktiv, damit mehrere Tabs deaktiviert werden können und
nicht nur einer.
Egal, wer nur mit VisuellDesignern arbeitet...
Wer nur Copy und Paste beherrscht, wird hierbei natürlich Schwierigkeiten haben

Gruß
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 328
- Registriert: 06.06.2013 20:37
- Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10
Re: Schaltflächen in einem Panelgadget deaktivieren
Und wer nie die Fragen liest oder glaubt alles zu wissen und dadurch oft überheblich wirkt kann doch sein geballtes Wissen für sich behalten und alle Anderen bleiben dumm! Und wenn wir beim Lesen sind, es geht nicht um den Visual Designer den ich schon nach dem ersten Test wieder entfernt habe sondern um den in PB integrierten Form-Designer! Ist zwar für die Lösung des Problems egal aber ich kann ja auch mal kleinkariert sein!ts-soft hat geschrieben:Ich verstehe das Problem jetzt überhaupt nicht. Warum sollte das ganze nicht mit dem VD von Polo funktionieren?
Alle Änderungen lassen sich doch auch ausserhalb des PBF codes durchführen. Das Array in der Größe
der Anzahl Tabs, enhalt doch nur 0 für Aktiv oder 1 für Inaktiv, damit mehrere Tabs deaktiviert werden können und
nicht nur einer.
Egal, wer nur mit VisuellDesignern arbeitet...
Wer nur Copy und Paste beherrscht, wird hierbei natürlich Schwierigkeiten haben![]()
Gruß
Thomas
LG
Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
-
- Beiträge: 328
- Registriert: 06.06.2013 20:37
- Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10
Re: Schaltflächen in einem Panelgadget deaktivieren
Habe jetzt mal versucht einfach ein EditorGadget über das jeweilige Panelfeld zu legen, welches nicht angezeigt werden soll aber Buttons liegen immer vorne. Geht also auch nicht.
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Schaltflächen in einem Panelgadget deaktivieren
Und wenn du einfach alle Gadgets, die im Panel liegen, deaktivierst? Dann kann man zwar das Panel anwählen, aber nichts drin tun. Das könnte auch recht einfach gehen, wenn du alle diese Gadgets in einen Container packst und nur diesen deaktivierst.
Re: Schaltflächen in einem Panelgadget deaktivieren
nit uffreesche...
der von Ray verlinkte Code ist heftig. So ganz genau weiß ich auch nicht, was da passiert.
Zuerst muss Du Dein PanelGadget 'ownerdrawen':
Der (für Dich) wichtige Teil ist das Array, das Du auf die Anzahl Deiner Tabs dimensionierst:
Und wenn Du nun ein Tab dis/enablen willst, dann rufst Du folgendes auf:
das wär's auch schon.
Grüße ... Kiffi
der von Ray verlinkte Code ist heftig. So ganz genau weiß ich auch nicht, was da passiert.
Zuerst muss Du Dein PanelGadget 'ownerdrawen':
Code: Alles auswählen
SetWindowLong_(GadgetID(#DeinPanel), #GWL_STYLE, GetWindowLong_(GadgetID(#DeinPanel), #GWL_STYLE) | #TCS_OWNERDRAWFIXED)
Code: Alles auswählen
(Re)Dim Panels(CountGadgetItems(#DeinPanel) - 1)
Code: Alles auswählen
Panels(#DeinTab) = #True / #False
RedrawWindow_(GadgetID(#DeinPanel), 0, 0, 7)
ShowWindow_(GadgetID(#DeinPanel), #SW_SHOW)
Grüße ... Kiffi
a²+b²=mc²