[gelöst] Resize in PureVision

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Resize in PureVision

Beitrag von Qnode »

Nö, du stellst dich gar nicht brettern an... :wink:

Ich habe halt wilde Ideen. Ich möchte in meiner Scrollarea Gadgets übereinanderstapeln, die meistens die Breite der Area ausfüllen. Unterschiedliche Gadgets für unterschiedliche Zwecke, die aus einer Datenbank ihre Daten erhalten und aus den Daten ergibt sich, wann welches Gadget eingebaut wird.

Die Dialog-Library ist für alle Resize-Geschichte echt interessant, aber meine Überlegungen in dieser Richtung waren leider erfolglos: https://www.purebasic.fr/german/viewtopic.php?t=32833

Mit den guten alten Gadgets klappt mein interaktiver Bericht eigentlich ganz gut, wenn ich bloß das Resize-Problem in den Griff kriegen würde. Alternativ kann ich Fensteränderungen auch unterbinden und darauf bestehen, dass die Form immer die Größe hat, in der meine Gadgets passen. Ist eh nur ein Programm für meine eigenen privaten Zwecke. Wäre dann die Lösung, falls sich keine Lösung auftut. Das mit der Größenveränderung ist halt allmählich wie ein Jucken an einer Stelle, an die man nicht rankommt. Macht einen einfach wahnsinnig.

Immerhin habe ich das hingekriegt, dass mir mein Programm die Daten zusammensucht und darstellt, ich kann auf diese Informationen klicken und bekomme Zusatzinformationen und mit Doppeklick öffnet sich das Fenster zum Bearbeiten der Daten. Das ist für jemanden, der das so gelegentlich nebenbei macht schon eine ganz nette Ausbeute.
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Resize in PureVision

Beitrag von jacdelad »

Dynamisch erweitern geht wirklich nicht so einfach, aber du kannst Gadgets zur Laufzeit gegen andere ersetzen und so auch was anderes unterjubeln. Wenn du in einem Dialog ein ein ContainerGadget erstellst, dann kannst du darauf auch dynamisch andere Gadgets erstellen und entfernen, musst dich aber selbst um Resize und sowas kümmern.
Schick doch mal ein, zwei Beispielbilder, wie unterschiedlich die Fenster aufgebaut sein können.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Resize in PureVision

Beitrag von Qnode »

Im Prinzip ist der Aufbau immer gleich: Das Programm sucht aus einer Datenbank die relevanten Daten raus. Diese werden einer Routine übergeben, die das dann optisch darstellt. Es handelt sich - wie man leicht sehen kann - um einen persönlichen Finanzbericht. Der besteht aus Titel, Bemerkungen zum angezeigten Monat (falls welche vorhanden sind), Hinweise falls regelmäßige Zahlungen ausnahmsweise ausgesetzt werden (auch optional), dann die Einnahmen nach Kategorien geordnet, Ausgaben, Zusammenfassung, ToDo's usw.
Viele Gadgets sind simple Textgadgets für Überschriften, Ergebnisse usw. Aber für jede Einnahme/Ausgabe werden pro Kategorien ListIconGadgets erstellt, in die dann die relevanten Daten eingetragen werden. Diese kann man nämlich dann anklicken und weiterverarbeiten.
Insofern habe ich einen festen Aufbau, kann aber nicht vorher bestimmen, wo welches Gadget in welcher Größe eingebaut werden muss, weil das halt von den jeweiligen Daten abhängt.
Im Prinzip sieht man das auf den Bildern, die ich schon geschickt habe. Ich füge mal noch ein Bild vom Auswertungsteil des Berichts ein (der auch anklickbare Elemente enthält).
Bild
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Resize in PureVision

Beitrag von jacdelad »

Ja, stimmt, du hattest schon Bilder geschickt, sorry.
So wie ich das verstehe, musst du eigentlich nur nach einem Resize die neue Breite abfragen und dann alle Gadgets entsprechend anpassen. Eigentlich sollte das gehen. Wenn die Anzahl der Gadgets nicht vordefiniert ist, dann wird's natürlich frickelig. So richtig helfen kann ich dir irgendwie nicht.

Mal was ganz anderes: Hast du schon mal überlegt das Ergebnis in eine HTML-Datei zu transferieren? Die passt sich automatisch an, du legst nur einen Rohling an (z.B. in der DataSection), ersetzt einige Dummies mit Werten und Texten und lässt die im WebGadget anzeigen. Das wäre vielleicht der einfachere Weg, so mache ich das ab und zu.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Resize in PureVision

Beitrag von Qnode »

jacdelad hat geschrieben: 15.04.2024 23:41 So wie ich das verstehe, musst du eigentlich nur nach einem Resize die neue Breite abfragen und dann alle Gadgets entsprechend anpassen. Eigentlich sollte das gehen.
War genau mein Ansatz :mrgreen: . Aber wenn mir die entsprechenden Funktionen immer die gleiche Breite anzeigen, auch wenn das Fenster vergrößert wurde, dann habe ich keinen Ansatz für die Anpassung. Irgendwie scheint PureVision die Vergrößerung nicht über eine Veränderung der Pixel zu realisieren. Ich habe zwar schon das Manual konsultiert, werde es aber nochmal machen. Notfalls muss ich mal beim Entwickler nachfragen.
jacdelad hat geschrieben: 15.04.2024 23:41 Mal was ganz anderes: Hast du schon mal überlegt das Ergebnis in eine HTML-Datei zu transferieren? Die passt sich automatisch an, du legst nur einen Rohling an (z.B. in der DataSection), ersetzt einige Dummies mit Werten und Texten und lässt die im WebGadget anzeigen. Das wäre vielleicht der einfachere Weg, so mache ich das ab und zu.
Du wirst lachen, auch das habe ich zumindest schonmal angedacht. Ich habe die Idee nicht weiterverfolgt, weil ich keine richtige Lösung fand, um eine HTML-Anzeige interaktiv zu gestalten (also in dem Sinne, dass ich da was anklicken kann (Hyperlink?) und mir der Bericht zurückmeldet, WAS angeklickt wurde... bei den Gadgets bzw. deren Items hinterlege ich in der Gadget(item)Data die ID des Datensatzes, der dann aufzurufen ist.

Danke für deine ganze Mühe. Ich schreibe hier rein, falls ich noch eine Lösung für meinen bisherigen Ansatz finde.
Axolotl
Beiträge: 266
Registriert: 31.12.2008 16:34

Re: Resize in PureVision

Beitrag von Axolotl »

Qnode hat geschrieben: 16.04.2024 10:02 .... Ich schreibe hier rein, falls ich noch eine Lösung für meinen bisherigen Ansatz finde.
Wie schon geschrieben kenne ich dieses PureVision nicht. deshalb ist es schwer hierzu etwas gescheites zu schreiben.
Mit Hilfe der (klassischen) Bordmittel würden die Events und darauf folgende Reaktionen möglich sein. (Siehe auch mein Beispiel weiter oben)
Tipp: Ich teste immer mit Debug oder (seltener) Breakpoints ob mein Code ausgeführt wird. Es muss ja in dem P...V... Code auch irgend eine Funktion geben, die im Falle von #PB_Event_SizeWindow oder #WM_SIZE, #WM_SIZING, etc. aufgerufen wird. Evtl. fehlen da gesetzte Flags oder so?
Ansonsten wäre ein Code zum gucken (besser ausprobieren) für weitere Vorschläge hilfreich bzw. notwendig. Sonst ist das nämlich stochern im Nebel.
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Re: Resize in PureVision

Beitrag von Bisonte »

In der Demo zu PureVision sind die Module auch vorhanden.... Nur zur Info, falls einer drüber schauen möchte ;)
Paul würde sich bestimmt über Fehlerbeseitigung oder Erweiterungen freuen...

https://reelmedia.org/purevision/
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Axolotl
Beiträge: 266
Registriert: 31.12.2008 16:34

Re: Resize in PureVision

Beitrag von Axolotl »

Bisonte hat geschrieben: 16.04.2024 16:28 In der Demo zu PureVision sind die Module auch vorhanden.... Nur zur Info, falls einer drüber schauen möchte ;)
Paul würde sich bestimmt über Fehlerbeseitigung oder Erweiterungen freuen...

https://reelmedia.org/purevision/
Ja, danke für den Tip, Allerdings werde ich mir das nicht herunterladen.
Ein kurzer Blick in die Online-Hilfe bestätigt mich in der Annahme das hier vielleicht im Fenster (Dynamic Resizing) oder im Gadget (Resizing Properties) ein Häkchen fehlt?
Damit bin ich jetzt aber erstmal am Ende meiner Spurensuche angekommen. :oops:
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Resize in PureVision

Beitrag von Qnode »

Hey,
ich habe mich nochmal intensiv mit der Anleitung zur PureVision auseinandergesetzt. Komme damit aber auch nicht weiter.
Da steht drin, dass man Gadgets händisch für das dynamische Resize anmelden kann wenn man a) das Fenster registriert und b) das Gadget dann anmeldet. Das würde PV auch automatisch machen, wenn das Projekt nach PB exportiert wird... macht es aber nicht. Ich habe es versucht. Die Befehle
PVX::PVDynamic_AddWindow (#Window)
PVX::PVDynamic_AddGadget(#Window,#Gadget,4)
und den Callback, der an den Anfang der Eventschleife gehört, habe ich mit meinen Werten eingebaut aber das funktioniert nicht (klar, ich kann auch noch was übersehen haben).
Seltsam ist, dass PV andere Sachen einbaut, als in der Doku angegeben.
Da gibt es ein Modul ScaleGadgets, das automatisch implementiert wird (ist von jemandem hier aus dem Forum, dem ich auch schon eine PM deswegen geschickt habe). Dieses Modul enthält auch Beispielcode, aber bei dem Versuch, diesen für meine Zwecke umzusetzen bin ich auch zerschellt.

Vielleicht ist es keine schlechte Idee, wenn ich mal Paul direkt frage. Bisher habe ich ihn immer nur genervt, wenn mein Virenscanner die neueste PV-Version isoliert hat, weil das Programm so unbekannt ist und böse sein könnte...

Parallel dazu schaue ich mir doch nochmal die Verwendung von Dialogen an...
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Resize in PureVision

Beitrag von Qnode »

... so, habe Paul angeschrieben und warte jetzt auf seine Antwort...
Antworten