Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Problem mit alternativer Format-Funktion (https://www.delphipraxis.net/2824-problem-mit-alternativer-format-funktion.html)

CalganX 8. Feb 2003 17:11


Problem mit alternativer Format-Funktion
 
Hi,
ich habe aus Luckie's Toolbox folgende Format-Funktion:
Delphi-Quellcode:
function Format(fmt: string; params: array of const): string;
var
  pdw1, pdw2: PDWORD;
  i: integer;
  pc: PCHAR;
begin
  pdw1 := nil;
  if length(params) > 0 then GetMem(pdw1, length(params) * sizeof(Pointer));
  pdw2 := pdw1;
  for i := 0 to high(params) do begin
    pdw2^ := DWORD(PDWORD(@params[i])^);
    inc(pdw2);
  end;
  GetMem(pc, 1024 - 1);
  try
    SetString(Result, pc, wvsprintf(pc, PCHAR(fmt), PCHAR(pdw1)));
  except
    Result := '';
  end;
  if (pdw1 <> nil) then FreeMem(pdw1);
  if (pc <> nil) then FreeMem(pc);
end;
Nun ist das Problem, dass bei dem Aufruf
Delphi-Quellcode:
format('%.0f', [TimerLow / (1000.0 * TimeOfDelay)])
dann im Nachhinein f ausgegeben wird. Das Problem ist nicht da, wenn ich die SysUtils wieder einbinde und das dann aufrufe. Denn dann wird die Zahl korrekt ausgegeben.
Kann mir da jemand helfen?

Chris

jbg 8. Feb 2003 17:26

Das Programmieren wird eben schwerer, wenn man die Highlevel Funktionen der RTL nicht nutzen will.

CalganX 8. Feb 2003 17:31

Und was willst du mir damit jetzt sagen? Außer, dass man es eben selbst schuld ist, dass man nonVCL programmiert.

Chris

jbg 8. Feb 2003 17:42

Deine Zeigerumwandlung ist komplett falsch. Lese dir mal in der Delphi Hilfe den Text zum Index "Variante offene Array-Parameter" durch.

CalganX 8. Feb 2003 18:09

Hi,
hat sich jetzt auch erledigt, da ich es nicht mehr brauche... Desweiteren habe ich diese Funktion nicht geschrieben.

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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