![]() |
Problem mit Procedure aus Unit
Hallo,
ich hab neben der Unit1 (standart) noch eine weitere Unit angelegt, inder ich eine procedure habe mit der ein MDIChild erzeugt wird. Alerdings kann ich dem MdiChild keine OnClose procedure geben. Habe folgenden Code.
Delphi-Quellcode:
Nun kommt alerdings immer eine Fehlermeldung. :cry:
unit unit2;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; procedure NeueForm; procedure MDIChildClose(Sender: TObject; var Action: TCloseAction); var Form: TForm; Nummer: Integer = 0; implementation uses unit1; procedure NeueForm; begin Inc(Nummer); Form := TForm.Create(MainFrm); with Form do begin Caption := 'Dokument' + IntToStr(Nummer); FormStyle := fsMDIChild; Height := 450; Left := 8; Name :='Dokument' + IntToStr(Nummer); Top := 8; Width := 450; OnClose := MDIChildClose; end; end; procedure MDIChildClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; Zitat:
soll. |
Re: Problem mit Procedure aus Unit
MDIChildClose muss eine Methode eines Objektes sein und keine 'objektlose' Prozedur.
|
Re: Problem mit Procedure aus Unit
das is ne "procedure of object" sozusagen, d.h. du darfst keine "normale" proc. nehmen.. sprich TMDIForm1.MDICloseProcedure statt nur MDICloseProcedure...
kann mich nich besser ausdrücken sorry :stupid: [edit]Phoenix kann sich da viel gewählter und präziser artikulieren :mrgreen: [/edit] Gruß Stephan |
Re: Problem mit Procedure aus Unit
Also geht das nicht einfach so in ner Unit ohne Form?!
|
Re: Problem mit Procedure aus Unit
Delphi-Quellcode:
So sollte es hinhauen [nicht getestet]
interface
{...} type TMyForm = CLASS(TForm); PRIVATE procedure MDIChildClose(Sender: TObject; var Action: TCloseAction); END; procedure NeueForm; var Nummer: Integer = 0; implementation uses unit1; var Form: TMyForm; procedure NeueForm; begin Inc(Nummer); Form := TMyForm.Create(MainFrm); with Form do begin {...} OnClose := MDIChildClose; end; end; procedure TMyForm.MDIChildClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; Gruß Stephan [edit] Code bissl gekürzt[/edit] |
Re: Problem mit Procedure aus Unit
Ok, also soweit klappt das schonmal. Aber wenn ich ne neue Form machen will
(auf nen Button klicke). Stützt das programm ab und es wird folgende Zeile makiert.
Delphi-Quellcode:
Zudem kommt auch noch nen Fehler.
Form := TMyForm.Create(MainFrm);
Zitat:
|
Re: Problem mit Procedure aus Unit
Delphi-Quellcode:
Bei mir funzt das so nu :)
type
TMyForm = CLASS(TForm) // <<-- Da war fälschlicheriwese ein Seminkolon PRIVATE procedure MDIChildClose(Sender: TObject; var Action: TCloseAction); END; procedure NeueForm; var Nummer: Integer = 0; implementation uses unit1; var Form: TMyForm; procedure NeueForm; begin Inc(Nummer); Form := TMyForm.CreateNew(MainFrm); // <<-- CreteNew statt Create {..} end; procedure TMyForm.MDIChildClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; end. Stephan edit: gekürzt |
Re: Problem mit Procedure aus Unit
CreateNew gibts bei mir gar nicht.
Ich weiß net wiso, aber es klappt jetzt irgendwie mit "Create". Hab die Codezeile neu hingeschrieben und jetzt klappt es. *lol* |
Re: Problem mit Procedure aus Unit
Das verwirrt mich nu :shock:
Hmz naja wenns nu geht :gruebel: dann ists ja gut :mrgreen: Stephan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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