Comment relier deux modules de codes d'un combobox?

Leader2000 Messages postés 184 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015 - 20 févr. 2008 à 21:24
 Utilisateur anonyme - 21 févr. 2008 à 09:49
Salut á Tous!


Je vous demande de me venir en aide s'il vous plait.
j'ai avec moi ces codes (filtrage, somme, enregistrement, etc).
En runtime, quand je clique sur le premier item ça marche très bien. mais lorsque dans mes codes
j'essaie d'ajouter le deuxième modèle de codes (en bleu), pour faire fonctionner le deuxeme item du combobox. Ca ne marche pas! 
Je n'arrive même pas à précompiler mes codes (ctrl+F9)
juste parce qu'il y a erreur. Prière de jeter un coup d'oeil en rouge.


procedure TOperation.BalanceClick(Sender: TObject);
  var a, b, c : double;
begin
case Balance.ItemIndex of
  0:begin
  ResultNotesIndex.Text:= 'A1';
  end;
  end;
  Balance.Filter:='Nom='+ quotedstr(balanceNom.Text)+ ' and ' +'Balance=' +dateToStr(balanceDate.DateTime);
  Balance.Filtered:= True;
  a:=0;
  While not Balance.Eof do begin
    a:= a+Balance.fieldByName('valeur').AsFloat;
    Balance.Next;
  end;
  ResultValeur.Text:= FloatToStr(a);
  Balance.Filtered:= false;
  Balance.Last;


  if messagedlg('Êtes-vous sur de sauvegarder?', mtconfirmation, [mbYes, mbNo], 0)= mrYes then
  begin
  Balance.Append;
  Balance.FieldByName('an').AsString:= operationAn.Text;
  Balance.Post;
  end;
  end;



//juste un code ici pour donner accès à l'autre module de code ci-apès afin que le deuxième item de mon
Combobox soit accessible comme le premier dudit combobox


 1:begin
  ResultNotesIndex.Text:= 'A2';
  end;
  end;
  Balance.Filter:='Nom='+ quotedstr(balanceNom.Text)+ ' and ' +'Balance=' +dateToStr(balanceDate.DateTime);
  Balance.Filtered:= True;
  a:=0;
  While not Balance.Eof do begin
    a:= a+Balance.fieldByName('valeur').AsFloat;
    Balance.Next;
  end;
  ResultValeur.Text:= FloatToStr(a);
  Balance.Filtered:= false;
  Balance.Last;



  if messagedlg('Êtes-vous sur de sauvegarder?', mtconfirmation, [mbYes, mbNo], 0)= mrYes then
  begin
  Balance.Append;
  Balance.FieldByName('an').AsString:= operationAn.Text;
  Balance.Post;
  end;
  end;




Developper est une dimension pour moi.
Leader2000

4 réponses

Utilisateur anonyme
20 févr. 2008 à 21:37
Salut,

Tu crois pas qu'il y a un blem Je crois que tu as fais un gros caca dans ton code au niveau du case

case Balance.ItemIndex of
  0:begin //<--- Inutilie ici
  ResultNotesIndex.Text:= 'A1';
  end; //<--- Inutilie ici
  end; //<- tu clotures ton case là

Allez on est bon prince , on te file la répo se

case Balance.ItemIndex of

  0:  ResultNotesIndex.Text:= 'A1';

  1 :  ...

Petite remarque : le case est en général plus performant que les If   Then mais pas dans ton cas (2 cas traités : 0 ou 1)
0
Leader2000 Messages postés 184 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
21 févr. 2008 à 01:10
Merci Franky d'avoir repondu.
En vert sont les modifications faites. Sauf qu'à la precompilation, la barre rouge se plante sur la ligne de code en rouge foncé. Je ne sais comment m'en sorrtir?

procedure TOperation.BalanceClick(Sender: TObject);
  var a, b, c : double;
begin
case Balance.ItemIndex of
 0: ResultNotesIndex.Text:= 'A1';
  end;
  Balance.Filter:='Nom='+ quotedstr(balanceNom.Text)+ ' and ' +'Balance=' +dateToStr(balanceDate.DateTime);
  Balance.Filtered:= True;
  a:=0;
  While not Balance.Eof do begin
    a:= a+Balance.fieldByName('valeur').AsFloat;
    Balance.Next;
  ResultValeur.Text:= FloatToStr(a);
  Balance.Filtered:= false;
  Balance.Last;


  if messagedlg('Êtes-vous sur de sauvegarder?', mtconfirmation, [mbYes, mbNo], 0)= mrYes then
  begin
  Balance.Append;
  Balance.FieldByName('an').AsString:= operationAn.Text;
  Balance.Post;

//juste un code ici pour donner accès à l'autre module de code ci-apès afin que le deuxième item de mon
Combobox soit accessible comme le premier dudit combobox


 1 : ResultNotesIndex.Text:= 'A2';
     Balance.Filter:='Nom='+ quotedstr(balanceNom.Text)+ ' and ' +'Balance=' +dateToStr(balanceDate.DateTime);
     Balance.Filtered:= True;
  a:=0;
  While not Balance.Eof do begin
    a:= a+Balance.fieldByName('valeur').AsFloat;
    Balance.Next;
  end;
  ResultValeur.Text:= FloatToStr(a);
  Balance.Filtered:= false;
  Balance.Last;



  if messagedlg('Êtes-vous sur de sauvegarder?', mtconfirmation, [mbYes, mbNo], 0)= mrYes then
  begin
  Balance.Append;
  Balance.FieldByName('an').AsString:= operationAn.Text;
  Balance.Post;
  end;
  end;





Developper est une dimension pour moi.
Leader2000
0
Utilisateur anonyme
21 févr. 2008 à 08:14
Hey Miss : faut lire les réponses hein

case Balance.ItemIndex of
 0: ResultNotesIndex.Text:= 'A1';
  end;<-------------------------------------FIN DU CASE =>

Plantage donc ici  1 : <gras>ResultNotesIndex.Text:= 'A2'; car pour lui le case est terminé</gras>
0
Utilisateur anonyme
21 févr. 2008 à 09:49
Si j'ai bien interprété le truc : voila le code corrigé pour le case

procedure TOperation.BalanceClick(Sender: TObject);
  var a, b, c : double;
begin
case Balance.ItemIndex of
 0: Begin
      ResultNotesIndex.Text:= 'A1';
      Balance.Filter:='Nom='+ quotedstr(balanceNom.Text)+ ' and ' +'Balance=' +dateToStr(balanceDate.DateTime);
      Balance.Filtered:= True;
      a:=0;
      While not Balance.Eof do
        begin
          a:= a+Balance.fieldByName('valeur').AsFloat;
          Balance.Next;
          ResultValeur.Text:= FloatToStr(a);
          Balance.Filtered:= false;
          Balance.Last;
          if messagedlg('Êtes-vous sur de sauvegarder?', mtconfirmation, [mbYes, mbNo], 0)= mrYes then
            begin
              Balance.Append;
              Balance.FieldByName('an').AsString:= operationAn.Text;
              Balance.Post;
            End;
        End;
    End;
 1 : Begin
       ResultNotesIndex.Text:= 'A2';
       Balance.Filter:='Nom='+ quotedstr(balanceNom.Text)+ ' and ' +'Balance=' +dateToStr(balanceDate.DateTime);
       Balance.Filtered:= True;
       a:=0;
       While not Balance.Eof do
         begin
           a:= a+Balance.fieldByName('valeur').AsFloat;
           Balance.Next;
         end;
       ResultValeur.Text:= FloatToStr(a);
       Balance.Filtered:= false;
       Balance.Last;
       if messagedlg('Êtes-vous sur de sauvegarder?', mtconfirmation, [mbYes, mbNo], 0)= mrYes then
         begin
           Balance.Append;
           Balance.FieldByName('an').AsString:= operationAn.Text;
           Balance.Post;
         end;
     end;
   End;
End;
0
Rejoignez-nous