![]() |
Re: Klasse/Methoden
Hallo,
Jetzt noch mal zum Verständnis:
Delphi-Quellcode:
Der Fehler ist in der markierten Zeile?
unit UVorgaben;
interface uses UNimm,Uform2; type tvorgaben = class(tnimm) private public Gruppen : integer; Staebchen : integer; user : boolean; wert_vorgabe : boolean; constructor create; procedure set_gruppen(gruppenstr :string); end; implementation uses sysutils; constructor tvorgaben.create; begin Gruppen:=0; Staebchen:=0; user:=false; wert_vorgabe:=false; end; procedure tvorgaben.set_gruppen(gruppenstr :string); begin form2.edit1.text:= gruppenstr; gruppen:=strtoint(gruppenstr); <--- end; end. Du hast deine Instanz nicht auf folgende Weise erzeugt?
Delphi-Quellcode:
Zumindest lässt deine Beschreibung darauf schließen. Man kann sehr wohl eine Funktion einer nicht erzeugten Instanz ausführen. Sobald du allerdings auf eine Membervariableder Klasse zugreifst, bekommst du den Fehler.
Var
Vorgabe : TVorgaben; Begin Vorgabe := TVorgaben.Create; // <--- !!!! Vorgabe.Staebchen := 4; Vorgabe.Gruppen := 17; Vorgabe.Free; End; Zeig doch mal wie du die Instanz von TVorgaben erzeugst und wie du die Prozedur set_gruppen aufrufst. grüße, daniel |
Re: Klasse/Methoden
Meine Formular Unit
Delphi-Quellcode:
unit UFormular;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, ExtCtrls, UVorgaben, UForm2, UForm3; type TForm1 = class(TForm) Label1: TLabel; Panel1: TPanel; StringGrid1: TStringGrid; Edit1: TEdit; Edit2: TEdit; Button2: TButton; Memo1: TMemo; Button3: TButton; Button1: TButton; procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen} public { Public-Deklarationen} Vorgaben : TVorgaben; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button2Click(Sender: TObject); begin form2.show; end; procedure TForm1.Button3Click(Sender: TObject); begin close; end; procedure TForm1.FormCreate(Sender: TObject); begin Vorgaben := tVorgaben.create; end; procedure TForm1.Button1Click(Sender: TObject); begin form3.show; end; end. |
Re: Klasse/Methoden
Moin!
1. Ich sehe in der Unit keinen Zugriff auf eine TVorgaben Instanz die schief gehen sollte (bzw. gar keine) 2. Hast du in TNimm auch einen Constructor definiert? Ist der Virtual? Warum hast du ihn bei TVorgabe nicht versteckt bzw. besser: überschrieben? 3. Rufst du inherited Create; im Constructor von TNimm auf, wenn du diesen überschrieben hast? MfG Muetze1 |
Re: Klasse/Methoden
Danke für die Hilfen, habe neu angefangen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 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