Announcement

Collapse
No announcement yet.

obergrenze des bildschirmes

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

  • obergrenze des bildschirmes

    hallo,

    damit meine bildschirmtastatur das programmfenster nicht immer irgendwas verdeckt,<br>
    will ich den "bildschirm" verkleinern und in den freien bereich meine<br>
    bildschirmtastatur platzieren. so wie die lupe bei win98.<br>
    weißt du wie das geht?<br>

    mfg

    markus

    p.s. im forum wurde die frage schon mal diskutiert, leider ohne
    ergebnis!!!
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hallo Markus,<p>
    zur Abfrage der Desktopgröße nutze ich die folgende Funktion:<p>
    VAR ScreenRect: TRect;<BR>
    SystemParametersInfo(SPI_GETWORKAREA,0,@ScreenRect ,0);<P>
    Soweit ich noch weiß, gibt es da wohl die Funktion auch mit dem Paramter SetWorkArea. Der dürfte dann wahrscheinlich das gewünschte für Deinen Wunsch tun.<p>
    Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Hallo,

      der Parameter ist SPI_SETWORKAREA. Nach dem folgenden Aufruf können alle anderen Fenster nicht mehr vollständig vergrößert werden, es bleibt immer ein Rand oben übrig:
      <pre>
      procedure TForm1.Button1Click(Sender: TObject);
      var
      aRect : TRect;
      begin
      aRect.Left := 0;
      aRect.Top := 100;
      aRect.Right := Screen.Width;
      aRect.Bottom := Screen.Height;
      SystemParametersInfo(SPI_SETWORKAREA, 0, @aRect, 0);
      end;</pre&gt

      Comment


      • #4
        und wie bekomme ich dann in den bereich meine anwendung rein??

        mfg

        marku
        Herzliche Grüße

        Markus Lemcke
        barrierefreies Webdesign

        Comment


        • #5
          Hallo Markus,

          der Trick besteht darin, zuerst die Anwendung ganz normal ganz oben zu platzieren und erst dann die Work-Area zu verkleinern. Das eigene Programmfenster bleibt dann "oben kleben":
          <pre>
          procedure TForm1.FormCreate(Sender: TObject);
          const
          cOFFSET = 50;
          var
          aRect : TRect;
          begin
          Borderstyle := bsNone;
          Height := cOFFSET;
          Left := 0;
          Top := 0;
          with aRect do
          begin
          Left := 0;
          Top := cOFFSET;
          Right := Screen.Width;
          Bottom := Screen.Height;
          end;
          SystemParametersInfo(SPI_SETWORKAREA, 0, @aRect, 0);
          end;

          procedure TForm1.Button1Click(Sender: TObject);
          begin
          Close;
          end;
          </pre&gt

          Comment


          • #6
            tag andreas,

            der lösungsansatz ist nicht schlecht, aber noch nicht ganz das wahre.<br>
            bei der lupe von win98 wird der desktop verkleinert, dass geschieht hier nicht.<br>
            programmsymbole werden einfach überdeckt!!!!<br>
            außerdem hält sich nicht jedes programm dran!<br>
            excel, winword und mein schachprogramm ist die beschränkung egal!!!<br>
            die machen sich trotzdem ganz breit!!!<br>
            weißt du noch einen zusätzlichen trick??

            mfg

            marku
            Herzliche Grüße

            Markus Lemcke
            barrierefreies Webdesign

            Comment


            • #7
              wie kann ich bei programmende den workarea wieder normalisieren??

              mfg

              marku
              Herzliche Grüße

              Markus Lemcke
              barrierefreies Webdesign

              Comment


              • #8
                Hiho ...<BR>
                Das Normalisieren geht so wie das unnormalisieren ... Nur dann musst du für den TopWert 0 einsetzen. Warum sich die anderen Fenster dennoch breit machen ist mir ein Rätsel, ICQ beispielsweise arbeitet nach dem selben System aber da tritt der Effekt nicht auf ... <BR>
                Wie man den Desktop verschieben kann weiß ich leider auch nicht, währe aber interessant zu wissen ... Hr. Kosch? <BR><BR>
                Ciao Hage

                Comment


                • #9
                  Hallo Markus,<p>
                  ich kann zwar nicht sagen, wie man die fehlende Aktualsierung vom Desktop behebt, aber ich weiß so ungefähr, woran es liegen könnte. Und zwar richtet die Routine vom Andreas Kosch den Desktopbereich zwar neu aus, informiert das System aber nicht über diese Änderung. Das müßte man nämlich noch versuchen hinzubekommen.<p>
                  Grüße, Mario Noac
                  Schöne Grüße, Mario

                  Comment


                  • #10
                    Hallo,

                    wenn als letzter Parameter nicht 0, sondern SPIF_SENDCHANGE übergeben wird, verschickt Windows per Rundruf die Botschaft WM_SETTINGCHANGE an alle Hauptfenster. Diese können dann (aber müssen nicht) auf die Änderungen reagieren

                    Comment

                    Working...
                    X