![]() |
Undeclared identifier: 'Name'
Hallo liebe Community!
Wieso kann ich in Funktionen nicht auf Elemente eines Formulars zugreifen ??? Wenn ich in der Funktion Testfunct die Edit-Boxen auslesen möchte, dann gibst nur Gemecker! DIe kennt er nämlich alle nicht: [Error] Unit1.pas(246): Undeclared identifier: 'Name' [Error] Unit1.pas(247): Missing operator or semicolon [Error] Unit1.pas(247): Undeclared identifier: 'Vorname'
Delphi-Quellcode:
type
TForm1 = class(TForm) MainMenu: TMainMenu; Datei1: TMenuItem; .... Vorname: TEdit; Name: TEdit; Action1: TAction; procedure FileOpenExecute(Sender: TObject); procedure FileOpenSchuelerExecute(Sender: TObject); procedure PrintExecute(Sender: TObject); procedure Button1Click(Sender: TObject); function Testfunct( way: integer): char; // <-----------------------------
Delphi-Quellcode:
function Testfunct( way: integer): char; //Vorwärts //////////////////////////////////////
var ////////////////////////////////////// k : string; i : integer; begin //Speicher die eingegebenen Daten im globalen Array BigTemp[b,0] := Name.Text; BigTemp[b,1] := Vorname.Text; ...... |
Re: Undeclared identifier: 'Name'
Hi roboy85,
du solltest Name nicht fuer Objektbezeichner verwenden, damit gabs immer wieder Probleme. Warum das so ist habe ich allerdings vergessen :oops: Greetz alcaeus |
Re: Undeclared identifier: 'Name'
OK, Name wurde kurzfristig durch zName ersetzt... Das Problem tritt aber leider bei allen Feldern auf !?
Wenn ich jetzt aber statt einer Function eine ButtonOnClick-Aktion daraus mache, habe ich keine Pobleme mit dem Auslesen => ich will aber natürlich kein Button, da die funktion später mehrfach genutzt werden soll! |
Re: Undeclared identifier: 'Name'
du must die function als
function TForm1.testfunc deklarieren... die funktion gehört sonst nich zur form, und kennt somit die kompos net... |
Re: Undeclared identifier: 'Name'
Hi,
müsste es nicht
Delphi-Quellcode:
heissen?
function TForm1.Testfunct( way: integer): char;
mfG mirage228 |
Re: Undeclared identifier: 'Name'
Genau,
Unter Type lässt du so wie es ist um unten must du das TForm1. davorsetzen. Tip: Wenn du die Umsch+Strg+C drückst erstellt er es alleine. |
Re: Undeclared identifier: 'Name'
Moin Albi,
Zitat:
|
Re: Undeclared identifier: 'Name'
Jo, danke!
Hat soweit geklappt! Hab die Pro-Version nicht, aber das kreig ich auch noch selber getippt ;-) Ich bin festdavon überzeugt, dass ich es auch schon mit TForm1. probiert habe, aber da hab ich wohl noch einen anderen Fehler dabei gehabt! |
Re: Undeclared identifier: 'Name'
Zitat:
Wenn du jetzt schreibst:
Delphi-Quellcode:
Dann macht Delphi daraus:
Name.Text := 'Foobar';
Delphi-Quellcode:
und das haut eben nicht hin.
Form1.Name.Text := 'Foobar';
|
Re: Undeclared identifier: 'Name'
Doch das haut schon hin, da durch die erneute Deklaration eines Felds mit der Bezeichnung 'Name' das bereits in der Klasse vorhandene 'Name' verdeckt wird. Von jetzt an bezieht sich 'Name' immer auf das Edit. Das führt dazu, dass man keinen Zugriff mehr auf das alte Feld 'Name' hat, was natürlich fatal für bereits bestehenden Code sein kann, der vielleicht davon ausgeht, dass Name vom Typ String und nicht vom Typ TEdit ist. Der beschriebene Fehler hat nix mit dieser Deklaration zu tun. (Trotzdem sollte man sowas natürlich vermeiden.)
Gruß, teebee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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 by Thomas Breitkreuz