![]() |
Procedure aufrufen...
Eine kleine Frage noch:
Habe eine eigene Procedure erstellt:
Delphi-Quellcode:
Wie kann ich auf die Procedure MB mit anderen Prozeduren zugreifen?
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; Wenn CheckBox1 soll String 0 angezeigt werden. Wenn CheckBox2 soll String 1 angezeigt werden usw. Z.B:
Delphi-Quellcode:
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin MB; Wie geht das? Bitte um Verständnis, bin noch neu.....aber fleissig am lernen ;) danke euch allen... [edit=sakura] [delphi]-Tags. Mfg, sakura[/edit] |
Re: Procedure aufrufen...
Hallo abc,
als erste würde ich die Prozedur im Public- oder Private-Bereich der Form deklarieren. z.B.:
Delphi-Quellcode:
Als nächstes muss diese Prozedur ebenfalls im Implementation-Teil der Unit deklariert werden.
public
{ Public-Deklarationen } procedure MB;
Delphi-Quellcode:
Wenn du dies getan hast, kannst du die Prozedur immer aufrufen wenn du sie brauchst. z.B.:
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;
Delphi-Quellcode:
Tschüß Markus
procedure TForm1.Button1Click(Sender: TObject);
begin MB; end; |
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. |
Re: Procedure aufrufen...
Zitat:
|
Re: Procedure aufrufen...
Hallo,
Markus K. hat im dritten Code-BLock folgendes geschrieben:
Delphi-Quellcode:
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....procedure TForm1.CheckBox1Click(Sender: TObject); begin MB_Genauigkeit; end; Warum eine Funktion? Danke. Mfg. |
Re: Procedure aufrufen...
Zitat:
|
Re: Procedure aufrufen...
Ja, Parameter hört sich gut an, aber wie macht man das?
hast du eine Ahnung? Bitte.... |
Re: Procedure aufrufen...
moin,
wie wärs mit:
Delphi-Quellcode:
und
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;
Delphi-Quellcode:
phoenix
procedure TForm1.CheckBox1Click(Sender: TObject);
begin MB(1); //bzw. 2 oder 3 end; |
Re: Procedure aufrufen...
oder ganz dynamisch:
Delphi-Quellcode:
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.
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; phoenix |
Re: Procedure aufrufen...
ne andere Möglichkeit wäre eine Funktion:
Delphi-Quellcode:
die dann mit
function TForm1.MB(i :integer);
var List:TStringList; begin List:=TStringList.Create; List.LoadFromFile('C:\Text.txt'); result := List.Strings[i]; List.Free; end;
Delphi-Quellcode:
aufgerufen wird. Scheint mir bei einer begrenzten Anzahl von Labels hier die sinnvollste Variante zu sein :)
procedure TForm1.CheckBox1Click(Sender: TObject);
begin Label1.caption := MB(0); end; so, nun fällt mir nix mehr dazu ein :wink: phoenix |
Re: Procedure aufrufen...
Funktionen ohne Rückgabewert ? hmmmm :gruebel:
|
Re: Procedure aufrufen...
Ups ... :pale: peinlich, fehlt natürlich ein ":string"
|
Re: Procedure aufrufen...
nix string, noch mehr fehlt. 8)
|
Re: Procedure aufrufen...
:?: und was bitte?
|
Re: Procedure aufrufen...
oh je, da fehlt im Prinzip nichts mehr, aber eine Funktion kann auch eine Zahl zurückliefern. Die kann man mit FindComponent verwenden. Oder in einem Array. Man kann auch einen Index dieses Arrays als Zahl verwenden und als String oder Record weiterverarbeiten. und und und....
|
Re: Procedure aufrufen...
wohl wahr, aber bist du wirklich der Ansicht, dass das dann noch eine "elegante" Lösung ist :gruebel: In diesem speziellen Fall meine ich.
|
Re: Procedure aufrufen...
WIrd nur ein Wert gebraucht, so verwende ich eine Funktion. Ansonsten mach ich das anders. 8)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:33 Uhr. |
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