Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zur Kürzung des Quelltextes (https://www.delphipraxis.net/82349-frage-zur-kuerzung-des-quelltextes.html)

fr0g 11. Dez 2006 18:44


Frage zur Kürzung des Quelltextes
 
Also ich bin dabei ein Automatisches Lagersystem zu programmieren.
jedenfalls Gibt es dort import und Export.
Der Quelltext sieht bis jetzt so aus:
Delphi-Quellcode:
VAR a,b,x,auswahl:integer;

implementation

{$R *.dfm}

procedure TForm1.bokClick(Sender: TObject);
begin
if sender=biok then begin auswahl:=cbimport.ItemIndex+1; end;
if sender=beok then begin auswahl:=cbexport.ItemIndex+1; end;

if auswahl=1 then a:=StrToInt(leres1.Text); {kürzen!!}
if auswahl=2 then a:=StrToInt(leres2.Text);
if auswahl=3 then a:=StrToInt(leres3.Text);
if auswahl=4 then a:=StrToInt(leres4.Text);
if auswahl=5 then a:=StrToInt(leres5.Text);
if auswahl=6 then a:=StrToInt(leres6.Text);
if auswahl=7 then a:=StrToInt(leres7.Text);
if auswahl=8 then a:=StrToInt(leres8.Text);
if auswahl=9 then a:=StrToInt(leres9.Text);

if sender=biok then begin b:=StrToInt(eibase.Text); x:=a+b; end;
if sender=beok then begin b:=StrToInt(eebase.Text); x:=a-b; end;

if auswahl=1 then leres1.Text:=IntToStr(x); {kürzen!!}
if auswahl=2 then leres2.Text:=IntToStr(x);
if auswahl=3 then leres3.Text:=IntToStr(x);
if auswahl=4 then leres4.Text:=IntToStr(x);
if auswahl=5 then leres5.Text:=IntToStr(x);
if auswahl=6 then leres6.Text:=IntToStr(x);
if auswahl=7 then leres7.Text:=IntToStr(x);
if auswahl=8 then leres8.Text:=IntToStr(x);
if auswahl=9 then leres9.Text:=IntToStr(x);
end;
Jetzt würde ich gerne noch die Bereiche wo kürzen steht kürzen mit FindComponent. Jedoch krieg ich das irgdenwie nicht hin das ich FindComponent so umschreibe das ich den inhalt eines Edit Feldes nicht in eine Variable vom typ integer bekomme

fwsp 11. Dez 2006 18:47

Re: Frage zur Kürzung des Quelltextes
 
du kannst aus
Delphi-Quellcode:
if auswahl=1 then a:=StrToInt(leres1.Text); {kürzen!!}
if auswahl=2 then a:=StrToInt(leres2.Text);
if auswahl=3 then a:=StrToInt(leres3.Text);
if auswahl=4 then a:=StrToInt(leres4.Text);
if auswahl=5 then a:=StrToInt(leres5.Text);
if auswahl=6 then a:=StrToInt(leres6.Text);
if auswahl=7 then a:=StrToInt(leres7.Text);
if auswahl=8 then a:=StrToInt(leres8.Text);
if auswahl=9 then a:=StrToInt(leres9.Text);
auch
Delphi-Quellcode:
case auswahl of
  1: StrToInt(leres1.Text);
  2: StrToInt(leres2.Text);
  ...
end;
machen-

EDatabaseError 11. Dez 2006 18:48

Re: Frage zur Kürzung des Quelltextes
 
imho könnte das mit findcomponent ganz gewaltig kürzen.....

tobi

Balu der Bär 11. Dez 2006 18:51

Re: Frage zur Kürzung des Quelltextes
 
Oder gleich:
Delphi-Quellcode:
if auswahl < 10 then
         a := StrToInt((FindComponent('leeres' + IntToStr(auswahl) as TEdit).Text));

Nicolai1234 11. Dez 2006 18:51

Re: Frage zur Kürzung des Quelltextes
 
EDIT: Da fehlte wohl der rote Kasten...

So müsste das doch gehen, oder?
Delphi-Quellcode:
a := StrToInt((FindComponent('leres' + IntToStr(auswahl) as Tedit).text));

fr0g 12. Dez 2006 05:32

Re: Frage zur Kürzung des Quelltextes
 
Gut.

Also das mit dem case ... of war ne gute Idee aber funzt nicht. Die LabelEdit Felder rechnen sich nicht mehr richtig zusammen.

Jedoch hätte ich es doch gerne mit FindComponent hinbekommen. Den Befehl wie ihr mir den geschickt habt hatte icha uch schon einmal selbst. hab auch gedacht: Das muss doch gehen. :lol:

Aber es kommt immer
Zitat:

[Fehler] ulager.pas(52): Operator ist auf diesen Operandentyp nicht anwendbar
[Fataler Fehler] plager.dpr(5): Verwendete Unit 'ulager.pas' kann nicht compiliert werden
Und nun?

mkinzler 12. Dez 2006 05:45

Re: Frage zur Kürzung des Quelltextes
 
Was sthet in der Zeile 52 der Unit ulager.pas?

Balu der Bär 12. Dez 2006 07:24

Re: Frage zur Kürzung des Quelltextes
 
Zitat:

Zitat von mkinzler
Was sthet in der Zeile 52 der Unit ulager.pas?

Was wohl? Höchstwahrscheinlich der Code der beiden Posts über seinem. :roll:

So sollte es gehen:
Delphi-Quellcode:
if auswahl < 10 then
 a := StrToInt(TEdit(FindComponent('leeres' + IntToStr(auswahl))).Text);


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