Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
17.05.2012, 03:37:29
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Einsteiger Forum
| | |-+  Findcomponent --> Undeklarierter Bezeichner???
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Findcomponent --> Undeklarierter Bezeichner???  (Gelesen 1994 mal)
lorkas
Newbie
*
Offline Offline

Beiträge: 1


« am: 20.02.2009, 22:14:53 »

Hallo Leute,

ich bekommen bei Verwendung von findcomponent ständig die Fehlermeldung "Undeklarierter Bezeichner". Soweit ich herausgefunden habe ist findcomponents in classes drin, oder?

Ich habe 2 Forms. In beiden habe ich unter uses folgendes zu stehen :

Unit1:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, Menus, StdActns, ActnList, ImgList;

Unit2:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Unit1;


Eigentlich möchte ich den Inhalt mehrerer Edits in einer Datei speichern.

Dazu habe ich folgenden code aus einem Forum probiert:
in Unit2:

procedure Speichern;
var STRList : TStringList;
filename : string;
i : integer;
begin
STRList := TStringList.create;
Filename := 'C:\keineAhnung.txt';
// Hier nun die zuweisungen
for i := 0 to anzahl der edits -1 do
begin
STRList.add(TEdit(FindComponent('Edit'+IntToStr(i+1))).Text);
end;
STRList.SaveToFile(filename);
end;


Genau dabei kommt immer die genannte Fehlermeldung.

Da ich noch recht unerfahren im Umgang mit Delphi bin, kann ich mir vorstellen, dass ich irgend etwas vergessen habe.

Danke für die Hilfe,
Lorkas
Gespeichert
Simon Grossenbacher
Administrator
Sr. Member
*****
Offline Offline

Beiträge: 450


WWW
« Antworten #1 am: 21.02.2009, 18:15:39 »

Hallo Lorkas

FindComponent ist eine Methode die auf Klassen ist die von TComponent abgeleitet sind.
Du kannst deine Procedure als Klassenprozedur deiner Form deklarieren, dann kannst du auf FindComponent zugreifen.

Code:
{....}
type
  TForm1 = class(TForm)
{....}
  private
    procedure Speichern;
{....}

Dann im Implementationsteil steht dann

Code:
procedure TForm1.Speichern;
begin
  {....}
end;

Willst du die Prozedur so lassen funktioniert auch ein Form1.FindComponent(...) - jedoch mein Vorschlag ist natürlich eleganter.

Erstellte Objekt wie deine STRList werden übrigens im Speicher nicht automatisch freigegeben. Dein Code sollte um eine try..finally Anweisung erweitert werden.
Zum Beispiel:

Code:
STRList := TStringList.Create;
try
  //Arbeiten mit STRList inklusive SaveToFile
finally
  STRList.Free;
end;
im finally Teil wird das von dir erzeugte Objekt wieder freigegeben.
Gespeichert

Simon Grossenbacher
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS