![]() |
Problem mit Größer als und Kleiner als
Hi,
versuche grade ein bereits existierendes Programm nachzubauen um was Dazuzulernen
Delphi-Quellcode:
procedure TForm2.btn_execute_preresistClick(Sender: TObject);
var Resistor : string; begin Resistor := floattostr(((strtofloat(edit_UV.text)- strtofloat(edit_UD.text))/strtofloat(edit_ID.text))*1000); if StrToInt(Resistor)<1000000 then begin pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/ 1000000))+' MOhm') )<-- hier ein problem MOhm wird nich berechnet ausgabe z.b 16000 kohm soll aber 16 mOhm sein end; if StrToInt(Resistor)>1000 and StrToInt(Resistor)<1000000 then begin pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/ 1000))+' KOhm') end; if StrToInt(Resistor)<1000 then begin pnl_calculated_resistor.caption := resistor+' Ohm' end; end; |
Re: Problem mit Größer als und Kleiner als
Was anderes... was machst du wenn der Widerstand genau 1 kOhm ist.
Denn Ohm bei kleiner 1000 kOhm bei größer 1000 ;-) Schau dir mal das an:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var u,uf,if_,uv,rv, Result: Real; ResultI: Integer; eh:String; begin U := StrToFloat(Edit1.Text); UF:= StrToFloat(Edit2.Text); IF_:=StrToFloat(Edit3.Text); if UF > U then begin MessageDlg('Solche Widerstände gibt es nicht. ;-)', mtError, [mbOK], 0); end else begin UV := U - UF; RV := UV / IF_; RV := RV * 1000; EH := 'Ohm'; Result := RV; if RV >= 1000 then begin Result := RV / 1000; EH := 'kOhm'; end; if RV >= 1000000 then begin Result := RV / 1000000; EH := 'MOhm'; end; if RV >= 1000000000 then begin Result := RV / 1000000; EH := 'GOhm'; end; ResultI := ceil(Result); Showmessage('Der Widerstand hat einen Wert von: ' + IntToStr(ResultI) + ' ' + EH); end; Button1.SetFocus; Edit1.Text := 'Eingangsspannung (in Volt)'; Edit2.Text := 'Ausgangsspannung (in Volt)'; Edit3.Text := 'Ausgangsstrom (in mA)'; end; |
Re: Problem mit Größer als und Kleiner als
Reistor ist ein String. der Vergleich mit > 10000 kann nicht zum richtigen Ergebnis führen. Ich würde mit Integer oder Float rechnen und erst zu Anzeige zurück in String wandeln.
|
Re: Problem mit Größer als und Kleiner als
Ach und nochmal was du solltest erst nach kohm dann nach mohm prüfen denn größer 1000 ist es bei beiden ;-)
|
Re: Problem mit Größer als und Kleiner als
Zitat:
Ups hast recht
Delphi-Quellcode:
procedure TForm2.btn_execute_preresistClick(Sender: TObject);
var Resistor : string; begin Resistor := floattostr(((strtofloat(edit_UV.text)- strtofloat(edit_UD.text))/strtofloat(edit_ID.text))*1000); if StrToInt(Resistor)<1000000 then begin pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/ 1000000))+' MOhm') end; if StrToInt(Resistor)>1000 and StrToInt(Resistor)<1000000 then begin pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/ 1000))+' KOhm') end; if StrToInt(Resistor)<999 then begin pnl_calculated_resistor.caption := resistor+' Ohm' end; end; |
Re: Problem mit Größer als und Kleiner als
Zitat:
|
Re: Problem mit Größer als und Kleiner als
Delphi-Quellcode:
procedure TForm2.btn_execute_preresistClick(Sender: TObject); var u,uf,if_,uv,rv, Result: Real; ResultI: Integer; eh:String; begin U := StrToFloat(edit_UV.text); UF:= StrToFloat(edit_UD.text); IF_:=StrToFloat(edit_ID.text); begin UV := U - UF; RV := UV / IF_; RV := RV * 1000; EH := 'Ohm'; Result := RV; if RV >= 1000 then begin Result := RV / 1000; EH := 'kOhm'; end; if RV >= 1000000 then begin Result := RV / 1000000; EH := 'MOhm'; end; if RV >= 1000000000 then begin Result := RV / 1000000; EH := 'GOhm'; end; begin pnl_calculated_resistor.caption :=ResultI <---fehler end; end; end; |
Re: Problem mit Größer als und Kleiner als
Ich schätz mal EConvertError -> IntToStr(IResult)
|
Re: Problem mit Größer als und Kleiner als
nee Incompitable types `string` and ´ìnteger`
sorry hab grad nen blackout zuviel Bier |
Re: Problem mit Größer als und Kleiner als
Trotzdem IntToStr(IResult) ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz