![]() |
Probleme mit showModal
Hallo!
nachdem ich jetzt allmählich am verzweifeln bin... habe eine Delphi-Projekt als Vorlage bekomme, was ich jetzt dementsprechend den neuen Anforderungen verändere. Habe meine Mainunit mit meinem MainWindow (im Projekt Project)- inkl. Menü etc. Wenn ich jetzt auf den Menüpunkt Neu gehe, soll mein Dialogfenster erscheinen - aus der Unit Dialog mit Fenster names Eingabe. Habe folgenden Quellcode übernommen:
Delphi-Quellcode:
Leider kommt immer, sobald ich den Menüpunkt ausführen will: Access violation at address 00471686 in module' Project.exe'. Read of address 00000000.
procedure TMainWindow.NeuClick(Sender: TObject);
begin // ... if Eingabe.ShowModal = mrOK then begin RechnePersDaten(AngDaten.EinDaten,AngDaten.PersDaten); RechneRentDaten(AngDaten.EinDaten,AngDaten.PersDaten,AngDaten.RentDaten); ShowTab; SpeichernUnter.Enabled:=True; Speichern.Enabled:=False; Bearbeiten.Enabled:=True; Drucken.Enabled:=True; end; end; Danach immer ein Verweis auf diese Zeile. Heißt das jetzt, dass ein Verweis in dem Project fehlt oder wie? |
Re: Probleme mit showModal
Wurde Eingabe instantiiert? ( Eingabe = TEingabe.Create oder createForm )
|
Re: Probleme mit showModal
Hallo,
hast du die Unit Dialog unter uses (ganz oben) aufgelistet? Gruß, ManuMF |
Re: Probleme mit showModal
Modale Formulare sollte man im Programmcode erzeugen, benützen und gleich wieder zerstören,
denn man ist ja fertig mit dem Formular. Hier das immer gleiche Grundgerüst:
Delphi-Quellcode:
var
frm : TEingabeForm; begin frm := TEingabeForm.Create(Self); try if frm.ShowModal = mrOK then begin //mach was damit end; finally frm.Free; end; end; |
Re: Probleme mit showModal
also, der Dialog wird instantiiert mit FormCreate und ist natürlich auch in der main bei den uses mit drin!
bei TEingabe.Create(Self) (entsprechend angepasst) meckert er rum, dass es nur für Klassenmethoden erlaubt ist... |
Re: Probleme mit showModal
Poste mal die Klassendefinition.
|
Re: Probleme mit showModal
sorry, steh grad völlig auf dem schlauch! welche denn? :oops:
|
Re: Probleme mit showModal
TEingabe.
|
Re: Probleme mit showModal
Meinst du das??
Delphi-Quellcode:
unit Dialog;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ObjEin, HiType, HiFunc, Buttons; type TEingabe = class(TForm) TabelleEinlesen: TButton; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; OpenDialog1: TOpenDialog; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Bilanztermin: TEdit; Rechnungszins: TComboBox; PA_Maenner: TComboBox; PA_Frauen: TComboBox; Rentendynamik: TComboBox; ARKZ: TComboBox; IRKZ: TComboBox; WRKZ: TComboBox; RZahlunsweise: TComboBox; WRArtKz: TComboBox; Beenden: TButton; OK: TBitBtn; Abbruch: TBitBtn; {****************** Beenden bzw. Abbrechen **********************} procedure AbbruchClick(Sender: TObject); {***************** Einlesen der Eingangstabelle *****************} procedure TabelleEinlesenClick(Sender: TObject); {********************* Zuweisen der Daten ***********************} procedure OKClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Eingabe : TEingabe; OKCLicked : boolean; implementation {$R *.dfm} uses Main; ..... procedure TEingabe.FormCreate(Sender: TObject); var JJ,MM,TT : word; function datumtostr(d : datum) : string; var s : string; {t,m,j : integer;} begin s:=inttostr(d.TT)+'.'+inttostr(d.MM)+'.'+inttostr(d.JJ); datumtostr:=s; end; begin {Standard-Werte setzten} ARKz.ItemIndex := 2; IRKz.ItemIndex := 1; WRKz.ItemIndex := 0; Rentendynamik.ItemIndex := 0; WRArtKz.ItemIndex := 0; DecodeDate(Date,JJ,MM,TT); Bilanztermin.Text := '31.12.'+inttostr(JJ); PA_Maenner.ItemIndex := 5; PA_Frauen.ItemIndex := 3; with angdaten.eindaten do begin Eingabe.Bilanztermin.Text := datumtostr(EinBil); Eingabe.Rechnungszins.Text := floattostr(EinRechZins); Eingabe.ARKz.ItemIndex := EinARKz; Eingabe.IRKz.ItemIndex := EinIRKz; Eingabe.WRKz.ItemIndex := EinWRKz; Eingabe.Rentendynamik.Text := floattostr(EinDynRenWert); Eingabe.WRArtKz.ItemIndex := EinWRArtKz; Eingabe.PA_Maenner.ItemIndex := EinPensAlter; Eingabe.PA_Frauen.ItemIndex := EinPensAlter; end; end; end. |
Re: Probleme mit showModal
In welcher Unit ist angdaten deklariert?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 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