Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#8

AW: Suche Unicode ersatz für AnsiSameText?

  Alt 4. Aug 2010, 21:23
Vielleicht solltest Du da auch Widefunktionen verwenden. Ich habe das mal so gemacht:

Delphi-Quellcode:
procedure T***.WMDROPFILES(var Msg: TMessage);
var
  pDragFile : PWideChar;
  iFileCount : integer;
  i, iSize : integer;
  slDropList : TStringList;
begin
  {
  *  Initialisierung.
  }

  pDragFile := nil;
  slDropList := TStringList.Create;
  {
  *  Anzahl der Dropfiles holen.
  }

  iFileCount := DragQueryFileW(Msg.wParam, $FFFFFFFF, pDragFile, 255);
  {
  *  Wenn Einträge existieren, Liste abarbeiten.
  }

  if iFileCount > 0 then
  for i := 0 to iFileCount - 1 do
  begin
    {
    *  Die Länge des Eintrages ermitteln.
    }

    iSize := DragQueryFile(Msg.wParam, i, nil, 0) + 1;
    {
    *  Den speicher für den String bereitstellen.
    }

    pDragFile := WideStrAlloc(iSize);
    {
    *  Den Eintrag holen.
    }

    DragQueryFileW(Msg.wParam, i, pDragFile, iSize);
    {
    *  Den Eintrag in die Liste eintragen.
    }

    slDropList.Add(pDragFile);
    {
    *  Den reservierten Speicher freigeben.
    }

    WideStrDispose(pDragFile);
  end;
  {
  *  Messagebehandlung beenden.
  }

  DragFinish(Msg.wParam);

...
end;
slDropList müsste vermutlich TWideStringList sein. Ist es hier nicht, weil ich den TNT Hack von Himitsu verwende.

Für das ExtractFileExt könnte man auch eine Kopierfunktion verwenden.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat