dBase pour les nuls !


Bouts de programmes - galères




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.