![]() |
AW: Bildschirmauflösung und Positionierung von Controls
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 |
AW: Bildschirmauflösung und Positionierung von Controls
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 |
AW: Bildschirmauflösung und Positionierung von Controls
Falls Deine Frage war, wie ermittel ich den DPI Wert, könnte Dir das hier weiterhelfen:
Delphi-Quellcode:
Bei 96 dpi (100%-Skalierung) sollte eine 1 returned werden.
{ 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; |
AW: Bildschirmauflösung und Positionierung von Controls
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
AW: Bildschirmauflösung und Positionierung von Controls
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. |
AW: Bildschirmauflösung und Positionierung von Controls
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! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz