Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi funktion aus fremder *.pas datei (https://www.delphipraxis.net/61033-funktion-aus-fremder-%2A-pas-datei.html)

Piro 16. Jan 2006 10:05


funktion aus fremder *.pas datei
 
Moin,

ich habe eine *.pas datei, die einige Funktionen beinhaltet. Nun habe ich diese Datei meinem Projekt hinzugefügt. Ich möchte jetzt gerne die Funktionen nutzen. Dies bezüglich habe ich die Unit in die uses Klausel eingepflegt.

Problem: Trotzdem sag er mir da er die Funktion nicht kennt bzw. undefinierter Bezeichner.

Unit Folder
Code:
unit uFolder;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, shlobj;

implementation

function SelectFolder(root: Integer; Caption: string): string; //Verzeichnis-Öffnen-Dialog-Funktion
var
  bi: TBrowseInfo;
  lpBuffer: PChar;
  pidlPrograms, pidlBrowse: PItemIDList;
begin
  if (not SUCCEEDED(SHGetSpecialFolderLocation(GetActiveWindow, root,
    pidlPrograms))) then
    exit;
  lpBuffer := StrAlloc(MAX_PATH);
  bi.hwndOwner := GetActiveWindow;
  bi.pidlRoot := pidlPrograms;
  bi.pszDisplayName := lpBuffer;
  bi.lpszTitle := PChar(Caption);
  bi.ulFlags := BIF_RETURNONLYFSDIRS;
  bi.lpfn := nil;
  bi.lParam := 0;

  pidlBrowse := SHBrowseForFolder(bi);
  if (pidlBrowse <> nil) then
    if SHGetPathFromIDList(pidlBrowse, lpBuffer) then
      Result := lpBuffer;
  StrDispose(lpBuffer);
end;
Unit Hauptprogramm
Code:
unit uSetup;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, shlobj;

type
  Tfrm_setup = class(TForm)
    ...
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  frm_setup: Tfrm_setup;

implementation

uses uFolder;

{$R *.DFM}

procedure Tfrm_setup.btn_2ksp4Click(Sender: TObject);
begin
 //Übergabe des gewählten Verzeichnisses
 edt_2ksp4.Text := SelectFolder(CSIDL_DRIVES, 'Verzeichnis wählen');
end;

...
Kann mir einer sagen, was noch fehlt, damit es funktioniert?

dataspider 16. Jan 2006 10:09

Re: funktion aus fremder *.pas datei
 
Hi,

du musst den Funktionskopf noch in den Interface - Abschnitt aufnehmen.

Cu, Frank

Delphi-Quellcode:
unit uFolder;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, shlobj;

function SelectFolder(root: Integer; Caption: string): string;

implementation

function SelectFolder(root: Integer; Caption: string): string;

Piro 16. Jan 2006 10:19

Re: funktion aus fremder *.pas datei
 
vielen dank. hat funktioniert.


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