AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültige Gleitkommaoperation

Ein Thema von DataNess · begonnen am 23. Mär 2013 · letzter Beitrag vom 24. Mär 2013
Antwort Antwort
DataNess

Registriert seit: 11. Jun 2007
25 Beiträge
 
Delphi 7 Personal
 
#1

Ungültige Gleitkommaoperation

  Alt 23. Mär 2013, 22:26
Hallo,

ich steh grad auf dem Schlauch...
wenn ich versuche
Code:
x:= round(panel1.Width*v);
oder
Code:
x:= round(panel1.Width*1.2);
wobei x: Integer und v: Real ist
bekomme ich immer einen Runtime-Error "Ungültige Gleitkommaoperation".

Was mach ich falsch ?
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#2

AW: Ungültige Gleitkommaoperation

  Alt 23. Mär 2013, 22:38
Hallo,
wenn ich versuche
Code:
x:= round(panel1.Width*v);
...
bekomme ich immer einen Runtime-Error "Ungültige Gleitkommaoperation".
Einen Runtime-Fehler liefert round i.A. nur, wenn die Zahl die Int64-Grenze überschreitet.
Da Dein Panel1 kaum so breit ist, vermute ich, dass der Fehler eher vor dem Befehl entsteht oder panel1.width in diesem Moment unbestimmt ist. Ich kann mir das zwar nicht vorstellen, aber wer weiß.
Evtl. wäre mehr veröffentlichter Quelltext für eine Fehlersuche hilfreich.

Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
DataNess

Registriert seit: 11. Jun 2007
25 Beiträge
 
Delphi 7 Personal
 
#3

AW: Ungültige Gleitkommaoperation

  Alt 23. Mär 2013, 22:47
Achso,

kann es sein das es Auftritt, weil ich es im "FormCreate" aufrufe ?
Das Panel hab ich aber nicht selbst erstellt, und hat die Breite von 240...
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#4

AW: Ungültige Gleitkommaoperation

  Alt 23. Mär 2013, 22:50
kann es sein das es Auftritt, weil ich es im "FormCreate" aufrufe ?
Nimm die Anweisung einmal in die FormActivate. Dann müsste es gehen.

Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
DataNess

Registriert seit: 11. Jun 2007
25 Beiträge
 
Delphi 7 Personal
 
#5

AW: Ungültige Gleitkommaoperation

  Alt 23. Mär 2013, 23:02
Hab's jetzt mit FormActivate und FormShow probiert aber es ändert nix...
Hier mal mehr Code
Code:
procedure TMain.FormShow(Sender: TObject);
var x,y:integer;
    vf,vs,v:real;
    s:string;
begin
  vs:= Screen.width / screen.height;
  vf:=main.Width / main.Height;
  x:=round((main.Width / vf)*vs);
  v:= ((main.Width / vf)*vs) / main.Width;
  main.Width:=x;
  x:= round(panel1.Width*1.2);
  panel1.Width:=x;
...
was ich erreichen will damit:
Ich hab später 4 Panels, die aber an das Bildschirmformat (4/3 oder 16/10) angepasst werden sollen...
Vieleicht ist es auch einfacher 'ClientWidth div 4' ?
Hab mich nur gewundert...

Danke Trozdem
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Ungültige Gleitkommaoperation

  Alt 23. Mär 2013, 23:28
Nach Umstellen und Kürzen ergibt sich einfach:

Delphi-Quellcode:
  Main.Width := Round(Main.Height * Screen.Width / Screen.Height);
  Panel1.Width := Round(Panel1.Width * 1.2);
Gruß
Thomas
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Ungültige Gleitkommaoperation

  Alt 24. Mär 2013, 10:59
Ich kann das Problem mit dem Originalcode nicht nachvollziehen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:40 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