AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Form Größe zur Laufzeit ändern klappt nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

Form Größe zur Laufzeit ändern klappt nicht richtig

Ein Thema von TurboMagic · begonnen am 28. Jan 2020 · letzter Beitrag vom 29. Jan 2020
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.034 Beiträge
 
Delphi 12 Athens
 
#1

Form Größe zur Laufzeit ändern klappt nicht richtig

  Alt 28. Jan 2020, 15:07
Gegeben Delphi 10.3.2 und eine VCL FOrm mit diesen eigenschaften:

- 1 TPanel top aligned
- 1 TPanel client aligned
- 1 TPanel bottom aligned

Je nach dem welche Daten vorliegen möchte ich das Top oder das Client Panel verbergen
und die Form um deren Größe verkleinern bzw. beim Top Panel auch ggf. die Höhe
an die Menge des darzustellenden Texts anpassen. Im Form designer ist dieses Panel auf
die maximale Länge zu erwartenden Texts ausgelegt.

Im OnCreate der Form prüfe ich, ob das client aligned Panel versteckt werden muss und
falls ja rufe ich das hier auf:

SetBounds(Left, Top, Width, Height - ClientPanel.Height);

Rechnerisch scheint das in Ordnung zu sein, beim Ausführen ist die Form in der Höhe
aber so winzig, dass noch nicht mal die Titelleiste ganz dargestellt wird.

Bei der dynamischen Änderung des Top-Panels genau dasselbe, daher vermutlich der
selbe Fehler.

Woran liegt das?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Form Größe zur Laufzeit ändern klappt nicht richtig

  Alt 28. Jan 2020, 15:15
Hast du mal geschaut welche Werte Height/ClientPanel.Height haben beim setzen der Bounds?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.034 Beiträge
 
Delphi 12 Athens
 
#3

AW: Form Größe zur Laufzeit ändern klappt nicht richtig

  Alt 28. Jan 2020, 15:17
Hallo,

ja, mit dem Debugger und das sah vernünftig aus.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Form Größe zur Laufzeit ändern klappt nicht richtig

  Alt 28. Jan 2020, 16:32
Hallo,
müsste Du nicht ClientHeight statt Height nehmen?
Heiko
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.034 Beiträge
 
Delphi 12 Athens
 
#5

AW: Form Größe zur Laufzeit ändern klappt nicht richtig

  Alt 28. Jan 2020, 16:50
Hallo,

ich glaube nicht, dass das einen Unterschied bewirken würde ob ich
nun ClientHeight oder Height nehme.

Evtl. muss ich das mal morgen mit einem einfachen Testprogramm ausprobieren...

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Form Größe zur Laufzeit ändern klappt nicht richtig

  Alt 28. Jan 2020, 17:38
Ich hab es eben ausprobiert und es klappt ohne Probleme:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    plClient: TPanel;
    Panel3: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetBounds(Left, Top, Width, Height - plClient.Height);
end;

end.
Design:



Laufzeit:

Angehängte Grafiken
Dateityp: png img1.png (8,3 KB, 109x aufgerufen)
Dateityp: png img2.png (1,9 KB, 106x aufgerufen)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:46 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