AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler: "undefinierter bezeichner"

Ein Thema von teetasse · begonnen am 20. Mai 2009 · letzter Beitrag vom 20. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2   
teetasse

Registriert seit: 19. Mai 2009
4 Beiträge
 
Delphi 7 Personal
 
#1

Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 14:54
hallo,
delphi meint, dass verschiedene Labels nicht definiert seien, obwohl dies meiner meinung nach sehr wohl der fall ist...

Delphi-Quellcode:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm4 = class(TForm)
    Panel1: TPanel;
    EdtEing: TEdit;
    LblDNA1: TLabel;
    LblmRNA1: TLabel;
    LblDNA2: TLabel;
    LblmRNA2: TLabel;
    LblDNA3: TLabel;
    LblmRNA3: TLabel;
    LblDNA4: TLabel;
    LblmRNA4: TLabel;
    LblDNA5: TLabel;
    LblmRNA5: TLabel;
    LblDNA6: TLabel;
    LblmRNA6: TLabel;
    Button1: TButton;
    procedure Panel1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form4: TForm4;

implementation
uses Unit1;

{$R *.dfm}

procedure TForm4.Panel1Click(Sender: TObject);
begin
    Panel1.Caption:= 'AAAAAAAAAAAAAAAAA';
    Panel1.caption := Unit1.Unserstruct[1].dna;
end;



procedure schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string);
//var
//scha:string;
begin
case ZeilenIndex of
  0:
    LblDNA1.caption := LblDNA1.Caption + ausgstrDNA;
    LblmRNA1.Caption := LblmRNA1.Caption + ausgstrmRNA;
  1:
    LblDNA2.Caption := LblDNA2.Caption + ausgstrDNA;
    LblmRNA2.Caption := LblmRNA3.Caption + ausgstrmRNA;
  2:
    LblDNA3.Caption := '';
    LblmRNA3.Caption := '';
  3:
    LblDNA4.Caption := '';
    LblmRNA4.Caption := '';
  4:
    LblDNA5.Caption := '';
    LblmRNA5.Caption := '';
  5:
    LblDNA6.Caption := '';
    LblmRNA6.Caption := '';
  else
      errormsg();
end;
end;
nun sagt delphi sachen wie:

[Fehler] Unit4.pas(57): Undefinierter Bezeichner: 'LblDNA1'
[Fehler] Unit4.pas(57): Operator oder Semikolon fehlt
[Fehler] Unit4.pas(58): Undefinierter Bezeichner: 'LblmRNA1'
[Fehler] Unit4.pas(60): Undefinierter Bezeichner: 'LblDNA2'
[Fehler] Unit4.pas(60): Operator oder Semikolon fehlt

and so on .

mfg, teetasse
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 14:57
Hallo,

wenn Du ausprocedure schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string); procedure TForm4.schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string); könnte durchaus funktionieren, so ist schreiben keine Prozedur der Klasse und kennt daher auch die Attribute der Klasse nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 15:33
Hallo,

wie waers mit
Delphi-Quellcode:
case ZeilenIndex of
  0:begin //<<<<<
     LblDNA1.caption := LblDNA1.Caption + ausgstrDNA;
     LblmRNA1.Caption := LblmRNA1.Caption + ausgstrmRNA;
    end;//<<<<
  1:
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 15:37
Zitat von nahpets:
Hallo,

wenn Du ausprocedure schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string); procedure TForm4.schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string); könnte durchaus funktionieren, so ist schreiben keine Prozedur der Klasse und kennt daher auch die Attribute der Klasse nicht.
oder alternativ lässt du deine procedure schreiben ... und rufst die Variablen mittels Form4.LblDNA1.Caption und so weiter auf.

MfG
BAMatze
2. Account Sero
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#5

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 15:42
Zitat von BAMatze:
Zitat von nahpets:
Hallo,

wenn Du ausprocedure schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string); procedure TForm4.schreiben(var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string); könnte durchaus funktionieren, so ist schreiben keine Prozedur der Klasse und kennt daher auch die Attribute der Klasse nicht.
oder alternativ lässt du deine procedure schreiben ... und rufst die Variablen mittels Form4.LblDNA1.Caption und so weiter auf.

MfG
BAMatze
oder
Delphi-Quellcode:
with Form4 do begin
...
end;
und natürlich den Hinweis von Dr.Kaktus beachten
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 15:59
[OT] Dr. binch ner..nur "der" [/OT]
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 16:55
Zitat von Hobby-Programmierer:
Delphi-Quellcode:
with Form4 do begin
...
end;
Das ist ziemlich schlechter Stil. Wenn die Möglichkeit besteht, aus einer Prozedur die Methode einer Klasse zu machen (wie bereits gesagt: TForm4.Prozedurenname usw), sollte man diese auch nutzen.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#8

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 17:40
Zitat von Fussball-Robby:
Zitat von Hobby-Programmierer:
Delphi-Quellcode:
with Form4 do begin
...
end;
Das ist ziemlich schlechter Stil. Wenn die Möglichkeit besteht, aus einer Prozedur die Methode einer Klasse zu machen (wie bereits gesagt: TForm4.Prozedurenname usw), sollte man diese auch nutzen.
Aha, du siehst wen ich zitiert habe
und sehr wohl finde ich das with Form4 do besser ist als 20zig mal Form4.XXX.Caption aufzurufen. Ausserdem war ich der Meinung das diese Prozedure später in eine seperate Unit auslagert. Vielleicht geht es aber auch so um die Referenz auf die Klasse zu gewährleisten.
Delphi-Quellcode:
procedure schreiben(MyForm: TForm;var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string);
begin
  case ZeilenIndex of
    0: begin
         MyForm.LblDNA1.caption := MyForm.LblDNA1.Caption + ausgstrDNA;
         MyForm.LblmRNA1.Caption := MyForm.LblmRNA1.Caption + ausgstrmRNA;
       end;
  ....
  end;
end;
Aber innerhalb einer Unit hast du natürlich Recht, da ist das Quatsch.
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#9

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 17:41
Zitat von Der.Kaktus:
[OT] Dr. binch ner..nur "der" [/OT]
ok
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Fehler: "undefinierter bezeichner"

  Alt 20. Mai 2009, 17:55
Hallo,
Zitat von Hobby-Programmierer:
Zitat von Fussball-Robby:
Zitat von Hobby-Programmierer:
Delphi-Quellcode:
with Form4 do begin
...
end;
Das ist ziemlich schlechter Stil. Wenn die Möglichkeit besteht, aus einer Prozedur die Methode einer Klasse zu machen (wie bereits gesagt: TForm4.Prozedurenname usw), sollte man diese auch nutzen.
Aha, du siehst wen ich zitiert habe
und sehr wohl finde ich das with Form4 do besser ist als 20zig mal Form4.XXX.Caption aufzurufen. Ausserdem war ich der Meinung das diese Prozedure später in eine seperate Unit auslagert. Vielleicht geht es aber auch so um die Referenz auf die Klasse zu gewährleisten.
Delphi-Quellcode:
procedure schreiben(MyForm: TForm;var ZeilenIndex:integer;ausgstrDNA, ausgstrmRNA : string);
begin
  case ZeilenIndex of
    0: begin
         MyForm.LblDNA1.caption := MyForm.LblDNA1.Caption + ausgstrDNA;
         MyForm.LblmRNA1.Caption := MyForm.LblmRNA1.Caption + ausgstrmRNA;
       end;
  ....
  end;
end;
momentan kann ich nicht folgen:

schreiben ist im Interface als Methode von Form4 deklariert. Im Implementationszeil ist sie jedoch nicht als Methode von Form4 implementiert. Es fehlt also nur das TForm4 vor der Methode schreiben im Implementationsteil. Man kann natürlich die Methode schreiben aus der Klasse herausnehmen um ihr dann die Klasse als Parameter zu übergeben und dann mit with zu arbeiten, um wiederum Schreibarbeit zu sparen, aber wäre das TForm4. vor der Methode schreiben hier nicht eventuell doch die bessere Lösung?
Ansonsten müsste die Methode schreiben der Klasse TForm4 jedenfalls noch implementiert werden bzw. im Interfaceteil wieder entfernt werden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz