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
| unit Menu;
{$V-}
{$N+}
{$ifdef WIN32}
{$H-}
{$A-}
{$endif}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ButtonOuvrirBDD : TButton;
ButtonListerCIVILITE : TButton;
Memo1: TMemo;
procedure ButtonOuvrirBDDClick(Sender: TObject);
procedure ButtonListerCIVILITE(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
uses wdhf5, windev;
{$R *.dfm}
{--- include des descriptions des fichiers utilisés ---}
{$I CIVILITE.WDR} (* record du fichier CIVILITE.FIC *)
{Pour info : Contenu de CIVILITE.WDR : }
{type typeCIVILITE=Record }
{ case byte of }
{ 0:( }
{ hactif : Char; }
{ CICLEUNIK : integer; }
{ CODECIV : String[6]; }
{ LIBCIV : string[40]; }
{ ); }
{ end; }
{ var CIVILITE : typeCIVILITE; }
{$F+} { directive de compilation, $F+ obligatoire en debut }
procedure HInit; {Création du contexte HF}
var
nNbFichier : Longint;
sNomAnalyse : String;
sMotDePasse : String;
begin
nNbFichier := 1;
gCtx := LE_CreateContexteHF(nNbFichier);
sNomAnalyse := 'GesCom';
sMotDePasse := '';
{Description de chaque enregistrement de fichier. Ici seulement CIVILITE}
HDecritEnregistrement;
{Initialisation de HF}
APPELWD('HFCTX'); {dans Windev.pas fourni par PC-Soft}
if LE_Hinitpartage(gCtx,WDLong) = 0 then begin {LE_Hinitpartage est dans Wdhf5.pas fourni par PC-Soft}
APPELWD('Erreur, Erreur d''initialisation du contexte HF');
end else begin
{ouverture de l'analyse}
if Houvreanalyse(gCtx, sNomAnalyse, sMotDePasse, '', '', '') = 0 then begin {Houvreanalyse est dans Wdhf5.pas fourni par PC-Soft}
APPELWD('Erreur,Erreur d''ouverture de l''analyse');
End;
end;
End;
procedure HDecritEnregistrement; {Description du fichier CIVILITE.FIC}
var
lTabRubCIVILITE : array[0..3] of longint; {4 champs}
sTypeCIVILITE : String;
begin
lTabRubCIVILITE[00] := 1;
lTabRubCIVILITE[01] := 4; {CICLEUNIK : integer sur 4 octets}
lTabRubCIVILITE[02] := 7; {CODECIV : String[6]}
lTabRubCIVILITE[03] := 41; {LIBCIV : string[40]}
sTypeCIVILITE := '111';
LE_HDecritEnregistrement(gCtx, stringtoptr('CIVILITE'), 53, longint(@lTabRubCIVILITE[0]), 4, stringtoptr(sTypeCIVILITE), @CIVILITE);
{LE_HDecritEnregistrement est dans Wdhf5.pas fourni par PC-Soft}
end;
procedure TForm1.ButtonOuvrirBDDClick(Sender: TObject);
begin
Hinit;
end;
procedure TForm1.ButtonListerCIVILITEClick(Sender: TObject);
begin
Memo1.Lines.Clear;
{on va parcourir tout le fichier CIVILITE depuis le premier enregistrement}
{et transférer vers Memo1 les champs CICLEUNIK, CODECIV et LIBCIV.}
{HENDEHORS sera vrai lorsque le dernier enregistrement sera atteint.}
Hlitpremier('CIVILITE','CICLEUNIK'); {Hlitpremier est dans Wdhf5.pas fourni par PC-Soft}
if (hendehors) then begin
{le fichier est vide}
APPELWD('INFO,Le fichier ne contient aucun enrgt !!!');
end else begin
{boucle de lecture de tous les enregistrements}
while (not hendehors) do begin
{ajout des données dans mémo1 pour tous les enregistrements}
Memo1.Lines.Add(IntToStr(CIVILITE.CICLEUNIK) + ' ' + CIVILITE.CODECIV + ' ' + CIVILITE.LIBCIV);
{on passe au suivant }
Hlitsuivant('',''); {Hlitsuivant est dans Wdhf5.pas fourni par PC-Soft}
end;
end;
end;
end. |
Partager