Anpassung an verschiedene Bildschirmauflooesungen

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
Reiner
Foriker
Beiträge: 11
Registriert: Sa 18. Apr 2015, 13:57
Kontaktdaten:

Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von Reiner » Mo 14. Mai 2018, 07:36

Gibt es eine elegante einfache Methode, mit der bei Benutzung von Verschiedenen Bildschirmausloesungen immer der gleiche Screen erzeugt wird, also z.b. die Buttons immer gleich gross sind und an gleicher Stelle ?

gambasso
Foriker
Beiträge: 881
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von gambasso » Mo 14. Mai 2018, 10:42

moin,

man kann die die Bildschirmgröße über 'Screen.W' + 'Screen.H' auslesen und danach seine Elemente anpassen.
Gruss

Reiner
Foriker
Beiträge: 11
Registriert: Sa 18. Apr 2015, 13:57
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von Reiner » Di 15. Mai 2018, 15:51

Ja, so mache ich das bisher.Aber das ist nicht elegant, und fuehrt zu langen Befehlslisten bei vielen Objekten.

gambasso
Foriker
Beiträge: 881
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von gambasso » Di 15. Mai 2018, 16:41

moin,

versuch mal mit HSplit ~ VSplit ~ HBox ~ VBox, vielleicht bringt das was?
Gruss

Benutzeravatar
4tionov
Site Admin
Beiträge: 232
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von 4tionov » Di 15. Mai 2018, 16:49

Reiner hat geschrieben:
Mo 14. Mai 2018, 07:36
Gibt es eine elegante einfache Methode, mit der bei Benutzung von Verschiedenen Bildschirmausloesungen immer der gleiche Screen erzeugt wird, also z.b. die Buttons immer gleich gross sind und an gleicher Stelle ?
Das ist nicht elegant, meiner Meinung nach.

Wenn du mit den Gambas GUI-Objekten arbeitest, macht es Sinn, Container zu benutzen und denen das Floaten zu überlassen. Dann kann deine Applikation eine große Bandbreite an Auflösungen abdecken und der Benutzer kann sich auch sein Fenster so groß und klein ziehen, wie er es gerne haben will.

Du kannst dann eine Vielzahl von Containern sich selbst arrangieren lassen. In meinen Anwendungen merken sich die Fenster und diversen Container die Größe und laden beim nächsten Mal genau so, wie der Benutzer die Anwendung zuletzt verlassen hat. Hier siehst du die selbe Anwendung einfach unterschiedlich groß gezogen:
gambas-gui.png
gambas-gui.png (20.81 KiB) 154 mal betrachtet
gambas-gui2.png
gambas-gui2.png (22.97 KiB) 154 mal betrachtet
Alles Gute,

4tionov

Reiner
Foriker
Beiträge: 11
Registriert: Sa 18. Apr 2015, 13:57
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von Reiner » Mi 16. Mai 2018, 08:22

Vielen Dank fuer Deine Muehe.
Aber der Weg, dass Benutzer die Groessen selbst bestimmen koennen, ist absolut nicht der meine. Das ist fuer mich nicht hilfreich fuer die Anwender, es duerfte die Sache in meinem Fall schwieriger machen. Aus Deinem Beispiel geht hervor, dass Dein Beispiel etwas ganz Anderes ist als mein Projekt. Container, das ist fuer mich als Neuling ein spanisches Dorf.
Ich finde, dass Deine Beispiel noch weit Programmierer-bezogen ist, und nciht Anwender-bezogen. Daran aendert auch ein Verschieben der Teilfenster-Dimensionen nichts.
Aus meiner Sicht fehlt in GAMBAS ein Scale-Befehl, der ein Fenster/Window/Formular automatisch auf eine vorzugebende Pixelzahl auf dem Screen anpasst. Damit ware mein Problem komplett geloest.

Reiner
Foriker
Beiträge: 11
Registriert: Sa 18. Apr 2015, 13:57
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von Reiner » Mi 16. Mai 2018, 09:04

HSplit, VSplit, HBox, VBox, das kann ic h nirgendwo finden. Kann man da etwas mehr dazu sagen ?

Benutzeravatar
4tionov
Site Admin
Beiträge: 232
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von 4tionov » Mi 16. Mai 2018, 09:19

Reiner hat geschrieben:
Mi 16. Mai 2018, 09:04
HSplit, VSplit, HBox, VBox, das kann ic h nirgendwo finden. Kann man da etwas mehr dazu sagen ?
Das sind Container.

https://www.gambas-buch.de/dw/doku.php?id=k18:start
Alles Gute,

4tionov

Benutzeravatar
4tionov
Site Admin
Beiträge: 232
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von 4tionov » Mi 16. Mai 2018, 09:27

Reiner hat geschrieben:
Mi 16. Mai 2018, 08:22
Aus meiner Sicht fehlt in GAMBAS ein Scale-Befehl, der ein Fenster/Window/Formular automatisch auf eine vorzugebende Pixelzahl auf dem Screen anpasst. Damit ware mein Problem komplett geloest.
Skalieren ist Sache des Desktops, nicht der einzelnen Programme, und darum findest du das nicht in Gambas. Es bleibt dir natürlich unbenommen, deine eigenen Steuerelemente zu schreiben, die unabhängig vom Desktop skalieren, aber damit machst du dir viel (wahrscheinlich unnötige) Arbeit. Vielleicht solltest du dir erst mal die vorhandenen GUI-Konzepte von Gambas ansehen.

Solange du auch nicht genauer zeigst und erklärst, was du eigentlich vorhast wird dir auch keiner besser helfen können.
Alles Gute,

4tionov

besenmuckel
Foriker
Beiträge: 72
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von besenmuckel » Mi 16. Mai 2018, 09:49

Reiner hat geschrieben:
Mi 16. Mai 2018, 09:04
HSplit, VSplit, HBox, VBox, das kann ic h nirgendwo finden. Kann man da etwas mehr dazu sagen ?
Die findest du in der Werkzeugkiste unter Reiter Container. Beim Start wird automatisch als Standard Reiter Form geöffnet.
Screenshot_20180516_104028.png
Screenshot_20180516_104028.png (22.57 KiB) 135 mal betrachtet
Als Anfänger ist das mit HSplit, VSplit, HBox, VBox erst einmal nicht einfach. Kannst ja an kleinen Programmen erst einmal testen.

Reiner
Foriker
Beiträge: 11
Registriert: Sa 18. Apr 2015, 13:57
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von Reiner » Mi 23. Mai 2018, 13:06

Skalieren ist Sache des Desktops, nicht der einzelnen Programme, und darum findest du das nicht in Gambas.

Nach meiner Meinung ist das obige falsch. Vielleicht ist das die Philosophie von GAMBAS, das mag sein. Aber das generelle State ment so wie oben ist einfach falsch.
Man braucht sich nur ein Videofenster anzuschauen, welches bei einem Anwender auf 16:9 dargestellt wird, aber in ein Fenster mit 4:3 dargestellt wird. Oder wie in meinem Fall, dass in einem Fenster eine Landkarte abgebildet wird.

Das Resultat bis hierher ist fuer mich : GAMBAS hat keinen Befehl, der das Programm auf den jeweils existierenden Bildschirm anpasst.

gambasso
Foriker
Beiträge: 881
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von gambasso » Mi 23. Mai 2018, 18:48

moin,

@ Reiner: wie wäre es, wenn Du das Programm zu Durchsicht mal hier ins Forum stellst? Vielleicht findet jemand dann eine Antwort. So ist alles vage.
Gruss

besenmuckel
Foriker
Beiträge: 72
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: Anpassung an verschiedene Bildschirmauflooesungen

Beitrag von besenmuckel » Do 24. Mai 2018, 19:19

Reiner hat geschrieben:
Mi 23. Mai 2018, 13:06
Das Resultat bis hierher ist fuer mich : GAMBAS hat keinen Befehl, der das Programm auf den jeweils existierenden Bildschirm anpasst.
Besser wäre es wie schon gambasso schreibt du stellst das Programm mal hier vor. Ansonsten kannste doch den Code anpassen z. B. mit einer Variable
variable.Text = "16:9"
oder die Werte mit Screen.Width und Screen.Height auslesen, dann ausrechnen Breite / Höhe was bei einen 16:9 Format 1,7777777777 ergibt und den Befehl für den Player entsprechend anpassen. In meinen Project habe ich im Menü mehrere zu Auswahl und habe das so gemacht. Video wird abgespielt im DrawingArea. Hier bleibt die Höhe nur die Breite passt sich entsprechent den ausgewählten Menüpunkt(Format) an. AspectVorschau ist die Variable zur Übergabe an den Playerbefehl.

Code: Alles auswählen

Public Sub mnuVorschauDefault_Click()
  
  drawW = dwgVorschau.Height / 9 * 16
  dwgVorschau.Width = drawW
  AspectVorschau = "16:9"
  
End
Soll hier nur als Beispiel dienen

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste