Entwickler-Ecke
Sonstiges (Delphi) - Unit!
jUli@ - Fr 23.08.02 08:07
Titel: Unit!
Guten morgen! ....
Ich habe ein kleines Problem:
ich möchte in einem form funktionen einer "einfachen" Unit benutzen! die unit ist auch in die Uses eingetragen. Trotzdem compeliert der bei der stelle nciht!
der text meiner Adddatei sieht so aus:
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: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190:
| unit Add;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Impressum, Liste, ADT_personenverwaltung, PersonalnummerErzeugen;
type TformAdd = class(TForm) lblUeberschrift: TLabel; lblPersonalnummer: TLabel; lblName: TLabel; lblVorname: TLabel; Label1: TLabel; edtPersonalNr: TEdit; edtName: TEdit; edtVorname: TEdit; edtGeburtsdatum: TEdit; btnAdd: TButton; btnBack: TButton; MainMenu1: TMainMenu; Datei1: TMenuItem; personeneinfgen1: TMenuItem; ListeallerPersonenanzeigen1: TMenuItem; Personendatenndern1: TMenuItem; Personendatenlschen1: TMenuItem; Beenden1: TMenuItem; Info1: TMenuItem; Hilfe1: TMenuItem; Impressum1: TMenuItem; btnExit: TButton; frmImpressum1: TfrmImpressum; frmListe1: TfrmListe; btnShow: TButton; procedure btnExitClick(Sender: TObject); procedure btnAddClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Hilfe1Click(Sender: TObject); procedure Impressum1Click(Sender: TObject); procedure btnBackClick(Sender: TObject); procedure ListeallerPersonenanzeigen1Click(Sender: TObject); procedure btnShowClick(Sender: TObject); private { Private declarations } public { Public declarations } end;
var formAdd: TformAdd;
implementation
uses Main;
{$R *.DFM}
Type tPerson = record vNr : Integer; vName :String [25]; vVorname :String [25]; vGebDate : TDate; end; // Ende des eigenen Datentypes!
Var person:tPerson; dateiOffen, dateigeschlossen:boolean;
procedure TformAdd.btnExitClick(Sender: TObject); begin Application.terminate; end;
procedure eingabeLoeschen; Begin with formAdd do begin formAdd.edtPersonalNr.text:=''; formAdd.edtName.text:=''; formAdd.edtVorname.text:=''; formAdd.edtGeburtsdatum.text:=''; end; end;
procedure TformAdd.btnAddClick(Sender: TObject); begin Person.vNr := StrToInt(edtPersonalNr.text); Person.vName := edtName.text; // Eingabe der Informationen Person.vVorname := edtVorname.text; Person.vGebDate := StrToDate(edtGeburtsdatum.text);
SetLength(Personendatei,Length(personendatei)+1);// Länge wird ausgegeben und wir um einen vergrößert eingabeLoeschen; end;
procedure TformAdd.FormCreate(Sender: TObject); begin SetLength(personendatei,1);//Index = 0, dynamisches Arry beginnt mit 0 (bei Feld 1?) end;
function fehleingabePruefen:boolean; var fehleintrag:Integer;
begin fehleintrag:= 0; if formAdd.edtPersonalNr.text= ''then inc(fehleintrag); if formAdd.edtName.text= ''then inc(fehleintrag); if formAdd.edtVorname.text= ''then inc(fehleintrag); if formAdd.edtGeburtsdatum.text= ''then inc(fehleintrag);
case fehleintrag of 1..4 : begin ShowMessage('Bitte vervollständigen Sie Ihre Angaben!'); result:=false; end; 0 : begin with person do begin vNr:=persNrErmitteln; edtPersonalNr.text:=InToStr(persNr); name:= edtName.text; vorname:=edtVorname.text; gebDatum:=StrtoDate(edtGeburtsdatum.text); end;//whith
if begin dateiOffen:= datei
end;
end;
procedure TformAdd.Hilfe1Click(Sender: TObject); begin Application.MessageBox('Hier kommt die Hilf hin! ... Bei Gelegenheit!', 'Hey ... Achtung!!!!!',MB_ok); end;
procedure TformAdd.Impressum1Click(Sender: TObject); begin with frmImpressum1 do begin top:= 8; left:= 24; height:= 361; width:= 633; show; end; end;
procedure TformAdd.btnBackClick(Sender: TObject); begin formAdd.hide; formMain.show; end;
procedure TformAdd.ListeallerPersonenanzeigen1Click(Sender: TObject); begin with frmListe1 do begin top:= 8; left:= 24; height:= 361; width:= 633; show; end; end;
procedure TformAdd.btnShowClick(Sender: TObject); var gesuchtePersNr :word; i: Integer;
begin gesuchtePersNr:= StrToInt(edtPersonalNr.text); For i:= 0 to Length(Personendatei)-1 Do if Personendatei[i].vNr = gesuchtePersNr then begin edtpersonalNr.text:=IntToStr(Personendatei[i].vNr); edtName.text:=personendatei[i].vName; edtVorname.text:=personendatei[i].vVorname; edtGeburtsdatum.text:= DateToStr(Personendatei[i].vGebDate); end; end;
end. |
ich wäre äußerst froh wenn mir jemand dabei helfen könnte!
LG Julia
Tino - Fr 23.08.02 09:38
Hallo Julia,
schreib doch mal in welcher Zeile der Fehler auftritt und wie dieser Fehler heißt.
Noch ne Frage: Du möchtest eine Funktion die in einem tForm definiert ist in einer anderen Procedure (einer anderen Form) benutzen? Ist das richtig?
Gruß
TINO
jUli@ - Fr 23.08.02 09:54
Titel: zur Antwort:
hi
also ich habe eine Unit in dieser unit ist meine function die, diese möchte ich in meinem Formular - Add - benutzen.
meine unit habe ich in die uses eingetragen (blau) (PersonalnummerErzeugen ist auch so eine unit wird auch nicht anerkannt).
ich habe den (1.) fehler rot markiert! :wink:
Code:
unit Add;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, Impressum, Liste, ADT_personenverwaltung, PersonalnummerErzeugen;
type
TformAdd = class(TForm)
lblUeberschrift: TLabel;
lblPersonalnummer: TLabel;
lblName: TLabel;
lblVorname: TLabel;
Label1: TLabel;
edtPersonalNr: TEdit;
edtName: TEdit;
edtVorname: TEdit;
edtGeburtsdatum: TEdit;
btnAdd: TButton;
btnBack: TButton;
MainMenu1: TMainMenu;
Datei1: TMenuItem;
personeneinfgen1: TMenuItem;
ListeallerPersonenanzeigen1: TMenuItem;
Personendatenndern1: TMenuItem;
Personendatenlschen1: TMenuItem;
Beenden1: TMenuItem;
Info1: TMenuItem;
Hilfe1: TMenuItem;
Impressum1: TMenuItem;
btnExit: TButton;
frmImpressum1: TfrmImpressum;
frmListe1: TfrmListe;
btnShow: TButton;
procedure btnExitClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Hilfe1Click(Sender: TObject);
procedure Impressum1Click(Sender: TObject);
procedure btnBackClick(Sender: TObject);
procedure ListeallerPersonenanzeigen1Click(Sender: TObject);
procedure btnShowClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
formAdd: TformAdd;
implementation
uses Main;
{$R *.DFM}
Type
tPerson = record
vNr : Integer;
vName :String [25];
vVorname :String [25];
vGebDate : TDate;
end; // Ende des eigenen Datentypes!
Var
person:tPerson;
dateiOffen, dateigeschlossen:boolean;
procedure TformAdd.btnExitClick(Sender: TObject);
begin
Application.terminate;
end;
procedure eingabeLoeschen;
Begin
with formAdd do
begin
formAdd.edtPersonalNr.text:='';
formAdd.edtName.text:='';
formAdd.edtVorname.text:='';
formAdd.edtGeburtsdatum.text:='';
end;
end;
procedure TformAdd.btnAddClick(Sender: TObject);
begin
Person.vNr := StrToInt(edtPersonalNr.text);
Person.vName := edtName.text; // Eingabe der Informationen
Person.vVorname := edtVorname.text;
Person.vGebDate := StrToDate(edtGeburtsdatum.text);
SetLength(Personendatei,Length(personendatei)+1);// Länge wird ausgegeben und wir um einen vergrößert
eingabeLoeschen;
end;
procedure TformAdd.FormCreate(Sender: TObject);
begin
SetLength(personendatei,1);//Index = 0, dynamisches Arry beginnt mit 0 (bei Feld 1?)
end;
function fehleingabePruefen:boolean;
var
fehleintrag:Integer;
begin
fehleintrag:= 0;
if formAdd.edtPersonalNr.text= ''then inc(fehleintrag);
if formAdd.edtName.text= ''then inc(fehleintrag);
if formAdd.edtVorname.text= ''then inc(fehleintrag);
if formAdd.edtGeburtsdatum.text= ''then inc(fehleintrag);
case fehleintrag of
1..4 : begin
ShowMessage('Bitte vervollständigen Sie Ihre Angaben!');
result:=false;
end;
0 : begin
with person do
begin
vNr:=persNrErmitteln;
edtPersonalNr.text:=InToStr(persNr);
name:= edtName.text;
vorname:=edtVorname.text;
gebDatum:=StrtoDate(edtGeburtsdatum.text);
end;//whith
if begin
dateiOffen:= datei
end;
end;
procedure TformAdd.Hilfe1Click(Sender: TObject);
begin
Application.MessageBox('Hier kommt die Hilf hin! ... Bei Gelegenheit!',
'Hey ... Achtung!!!!!',MB_ok);
end;
procedure TformAdd.Impressum1Click(Sender: TObject);
begin
with frmImpressum1 do
begin
top:= 8;
left:= 24;
height:= 361;
width:= 633;
show;
end;
end;
procedure TformAdd.btnBackClick(Sender: TObject);
begin
formAdd.hide;
formMain.show;
end;
procedure TformAdd.ListeallerPersonenanzeigen1Click(Sender: TObject);
begin
with frmListe1 do
begin
top:= 8;
left:= 24;
height:= 361;
width:= 633;
show;
end;
end;
procedure TformAdd.btnShowClick(Sender: TObject);
var
gesuchtePersNr :word;
i: Integer;
begin
gesuchtePersNr:= StrToInt(edtPersonalNr.text);
For i:= 0 to Length(Personendatei)-1 Do
if Personendatei[i].vNr = gesuchtePersNr
then begin
edtpersonalNr.text:=IntToStr(Personendatei[i].vNr);
edtName.text:=personendatei[i].vName;
edtVorname.text:=personendatei[i].vVorname;
edtGeburtsdatum.text:= DateToStr(Personendatei[i].vGebDate);
end;
end;
end.
Tino - Fr 23.08.02 10:32
Und wie lautet nun der Fehler und postet am besten mal den Code-Teil wo Du Personendatei definierst (bitte nicht wieder die ganze Unit :-D)
Gruß
jUli@ - Fr 23.08.02 11:10
[Fehler] Add.pas(95): Inkompatible Typen = der (1) Fehler...
unit ADT_personenverwaltung;
interface
type
tPerson = Record
persNr: Word;
Name: String[25];
Vorname: String[25];
gebDatum:TDateTime;
end; //tPerson
Var Personendatei: File of tPerson;
so???
jUli@ - Fr 23.08.02 11:12
oh ok habe den 1. fehler beseitigt! *g*
Danke trotzdem..
jUli@ - Fr 23.08.02 11:15
Titel: mist....... der nächste Fehler!
der findet nu meine Unit nicht (ist aber in USES eingetragen)
[Fehler] Add.pas(124): Undefinierter Bezeichner: 'persNrErmitteln'
diese liegt in meiner Unit (nicht Form oder so)
danke fürs Helfen!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!