Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Functions nach Button-Klick
Linus - Mo 06.01.03 13:49
Titel: Functions nach Button-Klick
Hallo :? *verzweifeltsei*
mal ne Frage...
Ich habe mehrere fUnctions und möchte, dass sie Teils nach einem Button-Klick, teils einfach so bei Starten des Programms ablaufen...
Wie geht das? Wenn man einen Button aufruft, erzeugt er ja selbst schon eine Prozedur.....
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin
end; |
wo ist da platz für eine function?
wäre super, wenn mir jemand helfen kann :wink:
danke - Linus
matze - Mo 06.01.03 14:08
also deine funktion schriebst du zwischen begin und end; !!!
wenn du willst, dass deine funktion beim start des programmes abläuft, dann mach doch mal einen doppelklick auf dein formular. dann bekommt du etwas mit FormCreate. da schriebst du wieder deine funktion zwischen begin und end; und schon wird die beim starten des programms aufgerufen.
Linus - Mo 06.01.03 14:22
das klappt nicht :(
weiß auch nicht, obs an meinen funktionen liegt :(
ich kann kein delphi *hoil*
also es geht um stringverarbeitung....
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function Length(S: string): Integer; var kette : String; laenge: Integer; begin kette := Edit1.Text; laenge := Length(kette); Edit3.Text := IntToStr(laenge); end;
function Delete(var s: string; Anfang, Anzahl: Integer) var kette: string; laenge: Integer; begin kette := Edit1.Text; Delete(laenge,1) end; |
?!
Udontknow - Mo 06.01.03 14:35
Hi!
Grundsätzliches: Bitte nie einfach "Es klappt net" schreiben. Was genau passiert denn? Gibt es eine Fehlermeldung? Wie lautet sie? Was genau soll vom Programm erreicht werden?
Ok, schauen wir uns mal die Funktionen an.
Warum übergibst du einen String S, den du dann in der Funktion aber zur Ermittlung des Funktionsrückgabewertes gar nicht benutzt? Du ermittelst ja schliesslich einfach nur die Länge des Textes in Edit1 und gibst diese in Edit3 aus. Wieso überhaupt eine Funktion und keine Procedure?
Ach, bevor ich jetzt auf alle Einzelheiten eingehe: Was genau willst du denn bei Programmstart bzw. ButtonClick machen?
Cu,
Udontknow
LCS - Mo 06.01.03 14:37
Hi
linus hat folgendes geschrieben: |
ich kann kein delphi *hoil*
|
In diesem Fall könntest du
hier [
http://www.auq.de/viewtopic.php?t=64] Hilfe finden.
Konkret zu deiner Funktion: Wenn du schon Parameter und Rückgabewerte definierst, dann solltest du sie auch verwenden. Zum Beispiel so:
Quelltext
1: 2: 3: 4:
| function Laenge(S: string): Integer; begin Result := Length(S); end; |
Du solltest es
unbedingt vermeiden, deinen Funktionen die Namen von bereits vorhandenen Systemfunktionen zu geben. Jetzt könntest du diese Funktion in einem Button-Ereignis verwenden:
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin Edit3.Text := IntToStr(Laenge(Edit1.Text)); end; |
Wie gesagt: Versuch mal ein paar Tutorials durchzuarbeiten, denn stellt das bald kein Problem mehr dar.
Gruss Lothar
matze - Mo 06.01.03 14:38
möglicherweise liegts daran, dass es die function lenght schon in delohi gibt. nimm mal nen andren namen !!!
torstenheinze - Mo 06.01.03 14:40
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| function Length(S: string): Integer; var kette : String; laenge: Integer; begin kette := Edit1.Text; laenge := Length(kette); Edit3.Text := IntToStr(laenge); end; |
VOR DAS EDIT3 MUSS ein FORM1. , damit delphi weiß, auf welchem formular das editfeld ist
(06.01. 13:52 Tino) Code-Tags hinzugefügt.
Raphael O. - Mo 06.01.03 17:54
das man form1 in der Funktion vor Komponentennamen o.ä. davor schreiben muss, kann man glaube ich umgehen indem man die funktion oben im "Kopf" der unit mit hinschreibt:
Quelltext
1: 2: 3: 4: 5: 6:
| type TForm1 = class(TForm) function FunktionsName(Parameter1:var-Typ;[Parameter2:var-Typ]):(var-typ von Result); . . . |
und die Deklaration der Funktion wie folgt ändert:
Quelltext
1: 2: 3: 4: 5: 6:
| function tform1.FunktionsName(Parameter1:var-Typ;[Parameter2:var-Typ]):(var-typ von Result); begin ... end;
dadurch ist es dann auch möglich auf die Funktion von einer anderen Unit aus zuzugreifen... |
Fiji-Fighter
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!