piloud | je poste le code parceque la je bloke meme avant je voit pas la merde ... et pour un pas pas , le blem c que ca marche pendant les premiere boucle que j'ai mis entre 2 linge sur le code ci dessous ! help
Code :
- unit fiche_prime;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- Tprime = class(TForm)
- Memo1: TMemo;
- CheckBox1: TCheckBox;
- CheckBox2: TCheckBox;
- CheckBox3: TCheckBox;
- Button1: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Checking(a:string);
- procedure calcul(lememo:Tmemo;a:string;chaine:byte);
- private
- { Déclarations privées }
- public
- { Déclarations publiques }
- end;
- var
- prime: Tprime;
- ch1,ch2,ch3:byte;
- implementation
- uses principale, OP;
- {$R *.dfm}
- procedure Tprime.calcul(lememo:Tmemo;a:string;chaine:byte);
- begin
- if form1.reperer(lememo,a) then
- case strtoint(copy(lememo.Name,length(lememo.Name)-1,1)) of
- 1:
- begin
- case chaine of
- 2:
- begin
- ch1:=ch1+1;
- ch2:=ch2-1;
- end;
- 3:
- begin
- ch1:=ch1+1;
- ch3:=ch3-1;
- end;
- 4:
- ch1:=ch1+1;
- end;
- end;
- 2:
- begin
- case chaine of
- 1:
- begin
- ch2:=ch2+1;
- ch1:=ch1-1;
- end;
- 3:
- begin
- ch2:=ch2+1;
- ch3:=ch3-1;
- end;
- 4:
- ch2:=ch2+1;
- end;
- end;
- 3:
- begin
- case chaine of
- 2:
- begin
- ch3:=ch3+1;
- ch2:=ch2-1;
- end;
- 1:
- begin
- ch3:=ch3+1;
- ch1:=ch1-1;
- end;
- 4:
- ch3:=ch3+1;
- end;
- end;
- end;
- end;
- procedure Tprime.Checking(a:string);
- var
- chaine,mini:byte;
- i:integer;
- oui:boolean;
- begin
- //on initialise variables
- oui:=false;
- ch1:=0;
- ch2:=0;
- ch3:=0;
- chaine:=0;
- mini:=1;
- // on verifie s'il n'a jamais été absent
- //et si c le cas on sort de la procedure pour passer a celui d'après
- i:=0;
- while i<=(form1.abs.Lines.Count-1) do
- begin
- if a=copy(form1.abs.Lines.Strings[i],0,3) then exit;
- i:=i+1;
- end;
- if form1.reperer(form2.chaine1,a) then
- begin
- ch1:=6;
- chaine:=1;
- end;
- if form1.reperer(form2.chaine2,a) then
- begin
- ch2:=6;
- chaine:=2;
- end;
- if form1.reperer(form2.chaine3,a) then
- begin
- ch3:=6;
- chaine:=3;
- end;
- if chaine=0 then chaine:=4;
- //les proco
- calcul(form1.Lundi1,a,chaine);
- calcul(form1.Lundi2,a,chaine);
- calcul(form1.Lundi3,a,chaine);
- calcul(form1.Mardi1,a,chaine);
- calcul(form1.Mardi2,a,chaine);
- calcul(form1.Mardi3,a,chaine);
- calcul(form1.Mercredi1,a,chaine);
- calcul(form1.Mercredi2,a,chaine);
- calcul(form1.Mercredi3,a,chaine);
- calcul(form1.Jeudi1,a,chaine);
- calcul(form1.Jeudi2,a,chaine);
- calcul(form1.Jeudi3,a,chaine);
- calcul(form1.Vendredi1,a,chaine);
- calcul(form1.Vendredi2,a,chaine);
- calcul(form1.Vendredi3,a,chaine);
- calcul(form1.Samedi1,a,chaine);
- calcul(form1.Samedi2,a,chaine);
- calcul(form1.Samedi3,a,chaine);
- //Si le matricule n'est nul part , ca sert a rien de continuer donc on passe a celui d'après
- //c a d on sort de la procedure !
- if (ch1=0) and (ch2=0) and (ch3=0) then exit;
- if (checkbox1.Checked=true) and (ch1>=mini) then oui:=true;
- if (checkbox2.Checked=true) and (ch2>=mini) then oui:=true;
- if (checkbox3.Checked=true) and (ch3>=mini) then oui:=true;
- if oui=true then memo1.Lines.Add(a);
- // d
- end;
- procedure Tprime.Button1Click(Sender: TObject);
- var
- i:integer;
- a:string;
- begin
- memo1.Text:='';
- if (CheckBox1.Checked=false) and (checkbox2.Checked=false) and (checkbox3.Checked=false) then
- begin
- memo1.Lines.add('Personne n''est primé');
- exit;
- end;
- -------------------------------------------------------------------
- i:=0;
- while i<=999 do
- begin
- a:=inttostr(i);
- case length(a) of
- 1:
- a:='00'+a;
- 2:
- a:='0'+a;
- end;
- checking(a);
- i:=i+1;
- end;
- ----------------------------------------------------------------------
- end;
- end.
|
Message édité par piloud le 29-07-2003 à 19:51:21
|