Form größe ändern

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
VB_Lazarus
Beiträge: 99
Registriert: Do 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10/11 32/64bit, L 3.2.0 32/64bit, FPC 3.2.2 32/64bit

Form größe ändern

Beitrag von VB_Lazarus »

Hallo zusammen,

ich habe ein kleines Verständigungsproblem in Bezug auf das Verkleiner / Vergrößern von Fenstern.
Beim Starten meines Programms, hat dies eine Mindestgröße.
Wenn der Benutzer das Fenster maximiert, werden die Controls entsprechend angepasst (Anchors).
Wenn ich die Originalgröße wieder herstelle, dann werden die Scrollbalken angezeigt.
Was auch ok ist, sofern das Programmfenster kleiner als die Mindestgröße ist.
Was kann / muss ich machen, damit die Controls die ursprüngliche Größe wieder haben, damit die Scrollbalken nicht mehr angezeigt werden?
Vielleicht hat jemand ein einfaches Beispiel.
Danke euch.

Gruß

Benutzeravatar
Beach
Lazarusforum e. V.
Beiträge: 60
Registriert: Di 2. Nov 2021, 22:41
OS, Lazarus, FPC: Lazarus 3.0RC1 (rev lazarus_3_0_RC1-10-gfe49fef4fc) FPC 3.2.2 x86_64-win64-win32
CPU-Target: 64Bit
Wohnort: Hunsrück

Re: Form größe ändern

Beitrag von Beach »

Dann musst du bei einem Resize des Fensters die Größe deines Elementes von Hand auf die ursprünglichen, bzw angepassten Werte, setzen.

Etwa so in der Art:

Code: Alles auswählen

procedure TMainFrm.FormResize(Sender: TObject);
begin

  Bevel1.Width := trunc( MainFrm.Width - 640 );
end;
MfG
Beach

Shit happens... Always in my shift

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1647
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Form größe ändern

Beitrag von fliegermichl »

Das kann ich nicht nachvollziehen.
Ich habe ein Formular mit einem Memo drauf.
Im OnResize des Formulares lasse ich dessen Position in dem Memo ausgeben:

Code: Alles auswählen

  Memo1.Lines.Add(Format('%d /%d /%d /%d', [Left, Top, Width, Height]));
Da bekomme ich immer die gleichen Werte angezeigt, die vor dem maximieren vorhanden waren.

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Form größe ändern

Beitrag von wp_xyz »

VB_Lazarus hat geschrieben: So 7. Nov 2021, 20:30 [...] dann werden die Scrollbalken angezeigt.
Bei einem Formular werden normalerweise keine Scrollbalken angezeigt, es sei denn, du hast das "AutoScroll" des Formulars auf true gesetzt.

Benutzeravatar
Ally
Beiträge: 282
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Form größe ändern

Beitrag von Ally »

Hallo VB_Lazarus,

kannst du uns ein kleines Demoprogramm hochladen, bei dem man das Problem sehen kann?

VB_Lazarus
Beiträge: 99
Registriert: Do 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10/11 32/64bit, L 3.2.0 32/64bit, FPC 3.2.2 32/64bit

Re: Form größe ändern

Beitrag von VB_Lazarus »

Hallo,

vielleicht habe ich mich missverständlich ausgedrückt.
Meine ganzen Controls habe ich mit dem Anchors entsrepchend verknüpft, damit diese mit der Größe verteilen kann.
Ich habe auch versucht nach dem Resize die Controls wieder in der Ursprungsgröße zu verkleinern.
Dies hat leider nicht funktioniert.
Ich habe irgendwie einen Denkfehler.....

Ich habe 2 Bilder angehängt, um das Problem zu veranschaulichen.
Man muss diese natürlich in umgekehrter Reihenfolge sehen.
Das AutoScroll von der Form ist true, damit ich bei kleiner Form noch die Controls erreiche....
Dateianhänge
nach Resize.jpg
nach Resize.jpg (202.21 KiB) 1204 mal betrachtet
vor Resize.jpg
vor Resize.jpg (197 KiB) 1204 mal betrachtet

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6787
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Form größe ändern

Beitrag von af0815 »

Soweit ich das sehe, werden einige Bereich länger, als im ursprünglichen Zustand. Das löst dann im Formular die Anzeige des Scrolls aus.

Position Filterauswahl und Ersatzobjekte fallen mir da ins Auge.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten