Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Eigene function erstellen
GiuStyler - Fr 10.10.14 09:56
Titel: Eigene function erstellen
Hallo. Habe mal wieder ein problem. Ich soll aus dieser procedure eine function erstellen, damit man den Code-Abschnitt beliebig in anderne Programmen einbauen kann auch wenn die Bezeichnung der Felder anders ist. Kann mir da jemand einen Tipp geben wie es gehen soll?
Kurz zu dem Mini-Programm. Es besteht aus 4 Feldern.
1. Stellenangabe (Man gibt die Anzahl an Stellen die man haben will (z. B. 7)
2. Anfangswert (Man gibt eine Zahl an (z. B. 20)
3. Steigung (Man gibt hier eine Zahl um die der Anfangswert gesteigert wird (z. B. 300)
4. Neuer Wert (Hier werden 2 & 3 zusammengezählt und ausgewertet)
Alle nicht benutzen Stellen bekommen automatisch eine führende "0" in diesem Beispiel wäre es dann 0000320
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TFormWertsteigern.BitBtnOKClick(Sender: TObject); var l_ZahlEingabe, l_ZahlSteigern, l_ZahlNeuerWert, l_ZahlErgebnis, l_i_max, l_s_erg : Integer; begin l_ZahlEingabe := StrToInt(EditZahlEingabe.Text); l_ZahlSteigern := StrToInt(EditZahlSteigern.Text); l_i_max := StrToInt(EditStellen.Text);
l_ZahlNeuerWert := l_ZahlEingabe + l_ZahlSteigern; EditZahlNeuerWert.Text := IntToStr(l_ZahlNeuerWert); while Length(EditZahlNeuerWert.Text) < l_i_max do begin EditZahlNeuerWert.Text := '0' + EditZahlNeuerWert.Text; end;
if (Length(EditZahlNeuerWert.Text) < l_i_max) then begin EditZahlNeuerWert.Text := '0'+ EditZahlNeuerWert.Text; end; end; |
daraus soll ich nun eine function machen die überall einsetzbar ist.
PS: Danke für die Hilfen und Tipps
MfG
OlafSt - Fr 10.10.14 11:07
Als erstes: Niemals ständig mit denProperties von visuellen Controls arbeiten (z.B. EditZahlNeuerWert.Text). Das ist schneckenlahm. Solche Dinge werden in einer lokalen Variable abgewickelt und dann am Ende einmal ins Control geschrieben.
Und wenns ne function sein soll... Ich denke, ich habe genug gesagt ;)
WasWeißDennIch - Fr 10.10.14 11:27
Eine Funktion ist eine Routine, die etwas zurückgibt, im Gegensatz zu einer Prozedur. Man kann ihr Parameter übergeben, die sie dann zur Verarbeitung heranzieht. Damit sie autark arbeiten kann, darf sie keine globalen Dinge verwenden, sondern nur die angesprochenen Parameter. Kleines Beispiel:
Delphi-Quelltext
1: 2: 3: 4:
| function MyConcat(s1, s2: string): string; begin Result := s1 + s2; end; |
Diese Funktion übernimmt 2 Strings, klebt sie aneinander und gibt diesen zusammengefügten String als Ergebnis (engl.: Result) zurück. Wenn ich das richtig überblickt habe, müsste Deine Funktion dann 3 Parameter aufweisen.
[edit]
http://delphibasics.co.uk/Article.asp?Name=Routines [/edit]
GiuStyler - Di 21.10.14 09:03
Danke. Meine function sieht nun so aus und klappt alles.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| function WertSteigern(pi_Anfangswert,pi_Steigerung, pi_Stellen : Integer) : string; var li_ZahlNeuerWert : Integer; begin li_ZahlNeuerWert := pi_Anfangswert + pi_Steigerung; Result := IntToStr(li_ZahlNeuerWert); if (Length(Result) <= pi_Stellen) then begin while Length(Result) < pi_Stellen do begin Result := '0' + Result; end; end else Result := 'ERROR'; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!