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

[Résolu]
Signaler
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
-
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
-
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

Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
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
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
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.

Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
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
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
A noter que caché n'est pas invisible..

cantador
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

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
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
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
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

Merci, je suis vraiment satisfait.

Developper est une dimension pour moi.
Leader2000