Vermisse ClearWindow und Zellzugriff auf ListIconGadget

Fragen und Bugreports zur PureBasic 4.0-Beta.
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Vermisse ClearWindow und Zellzugriff auf ListIconGadget

Beitrag von ullmann »

1. Damit ich in einem Fenster neue Ausgaben (Text und Schaltflächen) darstellen kann, muss/will ich ältere Ausgaben löschen. Dazu habe ich diese Gadgets zu einem Containergadget zusammengefasst und dieses dann gelöscht. Finde ich umständlich. Ich vermisse einen Befehl ClearWindow(Backgroundcolor), der mir das Window säubert und alle Gadgets dieses Fensters entfernt, so als hätte ich das Fenster neu erstellt.

2. Ich lasse mehrere Ergebnisse (8-stellige ganze Zahlen) in einem ListIconGadget in Zeilen und Spalten darstellen. Ich kann dann aber mit der Maus kein einzelnes Ergebnis markieren, sondern in der Spalte ganz links nur die ganze Zeile. Hier wäre ein Parameter gut, der mir den einzelnen Zellzugriff (Markierung) gestattet. Bei Mausklick auf eine Zelle würde ich von dem Gadget gern Zeilen- und Spaltennummer erhalten.

Vielleicht kann Fred sowas noch schnell mit in die V4 einbauen ?

Rainer
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

du kannst bei der erstellung des LIGs mit dem flag #PB_ListIcon_FullRowSelect festlegen das immer die ganze zeile markiert wird, nicht nur das erste feld.

willst du einzelne zellen markieren und direkt bearbeiten, dann solltest du im englischen forum nach "grid" suchen, da gibts mehrere librarys die dies ermöglichen.

ansonsten gibt GetGadgetState() dir die reihe zurück und für die zelle hätte ich auch einen windowsonly-code wenn du willst.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Zu 1.): Wenn du alle Gadgets auf einen Schlag löschen willst, hast du 2 möglichkeiten:

1.) Du verwendest fixe Gadget-Nummern, und diese fixen Gadget-Nummern sind "ein Block", aus dem ALLE Nummern verwendet werden, also nicht,n dass du "in diesem Block" noch "unbenutze" Zahlen "frei" hast. Dann kannst du das einfach so machen:

Code: Alles auswählen

For k=0 To #LETZEGADGETNUMMER
FreeGadget(k)
Next k
2.) Du verwendest #PB_Any, und schreibst das Handle von jedem Gadget in eine LinkedList, sobald du das entsprechende Gadget erstellt hast. Wenn du alle Gadgets wieder löschen willst, machst du folgendes:

Code: Alles auswählen

ForEach Gadgets()
FreeGadget(Gadgets())
Next
Bitte bedenke, dass PureBasic eine Programmiersprache, und keine eierlegende Wollmilchsau ist. (<- wetten, das gibt nen Flame?)
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 »

Code: Alles auswählen

FreeGadget(#Container)
tuts auch, die enthaltenen Gadgets werden autmatisch freigegeben!
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
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Auch ne möglichkeit. Aber gabs da nicht irgendeine Beschränkung, die Container und Panels mit sich bringen? Ich glaub, ich kann mich da düster an den diffusen Schatten einer Vermutung erinnern, dass da was nicht geht, aber ich mir mir absolut nicht sicher...

//EDIT: Notfalls kann er das Fenster ja auch komplett löschen, und an der Stelle des alten FEnsters wieder ein neues erstellen mit den gleichen Parametern wie das alte Fenster....
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 »

hardfalcon hat geschrieben:Auch ne möglichkeit.
ja, ist auch das einfachste :wink:
hardfalcon hat geschrieben:Aber gabs da nicht irgendeine Beschränkung, die Container und Panels mit sich bringen? Ich glaub, ich kann mich da düster an den diffusen Schatten einer Vermutung erinnern, dass da was nicht geht, aber ich mir mir absolut nicht sicher...
Über diese Dinge solltest Du mit dem Arzt Deines Vertrauens sprechen :mrgreen:
hardfalcon hat geschrieben: //EDIT: Notfalls kann er das Fenster ja auch komplett löschen, und an der Stelle des alten FEnsters wieder ein neues erstellen mit den gleichen Parametern wie das alte Fenster....
Oder das Programm beenden und Neustarten :mrgreen:
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
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag von ullmann »

Danke für die Tipps. Einige waren mir bekannt.

Eine Art CLS (für Window) und ein Grid sind für mich grundlegende Dinge, die sicher oft benötigt werden und die PB gleich an Bord haben sollte, das hat nichts mit eierlegender Wollmilchsau zu tun (die kann Fred später implementieren).
Es gibt ja auch zig andere direkt enthaltene Gadgettypen.

Der Name BASIC steht für Anfänger-Programmiersprache und es wäre gut, wenn sowohl für Anfänger grundlegende, starke und "gewohnt reagierende" Befehle als auch für Puristen spezielle Befehle enthalten sind. Soll doch jeder nutzen können, was er benötigt.

Rainer
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 »

CLS für Fenster gibt es nicht und sind total unlogisch :freak:
Lediglich Profan bietet sowas, wobei dort jedes Fenster eine Zeichenfläche
emuliert, so das man dort auch mit Print usw. arbeiten kann. Sowas ist aber
sehr hinderlich, wenn man Windows-Übliche Anwendungen erstellen möchte,
solltest vielleicht die Console verwenden, kann man auch einen weißen
Hintergrund erstellen :mrgreen:
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
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

@ullmann:

> Eine Art CLS (für Window) [...] sind für mich grundlegende Dinge,

Ich weiss ja nicht, wann Du zum letzten Mal Windowsanwendungen
programmiert hast, aber Du solltest Dich langsam daran gewöhnen, dass wir
nicht mehr im Consolen-Zeitalter leben.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

ClS fuer Fenster ist schwachsinn, braucht man ja eigendlich eh net und ich glaube nicht dass es ein Gridgadget standartmeasig in der API von Windows gibt. (Obwohl man das eigendlich immer bruacht).
Gesperrt