![]() |
Minimieren eines Fensters (bei MDI anwendung)
Hallo!
Mit welchem Befehl kann ich bei einer MDI Anwendung ein MDI Child minimieren? Minimize ist ja was anderes , damit kann man nur die Application minimieren habe in der Hilfe aber nichts gefunden wie man ein Child-Fenster minimieren kann..? ? :bounce1: ? |
Re: Minimieren eines Fensters (bei MDI anwendung)
:freak: Ich möchte das aber nich mit WindowState:=wsMinimized machen , sondern einen Befehl wie Tile , der alle geöffneten Fenster minimiert
|
Re: Minimieren eines Fensters (bei MDI anwendung)
Hallo,
kopiere folgenden Code in einen onClick Event eines Buttons:
Delphi-Quellcode:
Autor: Steve Turner, Leeds, England (gefunden in einer NewsGroup)
type
{ Array of form references } A_TForm = Array [0 .. (($fff0 div SizeOf(TForm)) - 1)] of TForm; var ChildCount: Integer; CurrentMDIChildCount: Integer; CurrentMDIChildren: ^A_TForm; begin { For some reason Delphi messes around with the MDIChildren array when child forms are repositioned in code, causing the routine to suddenly start accessing the wrong form in the middle of an iteration! To get around this problem, allocate some memory to make copies of the main form's MDIChildren array and use this copy throughout the rest of the routine } CurrentMDIChildCount := MDIChildCount; CurrentMDIChildren := AllocMem(CurrentMDIChildCount * SizeOf(CurrentMDIChildren^[0])); try { Copy all the child form references to the local array } for ChildCount := 0 to CurrentMDIChildCount - 1 do CurrentMDIChildren^[ChildCount] := MDIChildren[ChildCount]; for ChildCount := CurrentMDIChildCount - 1 downto 0 do CurrentMDIChildren^[ChildCount].WindowState := wsMinimized; finally { Free the memory allocated to the array of form references } FreeMem(CurrentMDIChildren, CurrentMDIChildCount * SizeOf(CurrentMDIChildren^[0])); end; { end try } end; |
Re: Minimieren eines Fensters (bei MDI anwendung)
HÄ WAAS?
Delphi-Quellcode:
Ich meine ich hab auch schonmal was von Hexadezimalcode gehört
Array [0 .. (($fff0 div SizeOf(TForm)) - 1)]
aber welcher Kryptiker hat sich denn bitte das alles ausgedacht? Dann wäre da vielleicht ein Erklärungskommentar mal angebracht. Im Übrigen kann ich da bezüglich meines Problems keine Lösung drin finden. ? :bouncing4: :firejump: :bounce1: :bounce2: ? |
Re: Minimieren eines Fensters (bei MDI anwendung)
Zitat:
Mit obigem Code wird deine Frage Zitat:
Zitat:
|
Re: Minimieren eines Fensters (bei MDI anwendung)
Warum so kompliziert?
Delphi-Quellcode:
Einfach diese Prozedur bei dir einfügen und MinimizeAll aufrufen.
procedure MinimizeAll;
var i: Integer; begin //Form1 ist das Hauptfenster der Anwendung for i := Form1.MDIChildCount - 1 downto 0 do Form1.MDIChildren[i].WindowState := wsMinimized; end; |
Re: Minimieren eines Fensters (bei MDI anwendung)
Hallo MatthiasO,
ich vertraue einfach mal dem Autor Steve Turner, da er auf ein Posting antwortete, daß so ähnlich war wie Dein Code, allerdings manchmal zu einem falschen Ergebnis führte. Du kannst übrigens selbst nachlesen, warum es "so kompliziert" ist: :mrgreen: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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