Delphi peut-il faire ça??? un repertoire disparaissant et réapparaissant...

Résolu
Leader2000 Messages postés 184 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015 - 11 avril 2009 à 18:40
Leader2000 Messages postés 184 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015 - 2 mai 2009 à 13:02
Bonjour!

C'est curieux. Mais j'ai toujours une question qui me vient en tête.
J'ai toujours caché mes repertoires se trouvant sur ma racine ou ailleurs dans mon disque dur à partir d'une commande DOS que j'aime bien. La voici:

c:\attrib +h c:\monRepertoire\sousRepertoire_ainsidesuite

De fois, je doute de voir Delphi faire ça. Douter c'est trop dire. Mais je rêve faire ça. Juste à l'aide d'un bouton sur mon form.
Quelqu'un a t-il une idée comment ça s'fait en écrivant un code sur Delphi.
Mettre juste un Tbutton sur lequel à l'aide d'un clique. Un certain repertoire designé disparait d'ou il était.
S'il vous plait, je ne parle pas d'éliminer. Mais disparaitre... Ayant aussi la possibilité de le faire apparaitre si voulu.

voici comment je fais reapparaitre le dit repertoire:

c:\attrib -h c:\monRepertoire\sousRepertoire_ainsidesuite

Merci d'avance

Developper est une dimension pour moi.
Leader2000

7 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 avril 2009 à 19:35
bonsoir,

procedure TForm1.Button1Click(Sender: TObject);
var
Dossier : string;
Attribut : integer;
begin
Dossier := 'c:\test';
Attribut := FileGetAttr(Dossier );


if Attribut or faHidden > Attribut then
    FileSetAttr(Dossier, Attribut or faHidden);
end;

cantador
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
12 avril 2009 à 23:11
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ButtonSelectDir: TButton;
    LabelDirName: TLabel;
    CheckBoxSys: TCheckBox;
    CheckBoxHid: TCheckBox;
    ButtonSetAttr: TButton;
    procedure ButtonSelectDirClick(Sender: TObject);
    procedure ButtonSetAttrClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  FileCtrl;

var
  FolderName : string = '';
  FolderAttr : integer;

procedure TForm1.ButtonSelectDirClick(Sender: TObject);
begin
 if SelectDirectory('Selectionnez un dossier','',FolderName) then
 begin
   LabelDirName.Caption := FolderName;
   FolderAttr := FileGetAttr(FolderName);
   CheckBoxSys.Checked := (FolderAttr and SysUtils.faSysFile) <> 0;
   CheckBoxHid.Checked := (FolderAttr and SysUtils.faHidden) <> 0;
 end;
end;

procedure TForm1.ButtonSetAttrClick(Sender: TObject);
begin
  if CheckBoxSys.Checked then
    FolderAttr := FolderAttr or faSysFile
  else
    FolderAttr := FolderAttr and (not faSysFile);

  if CheckBoxHid.Checked then
    FolderAttr := FolderAttr or faHidden
  else
    FolderAttr := FolderAttr and (not faHidden);

  FileSetAttr(FolderName, FolderAttr);
end;

end.

3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
16 avril 2009 à 10:46
voilà une solution (un peu bourrin..)

procedure TForm1.BHideClick(Sender: TObject);
var
  Dossier: string;
begin
  Dossier := 'c:\test';
  SetFileAttributes(PChar(Dossier), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;


procedure TForm1.BNotHideClick(Sender: TObject);
var
  Dossier: string;
begin
  Dossier := 'c:\test';
  SetFileAttributes(PChar(Dossier), FILE_ATTRIBUTE_NORMAL);
end;

A toi de l'articuler avec le code de f0xi pour sélectionner ton dossier et choisir les options..

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
13 avril 2009 à 12:07
A noter que caché n'est pas invisible..

cantador
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Leader2000 Messages postés 184 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
15 avril 2009 à 20:47
Merci:

- Cantador pour tes codes. Ca marche. Mais c'est juste pour cacher. Seulement, tu dois surement avoir oublier comment le faire reapparaitre.

- Foxi, tes codes sont génieux. Seulement, ca ne marche pas chez moi comme il faut. Je ne dis pas que ca ne marche pas.
En d'autre terme, ca pose un probleme de declarations. Par exemple, un message apparait tout le temp en disant que la declaration BitBtn ne correspond pas avec son composant... la declation checBox ne correspond pas avec son composant... et ainsi de suite.
Bref, il defini toutes ces declarations...
J'ai essayé de revoir mes composants posés sur mon Form. C'est toujours le même message. J'ai essayé de les enlever (juste pour voir sa reaction). Même chose.
Chose curieuse, à la précompilation...la confirmation est très bonne. Mais quand je lance le programme. Les dits messages reapparaissent.

Merci,
Leader
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
15 avril 2009 à 20:53
Cantador pour tes codes. Ca marche. Mais c'est juste pour cacher. Seulement, tu dois surement avoir oublier comment le faire reapparaitre.

J'ai répondu à ta demande !
f0xi a décidé d'aller plus loin, c'est son affaire..

cantador
0
Leader2000 Messages postés 184 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
2 mai 2009 à 13:02
Merci, je suis vraiment satisfait.

Developper est une dimension pour moi.
Leader2000
0
Rejoignez-nous