Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Procedure aufrufen... (https://www.delphipraxis.net/20095-procedure-aufrufen.html)

abc 13. Apr 2004 17:22


Procedure aufrufen...
 
Eine kleine Frage noch:
Habe eine eigene Procedure erstellt:

Delphi-Quellcode:
procedure MB;
var List:TStringList;
begin
 List:=TStringList.Create;
 List.LoadFromFile('C:\Text.txt');
 Label11.Caption:=List.Strings[0];
 Label12.Caption:=List.Strings[1];
 Label13.Caption:=List.Strings[2];
 List.Free;
end;
Wie kann ich auf die Procedure MB mit anderen Prozeduren zugreifen?
Wenn CheckBox1 soll String 0 angezeigt werden.
Wenn CheckBox2 soll String 1 angezeigt werden usw.

Z.B:

Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 MB;
end;

Wie geht das? Bitte um Verständnis, bin noch neu.....aber fleissig am lernen ;) danke euch allen...

[edit=sakura] [delphi]-Tags. Mfg, sakura[/edit]

Markus K. 13. Apr 2004 17:28

Re: Procedure aufrufen...
 
Hallo abc,
als erste würde ich die Prozedur im Public- oder Private-Bereich der Form deklarieren. z.B.:
Delphi-Quellcode:
public
    { Public-Deklarationen }
    procedure MB;
Als nächstes muss diese Prozedur ebenfalls im Implementation-Teil der Unit deklariert werden.
Delphi-Quellcode:
procedure TForm1.MB;
var List:TStringList;
begin
     List:=TStringList.Create;
     List.LoadFromFile('C:\Text.txt');
     Label1.Caption:=List.Strings[0];
     Label2.Caption:=List.Strings[1];
     Label3.Caption:=List.Strings[2];
     List.Free;
end;
Wenn du dies getan hast, kannst du die Prozedur immer aufrufen wenn du sie brauchst. z.B.:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
     MB;
end;
Tschüß Markus

abc 13. Apr 2004 18:28

Re: Procedure aufrufen...
 
Danke, aber wie kann ich denn nun z.bsp. nur die erste zeile aufrufen?

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
MB_Genauigkeit;
end;


Danke.

Hansa 13. Apr 2004 18:36

Re: Procedure aufrufen...
 
Zitat:

Zitat von abc
Wie kann ich auf die Procedure MB mit anderen Prozeduren zugreifen?
Wenn CheckBox1 soll String 0 angezeigt werden.
Wenn CheckBox2 soll String 1 angezeigt werden usw.

Das sieht mir schwer nach Funktionen aus und nicht nach Prozeduren. 8)

abc 13. Apr 2004 18:46

Re: Procedure aufrufen...
 
Hallo,
Markus K. hat im dritten Code-BLock folgendes geschrieben:

Delphi-Quellcode:
 
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  MB_Genauigkeit;
end;
Ich will nur aus dieser Procedure "CheckBox 1 Click" auf den String 0 zugreifen. Mit einer anderen Procedure "CheckBox 2 Click" soll dann auf den String 1 usw....
Warum eine Funktion?

Danke.
Mfg.

Hansa 13. Apr 2004 18:54

Re: Procedure aufrufen...
 
Zitat:

Zitat von abc
Ich will nur aus dieser Procedure "CheckBox 1 Click" auf den String 0 zugreifen. Mit einer anderen Procedure "CheckBox 2 Click" soll dann auf den String 1 usw....
Warum eine Funktion?

Weil dann der Funktionswert leicht ausgewertet werden kann. Natürlich könnte man auch Parameter verwenden. 8)

abc 13. Apr 2004 18:55

Re: Procedure aufrufen...
 
Ja, Parameter hört sich gut an, aber wie macht man das?
hast du eine Ahnung?
Bitte....

xineohp 13. Apr 2004 19:04

Re: Procedure aufrufen...
 
moin,

wie wärs mit:

Delphi-Quellcode:
procedure TForm1.MB(i: integer);
var List:TStringList;
begin
     List:=TStringList.Create;
     List.LoadFromFile('C:\Text.txt');
     case i of
       1: Label1.Caption:=List.Strings[0];
       2: Label2.Caption:=List.Strings[1];
       3: Label3.Caption:=List.Strings[2];
     end;
     List.Free;
end;
und

Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  MB(1); //bzw. 2 oder 3
end;
phoenix

xineohp 13. Apr 2004 19:04

Re: Procedure aufrufen...
 
oder ganz dynamisch:

Delphi-Quellcode:
procedure TForm1.MB(i: integer);
var List:TStringList;
begin
     List:=TStringList.Create;
     List.LoadFromFile('C:\Text.txt');

     (findcomponent('Label'+inttostr(i)) as TLabel).Caption := List.Strings[i-1];

     List.Free;
end;
Das macht aber nur Sinn wenn es recht viele Labels sind die eventuell dynamisch erzeugt wurden und auf jeden Fall nach dem Schema Label+Indexzahl benannt sein müssen.

phoenix

xineohp 13. Apr 2004 19:26

Re: Procedure aufrufen...
 
ne andere Möglichkeit wäre eine Funktion:

Delphi-Quellcode:
function TForm1.MB(i :integer);
var List:TStringList;
begin
     List:=TStringList.Create;
     List.LoadFromFile('C:\Text.txt');
 
     result := List.Strings[i];
 
     List.Free;
end;
die dann mit
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  Label1.caption := MB(0);
end;
aufgerufen wird. Scheint mir bei einer begrenzten Anzahl von Labels hier die sinnvollste Variante zu sein :)

so, nun fällt mir nix mehr dazu ein :wink:
phoenix


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

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