AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Problem mit Größer als und Kleiner als
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Größer als und Kleiner als

Ein Thema von Gehstock · begonnen am 25. Jul 2006 · letzter Beitrag vom 28. Jul 2006
Antwort Antwort
Seite 2 von 3     12 3      
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 21:48
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
Marcel
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 21:52
bei mir tuts lad dir mal aus der Freeware Sparte mein Widerstandsberechnungstool runter.
Forensuche -> Widerstandsberechnung
Autor -> EDatabaseError
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 22:00
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)+EH
end;
end;
end;
so jetzt ergebnis immer 4392024 ohm
Marcel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 22:04
ResultI wird auch nie gesetzt.
Markus Kinzler
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 22:05
Delphi-Quellcode:
 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;
sollte es hier nicht überall Resulti heißen?

Weil: pnl_calculated_resistor.caption :=IntToStr(ResultI) Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#16

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 22:07
jup das i muss weg dann gehts
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#17

Re: Problem mit Größer als und Kleiner als

  Alt 27. Jul 2006, 00:44
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(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;
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"

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
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#18

Re: Problem mit Größer als und Kleiner als

  Alt 27. Jul 2006, 04:09
Integer is ne Ganzzahl also NIX mit Komma. Wenn du mit Nicht-Integerwerten rechnen willst brauchst du Delphi-Referenz durchsuchenStrToFloat und Delphi-Referenz durchsuchenFloatToStr.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#19

Re: Problem mit Größer als und Kleiner als

  Alt 27. Jul 2006, 09:32
Delphi-Quellcode:
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;
.. ist aber nur so dahingeschrieben
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#20

Re: Problem mit Größer als und Kleiner als

  Alt 27. Jul 2006, 11:08
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 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;
ok Problem Gelöst nun zeigt es aber 10 Stellen nach dem Komma an das muss noch weg 2 stellen rechen
Marcel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 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