AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirmauflösung und Positionierung von Controls

Ein Thema von Marco Steinebach · begonnen am 21. Aug 2020 · letzter Beitrag vom 4. Sep 2020
Antwort Antwort
Seite 2 von 2     12   
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#11

AW: Bildschirmauflösung und Positionierung von Controls

  Alt 22. Aug 2020, 16:37
Nur weil er mehr Menüs hat muss er doch nicht langsammer starten oder?
Oder starten deine Delphi Programme signifikant langsamer nur weil du mehr
Menüpunkte reinbaust? Solange du dadurch nicht noch mehr sachen als vorher
initialisierst sondern die erst bei Bedarf erzeugst sollte doch nichts
langsamer werden, oder?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#12

AW: Bildschirmauflösung und Positionierung von Controls

  Alt 2. Sep 2020, 12:14
Hallo zusammen,
erst einmal ganz, ganz herzlichen Dank für die vielen Antworten. Nun, es ist ja auch nicht ganz einfach, einem Blinden zu erklären, wie was aussieht. Das gleiche Problem hätte ich, wenn ich einem gehörlosen Menschen erklären sollte, wie man eine Audio-Datei vernünftig schneidet.
Also: Mit der Skalierung meinte ich, dass man bei W10 einstellen kann, das Text z.B. 150% groß dargestellt wird. Und da ist bei älteren Anwendungen, wie meinen, beim Screen-Reader schluß - der liest schlicht nix mehr vor, außer der Titelleiste. . Bei modernen W10-Apps, Outlook o.ä. spielt das Ganze sowieso keine Rolle, da hier mittels UIA und MSAA und co ausgelesen wird.
Ich hab ein kleines Test-Programm, dem verpaß ich mal ein Panel und lade es mal hoch, vielleicht hat ja jemand Lust, sich das mal anzuschauen, und mir zu sagen, wie es wirkt,, etc.

Ach ja, und da mein gutes, altes D5 noch lange nix von Accessibility wußte, schau ich mir ganz sicher mal die accessibility-api an - danke für den Hinweis.

Herzlich grüßt
Wandogau
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Bildschirmauflösung und Positionierung von Controls

  Alt 2. Sep 2020, 12:44
Falls Deine Frage war, wie ermittel ich den DPI Wert, könnte Dir das hier weiterhelfen:
Delphi-Quellcode:
{ hier beginnt eine Delphi methode }
function GetDPI: Integer;
var
  DC: hDC;
begin
  DC := GetDC(HWND_DESKTOP);
  try
    Result := GetDeviceCaps(DC, LOGPIXELSY);
  finally
    ReleaseDC(DC, HWND_DESKTOP);
  end;
end;
Bei 96 dpi (100%-Skalierung) sollte eine 1 returned werden.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#14

AW: Bildschirmauflösung und Positionierung von Controls

  Alt 2. Sep 2020, 14:20
Hallo zusammen,
So, und nu geht die Fragerei schon los.
Mein Prog, ich hab das ganze Verzeichnis angehängt, der Code ist ja nun wirklich nix spannendes, , hat ja im Grunde 5 Teile, in die man den Bildschirm teilen könnte:
Menüleiste
Eingabebereich
Ausgabebereich
Schalter
Copyright
Wieviele, und welche, Panels brauch ich, damit das Ganze sinnig wird? Um jeden der Bereiche eines und eines um alles???? Hiiilfe.
Über eure Antworten würde ich mich sehr freuen!
Herzlich grüßt
Wandogau
Angehängte Dateien
Dateityp: zip OVZCreator.zip (2,35 MB, 5x aufgerufen)
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Bildschirmauflösung und Positionierung von Controls

  Alt 2. Sep 2020, 14:59
Ich lade mir mal Dein Projekt auf meinen Stick und würde für alles nötige eine Sinnvolle Panel-Ebene erstellen/nutzen.
Per AutoAlign braucht man sich dann um die Positionierung weniger Gedanken machen.
Morgen werde ich es Hochladen (ich hoffe es wurden keine Fremdkomponenten verwendet).

Mit freundlich Grüßen



Ps: Da ich Panels liebe zum Positionieren kann es Anfangs recht chaotisch wirken.
Für sehende ist da immer der Bevel-Part entscheidend, der bestimmt ob ein Panel sichtbar wirkt oder sich tranzparent einreiht.
Des weiteren gibt es noch den Tabulator-Tasten-Bonus den so ein Panel mit sich bringt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Bildschirmauflösung und Positionierung von Controls

  Alt 4. Sep 2020, 08:45
Da ich leider nicht im Besitz der TMS Komponenten bin beschreibe ich Dir was für Änderungen ich machen würde.

1. Ein Grundpanel mit Align = alClient, ohne Border Bevel etc.
2. Pro 2'er Abschnitt ein weiteres Panel mit Align = alTop,
um die Augen zu schonen würde ich nur den unteren Rand aktivieren (Border Bevel)
3. Den Panels die aktiven Inhalt haben je ein OnResize zuweisen oder in den sub-panels bereits
gut Aligned vorgehen und Inhalt auf alClient für automatik setzen.
(mit aktiv meine ich hierbei mehrzeiliger krams, wie diese listviews)

Das was sehende Bemängeln würden und hoffentlich mit guter Panel Nutzung nun angegangen wird:
Diese 3 ListViews, viel zu klein dimensioniert, man erkennt fast nichts.
Die Checkbox "Anmeldung erfor" ist zu schmal, der Text hört da auf wie ich es schrieb.
Ich weiß noch nicht ob das ein normales programm verhalten ist oder das im betrieb sich ändert,
"Beginnt am:" "ListBox" "LbWochenTag1", aufs letzte Label bezogen.
"Endet am:" "ListBox" "LbWochenTag3", aufs letzte Label bezogen.
"Anmeldeschluß:" "ListBox" "LbWochenTag2", aufs letzte Label bezogen.


Hier eine längere Beschreibung wie ich das mit den Panels meine:
Ein völlig transparentes Panel als Hauptpanel wie oben Beschrieben.
Ein Panel mit alTop rauf, nennen wir es "GanzOben"
in dieses ein weiters Panel mit alTop, nennen wir es "pnlTitel"
in dieses ein panel mit alLeft und Caption = "Titel:".
als weiteres element das EditFeld mit alClient mit in pnlTitel rein.
nun in "GanzOben" unter "pnlTitel" ein Panel alClient namens "pnlKategorie"
in "pnlKategorie" ein Panel mit alLeft und Caption = "Kategorien:"
als weiteres Element die ListView alClient mit rein.
Nun ist das oberste der 2'er Abschnitte fertig.
So würde ich weitermachen bis ich bei "GanzUnten" angekommen bin.
Bei allen Panels wo ich es nicht angegeben habe = die Caption leeren.
Drauf achten wie die Panel werte für Border und Bevel sind,
am schlichtesten/am meisten transparent ist es wenn man nichts davon verwendet.
Kleine akzente schaden aber nicht, also würde ich jedem AbschnittsPanel wenigstens
einen Bottom-Strich zeichnen lassen.
Also immer einen Einzeiler mit einem mehrzeiler in ein Panel quetschen

Momentant ist das Fenster resizable, wenn das ein feature sein soll würde ich dem hauptpanel ein
OnResize zuweisen und die Abschnitte per Height neu zeichnen lassen.
Anstelle OnResize kann man auch dem Anwender das Größengedöns per TSplitter überlassen.
Oder eine kombination aus beidem, delphi ist da sehr großzügig


Später kann man ja noch mit dem Gedanken spielen eine selbstspeichernde konfiguration zu benutzen
um Formular dimension und splitter positionen zu speichern/laden...

Ich hoffe ich konnte dir das feeling ein klein wenig vermitteln!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz