Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problem nach verwenden der inputbox (https://www.delphipraxis.net/112011-problem-nach-verwenden-der-inputbox.html)

kruemelmonster92 13. Apr 2008 11:24


Problem nach verwenden der inputbox
 
Auch wenn ich delphi ganz interessant finde bin ich noch keiner der damit unbedingt arbeitet, wir behandeln dies nur grade in der schule, naja un da hab ich ein problem un zwar ham wa jez mit der inputbox angefangen und die ham wa dann halt inne zählschleife mit reingesetzt naja das is soweit noch nich schlimm...nur da ja die inputbox einen stringwert erzeugt beschwert sich jez das programm danach das dieser stringwert nich mit real zusammenarbeiten kann...naja und ich hab jez keine ahnung wie man vielleicht den stringwert wieder in real umwandeln kann oder was man da halt machen muss

danke für die hilfe

mkinzler 13. Apr 2008 11:34

Re: Problem nach verwenden der inputbox
 
TryStrToFloat()

kruemelmonster92 13. Apr 2008 12:07

Re: Problem nach verwenden der inputbox
 
keine ahnung funktioniert immer noch nich
hab hier mal den Ausschnitt aus dem Quelltext wo imprinzip das Problem is

procedure BerechnZins3;
var M : integer;
Nr, monatlicher_Betrag : String;
begin
Zinsen:= 0;
FOR M := 1 to 12 do ;
begin
Nr:= InttoStr(M);
monatlicher_Betrag:= Inputbox ('Eingabe monatlicher Betrag', Nr+'.monatlicher_Betrag','');
(monatlicher_Betrag:= TryStrToFloat(monatlicher_Betrag);)
neues_Guthaben:= Guthaben + monatlicher_Betrag;
Zinsen:= Zinsen + neues_Guthaben*Zinssatz/1200;
end;

Die Zeiele die jez in klammern steht da weiß ich nich wie ich was machen soll

DeddyH 13. Apr 2008 12:14

Re: Problem nach verwenden der inputbox
 
Delphi-Quellcode:
 procedure BerechnZins3;
var M : integer;
    Nr, monatlicher_Betrag : String;
    neuer_Betrag: double; //Du brauchst auch eine Variable für die Fließkommazahl
begin
  Zinsen:= 0;
  FOR M := 1 to 12 do
    begin
      Nr:= InttoStr(M);
      monatlicher_Betrag:= Inputbox ('Eingabe monatlicher Betrag', Nr+'.monatlicher_Betrag','');
      if not TryStrToFloat(monatlicher_Betrag,neuer_Betrag) then
        ShowMessage('Ungültige Eingabe')
      else
        begin
          neues_Guthaben:= Guthaben + neuer_Betrag;
          Zinsen:= Zinsen + neues_Guthaben*Zinssatz/1200;
        end;
    end;
end;

kruemelmonster92 13. Apr 2008 12:17

Re: Problem nach verwenden der inputbox
 
ja danke...naja es is nur so das wir das mit double und if noch nich haben, un da kann ichs auch nich verwenden sonst gibts probleme mit meim lehrer

DeddyH 13. Apr 2008 12:19

Re: Problem nach verwenden der inputbox
 
Aber StrToFloat dürft Ihr verwenden? Oder zumindest Val()?

Die Muhkuh 13. Apr 2008 12:20

Re: Problem nach verwenden der inputbox
 
Delphi-Quellcode:
 procedure BerechnZins3;
var M : integer;
    Nr, monatlicher_Betrag : String;
    neuer_Betrag: Integer; //Du brauchst auch eine Variable für die Ganzzahl :P
begin
  Zinsen:= 0;
  FOR M := 1 to 12 do
    begin
      Nr:= InttoStr(M);
      monatlicher_Betrag:= Inputbox ('Eingabe monatlicher Betrag', Nr+'.monatlicher_Betrag','');
      neuer_Betrag := StrToIntDef(monatlicher_Betrag, 0);
      neues_Guthaben:= Guthaben + neuer_Betrag;
      Zinsen:= Zinsen + neues_Guthaben*Zinssatz/1200;
    end;
end;

kruemelmonster92 13. Apr 2008 12:44

Re: Problem nach verwenden der inputbox
 
@DeddyH ja das mit StrtoFloat hattn wa gleich am anfang

DeddyH 13. Apr 2008 12:49

Re: Problem nach verwenden der inputbox
 
Dann nimm entweder den Code von Manuel, oder, wenn auch Fließkommazahlen zur Eingabe erlaubt sind, eine leicht abgewandelte Form:
Delphi-Quellcode:
procedure BerechnZins3;
var M : integer;
    Nr, monatlicher_Betrag : String;
    neuer_Betrag: real;
begin
  Zinsen:= 0;
  FOR M := 1 to 12 do
    begin
      Nr:= InttoStr(M);
      monatlicher_Betrag:= Inputbox ('Eingabe monatlicher Betrag', Nr+'.monatlicher_Betrag','');
      neuer_Betrag := StrToFloatDef(monatlicher_Betrag, 0); //bei einem ungültigen String ist das Ergebnis 0
      neues_Guthaben:= Guthaben + neuer_Betrag;
      Zinsen:= Zinsen + neues_Guthaben*Zinssatz/1200;
    end;
end;

kruemelmonster92 13. Apr 2008 13:00

Re: Problem nach verwenden der inputbox
 
ja ok das müsste in ordnung sein danke nochmals was mich jez nur noch iritiert ist das er mich nur nach dem 13. monatlichen Betrag fragt, aber reintheoretisch müsste es so sein das er mich nach dem 1. bis 12. fragen müsste...ka wo da jez noch was falsch ist

DeddyH 13. Apr 2008 13:08

Re: Problem nach verwenden der inputbox
 
Erstell mal ein neues Projekt, pack da eine ListBox und einen Button auf die Form und schau mal, ob dieser Code funktioniert (im OnClick des Buttons):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  for i := 1 to 12 do
    ListBox1.Items.Add(InputBox(inttostr(i) + '.Aufruf','Eingabe',''));
end;

kruemelmonster92 13. Apr 2008 13:10

Re: Problem nach verwenden der inputbox
 
ja ne listbox hattn wa auch noch nich, naja un wir müssn die inputbox verwendn

DeddyH 13. Apr 2008 13:14

Re: Problem nach verwenden der inputbox
 
Das hatte ja mit der Aufgabe nichts zu tun, ich wollte nur ermitteln, ob sich Dein Delphi evtl. anders verhält als meins. Deshalb solltest Du ja auch ein neues Projekt erstellen.

kruemelmonster92 13. Apr 2008 13:20

Re: Problem nach verwenden der inputbox
 
ah ok das muss dummen leuten ja gesagt werden^^ na egal, ja ne da gibts keine probleme weiter

DeddyH 13. Apr 2008 13:21

Re: Problem nach verwenden der inputbox
 
Komisch. Wie rufst Du die Prozedur BerechnZins3 denn auf?

Die Muhkuh 13. Apr 2008 13:23

Re: Problem nach verwenden der inputbox
 
Ich frage mich gerade, wo das Problem ist, eine Komponente zu nutzen, die man noch nicht hatte? Delphi stellt diese Komponenten bereit und wenn man sie geschickt einsetzt, sollte das doch kein Problem darstellen. Ist ja "Dein Problem", wenn Du Dir mehr arbeit machst und erst noch schauen musst, wie die Komponente funktioniert.

kruemelmonster92 13. Apr 2008 13:26

Re: Problem nach verwenden der inputbox
 
procedure TForm1.Button1Click(Sender: TObject);
var Guthaben, Zinssatz, Zinsen, neues_Guthaben: real; {globale Variablen}
procedure BerechnZins3;
var M : integer;
Nr, monatlicher_Betrag : String;
neuer_Betrag : real;
begin
Zinsen:= 0;
FOR M := 1 to 12 do ;
begin
Nr:= InttoStr(M);
monatlicher_Betrag:= Inputbox ('Eingabe monatlicher Betrag', Nr+'.monatlicher Betrag','');
neuer_Betrag:= StrtoFloatDef(monatlicher_Betrag, 0);
neues_Guthaben:= Guthaben + neuer_Betrag;
Zinsen:= Zinsen + neues_Guthaben*Zinssatz/100;
end;
neues_Guthaben:= Guthaben + Zinsen;
end;

procedure AusgabeZinsen;
begin
Label5.Caption:='neues Guthaben: ' + FloattoStr(neues_Guthaben) + ' €';
Label8.Caption:='Zinsen: ' + FloattoStr(Zinsen) + ' €';
end;

begin
Guthaben:= StrtoFloat(Edit1.Text);
Zinssatz:= StrtoFloat(Edit2.Text);
BerechnZins3;
AusgabeZinsen;

end;

end.

ich hab hier mal das ganze...naja keine ahnung so hatn was halt gelernt

kruemelmonster92 13. Apr 2008 13:28

Re: Problem nach verwenden der inputbox
 
@ Die Muhkuh...ka frag meinen lehrer, als wir html hattn hat ich deshalb ne 6 gekriegt weil ic das dann angeblich nich inner schule gemacht hatte un deshalb bin ich da seit dem sehr vorsichtig

DeddyH 13. Apr 2008 13:29

Re: Problem nach verwenden der inputbox
 
Delphi-Quellcode:
 FOR M := 1 to 12 do ; //dieses Semikolon muss weg, da Leeranweisung
[edit] Benutze bitte künftig die Delphi-Tags, in einem formatierten Quelltext hätte man das ganz schnell gesehen. [/edit]

kruemelmonster92 13. Apr 2008 13:30

Re: Problem nach verwenden der inputbox
 
ok vielen, vielen dank jetz funktionierts


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