Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variablen zusammensetzten (https://www.delphipraxis.net/31149-variablen-zusammensetzten.html)

xstream 6. Okt 2004 15:50

Re: Variablen zusammensetzten
 
es ist eigentlich eine funktion... :oops:

Code:
function Schritt3(Schritt: integer): String;
var Nr: Integer;
    Bis: Integer;
    line: Integer;
    speicher: TStringList;
    offen: TStringList;
    a: String;
begin

Steve 6. Okt 2004 15:52

Re: Variablen zusammensetzten
 
Das kann nicht funktionieren, weil FindComponent wie gesagt eine Funktion von TComponent ist, d.h. sie muss entweder in "procedure TFormX.xyz();" stehen oder über "FormX.FindComponent()" aufgerufen werden :)

Gruß
Stephan :dance:

alcaeus 6. Okt 2004 15:53

Re: Variablen zusammensetzten
 
Hi xstream,

genau was ich mir gedacht habe. Falls die Funktion in der Unit eines Formulars ist, musst du den Header in den private-Teil der Formklasse schreiben:
Delphi-Quellcode:
TForm1 = class(TForm)
..
private
  function Schritt3(Schritt: integer): String;
..
und bei der Implementierung anstatt dem jetzigen Kopf
Delphi-Quellcode:
function TForm1.Schritt3(Schritt: integer): String;
schreiben. Anschließend sollte es gehn.

greetz
alcaeus

xstream 6. Okt 2004 16:15

Re: Variablen zusammensetzten
 
also

vielen dank für die antworten, aber es funktioniert einfach nicht...

TForm1 = class(TForm) ist bei mir schon im header, nur anstatt eine eins steht eine 2, weil es das 2 form ist.

private
function Schritt3(Schritt: integer): String;
bei dem schlägt der debugger aus, der sagt nämlich:

Deklaration erwartet, aber Bezeichner 'private' gefunden

und wenn ich
function TForm1.Schritt3(Schritt: integer): String;
benutze, gibt es ganz viele fehlermeldungen, eine zb
die Funktion braucht eine Methode
usw

ich bin ein noob ok aber ich kann mit deinen tipps einfach nichts anfangen...

alcaeus 6. Okt 2004 16:18

Re: Variablen zusammensetzten
 
Hi xstream,

die Klassendeklaration sollte anschließend ungefähr so aussehn:
Delphi-Quellcode:
type
  TForm2 = class(TForm)
//Hier steht irgendwas
  private
    { Private declarations }
    function Schritt3(Schritt: integer): String; //Hier muss die Funktion rein
  public
    { Public declarations }
//Hier steht vielleicht noch irgendwas
  end;
Dann hättest du den ersten Schritt schon.
Zum zweiten Teil. Deine Funktion sieht zur Zeit so aus:
Delphi-Quellcode:
function Schritt3(Schritt: integer): String;
var Nr: Integer;
    Bis: Integer;
    line: Integer;
    speicher: TStringList;
    offen: TStringList;
    a: String;
begin
//Hier steht vielleicht irgendwas
a:=FindComponent('OpenDialog' + IntToStr((line+StrToInt(datei.Strings[1]))));
offen.LoadFromFile(TOpenDialog(a).FileName);
//Hier steht vielleicht auch irgendwas
end;
Die erste Zeile der Funktion änderst du um in
Delphi-Quellcode:
function TForm2.Schritt3(Schritt: integer): String;
Anschließend sollte es funktionieren. Und falls der Compiler einen Fehler meldet, bitte sage uns wo im Code der Fehler auftritt und welcher es ist.

Greetz
alcaeus

Steve 6. Okt 2004 16:22

Re: Variablen zusammensetzten
 
Ich will ja niemanden verwirren, aber in schritt3 statt "FindComponent(...)" einfach "Form2.FindComponent(...)" zu schreiben hilft auch. Wobei die Lösung von alcaeus schon besser is *zugeb* :D

Gruß
Stephan

xstream 6. Okt 2004 16:50

Re: Variablen zusammensetzten
 
GUUUUUUUUUUUT nun geht es, ausser das der debugger mir nun meldet, das Inkompatible Typen: String und TComponent besteht... :pale:

alcaeus 6. Okt 2004 17:00

Re: Variablen zusammensetzten
 
Hi xstream,

a darf nicht als String deklariert werden, sondern als TComponent. Du erhälst nicht den Namen, sondern den Zeiger aufs gefundene Objekt. Weiters solltest du überprüfen, ob der ObenDialog überhaupt gefunden wurde:
Delphi-Quellcode:
function Schritt3(Schritt: integer): String;
var
//...
    a: TComponent;
begin
//...
a := nil;
a := FindComponent('OpenDialog' + IntToStr((line+StrToInt(datei.Strings[1]))));
if a <> nil then
  offen.LoadFromFile(TOpenDialog(a).FileName)
else
  ShowMessage('Fehler!');
//Hier steht vielleicht auch irgendwas
end;
Greetz
alcaeus

xstream 6. Okt 2004 17:25

Re: Variablen zusammensetzten
 
ok vielenvielenvielen dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz