Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   array of char UpperCase (https://www.delphipraxis.net/121862-array-char-uppercase.html)

turboPASCAL 6. Okt 2008 08:59

Re: array of char UpperCase
 
Man kann auch das Array in den Mülleimer verschieben und sich ein nettes PChar basteln.

Delphi-Quellcode:
function GetShortPathNameStr(longPath: string): string;
var
  szShortPathName: PChar;
  n: integer;
begin
  Result := '';

  GetMem(szShortPathName, MAX_PATH);
  try
    if GetShortPathName(PChar(longPath), szShortPathName, n) > 0 then
      Result = STRING(szShortPathName);
  finally
    FreeMem(szShortPathName);
  end;
end;

Ich habe feststellen müssen das solche Sachen wie @zTmp[1] bei manchen Compilern
in Zeichenwirrwa auflösen.

EWeiss 6. Okt 2008 09:06

Re: array of char UpperCase
 
Zitat:

Zitat von turboPASCAL
Man kann auch das Array in den Mülleimer verschieben und sich ein nettes PChar basteln.

Delphi-Quellcode:
function GetShortPathNameStr(longPath: string): string;
var
  szShortPathName: PChar;
  n: integer;
begin
  Result := '';

  GetMem(szShortPathName, MAX_PATH);
  try
    if GetShortPathName(PChar(longPath), szShortPathName, n) > 0 then
      Result = STRING(szShortPathName);
  finally
    FreeMem(szShortPathName);
  end;
end;

Ich habe feststellen müssen das solche Sachen wie @zTmp[1] bei manchen Compilern
in Zeichenwirrwa auflösen.

Jo so gehts auch denke aber für Nonvcl nicht nötig oder ?
Die Windows.pas darf man ja mit einbinden oder nicht ?

Vieleicht hast noch was um die Plattformen zu prüfen ?
Dann kann ich die letzt SysUtils auch noch rausschmeißen ;)
Delphi-Quellcode:
    Result := (Win32MajorVersion >= 5) and (Win32Platform = VER_PLATFORM_WIN32_NT); // Win 2000 or up
Das stört jetzt noch

gruss EMil

turboPASCAL 6. Okt 2008 10:02

Re: array of char UpperCase
 
Zitat:

Jo so gehts auch denke aber für Nonvcl nicht nötig oder ?
Wieso, das machts doch für das Handling mit PChar's und Strings einfacher. :gruebel:
Man spart sich die Konvertierungs-Arie.

Klar kann man die Windows.pas, Messages.pas einbinden, warum auch nicht.
Die Sysutils würde ich an deiner Stelle drin lassen oder du musst dir eine Eigene basteln
um auf grundliegende Tolls zuzugreifen wie UpperCase, format, Fileexist, ChangeFileExt etc.
Bei meiner Source vom Fisch ist eine kleine dabei.


Delphi-Quellcode:
function IsWin2kOrUp: Boolean;
var
  ovi: TOSVERSIONINFO;
begin
  Result := FALSE;

  ZeroMemory(@ovi, sizeof(TOSVERSIONINFO));
  ovi.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO);
  GetVersionEx(ovi);
  if (ovi.dwPlatformId = VER_PLATFORM_WIN32_NT) and (ovi.dwMajorVersion >= 5)
    then result := TRUE;
end;
Sowas ? ;)

EWeiss 6. Okt 2008 10:06

Re: array of char UpperCase
 
Zitat:

Zitat von turboPASCAL
Zitat:

Jo so gehts auch denke aber für Nonvcl nicht nötig oder ?
Wieso, das machts doch für das Handling mit PChar's und Strings einfacher. :gruebel:
Man spart sich die Konvertierungs-Arie.

Klar kann man die Windows.pas, Messages.pas einbinden, warum auch nicht.
Die Sysutils würde ich an deiner Stelle drin lassen oder du musst dir eine Eigene basteln
um auf grundliegende Tolls zuzugreifen wie UpperCase, format, Fileexist, ChangeFileExt etc.
Bei meiner Source vom Fisch ist eine kleine dabei.


Delphi-Quellcode:
function IsWin2kOrUp: Boolean;
var
  ovi: TOSVERSIONINFO;
begin
  Result := FALSE;

  ZeroMemory(@ovi, sizeof(TOSVERSIONINFO));
  ovi.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO);
  GetVersionEx(ovi);
  if (ovi.dwPlatformId = VER_PLATFORM_WIN32_NT) and (ovi.dwMajorVersion >= 5)
    then result := TRUE;
end;
Sowas ? ;)

Jo hab mir da auch was gebastelt
Denke man sollte schon nonvcl bleiben ansonstem kann ich direkt ne Form addieren ;)
JO sowas werd es mal testen.

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Seite 3 von 3     123   

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