AGB  ·  Datenschutz  ·  Impressum  







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

VarPtr in Delphi ?

Ein Thema von goose33 · begonnen am 17. Sep 2005 · letzter Beitrag vom 17. Sep 2005
 
goose33

Registriert seit: 26. Okt 2004
Ort: Merseburg
49 Beiträge
 
#6

Re: VarPtr in Delphi ?

  Alt 17. Sep 2005, 02:30
Zitat von ACE-ppc:
hi,

eventuell hättest du ja mal google benutzen können

Zitat:
------------- schnipp -------------
procedure TTMainform.BBetankClick(Sender: TObject);
var dwResult : DWORD; a: real;
begin
FSUIPC_open(SIM_ANY, dwResult);
FSUIPC_Read($0B80,4, @a ,dwResult);
FSUIPC_Process(DWResult);
MaxTanklinks.Caption := FloatToStrF(a, ffFixed, 15, 2);
end;
------------- schnapp -------------

1) Du hast "a" als Real definiert. Ein Real ist 8 Byte (64 Bit) groß. Im FSUIPC_Read gibst Du als zweiten Parameter aber "4" an, d.h. Du liest nur 4 Bytes in eine 8 Byte große Variable ein. Das hat zum Ergebnis, dass die anderen 4 Byte so bleiben wie sie sind -> Datenmüll.

2) Laut dem FSUIPC-SDK ist 0B80 4 Byte groß. Du kannst also nicht einfach die 4 Byte in eine 8-Byte Variable lesen. Also musst Du was Passendes dafür nehmen: DWORD.
1 Byte: BYTE
2 Byte: WORD
4 Byte: DWORD
8 Byte: REAL
Abgesehen davon liefert 0B80 die Tankkapazität in US Gallonen zurück. Du musst die also noch in Pfund, Liter, Kilogramm, oder was immer Du haben willst, umrechnen.

Hier die Auflösung des Ganzen:

procedure TTMainform.BBetankClick(Sender: TObject);
var
dwResult, capacity : DWORD;
value : double;
begin
FSUIPC_open(SIM_ANY, dwResult);
FSUIPC_Read($0B80, 4, @capacity ,dwResult);
FSUIPC_Process(DWResult);
value := double(capacity);
// Hier Umrechnung einfügen
MaxTanklinks.Caption := FloatToStrF(value, ffFixed, 15, 2);
end;

Bis dann,
Hans
Dreamfleet / Team Eurowings Professional

Hallöchen,

hast Du da vielleicht irgendwas verwechselt ???
Ichhab doch nix mit Betanken und schon gar nicht mit einer definition von a und als real auch nicht zu tun ??

Matthias

Ps: Trotzdem ist bei mir noch irgendein Fehler drin ?? Weisst Du vielleicht nen rat ?
  Mit Zitat antworten Zitat
 


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 22:22 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