![]() |
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 :=IntToStr(ResultI) end; end; end; so aber mit ohm,kohm,mohm klappt noch nicht und ergebnis immer 4392024 |
Re: Problem mit Größer als und Kleiner als
:shock: bei mir tuts lad dir mal aus der Freeware Sparte mein Widerstandsberechnungstool runter.
Forensuche -> Widerstandsberechnung Autor -> EDatabaseError |
Re: Problem mit Größer als und Kleiner als
Delphi-Quellcode:
so jetzt ergebnis immer 4392024 ohm
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 :=IntToStr(resulti)+EH end; end; end; |
Re: Problem mit Größer als und Kleiner als
ResultI wird auch nie gesetzt.
|
Re: Problem mit Größer als und Kleiner als
Delphi-Quellcode:
sollte es hier nicht überall Resulti heißen?
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; Weil:
Delphi-Quellcode:
Grüße
pnl_calculated_resistor.caption :=IntToStr(ResultI)
Klaus |
Re: Problem mit Größer als und Kleiner als
jup das i muss weg dann gehts ;-)
|
Re: Problem mit Größer als und Kleiner als
Delphi-Quellcode:
so klappt es nur noch 1 problem wenn ich hier "edit_UD.text" eine ganze zahl eintrag also 3 oder 4 klappts aber wenn ich z.B. 3,6 eintrag dann kommt "3,6 is not an integer value"
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(edit_UV.text)>30 then begin if MessageDlg('UV darf maximal 30V sein!', mterror, [mbOK], 0) = mrok then exit; end; if StrToInt(edit_UD.text)>5 then begin if MessageDlg('UD darf maximal 5V sein!', mterror, [mbOK], 0) = mrok then exit; end; if StrToInt(edit_ID.text)>75 then begin if MessageDlg('ID darf maximal 75mA sein!', mterror, [mbOK], 0) = mrok then exit; end; if StrToInt(Resistor)>999 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; sollte damit zu tun haben das 5 ja ne ganze zahl ist "if StrToInt(edit_UD.text)>5 then begin" 5,0 klappt aber auch nicht und edit_ID.text kann komischerweise nicht mehr als 25 sein --->is not valid integer value----> weil wenn hier "pnl_calculated_resistor.caption " kommastellen autreten dann kommt der fehler 40 klappt wieder |
Re: Problem mit Größer als und Kleiner als
Integer is ne Ganzzahl also NIX mit Komma. Wenn du mit Nicht-Integerwerten rechnen willst brauchst du
![]() ![]() |
Re: Problem mit Größer als und Kleiner als
Delphi-Quellcode:
.. ist aber nur so dahingeschrieben :???:
Const
iMaxSuffix: Integer=3 asSuffix: Array [0..iMaxSuffix] of String=(' Ohm', 'kOhm', 'MOhm', 'GOhm'); //beliebig erweiterbar var iSuffix: Integer; dResult: Extended; Begin .. iSuffix:=0; dResult:=StrToFloat(EditIrgendwas.Text); While (dResult / 1000 >0) And (iSuffix<=iMaxSuffix) Do Begin Inc(iSuffix); Result:=dResult / 1000; End; EditIrgendwasAnderes.Text:=FloatToStr(dResult)+asSuffix[iSuffix]; End; |
Re: Problem mit Größer als und Kleiner als
Delphi-Quellcode:
ok Problem Gelöst nun zeigt es aber 10 Stellen nach dem Komma an das muss noch weg 2 stellen rechen
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 StrTofloat(edit_UV.text)>30 then begin if MessageDlg('UV darf maximal 30V sein!', mterror, [mbOK], 0) = mrok then exit; end; if StrTofloat(edit_UD.text)>5 then begin if MessageDlg('UD darf maximal 5V sein!', mterror, [mbOK], 0) = mrok then exit; end; if StrTofloat(edit_ID.text)>75 then begin if MessageDlg('ID darf maximal 75mA sein!', mterror, [mbOK], 0) = mrok then exit; end; if StrTofloat(Resistor)>999 then begin pnl_calculated_resistor.caption := (floattoint((strtofloat(resistor)/ 1000))+' KOhm') end; if StrTofloat(Resistor)<1000 then begin pnl_calculated_resistor.caption := (floattoint((strtofloat(resistor)/ 1))+' Ohm') end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 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-2025 by Thomas Breitkreuz