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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
| {A l'ouverture de la fiche}
procedure TAccueil.FormCreate(Sender: TObject);
var
hinte:string; // pour structure icone
j:integer; // pour structure icone
x:integer; // pour drag drop raccourci
begin
FicIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'ListLog.ini');
// ExtractFilePath pour que le .ini se trouve dans le même directory que l'exécutable
Logiciels1.Items[0].caption := FicIni.ReadString('Element','Bureautique', caption);
Logiciels1.Items[2].caption := FicIni.ReadString('Element','Base de données', caption);
Logiciels1.Items[4].caption := FicIni.ReadString('Element','Disque dur', caption);
Logiciels1.Items[6].caption := FicIni.ReadString('Element','Divers', caption);
Logiciels1.Items[8].caption := FicIni.ReadString('Element','Gestion perso', caption);
Logiciels1.Items[10].caption := FicIni.ReadString('Element','Graphisme', caption);
Logiciels1.Items[13].caption := FicIni.ReadString('Element','Internet', caption);
Logiciels1.Items[15].caption := FicIni.ReadString('Element','Jeux', caption);
Logiciels1.Items[17].caption := FicIni.ReadString('Element','Mp3', caption);
Logiciels1.Items[19].caption := FicIni.ReadString('Element','Programmation Applications', caption);
Logiciels1.Items[21].caption := FicIni.ReadString('Element','Programmation HTML', caption);
Logiciels1.Items[23].caption := FicIni.ReadString('Element','Utilitaires', caption);
Screen.Cursor:=crHourGlass; // pour drag drop
Combien:=-1; // pour drap drop
for x:=0 to 16 do // Installer les programmes drap drop - maximum 15 icones
begin
if FicIni.ReadString('Programmes',IntToStr(x),'')<>''
then AjouterProg;
notifyStruc.cbSize:=SizeOf(notifyStruc); // code relatif à structure icone
notifyStruc.Wnd:=Handle;
notifyStruc.uID:=1;
NotifyStruc.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
{ On verra WM_MYMESSAGE plus tard }
NotifyStruc.uCallbackMessage := WM_MYMESSAGE;
{ Definit que l'icone de l'application sera l'icone par défaut }
NotifyStruc.hIcon := Application.Icon.Handle;
{ Définir l'Hint de l'icône, c-a-d le texte qui sera affiché quand la souris reste longtemps dessus }
hinte:='Cliquer moi pour ouvrir menu ListLog !';
for j:=0 to length(hinte)-1 do NotifyStruc.szTip[j] := hinte[j+1];
NotifyStruc.szTip[length(hinte)]:=#0;
Shell_NotifyIcon(NIM_ADD,@NotifyStruc);//ajoute la petite icône dans la barre des taches
end;
Screen.Cursor:=crDefault;// fin installation programmes
end;
{A la fermeture de la fiche}
procedure TAccueil.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FicIni.WriteString('Element','Bureautique', Logiciels1.Items[0].caption);
FicIni.WriteString('Element','Base de données', Logiciels1.Items[2].caption);
FicIni.WriteString('Element','Disque dur', Logiciels1.Items[4].caption);
FicIni.WriteString('Element','Divers', Logiciels1.Items[6].caption);
FicIni.WriteString('Element','Gestion perso', Logiciels1.Items[8].caption);
FicIni.WriteString('Element','Graphisme', Logiciels1.Items[10].caption);
FicIni.WriteString('Element','Internet', Logiciels1.Items[13].caption);
FicIni.WriteString('Element','Jeux', Logiciels1.Items[15].caption);
FicIni.WriteString('Element','Mp3', Logiciels1.Items[17].caption);
FicIni.WriteString('Element','Programmation Applications', Logiciels1.Items[19].caption);
FicIni.WriteString('Element','Programmation HTML', Logiciels1.Items[21].caption);
FicIni.WriteString('Element','Utilitaires', Logiciels1.Items[23].caption);
if (@NotifyStruc<>NIL) then //retire la petite icône de la barre des taches
Shell_NotifyIcon(NIM_DELETE,@NotifyStruc);
end;
{PROCEDURE PERSO POUR DRAP DROP RACCOURCIS}
{Faire apparaitre les programmes}
Procedure TAccueil.AjouterProg;
var
Limage:TObject;
Icone:TIcon;
LeProg:String;
begin
Inc(Combien);
// Nom du programme
LeProg:=FicIni.ReadString('Programmes',IntToStr(Combien),'');
// Créer l'image qui recevra l'icone du programme.
// ça peut être un bouton ou tout ce que tu veux.
Icone:=TIcon.Create;
Limage:=Timage.Create(self);
TImage(Limage).Parent:= Accueil;
TImage(Limage).Top:=70; // Distance à partir du haut de la fiche (données d'origine = 50)
TImage(Limage).Left:=Combien*(32+15)+15;
TImage(Limage).AutoSize:=True;
TImage(Limage).Picture.Icon:=Imaj.Picture.Icon;
TImage(Limage).OnMouseDown:=ImageMouseDown;
TImage(Limage).Hint:='N''existe PLUS !!';
TImage(Limage).ShowHint:=True;
TImage(Limage).Name:='Image'+IntToStr(Combien);
TImage(Limage).Tag:=Combien;
// Si le Programme existe BIEN alors afficher SON icone...
if FileExists(LeProg) then
begin
// Récupérer l'icone.
Icone.Handle:=ExtractIcon(Handle,Pchar(LeProg),0);
if Icone.Handle<>0
then TImage(Limage).Picture.Icon:=Icone;
TImage(Limage).Hint:=ExtractFileName(LeProg);
end
// Sinon afficher Image Par Defaut.
else TImage(Limage).Picture.Assign(Image.Picture);
Icone.Free;
end;
{FIN DE PROCEDURE PERSO POUR DRAP DROP RACCOURCIS}
{Lancer le programme ou supprimer le programme}
procedure TAccueil.ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Prog, Chemin:String;
Objet:TObject;
Memoire:TStringList;
W:Word;
begin
if ssCtrl in Shift then // Si Ctrl Appuyé, on va Draguer !!!
begin
Timage(Sender).BeginDrag(True);
Exit;
end;
Prog:=Ficini.ReadString('Programmes',IntToStr(Timage(Sender).Tag),'');
if Button=mbLeft then // Click Gauche, Démmarer le programme.
begin
Screen.Cursor:=crHourGlass;
// ShowMessage(IntToStr(Timage(Sender).Tag)+'"'+Prog+'"');
Chemin:=ExtractFilePath(Prog);
W:=ShellExecute(Handle,'OPEN',Pchar(Prog),Nil,PChar(Chemin),sw_show);
Screen.Cursor:=crDefault;
if W<33
then ShowMessage('Impossible de lancer: '+Prog);
end;
if Button=mbRight then // Supprimer un programme:
begin
// Si demande de suppression , demander confirmation.
if x<>-500 then
if MessageDlg('Supprimer '+Prog+' ???',mtWarning,[mbYes,mbNo],0)=mrNo
then Exit;
// Supprimer le programme
FicIni.WriteString('Programmes',IntToStr(Timage(Sender).Tag),'');
Memoire:=TStringList.Create; //Mettre en mémoire les AUTRES programmes.
for x:=0 to Combien do
begin
if FicIni.ReadString('Programmes',IntToStr(x),'')<>''
then Memoire.Add(FicIni.ReadString('Programmes',IntToStr(x),''));
Objet:=FindComponent('Image'+IntToStr(x)); // Supprimer les images
Timage(Objet).Free;
end;
FicIni.EraseSection('Programmes'); // Effacer la section Programmes du fichier Ini
Combien:=-1;
for x:=0 to Memoire.Count-1 do
begin
// Recréer la section Programmes du fichier Ini
FicIni.WriteString('Programmes',IntToStr(x),Memoire[x]);
// Réinstaller les programmes restant.
AjouterProg;
end;
Memoire.Free;
end;
end;
// Effacer tous les raccourcis programmes (pour libérer place pour drag and drop)
procedure TAccueil.SpeedBtnEffaceProgClick(Sender: TObject);
begin
if MessageDlg('Voulez vous vraiment effacer les raccourcis programmes de cette fiche ?' + #13 + ' ! un redémarrage de LISTLOG est impératif !', mtwarning, [mbYes, mbNo],0) =mrYes then
begin
FicIni.EraseSection('Programmes'); // Effacer la section Programmes du fichier Ini
bReload := True; // redemarrage ListLog
Close;
end;
end; |
Partager