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 Alternative mit API zu SysUtils (https://www.delphipraxis.net/2039-alternative-mit-api-zu-sysutils.html)

theomega 4. Jan 2003 15:01


Alternative mit API zu SysUtils
 
Hallo
Lukie hat mich letzhin mal darauf aufmerksam gemacht, das man in WinAPI-Programmen keine SysUtils verwenden soll. Jetzt würde mich aber mal interessieren, welche Alternativen ich den habe. Eingetlich nutze ich aus der Sysutil nur die inttostr. Allerdings hat diese Funktion den Nachteil, das sie einen String zurückgibt und ich ja einen PChar bräuchte. Also ideal wäre eine Funktion INT -> PChar.

Danke

TO

Sebastian Nintemann 4. Jan 2003 15:12

Hallo theomega, guck dir mal str() und val() in der OH an. IntToStr und StrToInt sind auch daraus aufgebaut soviel ich weiß, kann mangels sourcen grad nicht nachgucken.

Gruß, Sebastian

Daniel 4. Jan 2003 17:59

Re: Alternative mit API zu SysUtils
 
Hallo theomega,

Zitat:

Zitat von theomega
[...] Lukie hat mich letzhin mal darauf aufmerksam gemacht, das man in WinAPI-Programmen keine SysUtils verwenden soll.

Ich glaube, dass es Luckie war, aber das ist nur nebensächlich. :wink:
Ich denke jedoch nicht, dass er o.g. Aussage so getroffen hat. Kann es sein, dass es um NonVCL-Programme ging und die Tatsache, dass die Unit SysUtils einen ganzen Rattenschwanz an Ressourcen mit ins Programm schleppt, so dass man sich die NonVCL-Geschichte dann auch sparen könnte...

MathiasSimmack 4. Jan 2003 18:04

Ich benutze die Funktionen auch immer:
Delphi-Quellcode:
function StrToIntDef(const s: string; const i: integer): integer;
var
  code : integer;
begin
  Val(s,Result,code); if(code <> 0) then
                        Result := i;
end;

function IntToStr(const i: integer): string;
begin
  Str(i,Result);
end;
Wobei es mir "Wurscht" is´, ob das Ergebnis nun String oder PChar ist. Dafür gibt´s ja:
Delphi-Quellcode:
MessageBox(0,
  pchar(inttostr(1234)),
  nil,
  0);
Kürzlich (in Popovs "Monitor TV") habe ich eine Art "FloatToStr" mit zwei Stellen nach dem Komma gebraucht; geht ebenfalls mit "Str" und sieht so aus:
Delphi-Quellcode:
function floattostr(const i: Extended): string;
begin
  Str(i:2:1,Result);
end;
Wie Sebastian sagte: mal in die Hilfe schauen.

btw: Zu meiner Standardausrüstung von API-Programmen gehört meist eine "SysUtils.inc" mit häufiger benötigten Funktionen, wie
Code:
fileexists
ExtractFilePath
ExtractFileName
CutFileExt
Format
UpperCase
LowerCase
Damit kann man recht gut arbeiten und die Programmgröße klein halten. :)

Luckie 16. Jan 2003 03:08

gerade eben habe ich in diesem Zusammenhang meine Toolbox veröffentlicht mit nützlichen Routinen für die Programmierung ohne die VCL.

jbg 16. Jan 2003 14:20

Du meinst wohl "für die Programmierung ohne die VCL und der Erweiterung der RTL", denn die Unit SysUtils gehört wie auch Classes und sogar System und Variante zur Runtime Library.
(Aber das nur zur Vollständigkeit)


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