Announcement

Collapse
No announcement yet.

Warum funktionieren die C-Typen unter Delphi nicht?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Warum funktionieren die C-Typen unter Delphi nicht?

    Ich möchte für einen Dateimanager die API-Funktion <b>SHGetFileInfo</b> verwenden. Der Parameter <b>cbFileInfo</b> hat den Typ <b>UINT</b> (Kenne ich ja von C++)
    Auch wenn ich hier eine Variable vom Typ UINT angebe bzw. eine Typumwandlung von Integer in UINT vornehme, meint Delphi, dass "Die formalen und tatsächlichen Parameter" übereinstimmen müssen. Wie kann ich das Problem beheben (Herr Kosch, vielleicht können Sie mir helfen...)? <font size="5" color="red"><b> D R I N G E N D ! !</b></font>

    Im voraus vielen Dank,<br>
    Leonhardt

  • #2
    Hallo,

    die folgenden Beispiele demonstriert den Einsatz:

    a) Icon auslesen

    <pre>
    procedure TForm1.Button1Click(Sender: TObject);
    var
    FI: TSHFileInfo;
    begin
    SHGetFileInfo('d:\Programme\Borland\Delphi4\Source \VCL\forms.pas', 0,
    FI, Sizeof(FI), SHGFI_ICON);
    Image1.Picture.Icon.Handle := FI.hIcon;
    end;
    </pre>

    b) Dateinamen

    <pre>
    Function GetLongFileName(Const FileName : String): String;
    var
    aInfo: TSHFileInfo;
    begin
    if SHGetFileInfo(PChar(FileName),0,aInfo,Sizeof(aInfo ),SHGFI_DISPLAYNAME)<>0 then
    Result:= String(aInfo.szDisplayName)
    else
    Result:= FileName;
    end;
    </pre&gt

    Comment


    • #3
      Vielen Dank Herr Kosch,<br>
      es hat funktioniert

      Comment

      Working...
      X