dBase pour les nuls !
Bouts de programmes - galères
Ouvre_Url : ouvre un navigateur Web et affiche la page choisie
utilisation par exemple : créer simplement un système d'aide,
Eviter qu'un programme ne se lance plusieurs fois
Les index
Ouvre_Url
Un « HowTo » pour utiliser cette fonction dans dBase
Ouvre_Url("http://www.dbase2000.com")
programme issu du forum Vdbase 5
auteur : Romain Strieff [dBVIPS] - 16 novembre 1999
exemple d'utilisation
DossierAide sera une chaine de caractère qui contient le dossier où se trouve la page web
exemple : DossierAide = "C:\WEBSHARE\WWWROOT\MonDossier\"
laPage sera une chaîne de caractères qui contient le nom du fichier htm ou html
exemple : laPage = "succes.htm"
La fonction peut s'utiliser ainsi :
Ouvre_Url(DossierAide+laPage)
Ouvre_Url(DossierAide+"succes.htm")
le code en dBase
************************
Function Ouvre_Url(cURL)
************************
#define SW_SHOWNORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_SHOWNOACTIVATE 4
#if __vdb__ >= 7
#define WINAPI_A "A"
#define WINAPI_SHELL "SHELL32"
#else
#define WINAPI_A ""
#define WINAPI_SHELL "SHELL"
#endif
if type("ShellExecute") #"FP"
extern cHandle ShellExecute(cHandle, cstring, cstring, cstring, ;
cstring, CINT) WINAPI_SHELL ;
from "ShellExecute"+WINAPI_A
endif
local nHandle
private sd && macro needs private
sd=set("dire") && parfois il pourrait changer de dirs, ceci est une précaution
nHandle=ShellExecute(_app.framewin.hwnd,"open",;
cUrl,null,null,SW_SHOWNORMAL)
if sd#set("dire")
set dire to "&sd."
endif
return nHandle
Eviter que le programme ne se lance plusieurs fois
Lorsqu'un exécutable est crée, on peut souhaiter que l'utilisateur ne l'exécute qu'une seule fois.
Ce code est à mettre dans l'entête du programme pour éviter plusieurs instances
On suppose que l'application dont l'on veut contrôler le nombre d'instances s'appelle MonApplication.exe
auteur : Romain Strieff [dBVIPS]
Extern cHandle GetModuleHandle(cString) Kernel
Extern cInt GetModuleUsage(cHandle) Kernel
If GetModuleUsage(GetModuleHandle("MonApplication.exe")) > 1
MsgBox("Cette application est déjà en service. Utiliser la barre de tâches.", ;
"Attention, Fonctionnement en double", 16)
Quit
Endif
Les index
Lorsque l'on commence a créer une table en dBase, la mise en œuvre des index est quasiment « magique ». Ce sera aussi la source de nombreux problèmes si vous ne vous souvenez pas de ceci :
dBase a horreur des espaces dans un champ qui est indexé. Alors lorsque vous construisez un index, pensez à ce qu'il ne comprenne bien que des caractères alphanumériques.