Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie daraus eine Funktion machen? (https://www.delphipraxis.net/121040-wie-daraus-eine-funktion-machen.html)

kompi19 21. Sep 2008 12:09


Wie daraus eine Funktion machen?
 
Delphi-Quellcode:
procedure TForm3.EinCentClick(Sender: TObject);
begin
 zahlung:=StrToFloat(Label1.Caption);
 zahlung:=zahlung-0.01;

 // BEGINN DER FUNKTION
 if zahlung<0 then
 begin
 Label2.Caption:='Ihr Rückgeld:';
 Label1.Caption:=FloatToStrF(-zahlung,fffixed,16,2);

 EinCent.Enabled:=false;
 ZweiCent.Enabled:=false;
 FuenfCent.Enabled:=false;
 ZehnCent.Enabled:=false;
 ZwanzigCent.Enabled:=false;
 FuenfzigCent.Enabled:=false;
 EinEuro.Enabled:=false;
 ZweiEuro.Enabled:=false;
 FuenfEuro.Enabled:=false;
 ZehnEuro.Enabled:=false;
 ZwanzigEuro.Enabled:=false;
 FuenfzigEuro.Enabled:=false;
 HundertEuro.Enabled:=false;
 ZweihunderEuro.Enabled:=false;
 FuenfhundertEuro.Enabled:=false;
 end
 else
 Label1.Caption:=FloatToStrF(zahlung,fffixed,16,2);
 //ENDE DER FUNKTION
end;
Kann ich aus dem eingegrenzten Teil eine Funktion machen? Habe nämlich noch 14 weitere Buttons in dieser Code teil der markiert ist rein muss. Mit einer Funktion würde sich da mächtig Code sparen lassen. Wenn es geht, wie muss die Funktion aussehen und wie führe ich sie aus?

SirThornberry 21. Sep 2008 12:12

Re: Wie daraus eine Funktion machen?
 
Natürlich kann man daraus eine Funktion machen aber ich glaub eine procedure reicht in dem Fall da du nichts zurück zu geben brauchst. Wie?! Eine neue Methode/procedure/funktion anlegen und den Quelltext dort rein kopieren. Diese Funktion dann aufrufen - fertig.
Wo genau kommst du nicht weiter?

Matze 21. Sep 2008 12:12

Re: Wie daraus eine Funktion machen?
 
Hi,

nur kurz zu Edits und Buttons: Wenn du diese mit fortlaufender Nummer benennst, kannst du sie in einer Schleife durchgehen. Das spart dir einige Code-Zeilen. Stichwort wäre: Hier im Forum suchenFindComponent.

Grüße

SirThornberry 21. Sep 2008 12:16

Re: Wie daraus eine Funktion machen?
 
Dann aber am besten gleich in ein Array packen um das "Find" zu vermeiden.

sx2008 21. Sep 2008 12:19

Re: Wie daraus eine Funktion machen?
 
Delphi-Quellcode:
type
  TGeldStueck = (gs1Cent, gs2Cent, gs5Cent,...., gs500Euro); // die Punkte bitte mit Werten ersetzen (Fleissarbeit)
  TGeldStuecke = set of TGeldStueck;

procedure TForm3.EnableStueckelung(g:TGeldSuecke);
begin
  EinCent.Enabled:= gs1Cent in g;
  ZweiCent.Enabled:=gs2Cent in g;
  ... // nochmal die Fleissarbeit
  FuenfhundertEuro.Enabled:= gs500Euro in g;
end;
Nachtrag:
Damit lassen sich dann gezielt einige oder alle Checkboxen abschalten:
Delphi-Quellcode:
var
  gs : TGeldStuecke;
begin
  // Beispiel 1
  gs := []; // Menge
  EnableStueckelung(gs); // alle Checkboxen aus
 
  // Beispiel 2
  gs := [gs1Euro, gs2Euro, gs5Euro, gs10Euro];
  EnableStueckelung(gs); // 1,2, 5 und 10 Euro Checkbox aktiv

  // Beispiel 3
  gs := gs + [gs20Cent, gs50Cent]; // Vereinigungsmenge bilden
  EnableStueckelung(gs);

Matze 21. Sep 2008 12:20

Re: Wie daraus eine Funktion machen?
 
@Jens: Stimmt, das wäre noch schöner, zumal man die aussagekräftige Benennung dann beibehalten kann.

kompi19 21. Sep 2008 12:25

Re: Wie daraus eine Funktion machen?
 
na wie genau müsste denn diese prozedur dann vom code aussehen und wie sieht es aus wenn ich sie ausführen will? Bin da ncoh nciht so bewandert, deswegen wäre eure Hilfe sehr nett.

SirThornberry 21. Sep 2008 12:46

Re: Wie daraus eine Funktion machen?
 
@sx2008: Was willst du uns mit diesem Quelltext sagen? ein paar Zeilen dazu wären nicht falsch :-)

kompi19 21. Sep 2008 12:51

Re: Wie daraus eine Funktion machen?
 
Delphi-Quellcode:
if zahlung<0 then
begin
Label2.Caption:='Ihr Rückgeld:';
Label1.Caption:=FloatToStrF(-zahlung,fffixed,16,2);

EinCent.Enabled:=false;
ZweiCent.Enabled:=false;
FuenfCent.Enabled:=false;
ZehnCent.Enabled:=false;
ZwanzigCent.Enabled:=false;
FuenfzigCent.Enabled:=false;
EinEuro.Enabled:=false;
ZweiEuro.Enabled:=false;
FuenfEuro.Enabled:=false;
ZehnEuro.Enabled:=false;
ZwanzigEuro.Enabled:=false;
FuenfzigEuro.Enabled:=false;
HundertEuro.Enabled:=false;
ZweihunderEuro.Enabled:=false;
FuenfhundertEuro.Enabled:=false;
end
else
Label1.Caption:=FloatToStrF(zahlung,fffixed,16,2);
das genau muss in die prozedur..wie muss nun der kopf dazu aussehen und wie rufe ich dann die prozedur auf?

SirThornberry 21. Sep 2008 13:04

Re: Wie daraus eine Funktion machen?
 
letzendlich arbeitest du schon mit Funktionen. In deinem Fall mindestens mit FloatToStrF.
Genau so wie du diese Funktion aufrufst, ruft man auch selbst geschriebene Funktionen/Methoden/proceduren auf denn es spielt keine Rolle ob du den Quelltext getippt hast oder jemand anderes.

Funktionen aufrufen, declarieren etc. gehört zu den Grundlagen. Wunderbare Tutorials findest du hier bei delphi-treff.de

für deinen Konkreten Fall:
http://www.delphi-treff.de/tutorials...shkurs/page/5/


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:11 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