AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Merkwürdige Bildschirmkoordinaten

Merkwürdige Bildschirmkoordinaten

Ein Thema von Schorschi5566 · begonnen am 23. Jul 2019 · letzter Beitrag vom 23. Jul 2019
Antwort Antwort
Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: Merkwürdige Bildschirmkoordinaten

  Alt 23. Jul 2019, 08:46
Hallo Schokohase,

danke für die schnelle Antwort.

Habe mal den Fensterschatten in den erweiterten Systemeinstellungen abgeschaltet, was aber auch keine Änderung brachte.

Das liegt dann wohl an Delphi, oder?

Das heißt aber auch, dass man die Koordinaten jeweils um die 8 Pixel korrigieren könnte. Damit bekommt man es zwar hin, aber solche "Lösungen" finde ich immer etwas bedenklich.

Kann einem beim nächsten Update von Windows leicht auf die Füße fallen. *grrr*


Na ja, danke auf jeden Fall für die schnelle Erklärung.

Grüße
Uwe
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#2

AW: Merkwürdige Bildschirmkoordinaten

  Alt 23. Jul 2019, 09:33
Diese 8 Pixel sind eine System-Einstellung und könnten sich auch je nach Einstellung des Systems ändern.

Darum sollte man diese auch abfragen
https://docs.microsoft.com/en-us/win...tsystemmetrics

Hier mal eine Form mit 4 Shapes in den Ecken, damit man auch sehen kann, dass der Inhalt bis auf das letzte Pixel angezeigt wird.

DFM:
Delphi-Quellcode:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 411
  ClientWidth = 852
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  DesignSize = (
    852
    411)
  PixelsPerInch = 96
  TextHeight = 13
  object Shape1: TShape
    Left = 0
    Top = 0
    Width = 65
    Height = 65
    Pen.Color = clRed
  end
  object Shape2: TShape
    Left = 0
    Top = 346
    Width = 65
    Height = 65
    Anchors = [akLeft, akBottom]
    Pen.Color = clRed
  end
  object Shape3: TShape
    Left = 787
    Top = 0
    Width = 65
    Height = 65
    Anchors = [akTop, akRight]
    Pen.Color = clRed
  end
  object Shape4: TShape
    Left = 787
    Top = 346
    Width = 65
    Height = 65
    Anchors = [akRight, akBottom]
    Pen.Color = clRed
  end
  object Button1: TButton
    Left = 360
    Top = 120
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
  end
end
Code:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    Shape4: TShape;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  OffsetX, OffsetY: Integer;
  WorkArea: TRect;
begin
  OffsetX := GetSystemMetrics(SM_CXSIZEFRAME) + GetSystemMetrics(SM_CXPADDEDBORDER);
  OffsetY := GetSystemMetrics(SM_CYSIZEFRAME) + GetSystemMetrics(SM_CXPADDEDBORDER);

  WorkArea := Screen.MonitorFromWindow(Self.Handle).WorkareaRect;

  WorkArea.Inflate(OffsetX, 0, OffsetX, OffsetY);

  Self.Left := WorkArea.Left;
  Self.Top := WorkArea.Top;
  Self.Width := WorkArea.Width;
  Self.Height := WorkArea.Height;
end;
Diese Metrics sind für diese Form wohl die richtigen (weil sizable und captioned).

Man sieht trotzdem einen kleinen Unterschied zwischen echtem Vollbild und vollflächiger normaler Anzeige - beim Vollbild wird die Titelzeile kleiner dargestellt und es gibt ein paar Pixel mehr Fläche für den Inhalt.

Hinweis

Ich weiß nur theoretisch warum und wie es funktionieren muss. Bislang hatte ich keinen Bedarf das in einer Anwendung wirklich umzusetzen. Wenn ich hier also einen Aspekt vergessen habe, dann liegt das genau daran.

Geändert von Schokohase (23. Jul 2019 um 09:36 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:03 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