Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - mit show oder showModal "Zugriffsverletzung bei Adresse..."


horsti - Mo 14.11.05 23:45
Titel: mit show oder showModal "Zugriffsverletzung bei Adresse..."
Hi,
wenn ich versuche ein Formular einer aus der selben Unit zu öffnen, dann kommt o.g. Exeption.

Aufruf ist wie folgt:

dummy := frmTest.showModal;

dummy ist vom Typ integer

oder

frmTest.show;

beides ergibt diese Exeption, bin ich denn doof?


BenBE - Di 15.11.05 00:11

Ist frmTest initialisiert?

Poste mal etwas mehr Source ...


horsti - Di 15.11.05 00:48


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, Grids, uTest;

[...]


var
  frm_main: Tfrm_main;

implementation


{$R *.dfm}


procedure Tfrm_main.hinzufuegenClick(Sender: TObject);
var
  j : Integer;
begin
  j := frmTest.ShowModal;
end;

end.



und hier die uTest:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
[...]

var
  frmTest: TfrmTest;

implementation

{$R *.dfm}

end.


Habs nochmal etwas verändert, also verusche jetzt direkt aus dem Hauptprogramm das andere Formular aufzurufen. Kompilieren geht 1A, aber beim Ausführen und Klick auf einen Menübutton kommt wieder die Execption.


Robert.Wachtel - Di 15.11.05 01:21

Hast Du frmTest erzeugt?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure Tfrm_main.hinzufuegenClick(Sender: TObject);
var
  j : Integer;
  frmTest: TfrmTest;
begin
  frmTest := TfrmTest.Create(Application);
  try
    try
      j := frmTest.ShowModal;
    except
      raise;
    end;
  finally
    FreeAndNil(frmTest);
  end;
end;


horsti - Di 15.11.05 14:01

Danke, das wars.

Aber normalweise steht sowas noch immer in der Projektdatei?!
Wieso wurde das denn nicht auto. hinzugefügt?