Autor Beitrag
navarro2010
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.05.11 17:31 
Hallo,
kann mir jemand bitte mal einen kompletten, aber einfachen Quelltext mit einer Function einstellen, bei der man auch etwas eingeben kann und ein Ergebnis angezeigt bekommt?

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 23.05.11 17:35 
Moin!

user profile iconnavarro2010 hat folgendes geschrieben Zum zitierten Posting springen:
kann mir jemand bitte mal einen kompletten, aber einfachen Quelltext mit einer Function einstellen, bei der man auch etwas eingeben kann und ein Ergebnis angezeigt bekommt?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
function bekloppt(egal: Integer): Integer;
begin
  Result := 42;
end;
Und was soll das bringen? :nut: :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
navarro2010 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.05.11 17:51 
Wie kann ich zum Beispiel zwei Zahlen addieren lassen. Ich möchte sie aber selbst vor dem berechen eingeben und nicht im Quelltext schon festlegen. Wie kann ich dann ein Ergebnis angezeigt bekommen?

Für diesen Beitrag haben gedankt: Tintenblut
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Mo 23.05.11 17:56 
Wie würdest du das auf einem Blatt Papier machen?
ausblenden Delphi-Quelltext
1:
Result:= a + b					
navarro2010 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.05.11 18:05 
Was hat das mit meiner Frage zu tun? Muss ich da noch ein Edit-Feld einfügen, oder wie geht das? Im Quelltext darf ich bei Functions nämlich keine Editfelder benutzen.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.05.11 18:14 

Für diesen Beitrag haben gedankt: navarro2010
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Mo 23.05.11 22:05 
So..

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function addiere(z1, z2: Integer): Integer;
begin
  Result := z1 + z2;
end;

//Anwendung:

//z.B.
Edit_Ergebnis.Text := IntToStr(Addiere(StrToInt(Edit_z1.Text), StrToInt(Edit_z2.Text)));

//Damit würde die Zahl aus dem Edit_z1 mit der Zahl aus dem Edit_z2 addiert werden und im Edit_Ergebnis angezeigt werden.


Gruß
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Mo 23.05.11 23:12 
Mach dir af dein Formular 3 Editfenster, mach einen Button daneben und die OnClick-Prozedur des Buttons schreisbte folgendes:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  Summe, Zahl1, Zahl2: integer;
begin
  Zahl1 := StrToInt(Edit1.Text);                  // StrToInt() wandelt einen String in eine Integer-variable
  Zahl2 := StrToInt(Edit2.Text);
  Summe := Add(Zahl1, Zahl2);
  
  Edit3.Text := IntToStr(Summe);                  // IntToStr() - Umkehrschluss zur oberen genannten Funktion
end;


So, nachdem du das hast, definier dir mal die Funktion Add:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
function Add(a, b: Integer): Integer;
begin
  Result := a + b;
end;


Dann spielste das ab, gibst in Edit1 und Edit2 jeweils eine Zahl ein, drückst deinen Button und schon haste das Ergebnis :)

Gruß, Thomas
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Di 24.05.11 17:30 
Und was ist jetzt an deinem Code anders außer, dass du unnötig drei Variablen deklarierst?
Tony-S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Di 24.05.11 17:52 
user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
Und was ist jetzt an deinem Code anders außer, dass du unnötig drei Variablen deklarierst?


Vermutlich ist es für einen Anfänger so übersichtlicher und leichter zu verstehen?

Für diesen Beitrag haben gedankt: beastofchaos, Kha
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Di 24.05.11 20:21 
... und wenn du das Grundlagen-Tutorial gelesen hast kannst du gleich noch eine Fehlerbehandlung einbauen. Teste mal die Eingabe eines Buchstaben in das Editfeld.
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Di 24.05.11 21:58 
user profile iconHobby-Programmierer hat folgendes geschrieben Zum zitierten Posting springen:
... und wenn du das Grundlagen-Tutorial gelesen hast kannst du gleich noch eine Fehlerbehandlung einbauen. Teste mal die Eingabe eines Buchstaben in das Editfeld.


Also ich löse dann durch ein paar if-Fragen am liebsten, viele machen das ja durch try, aber ich find das iwie nicht so toll ;)
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Mi 25.05.11 00:36 
Ich würde das da abfangen wo der Text (TEdit) eingegeben wird :wink:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.AllEditKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9']) then begin
    Key:= #0;
    Beep;
  end;
end;

Wenn allerdings das reinkopieren von Text ebenso verhindert werden soll, muss man das im OnChange Event des Editfeldes selber abfangen. Eventuell so
(nicht perfekt - aber naja - für mich hats immer gereicht)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.AllEditChange(Sender: TObject);
var i: Integer;
    s: String;
begin
  with (Sender as TEdit) do begin            // Absender 
    if StrToIntDef(Text, -1) = -1 then begin // Buchstaben im Text vorhanden

      s:= '';
      for i:= 1 to Length(Text) do           // Zext vom 1.Zeichen bis Ende durchsteppen
        if Text[i] in ['0'..'9'then        // Zahl in Text[i] gefunden
          s:= s+ Text[i];                    // Zahl an s anhängen

     // anderes Bsp. vom letzten Zeichen zum 1.Zeichen durchsuchen
     { s:= Text;
      for i := Length(s) downto 1 do
        if not (s[i] in ['0'..'9']) then
          Delete(s, i, 1);}
                  // löschen des ungültigen Zeichens

      Text:= s;             // Text übernehmen
      SelStart:= Length(s); // Cursor ans Textende setzen
    end;
  end;
end;

LG Mario
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 25.05.11 04:35 
StrToIntDef ist dafür denkbar ungeeignet, dafür gibt es extra TryStrToInt.
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Mi 25.05.11 06:50 
user profile iconbeastofchaos hat folgendes geschrieben Zum zitierten Posting springen:
Also ich löse dann durch ein paar if-Fragen am liebsten, viele machen das ja durch try, aber ich find das iwie nicht so toll ;)


Das vergleiche ich mal mit Autofahren :
Wenn du anhalten willst, benutzt du lieber einen Wurfanker anstatt der Bremse ?

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Mi 25.05.11 13:06 
user profile iconzuma hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconbeastofchaos hat folgendes geschrieben Zum zitierten Posting springen:
Also ich löse dann durch ein paar if-Fragen am liebsten, viele machen das ja durch try, aber ich find das iwie nicht so toll ;)


Das vergleiche ich mal mit Autofahren :
Wenn du anhalten willst, benutzt du lieber einen Wurfanker anstatt der Bremse ?


:) Guter Vergleich