Re bonjour à tous et à toutes!!
Voilà , j'ai trouvé sur le net un Source pour la création d'un composant Non visuel: TSelectDirDialog qui permet de selectionner un dossier au lieu d'un fichier, j'ai suivi le tuto à la lettre pour la création du paquet et le code de base de tout composant crée dans le source de l'unité SelDirDlg.pas du paquet correspondant...
Voici le code:
Mon problème est que lors de la compilation j'ai un avertissement de type: L'unité 'FileCtrl' est propre à une plate-forme , s'en suit 02 autres messages d'erreur: Identificateur non déclaré: TSelectDirExtOpts
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 unit SelDirDlg; interface Uses Windows, SysUtils, Classes, FileCtrl; Type TDirName = Type string; TAcceptDirEvent = procedure (Sender: TObject; Directory: TDirName) of object; TSelectDirDialog = Class(Tcomponent) Private FCaption: string; FRoot: TDirName; FDirectory: TDirName; FOptions: TSelectDirExtOpts; FOnAccept: TAcceptDirEvent; FOnCancel: TNotifyEvent; function CaptionStored: boolean; function RootStored : boolean; function DirStored : boolean; Public constructor Create(AOwner: TComponent); override; Function Execute: boolean; published property Caption: string read FCaption write FCaption; Property Root: TDirName read FRoot write FRoot; Property Directory : TDirName read FDirectory write FDirectory; Property Options: TSelectDirExtOpts read FOptions write FOptions; property OnAccept: TAcceptDirEvent read FOnAccept write FOnAccept; property OnCancel: TNotifyEvent read FOnCancel; end; implementation Var MainDisk: TDirName; constructor TSelectDirDialog.Create(AOwner: TComponent); begin inherited; FCaption:=('Selectionnez un dossier'); FRoot:='C:\'; FOptions:=[sdNewUI]; FOnAccept:=nil; FOnCancel:=nil; end; function TSelectDirDialog.CaptionStored: boolean; begin Result:=FCaption <> 'Selectionnez un dossier'; end; function TSelectDirDialog.RootStored: boolean; begin Result:=FRoot <> MainDisk; end; function TSelectDirDialog.DirStored: boolean; begin Result:=FDirectory<> MainDisk; end; function TSelectDirDialog.Execute: boolean; begin Result:=SelectDirectory(FCaption, FRoot, string(FDirectory), FOptions); if result then begin if assigned(FOnAccept) then FOnAccept(Self, FDirectory); end else begin if assigned(FOnCancel) then FOnCAncel(Self); end; end; Initialization SetLength(MainDisk, MAX_PATH); SetLength(MainDisk, GetWindowsDirectory(PChar(MainDisk), MAX_PATH)); MAinDisk:=IncludeTrailingPathDelimiter(ExtractFileDrive(MainDisk)); end.
et : Identificateur non déclaré:: sdNewUI
ainsi que : Trop de paramètres originaux à la ligne :J'ai l'impression que la routine SelectDirectory de l'unité FileCtrl n'est pas surchargée !!!????????
Code : Sélectionner tout - Visualiser dans une fenêtre à part Result:=SelectDirectory(FCaption, FRoot, string(FDirectory), FOptions);
Partager