Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Ordner-Durchsuchen-Komponente (https://www.delphipraxis.net/74008-ordner-durchsuchen-komponente.html)

xZise 26. Jul 2006 18:31


Ordner-Durchsuchen-Komponente
 
Ich habe mir eine Komponente gebastelt um einen Ordner zu wählen:
Delphi-Quellcode:
unit UDurchsuchen;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, JvExControls, JvComponent, JvXPCore, JvXPButtons, ExtCtrls,
  ComCtrls, ShellCtrls;

type
  TFDurchsuchen = class(TForm)
    Directorys: TShellTreeView;
    Panel1: TPanel;
    Panel2: TPanel;
    JvXPButton2: TJvXPButton;
    JvXPButton1: TJvXPButton;
    procedure JvXPButton2Click(Sender: TObject);
    procedure JvXPButton1Click(Sender: TObject);
  private
    Abort : Boolean;
    Path : TFileName;
  public
    function Execute : Boolean;
    function getPath : TFileName;
  end;

var
  FDurchsuchen: TFDurchsuchen;

implementation

{$R *.dfm}

function TFDurchsuchen.Execute : Boolean;
begin
  Abort := false;
  inherited ShowModal;
  Result := not Abort;

end;

procedure TFDurchsuchen.JvXPButton2Click(Sender: TObject);
begin
  Abort := true;
  close;
end;

procedure TFDurchsuchen.JvXPButton1Click(Sender: TObject);
begin
  Path := Directorys.Path;
  close;
end;

function TFDurchsuchen.getPath : TFileName;
begin
  Result := Path;
end;

end.
Nun wollte ich das als Kompoennete einstellen!
Muss ich es dazu nur registieren?

mkinzler 26. Jul 2006 18:32

Re: Ordner-Durchsuchen-Komponente
 
Grundsätzlich, ja, obwohl TForm als basisklasse für eine Komponente nicht optimal ist.

xZise 26. Jul 2006 18:34

Re: Ordner-Durchsuchen-Komponente
 
Was würdest du den Vorschlagen?

mkinzler 26. Jul 2006 18:36

Re: Ordner-Durchsuchen-Komponente
 
Vielleicht nen Panel

xZise 26. Jul 2006 18:38

Re: Ordner-Durchsuchen-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ein Panel mit Systemleiste oben?

arbu man 26. Jul 2006 18:40

Re: Ordner-Durchsuchen-Komponente
 
Du machst die eine Komponente vom Type TComponent und dann so was

Delphi-Quellcode:

TDurchsuchenAdapter=class(TComponent)
protected
  form:TFDurchsuchen;
  fpath: string;
public
  function execute: boolean;
  property path...
end;
das dann mit Register registrieren und fertig :)

Luckie 26. Jul 2006 18:41

Re: Ordner-Durchsuchen-Komponente
 
Weiteres Problem: Man muss die Jedis installiert haben, um dein Komponente nutzen zu können. Warum nicht einfach die von Windows schon bereitgestellte API Funktion in eine Klasse kapseln?
http://www.michael-puff.de/Developer...rFolderCls.pas

xZise 26. Jul 2006 18:47

Re: Ordner-Durchsuchen-Komponente
 
Okay das mit den Jedis kann ich rausnehmen!

Nur jetzt meckert er rum:
Delphi-Quellcode:
type
  TDurchsuchen = class(TComponent)
  private
    Formular : TFDurchsuchen;
  public
    constructor Create;
    destructor Destroy;
    function Execute : Boolean;
    function getPath : TFileName;
  end;

type
  TFDurchsuchen = class(TForm)
    Directorys: TShellTreeView;
    Panel1: TPanel;
    Panel2: TPanel;
    JvXPButton2: TJvXPButton;
    JvXPButton1: TJvXPButton;
    procedure JvXPButton2Click(Sender: TObject);
    procedure JvXPButton1Click(Sender: TObject);
  private
    Abort : Boolean;
    Path : TFileName;
 { public
    function Execute : Boolean;
    function getPath : TFileName;}
  end;
Zitat:

[Error] UDurchsuchen.pas(13): Undeclared identifier: 'TFDurchsuchen'

Dax 26. Jul 2006 18:51

Re: Ordner-Durchsuchen-Komponente
 
Wenn du die beiden Deklarationen vertauschst, gehts wieder.

mkinzler 26. Jul 2006 18:56

Re: Ordner-Durchsuchen-Komponente
 
Du könntest auch TFrame als Basisklasse nehmen, und dann die nicht verfügbaren Eigenschaften/Methoden auf die Form (parent) umlenken.


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