Announcement

Collapse
No announcement yet.

Bildschirmauflösung programmieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bildschirmauflösung programmieren

    Hallo, ich habe ein kleines Programm geschrieben, dass unter einer Auflösung von 800 x 600, den Bildschirm ausfüllt. Dieses Programm soll nun aber auch unter einer Auflösung von 1280 x 1024 laufen (auch den Bildschirm ausfüllen und nicht nur im Fenster links oben stehen). Wie kann man zum Programmstart die Auflösung programmieren. Also das Programm soll beim Start vom System feststellen, die Auflösung beträgt 600x800 stelle auf 800x600 ein usw. Habt ihr das schon gemacht, und kann man mir einige Tips und Hinweise geben ob das geht. Gruß ph.

  • #2
    Versuchs mal mit
    Screen.DesktopHeight und Screen.DesktopWidth bzw.
    Screen.Height und Screen.Widt

    Comment


    • #3
      Hier ein wenig Code:<BR>
      <BR>
      procedure TAdressenFrm.FormShow(Sender: TObject);<BR>
      var<BR>
      HPixel, WPixel: Integer;<BR>
      begin<BR>
      HPixel := Screen.Height - 606;<BR>
      WPixel := Screen.Width - 800;<BR>
      {Formular auf Bildschirmauflösung einstellen}<BR>
      If BS_Aufloesung = false then<BR>
      begin<BR>
      BS_Aufloesung := true;<BR>
      AdressenFrm.Top := HauptFrm.ScreenTop;<BR>
      AdressenFrm.Height := (AdressenFrm.Height+HPixel);<BR>
      AdressenFrm.Width := (AdressenFrm.Width+WPixel);<BR>
      StatusBar1.Panels[0].Width := (StatusBar1.Panels[0].Width+ WPixel);<BR>
      HauptFrm.ScreenHeight := AdressenFrm.Height;<BR>
      HauptFrm.ScreenWidth := AdressenFrm.Width;<BR>
      HauptFrm.ScreenLeft := (Screen.Width - AdressenFrm.Width) div 2;<BR>
      HauptFrm.StatusWidth := StatusBar1.Panels[0].Width;<BR>
      end;<BR>
      end;<BR&gt

      Comment


      • #4
        Hallo, vielen Dank für die Anworten. Ich dachte es gibt eine fertige Funktion, die das System beim Start des Programmes abfragt, welche Bildschirmauflösung eingestellt ist und dann automatisch das Hauptformular auf die entsprechende Größe einstellt. Ich arbeite mit Delphi 5 komme mit dem Code unten (HPixel := Screen.Height - 606, HauptFrm.ScreenHeight := AdressenFrm.Height) noch nicht ganz zurecht, werde mich aber bemühen das hinzukriegen.
        Gibt es da eine fertige Funktion ? Danke ph

        Comment


        • #5
          Nach meinen Kenntnissen gibt es keine fertige Funktion.<BR>
          <BR>
          Wenn Du Delphi etwas verstehst und den Code richtig deutest wirst Du feststellen, dass die beiden Integer-Variablen <B>HPixel</B> und <B>WPixel</B> die Differenz zwischen der Auflösung 800 x 600 und der tatsächlichen Auflösung (1.280 x 1.024) aufnehmen.<BR>
          <BR>
          Vereinfacht ausgedrückt:<BR>
          <BR>
          Die abweichende Bildschirmhöhe (HPixel) ist gleich tatsächliche Bildschirmhöhe (Screen.Height) abzüglich Deiner Codierung von 600 (606).<BR>
          <BR>
          Mit dem Ergebnis verändere ich die Höhe (Height) meines Formulars <B>AdressenFrm</B> (AdressenFrm.Height := (AdressenFrm.Height + HPixel)). Die veränderte Höhe wird im Hauptformular <B>HauptFrm</B> in der Integer-Variablen <B>ScreenHeight</B> (HauptFrm.Height := AdressenFrm.Height) für weitere Formulare zwischengespeichert.<BR>
          <BR>
          Die Eigenschaft des Hauptformulars <B>HauptFrm.WindowState</B> ist auf <B>wsMinimized</B> eingestellt und füllt damit auf jeden Fall den gesamten Bildschirm aus.<BR>
          <BR>
          Soviel als Beispiel zur Höhe des Bildschirms

          Comment


          • #6
            Er meint natürlich wsMaximizid..

            Comment


            • #7
              Mist, natürlich meine ich <B>wsMaximized</B>

              Comment


              • #8
                Hallo,

                ich habe beste Erfahrungen damit gemacht, bei Formularen zur Entwicklungszeit die Eigenschaft Anchors aller sichbaren Komponenten zu setzen.

                Dann ist man bei TForm.Show und TForm.Resize von der Bildschirmauflösung unabhängig. Eventuell muß noch TForm.Scaled auf False gesetzt werden.

                Gruß<br>
                Ale

                Comment

                Working...
                X