Wie fange ich am besten eine Fensteranwendung an?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Ich mache meine Fenster auch nie größer als nötig.

Aber bei einigen Anwendungen ist ein fast aufgefüllter Bildschirm schon sinnvoll:

- Bildbearbeitung
- 3D Animation, Videoschnitt
- MS Project
- Datenbankprogramme mit vielen Anzeigeoptionen
- sogar den Editor für PureBasic Programme maximiere ich lieber.
- Schreibprogramme im Pivot-Modus (aber nur bei A3 Blättern) :mrgreen:

Programme, die klein bleiben können:
- Browserfenster
- Dateimanager
- Notiz und Skizzenprogramme
- Schreibprogramme

Programme, die klein bleiben sollten:
- Suchdienste
- Widgets und Gadgets :D
- Videoanzeiger und Audioabspieler (Sortierbibliotheken fallen unter Datenbankanzeiger)
(Videoanzeiger werden nicht maximiert, sondern in den Vollbildmodus geschaltet :) )
- Tools
- Spiele für Zwischendurch


Zum VisualDesigner muss ich sagen, dass ich ihn früher auch versucht habe zu nutzen. Aber immer Angst hatte, dass ich einen Button vergesse und dann muss ich alles neu machen, weil der Designer nicht vom Code zum Design konnte.
Und weil ich mir lange Gedanken drüber gemacht hatte, was mein Programm alles können soll, bin ich gar nicht zum Programmieren gekommen, sondern hab nur LayOuts entworfen.

Da war der Ansatz von Gnozal mit seinem Designer schon besser.
Hab mich aber auch nicht weiter drum geschert, weil man ja eher die Funktionalität öfter benötigt als das Zeichnen von Fenstern.

Bei vielen Funktionen in einem Programm, denke ich, sind Kinderfenster unabdingbar. Allerdings ist es auch ne tierische Arbeit.
Aber wer schön sein will, muss leiden.

@ts-soft
Du als alter Hase, würdest du uns Anfängern liebenswürdigerweise auch mal einen Ansatz ohne Gewähr auf Vollständigkeit zum Besten geben?

Diese Grundlagen findet man leider nicht in der PB-Hilfe und die Beispiele sind ja aus gutem Grund klein gehalten. Aber eben für größere Projekte ungeeignet.

Die Sache mit dem Verdeckt erstellen interessiert mich noch.
Meinst du, man sollte gleich nach dem OpenWindow, das Window minimieren? Und erst wenn alle Gadgets erstellt worden sind, wieder auf normale Größe gehen und sobald die Eventschleife beginnt, die Größen einstellen?

Das klingt auch nach 3 facher Arbeit.

Allerdings ist mir aufgefallen, dass es bei Windows mit SizeGadget eh nicht anders geht und man Regeln für die Minimale und Maximale Größe in die Eventschleife packen muss.

:?

Was ist eigentlich schöner? MDI oder richtige Fenster?
Ich finde, beide haben ihren Reiz.
Kinder an die Macht http://scratch.mit.edu/
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 »

Xaby hat geschrieben: Die Sache mit dem Verdeckt erstellen interessiert mich noch.
Meinst du, man sollte gleich nach dem OpenWindow, das Window minimieren? Und erst wenn alle Gadgets erstellt worden sind, wieder auf normale Größe gehen und sobald die Eventschleife beginnt, die Größen einstellen?

Das klingt auch nach 3 facher Arbeit..
Quatsch mit Soße :lol:
Fenster mit dem Flag: #PB_Window_Invisible erstellen
alle Vorarbeiten erledigen, die den Benutzer nicht benötigen.
und dann in etwa so:

Code: Alles auswählen

While WindowEvent() : Wend
HideWindow(#Window, #False)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
  EndSelect
ForEver
Das erspart den User das zusehen wie das Fenster befüllt oder sonstwas
wird. Bei vielen Gadgets, bzw. langsamer CPU usw. wirkt sowas unschön
und unprofessionel.
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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

zusatz:
während das hauptfenster versteckt aufgebaut wird,
kann man auch nen splashscreen anzeigen,
also son fensterle was nur ne grafik enthält.

eine größenbeschränkung (datenmenge) des bildes ist dabei
allerdings sinnvoll, es ist quatsch, wenn das laden des
splashscreens länger dauert als der aufbau des hauptfensters...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag von Captn. Jinguji »

Xaby hat geschrieben:Zum VisualDesigner muss ich sagen, dass ich ihn früher auch versucht habe zu nutzen. Aber immer Angst hatte, dass ich einen Button vergesse und dann muss ich alles neu machen, weil der Designer nicht vom Code zum Design konnte.
Öhmmm... erklär mal. Ich will Dir ja den VD gar nicht einreden, weiss aber auch jetzt nicht, was Du meinst ??
Klar kann der VD nicht "vom Code zum Design", aber beliebig viele Gadgets dazu zu nehmen oder rauszuschmeissen und dann das Window neu zu generieren ist doch "blosse Willensangelegenheit" ? Klar, beim regenerate sollte man die Eventschleifengenerierung abschalten. Die Konstanten für die neuen Gadgets sind dann doch schnell in der Elseif-Treppe durch Kopieren erzeugt?
Xaby hat geschrieben: Und weil ich mir lange Gedanken drüber gemacht hatte, was mein Programm alles können soll, bin ich gar nicht zum Programmieren gekommen, sondern hab nur LayOuts entworfen.
Hihi, das kann zwar passieren, muss aber nicht.
Ich arbeite gerne evolutorisch, sprich : Hauptgadget und die wichtigsten Buttons im 1. Lauf generiert, und dann wird die entsprechende Grund-Funktionalität entwickelt.

Ausbau erfolgt dann in weiteren Läufen.
(Eine Funktionalitätenliste und Releasekonzept habe ich natürlich vorher, sonst wird man ja nie mit irgendwas fertig ;) )

Ich komme aber eben auch nur (feier)abends zum Programmieren, das ergänzt sich ganz gut mit der vorher beschriebenen Vorgehensweise
(und liefert eigentlich auch regelmässig Teilerfolge, so dass der Spass am Programmieren nicht weggeht).

Du hast eher einen holistischen Ansatz, wie es scheint ?
Ist das Kunst hier, oder kann das weg ?
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag von Captn. Jinguji »

Kaeru Gaman hat geschrieben:zusatz:
während das hauptfenster versteckt aufgebaut wird,
kann man auch nen splashscreen anzeigen,
also son fensterle was nur ne grafik enthält.

eine größenbeschränkung (datenmenge) des bildes ist dabei
allerdings sinnvoll, es ist quatsch, wenn das laden des
splashscreens länger dauert als der aufbau des hauptfensters...
Auch eine gute Idee, gefällt mir. werde ich mal ausprobieren (in Verbindung mit Thomas' Vorschlag)
Ist das Kunst hier, oder kann das weg ?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> (in Verbindung mit Thomas' Vorschlag)

dafür war es gedacht.

[OT]
btw.. woher ist eigentlich deine signatur zitiert?
ich frag mich das schon ewig....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag von Captn. Jinguji »

Kaeru Gaman hat geschrieben:> (in Verbindung mit Thomas' Vorschlag)

dafür war es gedacht.
Hab ich auch so verstanden, mein Zusatz war eigentlich redundant.
Kaeru Gaman hat geschrieben: btw.. woher ist eigentlich deine signatur zitiert?
ich frag mich das schon ewig....
"Batman Begins", die Szene, als Bruce Wayne das zweite mal zu Fox in das Labor kommt und das spätere Batmobil noch im Wüstenanstrich unter der Plane sieht. Wayne fragt, und Fox antwortet, genau wissend, dass das exakte Gegenteil der Fall sein wird. ;)
Ist das Kunst hier, oder kann das weg ?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> "Batman Begins"
hab ich noch garnich gesehen, dabei seh ich den Schauspieler eigentlich gerne....

aber jetz nich noch mehr OT, sonst beschweren sich wieder irgendwelche querulanten... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
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 »

Kaeru Gaman hat geschrieben:aber jetz nich noch mehr OT, sonst beschweren sich wieder irgendwelche querulanten... ;)
Nee, mir ist zu warm :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
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag von D@nte »

Bild

>während das hauptfenster versteckt aufgebaut wird,
>kann man auch nen splashscreen anzeigen,

So nen Splashscreen ist ne feine Sache, aber habt Ihr mal nen Code für nen echten SplashScreen?!
Die einzigen Beispiele die ich bis jetzt in PB gesehen haben sahen zwar nett aus und hatten schöne Blendeffekte aber bei keinem wurde das Hauptfenster geladen während der SplashScreen angezeigt wurde...
Antworten