Zuweisung einer Ziffer zu einer Variablen aus einem TEdit-Feld führt zu Laufzeitfehler

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Zuweisung einer Ziffer zu einer Variablen aus einem TEdit-Feld führt zu Laufzeitfehler

Beitrag von haderlump »

Code: Alles auswählen

var
  Form1: TForm1;
  name:string;
  zahl1,zahl2:integer;

implementation

{$R *.lfm}

{ TForm1 }
procedure TForm1.eingabe1Change(Sender: TObject);
begin
   name:= eingabe1.Text;
  ausgabe.Text:=name;

  zahl1:=strtoint(eingabe1.text);
Bei der Ausführung des oben gezeigten Codes kommt es zu folgendem Problem:
Gebe ich einen Buchstaben ein, geht alles. Gebe ich einen Buchstaben und eine Ziffer ein, geht auch alles.
Gebe ich aber nur eine Ziffer ein, (im Beispiel eine 5) kommt es zu folgendem Laufzeitfehler:

"Projekt Programm1 hat Exception-Klass EComponentError ausgelöst mit der Meldung "5" is not a valid component name"

Was mache ich da falsch??
Dateianhänge
fehlermeldung1.png
fehlermeldung1.png (10.78 KiB) 261 mal betrachtet

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5783
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Zuweisung einer Ziffer zu einer Variablen aus einem TEdit-Feld führt zu Laufzeitfehler

Beitrag von af0815 »

Bennene dein Variable mal nicht "name". Mach ein "tmpName" draus. Die globale Variable Name wird durch den Componenten.Name verdeckt. Warum nimmst du keine procedurlokale Variable, sondern eine globale ? Absicht oder passiert ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
gladio
Beiträge: 197
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 64Bit
Wohnort: Rügen

Re: Zuweisung einer Ziffer zu einer Variablen aus einem TEdit-Feld führt zu Laufzeitfehler

Beitrag von gladio »

Sicher, dass das hier so funktioniert?
Gebe ich einen Buchstaben ein, geht alles. Gebe ich einen Buchstaben und eine Ziffer ein, geht auch alles.
Mit dieser Anweisung
zahl1:=strtoint(eingabe1.text);

Benutzeravatar
theo
Beiträge: 9911
Registriert: Mo 11. Sep 2006, 19:01

Re: Zuweisung einer Ziffer zu einer Variablen aus einem TEdit-Feld führt zu Laufzeitfehler

Beitrag von theo »

Name bezieht sich hier offenbar auf den Namen der Komponente oder des Formulars.
Da gelten gewisse Regeln:
https://lazarus-ccr.sourceforge.io/docs ... .name.html
Mit einer Zahl darf er nicht beginnen.

haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: Zuweisung einer Ziffer zu einer Variablen aus einem TEdit-Feld führt zu Laufzeitfehler

Beitrag von haderlump »

Danke für die Antworten.
Das Ganze wird kein größeres Projekt. Ich lerne gerade meinem Enkel (11 Jahre) das programmieren. und das sind nur Programmschnipsel. Es sind halt erste Schritte
Ich programmiere nun schon seit vielen Jahren, und falle dann über so etwas. 10 Kübel Scheißdreck über mich !!!

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5783
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Zuweisung einer Ziffer zu einer Variablen aus einem TEdit-Feld führt zu Laufzeitfehler

Beitrag von af0815 »

haderlump hat geschrieben:
Mo 19. Dez 2022, 15:10
Danke für die Antworten.
Das Ganze wird kein größeres Projekt. Ich lerne gerade meinem Enkel (11 Jahre) das programmieren. und das sind nur Programmschnipsel. Es sind halt erste Schritte
Ich programmiere nun schon seit vielen Jahren, und falle dann über so etwas. 10 Kübel Scheißdreck über mich !!!
Genau das ist das gefährliche - Klarer Fall von Vorführeffekt. Mach dir nix draus. Ich mache bei solchen Sachen immer folgendes: Aufstehen, Cäsarenkranz richten, weitergehen :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten