AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Größe der Arbeitsfläche eines Forms ermitteln (Scrollbar!)
Thema durchsuchen
Ansicht
Themen-Optionen

Größe der Arbeitsfläche eines Forms ermitteln (Scrollbar!)

Ein Thema von berens · begonnen am 26. Okt 2009 · letzter Beitrag vom 26. Okt 2009
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.533 Beiträge
 
Delphi 12 Athens
 
#3

Re: Größe der Arbeitsfläche eines Forms ermitteln (Scrollbar

  Alt 26. Okt 2009, 16:32
also in D7 liefert .Range auch die richtigen Ergebnisse (Wenn nichts auf der Form ist, dann natürlich 0)

liefert den belegten ClientBereich
Delphi-Quellcode:
Function GetUsedClientRect(C: TWinControl): TRect;
  Var i: Integer;

  Begin
    i := C.ControlCount - 1;
    While i >= 0 do
      If (C.Controls[i] is TWinControl) and TWinControl(C.Controls[i]).Visible Then Begin
        Result := TWinControl(C.Controls[i]).BoundsRect;
        Break;
      End Else Dec(i);
    If i >= 0 Then Begin
      While i > 0 do Begin
        Dec(i);
        If (C.Controls[i] is TWinControl) and TWinControl(C.Controls[i]).Visible Then
          UnionRect(Result, Result, TWinControl(C.Controls[i]).BoundsRect);
      End;
    End Else ZeroMemory(@Result, SizeOf(TRect));
  End;


R{TRect} := GetUsedClientRect(Form1);
und wenn man es sich etwas abändert, dann sollte es auch den kompletten Client-Bereich zurückgeben können
Delphi-Quellcode:
Function GetClientRect(C: TWinControl): TRect;
  Var i: Integer;

  Begin
    Result.Left := 0;
    Result.Top := 0;
    Result.Right := C.ClientWidth;
    Result.Bottom := C.ClientHeight;
    i := C.ControlCount;
    While i > 0 do Begin
      Dec(i);
      If (C.Controls[i] is TWinControl) and TWinControl(C.Controls[i]).Visible Then
        UnionRect(Result, Result, TWinControl(C.Controls[i]).BoundsRect);
    End;
  End;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 21:43 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