![]() |
ChildForm in MDI-Anwendung ansprechen
Hallo,
Alles Gute fürs neue Jahr, viel Gesundheit und Spaß (mit mir) im Forum. Ich habe eine MDI-Anwendung mit einem Wizard erzeugt. Nun will ich, daß die Fenster untereinander reden. Z.B. wenn ich das MainForm in der Größe ändere sollen die ChildForms mitskaliert werden. Mein Code aus dem Wizard ist wie folgt:
Delphi-Quellcode:
Die CildForms habe ich in eigenen Units definiert
unit MAIN;
interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus, StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns, ActnList, ToolWin, ImgList; type TMainForm = class(TForm) MainMenu1: TMainMenu; File1: TMenuItem; FileNewItem: TMenuItem; FileOpenItem: TMenuItem; FileCloseItem: TMenuItem; Window1: TMenuItem; Help1: TMenuItem; N1: TMenuItem; FileExitItem: TMenuItem; WindowCascadeItem: TMenuItem; WindowTileItem: TMenuItem; WindowArrangeItem: TMenuItem; HelpAboutItem: TMenuItem; OpenDialog: TOpenDialog; FileSaveItem: TMenuItem; FileSaveAsItem: TMenuItem; Edit1: TMenuItem; CutItem: TMenuItem; CopyItem: TMenuItem; PasteItem: TMenuItem; WindowMinimizeItem: TMenuItem; StatusBar: TStatusBar; ActionList1: TActionList; EditCut1: TEditCut; EditCopy1: TEditCopy; EditPaste1: TEditPaste; FileNew1: TAction; FileSave1: TAction; FileExit1: TAction; FileOpen1: TAction; FileSaveAs1: TAction; WindowCascade1: TWindowCascade; WindowTileHorizontal1: TWindowTileHorizontal; WindowArrangeAll1: TWindowArrange; WindowMinimizeAll1: TWindowMinimizeAll; HelpAbout1: TAction; FileClose1: TWindowClose; WindowTileVertical1: TWindowTileVertical; WindowTileItem2: TMenuItem; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton9: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton; ToolButton10: TToolButton; ToolButton11: TToolButton; ImageList1: TImageList; procedure FormCreate(Sender: TObject); procedure FormResize(Sender: TObject); procedure FileNew1Execute(Sender: TObject); procedure FileOpen1Execute(Sender: TObject); procedure HelpAbout1Execute(Sender: TObject); procedure FileExit1Execute(Sender: TObject); private { Private-Deklarationen } procedure CreateMDIChild(const Name: string); public { Public-Deklarationen } end; var MainForm: TMainForm; implementation {$R *.dfm} uses CHILDWIN, about; procedure TMainForm.CreateMDIChild(const Name: string); var Child: TMDIChild; begin { ein neues untergeordnetes MDI-Fenster erstellen } Child := TMDIChild.Create(Application); Child.Caption := Name; if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name); end; procedure TMainForm.FileNew1Execute(Sender: TObject); begin CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1)); end; procedure TMainForm.FileOpen1Execute(Sender: TObject); begin if OpenDialog.Execute then CreateMDIChild(OpenDialog.FileName); end; procedure TMainForm.FormCreate(Sender: TObject); begin end; procedure TMainForm.FormResize(Sender: TObject); begin end; procedure TMainForm.HelpAbout1Execute(Sender: TObject); begin AboutBox.ShowModal; end; procedure TMainForm.FileExit1Execute(Sender: TObject); begin Close; end; end.
Delphi-Quellcode:
Das Selbe auch für die CildForms2 und -3.
unit1
... type TForm1 = class(TForm); ... var Form1 : TForm1;
Delphi-Quellcode:
unit2
... type TForm2 = class(TForm); ... var Form2 : TForm2; Nun will ich in MainForm auf das Ereignis OnReSize die Fenstergröße abfragen und die CildForms daraufhin neu skalieren. Arbeit mit anderen Steuerelementen in diesen CildForms ist bestimmt adäquat. Vielen Dank für Hilfe E. B. |
Re: ChildForm in MDI-Anwendung ansprechen
Delphi-Quellcode:
for n := MDIChildCount - 1 to 0 do
MDIChildren[n].anpassen; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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