
Comment
obtenir la representation (string) d'un code d'erreur
procedure
Tform1.Button1Click(Sender: Tobject);
begin
{Cause a Windows system error message to be logged}
ShowMessage(InttoStr(lStrLen( nil )));
ShowMessage(SysErrorMessage(GetLastError));
end ;

Comment
utiliser la boite de dialogue de recherche d'un fichier
procedure
Tform1.Button1Click(Sender: Tobject);
begin
with TDDEClientConv.Create(Self) do
begin
ConnectMode := ddeManual;
ServiceApplication := 'explorer.exe';
SetLink( 'Folders', 'AppProperties');
OpenLink;
ExecuteMacro('[FindFolder(, C:windows)]', False);
CloseLink;
Free;
end ;
end ;

Comment effacer une console windows
program
Project1;
{$APPTYPE CONSOLE}
uses
Windows;
{$R *.RES}
var
sbi : TConsoleScreenBufferInfo;
i : integer;
begin
Writeln('Une application console ');
Writeln('Appyuer sur la touche entrée pour effacer l'écran');
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),sbi);
Readln;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),sbi);
for i := 0 to sbi.dwSize.y do
writeln;
Writeln('Press Enter to end ');
Readln;
end .

Comment écrire de deux couleurs différentes dans
une barre d'état
procedure
Tform1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if Panel = StatusBar.Panels[0] then begin
StatusBar.Canvas.Font.Color := clRed;
StatusBar.Canvas.Textout(Rect.Left, Rect.top, 'Panel -
0')
end else begin
StatusBar.Canvas.Font.Color := clGreen;
StatusBar.Canvas.Textout(Rect.Left, Rect.top, 'Panel -
1');
end ;
end ;

Comment détruire un répertoire ainsi que tous les
fichiers qu'il contient
procedure
Tform1.Button1Click(Sender: Tobject);
var
DirInfo: TSearchRec;
r : Integer;
begin
r := FindFirst('C:repertoire*.*', FaAnyfile, DirInfo);
while r = 0 do begin
if ((DirInfo.Attr and FaDirectory <> FaDirectory) and
(DirInfo.Attr and FaVolumeId <>
FaVolumeID)) then
if DeleteFile(pChar('C:repertoire' + DirInfo.Name))= false then
ShowMessage('Impossible de détruire : C:repertoire' +
DirInfo.Name);
r := FindNext(DirInfo);
end ;
SysUtils.FindClose(DirInfo);
if RemoveDirec to ry('C:repertoire') = false then
ShowMessage('Impossible de détruire le répertoire : C:repertoire');
end ;

Comment obtenir le numéro de série d'un cd audio
uses
MMSystem, MPlayer;
procedure
Tform1.Button1Click(Sender: Tobject);
var
mp : TMediaPlayer;
msp : TMCI_INFO_PARMS;
MediaString : array[0..255] of char;
ret : longint;
begin
mp := TMediaPlayer.Create( nil );
mp.Visible := false;
mp.Parent := Application.Mainform;
mp.Shareable := true;
mp.DeviceType := dtCDAudio;
mp.FileName := 'D:';
mp.Open;
Application.ProcessMessages;
FillChar(MediaString, sizeof(MediaString), #0);
FillChar(msp, sizeof(msp), #0);
msp.lpstrReturn := @MediaString;
msp.dwRetSize := 255;
ret := mciSendCommand(Mp.DeviceId,
MCI_INFO,
MCI_INFO_MEDIA_IDENTITY,
longint(@msp));
if Ret <> 0 then begin
MciGetErrorString(ret, @MediaString, sizeof(MediaString));
Memo1.Lines.Add(StrPas(MediaString));
end else
Memo1.Lines.Add(StrPas(MediaString));
mp.Close;
Application.ProcessMessages;
mp.free;
end ;
end .

Comment utiliser un curseur animé
procedure
Tform1.Button1Click(Sender: Tobject);
var
h : THandle;
begin
h := LoadImage(0,'fichier animation',IMAGE_CURSOR,0,0,
LR_DEFAULTSIZE or LR_LOADFROMFILE);
if h = 0 then ShowMessage('echec a l'ouverture du curseur') else begin
Screen.Cursors[1] := h;
form1.Cursor := 1;
end ;
end ;

Comment connaitre la liste des polices installées
uses
Printers;
function
EnumFontFamilyProc( var lf : TLogFont;var tm : TNewTextMetric;
FontType : integer; var Memo : TMemo) : integer
{$if DEFWIN32} stdcall; {$else } ; export; {$endif }
begin
Memo.Lines.Add(StrPas(@lf.lfFaceName) +
#32 + Int to Str(lf.lfHeight));
result := 1;
end ;
function
EnumFontFamiliesProc( var lf : TLogFont; var tm : TNewTextMetric;
FontType : integer; var Memo : TMemo) :
integer
{$ if DEF WIN32} stdcall; {$ else } ; export; {$ end if }
begin
if FontType = TRUETYPE_FONTTYPE then begin
Memo.Lines.Add(StrPas(@lf.lfFaceName) + #32 + 'All Sizes');
end else
EnumFontFamilies(Printer.Handle,
@lf.lfFaceName,
@EnumFontFamilyProc,
LongInt(@Memo));
result := 1;
end ;
procedure
Tform1.Button1Click(Sender: Tobject);
var
tm : TTextMetric;
i : integer;
begin
if PrintDialog1.Execute then begin
EnumFontFamilies(Printer.Handle, nil ,
@EnumFontFamiliesProc,LongInt(@Memo1));
end ;
end ;

Comment determiner la taille de la barre des taches
procedure
Tform1.Button1Click(Sender: Tobject);
var
r : TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA,0,@r,0);
Memo1.Lines.Add(Int to Str(r.top));
Memo1.Lines.Add(Int to Str(r.Left));
Memo1.Lines.Add(Int to Str(r.Bottom));
Memo1.Lines.Add(Int to Str(r.Right));
end ;

Comment rafraichir le bureau de Windows
procedure
Tform1.Button1Click(Sender: Tobject);
begin
SendMessage(FindWindow('Progman', 'Program
Manager'),WM_COMMAND,$A065,0);
end ;

Comment afficher l'icone associée a un type de
fichier
uses
ShellApi;
procedure
Tform1.But to n1Click(Sender: Tobject);
var
Icon : hIcon;
IconIndex : word;
begin
Icon :=
ExtractAssociatedIcon(HInstance,'C:SomePathSomeFile.ext',IconIndex);
DrawIcon(form1.Canvas.Handle, 10, 10, Icon);
end ;

Comment utiliser Microsoft Help Workshop
Comme
un bon exemple vaut mieux qu'un long discours voici un exemple de fichier
d'aide;
(il s'agit de la solution du jeu tomb raider 3 que j'ai trouvé sur le Web)
ainsi que quelques pistes pour le comprendre:
-le texte d'aide doit être placé dans uun fichier unique au format rtf
-les différentes rubriques doivent êtree séparées par un saut de page(crlt
entrée sous Word)
-pour ajouter un identificateur de rubrrique ou une entrée dans l'index ... il
faut sous Word :
aller dans le menu insertion
cliquer sur inserer une note de bas de pages
puis saisir: # %ID de la rubrique%>
k %entrée dans l'index%
$ %entrée dans le menu rechercher%

Comment lancer une application et attendre qu'elle
se termine
function
WinExecAndWait32(FileName:String):integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINdow;
StartupInfo.wShowWindow := 0 ;
if not CreateProcess( nil , zAppName, nil , nil , false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil , nil ,StartupInfo,ProcessInfo)
then Result := -1
else begin
Wait for SingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end ;
end ;

Comment associer une extension de fichier avec une
application Delphi
Typiquement
il faut ajouter deux clées dans la base de registre, à la racine
HKEY_CLASSES_ROOT.
Ainsi si l'extention des fichiers de votre application est ".ext", la
première clée a ajouter est
HKEY_CLASSES_ROOT
.ext
dont
la valeur "default" est la description de l'extention
par exemple Monappli. do cument:
HKEY_CLASSES_ROOT
.ext
Default = "Monappli.document"
Puis
vous creez la deuxième clée en lui donnant pour nom la description de
l'extention
HKEY_CLASSES_ROOT
Monappli.document
Enfin
vous ajouter a cette clée une sous clée portant le nom "shell",
a laquelle vous ajouter la sous clée portant le nom "open"
a laquelle vous ajouter la sous clée portant le nom "command"
La valeur "default" de cette sous clé doit etre le chemin de votre
application
suivi des lettres "%1" pour representer le nom du fichier a passer en
parametre
de votre application :
HKEY_CLASSES_ROOT
Monappli.document
shell
open
command
Default = "C:\monapp.exe %1"

Comment connaitre le répertoire temporaire ou le répertoire
courant
procedure
Tform1.Button1Click(Sender: Tobject);
var
buffer:array[0..255] of Char;
begin
GetTempPath(255,buffer);
label1.caption:='Répertoire temporaire: '+buffer;
GetCurrentDirec to ry(255,buffer);
label2.caption:='Répertoire courant: '+buffer;
end ;

Comment utiliser la corbeille
Cette
procedure prend en parametre le nom d'un fichier
et l'envoie dans la corbeille
procedure Envoyer_corbeille(chemin: string);
var
FileOpStruct: TSHFileOpStruct;
begin
FillChar(MyFile,SizeOf(MyFile),0);
FileOpStruct.wFunc:=FO_DELETE;
FileOpStruct.pFrom:=PChar(chemin);
FileOpStruct.fFlags:=FOF_ALLOWUN do ;
SHFileOperation(@FileOpStruct);
end ;

Comment savoir si la touche Caps Lock est active
function
IsCapsLockOn : boolean;
begin
Result := 0 <> (GetKeyState(VK_CAPITAL) and $01);
end ;

Comment afficher l'aide d'une barre d'outils dans
une barre de statut
Principe:
déclarer un gestionnaire d'événement OnHint comme propriété publique
de la fiche principale
type
Tform1 = class(Tform)
...
procedure DisplayHint(Sender: Tobject);
...
end ;
var
form1: Tform1;
implementation
{$R *.FRM}
procedure
Tform1.DisplayHint(Sender: Tobject);
begin
StatusBar1.SimpleText := GetLongHint(Application.Hint);
end ;
procedure
Tform1.formCreate(Sender: Tobject);
begin
Application.OnHint := DisplayHint;
end ;

Comment modifier le pointeur de la souris
Pour
connaitre la position de la souris:
var p: TPoint
GetCursorPos(@p);
Pour positionner la souris:
SetCursorPos(100,100);
pour limiter le champ de déplacement de la souris;
var empl:TRect
empl.Left:=100;
empl. to p:=100;
empl.Right:=200;
empl.Bot to m:=200;
ClipCursor(@empl);

Comment laisser la main a windows pendant une
certaine durée
La
fonction suivante permet de faire cela :
Sleep(durée);//(durée en millisecondes)

Comment connaitre la résolution de l'écran
procedure
Tform1.Button1Click(Sender: Tobject);
var
larg,haut:integer;
begin
larg:=TScreen.width;
haut:=TScreen.height;
end ;

Comment vérifier si une disquette se trouve dans le
lecteur
Ma
solution:
procedure Tform1.But to n2Click(Sender: Tobject);
begin
if DirectoryExists('A:\') then beep;
end ;
une
autre solution trouvée sur le site:[email protected]
procedure Tform1.But to n1Click(Sender: Tobject);
var
mode : Word;
begin
mode := SetErrorMode(SEM_FAILCRITICALERRORS);
if DiskSize(1)<>-1 then beep;
SetErrorMode(mode);
end ;

Comment regler le volume du son d'un composant
TMediaplayer
uses
mmsystem;
procedure
Tform1.Button1Click(Sender: Tobject);
var
volume : Word;
begin
volume:=65535; //valeur maximale
AuxSetVolume(mediaplayer1.DeviceID,volume);
end ;

Comment personnalisé l'image d'un composant
Sous
Delphi aller dans Outils|Editeur d'images
Dans le menu de l'éditeur d'images aller dans fichier|Nouvelle|ressource
composants(.dcr)
Une fenetre apparait : cliquer sur celle ci avec le bouton droit
Selectionner Nouveau|Bitmap
Spécifier les dimensions : hauteur 24 largeur 24
couleur : VGA 16 couleurs
donner a ce bitmap le nom de la classe du composant (ex TBUT to N)
Dessiner l'image
Puis sauvegarder la ressource sous un nom quelconque(avec l'extention .dcr)
Enfin ajouter dans l'unité du composant sous le mot implementation {$R .dcr}

Comment glisser des fichiers
type
Tform1 = class(Tform)
...
procedure WmDropFiles( var msg : TMessage); message WM_DROPFILES;
...
end ;
implementation
uses
ShellAPI;
procedure
Tform1.WmDropFiles( var msg : TMessage);
var
hdrop: THandle;
nbFichiers,i : integer;
buffer:string;
begin
// handle de la structure interne
hdrop:=msg.wParam;
SetLength(buffer, 300);
//si son deuxième paramètre est $0FFFFFFFF
// DragQueryFile renvoie le nombre des fichiers glissés
nbFichiers:=DragQueryFile(hdrop,$0FFFFFFFF,PChar(buffer),0);
for i:=0 to nbFichiers-1 do
begin
DragQueryFile(hDrop, i, PChar(buffer), 300); // récupère
le nom du fichier
ListBox1.Items.Add(buffer); // ajoute le nom
end ;
// pour libérer de la mémoire
DragFinish(hDrop);
end ;
procedure
Tform1.formCreate(Sender: Tobject);
begin
DragAcceptFiles(Listbox1.Handle, true);
end ;

Comment mettre un papier peint dans une fiche
Ajouter
le code suivant à la fiche:
procedure Tform1.formCreate(Sender: Tobject);
begin
PapierPeint:=TBitmap.create;
try
PapierPeint.LoadFromFile('c:\windowsPavés\rouges.bmp');
except
PapierPeint.Free;
PapierPeint:= nil ;
end ;
end ;
procedure
Tform1.formPaint(Sender: Tobject);
var
c, l: integer;
begin
if not Assigned(PapierPeint) then exit;
for c:=0 to (Width div PapierPeint.width) do
for l:=0 to (Height div PapierPeint.height) do
canvas.draw(c*PapierPeint.width,l*PapierPeint.height,
PapierPeint);
end ;

Comment utiliser une image jpeg avec delphi
Ajouter
l'unité JPeg dans la clause uses de la fiche ainsi que le code suivant
procedure Tform1.Button1Click(Sender: Tobject);
begin
if Opendialog1.Execute then
begin
Image1.Picture.LoadFromFile(Opendialog1.FileName);
//pour effectuer un Zoom
TJPEGImage(Image1.Picture.Graphic).Scale:=TJPegScale(RadioGroup1.ItemIndex);
end ;
end ;

Comment optenir la version du systeme d'exploitation
procedure
Tform1.formCreate(Sender: Tobject);
type
TPlatform = (VER_PLATform_Win32s, VER_PLATform_Win32_Windows,
VER_PLATform_Win32_NT);
const
TPlateforme : array[TPlatform] of string = ('Win32s','Windows 95', 'Windows
NT');
var
OsInfo : to sVersionInfo;
begin
OsInfo.dwOSVersionInfoSize:=sizeof(OsInfo);
if not GetVersionEx(OsInfo) then
raise except ion.create('L''appel de la fonction
GetVersionEx a échoué');
with Memo1.lines, OsInfo do begin
add(format('La plate-forme est %s',[TPlateforme[TPlatform(dwPlatformId)]]));
add(format('version %d.%d, construction %d',[dwMajorVersion,
dwMinorVersion,dwBuildNumber]));
end ;
end ;
Comment installer un nouveau composant
C'est
relativement simple il suffit d'aller dans le menu Composant|installer un
composant
une boite de dialogue apparait, alors:
spécifier le nom de l'unité du composant (*.pas ou *.dcu)
puis le nom du paquet dans lequel vous voulez le placer
puis cliquer sur ok

Comment réaliser des boutons ayant une forme ovale
Ajouter
le code suivant à la fiche(qui contient un Bouton nommé Button1) :
procedure Tform1.formCreate(Sender: Tobject);
var
rgn: hrgn;
begin
rgn:=CreateRoundRectRgn(0,0,but to n1.width,but to n1.height,30,30);
SetWindowRgn(but to n1.handle, rgn, true);
end ;
procedure
Tform1.formPaint(Sender: Tobject);
begin
canvas.pen.width:=6;
canvas.pen.color:=clgreen;
canvas.RoundRect(but to n1.left,but to n1. to p,but to n1.width+but
to n1.left,but to n1.height+but to n1. to p,30,30);
end ;

Comment modifier le menu système d'une fiche
type
Tform1 = class(Tform)
procedure formCreate(Sender: Tobject);
private
{ Déclarations privées}
public
{ Déclarations publiques}
procedure WMSysCommand( var Msg:TMessage); message wm_SysCommand ;
end ;
...
const idaPropos=200;
procedure
Tform1.formCreate(Sender: Tobject);
begin
AppendMenu(GetSystemMenu(Handle,false),MF_SEPARA to R,0,'');
AppendMenu(GetSystemMenu(Handle,false),MF_STRING,idaPropos,'A
propos');
end ;
procedure
Tform1.WMSysCommand( var Msg:TMessage);
begin
if (Msg.WParam=idaPropos)
then showmessage('A propos');
inherited;
end ;

Comment
obliger l'utilisateur a ne saisir que des chiffres dans un composant Tedit
procedure
Tform1.Edit1KeyPress(Sender: Tobject; var Key: Char);
begin
if not(key in ['1','2','3','4','5','6','7','8','9','0','.','#8','#13'])
then key:=#0;
end ;

Comment réaliser une application console
Ouvrir
un nouveau projet
Puis aller projet | options | panneau lieur
Cocher la case créer une application console
Comment limiter la taille du code d une application
Dans
le cas ou vous avez 3 boutons (ou plus) sur une fiche
et qu'ils répondent tous a l'événement OnClick:
donnez leurs une valeur de Tag différente et remplacer leur procédure OnClick
par cette procédure unique :
procedure Tform1.ButtonClick(Sender: Tobject);
begin
case (TBut to n(Sender).tag) of
0: caption:=' Bouton 1';
1: caption:=' Bouton 2';
2: caption:=' Bouton 3';
end ;
end ;
Comment afficher l'état de progression de
compilation comme avec Borland Builder
Aller
Outils | Options d'environnement.. | panneau Compilation
Cocher la case montrer la progression

Comment modifier le programme principal afin
d'afficher un écran de démarrage
program
Project1;
uses
forms,
SysUtils,
Unit1 in 'Unit1.pas' {form1},
Unit2 in 'Unit2.pas' {demaform};
{$R
*.RES}
var demaform : Tdemaform;
tpsArret:Tdatetime;
begin
Application.Initialize;
try
demaform := Tdemaform.create(application);
tpsArret:=Now+EncodeTime(0,0,4,0); // affichage de l'écran
// pendant une durée de 4 secondes
demaform.Show; // affichage de l'écran de démarrage
while tpsArret>Now do application.ProcessMessages;
demaform.close;
finally
demaform.free ;// libération de la mémoire
end ;
Application.Createform(Tform1, form1);
Application.Run;
end .

Comment
utiliser un composant Tmediaplayer avec 2 lecteurs de CD
Mettre
la propriété Au to Open du composant a False
puis ajouter ses trois lignes de code par exemple a la méthode OnCreate de la
fiche.
procedure Tform1.formCreate(Sender: Tobject);
begin
MediaPlayer1.DeviceType:=dtCDAudio;
MediaPlayer1.FileName:='D:'; // La lettre D correspond au nom
logique du lecteur de CD
MediaPlayer1.Open;
end ;

Comment afficher un fichier AVI sur une fiche
déposer
un composant Tmediaplayer et un composant Tbut to n
sur une fiche puis écrire affecter cette méthode a l'événement OnClick du
bouton
procedure Tform1.Button1Click(Sender: Tobject);
begin
MediaPlayer1.DeviceType:=dtAVIVideo;
MediaPlayer1.Display:=form1; //nom du conteneur
MediaPlayer1.FileName:='Fox.avi';
MediaPlayer1.Open;
MediaPlayer1.DisplayRect:= Rect(10,10,700,500); //
surface d'affichage
MediaPlayer1.Play;
end ;
Comment jouer un son windows
Utiliser
l'instruction : MessageBeep avec pour argument
l'une des constantes suivantes : (ex MessageBeep(MB_OK)
MB_OK
MB_DEFBUTTON1
MB_OKCANCEL
MB_DEFBUTTON2
MB_ABORTRETRYIGNORE
MB_DEFBUTTON3
MB_YESNOCANCEL
MB_DEFBUTTON4
MB_YESNO
MB_APPLMODAL
MB_RETRYCANCEL
MB_SYSTEMMODAL
MB_ICONHAND
MB_ICONASTERISK
MB_RETRYCANCEL
MB_TASKMODAL
MB_ICONQUESTION
MB_HELP
MB_ICONEXCLAMATION
MB_NOFOCUS
MB_SETFOREGROUND
MB_USERICON
MB_DEFAULT_DESKTOP_ONLY
MB_ICONWARNING
MB_TOPMOST
MB_ICONERROR
MB_RIGHT
MB_ICONINFORMATION
MB_RTLREADING
MB_SERVICE_NOTIFICATION
MB_SERVICE_NOTIFICATION_NT3X
MB_ICONSTOP
MB_TYPEMASK
MB_ICONMASK
MB_DEFMASK
MB_MODEMASK
MB_MISCMASK

Comment
accéder a la base de registre
//
recherche du répertoire du programme de l'explorateur
// windows a l'aide de la base de registre:
implementation
uses registry ;
{$R *.DFM}
procedure Tform1.Button1Click(Sender: Tobject);
var
reg:tregistry;
begin
reg:=tregistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('software',false);
reg.OpenKey('microsoft',false);
reg.OpenKey('windows',false);
reg.OpenKey('currentversion',false);
reg.OpenKey('setup',false);
Caption:=reg.ReadString('windir')+'explorer.exe';
reg.Destroy;
end ;

Comment jouer un son situé dans une ressource
Création
et compilation d'une ressource
ouvrir un nouveau projet
sauver ce projet dans le même répertoire que vos fichiers sons
ajouter un fichier texte a votre projet ( Fichier | nouveau | texte )
dans ce fichier texte faites une liste de vos fichiers sons ( une ligne par
fichier
de la forme: Nom de la ressource puis WAVE puis "nom du fichier sons"
ex: W1 WAVE "f007.wav"
sauver ce fichier en lui do nnant l'extension .rc ( ex son.rc )
puis
aller dans Voir | Gestionnaire de projet
dans le gestionnaire de projet cliquez sur nouveau puis Fichier batch
(un nouveau projet do it apparaître)
cliquer deux fois (avec le Bouton gauche) sur le nouveau projet
puis cliquer une fois (avec le Bouton droit) sélectionner Edition/options...
taper dans la ligne de commande BRCC32 suivit du nom du fichier rc créer précédemment
(ex: BRCC32 son.rc ) cliquer sur OK
puis cliquer une fois (avec le Bouton droit) sélectionner Enregistrer...
puis cliquer une fois (avec le Bouton droit) sélectionner Exécuter...
votre fichier ressource (.res ) est enfin créer
Utilisation de la ressource
dans le gestionnaire de projet cliquez deux fois sur le premier projet (pour le
réactiver)
puis ajouter un Bouton sur la fiche avec la méthode Onclick suivante
procedure Tform1.But to n1Click(Sender: Tobject);
begin
playsound('W1',hinstance,SND_RESOURCE or SND_ASYNC); // W1 nom do nné a la
ressource
end ;
enfin remplacer ce qu'il y a sous le mot implementation par
uses mmsystem;
{$R *.DFM}
{$R son.RES}
Vous pouvez maintenant lancer le programme

Comment créer un raccourci
Le
code suivant ouvre une boite de dialogue l'utilisateur choisi un fichier, le
programme créer alors un raccourci de ce fichier
implementation
uses
ComObj, ActiveX, ShlObj;
procedure Tform1.Button1Click(Sender: Tobject);
var
AnObj: IUnknown;
ShLink: IShellLink;
PFile: IPersistFile;
FileName: string;
WFileName: WideString;
begin
if Opendialog1.Execute then
begin
AnObj := CreateComObject (CLSID_ShellLink);
ShLink := AnObj as IShellLink;
PFile := AnObj as IPersistFile;
FileName:=Op end ialog1.FileName;
// propriété du lien
ShLink.SetPath(PChar(FileName));
//cible
ShLink.SetWorkingDirec to
ry(PChar(ExtractFilePath(FileName))); //démarrer en
emplacement du raccourci
WFileName :='c:mon_raccourci.lnk';
PFile.Save (PWChar (WFileName), False);
end ;
end ;

Comment exécuter un fichier
La
fonction suivante permet d'exécuter un fichier, elle prends en paramètre :
le nom du fichier à exécuter, puis les paramètres a lui transmettre et enfin
le réper to ire de l'exécutable.
function ExecuteFile(const FileName, Params, DefaultDir: string):THandle;
var
zFileName, zParams, zDir: array[0..79] of Char;
begin
Result := ShellExecute(Application.Mainform.Handle, nil ,
StrPCopy(zFileName, FileName), StrPCopy(zParams,Params),
StrPCopy(zDir, DefaultDir), SW_SHOW);
end ;

Comment exécuter un programme de présentation lors
de l'insertion d'un CD-Rom dans un
lecteur
Si
vous possédez un graveur peut être réalisez vous des applications de présentation
avec Delphi.
Si vous voulez qu'elles s'exécutent au to matiquement lorsque vous insérer le
C.D. dans le lecteur
créer un fichier de nom Au to run.ini a la racine du C.D. (avant de le graver).
Puis écrivez a l'intérieur le code suivant :
[au to run]
OPEN=Au to run.exe (Au to run.exe= nom de l'application de presentation )
ICON=Icone.ico (Icone.ico = nom de l'icone du cd)
Puis
cliquer une fois (avec le Bouton droit) sur le fichier Au to run.ini sélectionner
Installer...

Comment
arrêter ou relancer windows
Arrêt
de Windows :
ExitWindowsEx(EWX_SHUTdowN,0);
Redémarrage de Windows :
ExitWindowsEx(EWX_REBOOT,0);
Redémarrage d'une session Windows :
ExitWindowsEx(EWX_ for CE,0);

Comment
inhiber les exceptions définies par le programmeur
Lors
d'un débogage l'exécution d'un programme est arrêté a chaque déclenchement
d' except ion
or pour to utes les except ions définies ( do nc en principe rattrapées) ceci
peut être très rébarbat if .
Pour éviter cela:
Aller dans Outils | Options du débogueur puis dans le panneau except ions du
langage
Enfin cliquer sur ajouter pour saisir le nom de la classe d' except ion que vous
voulez inhiber.

Comment
cacher la fenêtre principale d'une application
Une
seule ligne de code suffit:
application.Mainform.Visible:=false;
Rq: si l'application ne contient qu'une seule fiche alors elle devient invisible
dans la barre et (plus grave) lors d'un ALT-CRTL-SUP.

Comment sélectionner un répertoire avec une boîte
de dialogue style Win 95
Il
faut utiliser la fonction SelectDirectory (2eme syntaxe de l'aide Delphi)
Le répertoire sélectionné est renvoyé en tant que paramètre Directory.
uses
FileCtrl;
procedure Tform1.Button1Click(Sender: Tobject);
var
Directory: string;
Root: WideString;
begin
Root:='c:windows';
SelectDirec to ry('Sélection d''un répertoire',root,Directory);
end ;

Comment
réaliser une barre d'outils mobile (style Adobe Photoshop )
Ajouter
une fiche à votre projet
initialiser sa propriété BorderStyle à bs to olWindow
initialiser sa propriété formStyle à fsStayOn to p
Ajouter vos Boutons sur cette fiche
Lancer le programme : vous devez obtenir une barre d'outils mobile.
