Passer d'une fiche à l'autre en validant les données saisies

Résolu
Fiorrita Messages postés 5 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 21 août 2005 - 16 août 2005 à 17:13
Fiorrita Messages postés 5 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 21 août 2005 - 17 août 2005 à 11:30
Je travaille sur une petite interface qui consiste en un ensemble de masques de saisie pour ma base de données. Et j'ai deux problèmes que je n'arrive pas à régler...
1) Et bien il s'agit d'une application comprenant plrs forms dont une est la principale. Chaque form comporte un bouton "Suivant", un bouton "précédent" et un bouton "valider". Le bouton "valider", insère les données saisies dans la BDD et passe à la form suivante. Le bouton "Précédent" permet de revenir à la page précédente et enfin le bonuton "suivant" permet d'aller à la page suivante sans insérer les données saisises.
Le bouton suivant a pour code:


fprincipale:=tfprincipale.create(self);
fprincipale.show;


Le bouton "précédent" a pour code :
fpage2.hide;
fprincipale.windowstate:=wsmaximized;


Le problème est le suivant : Lorsque je saisie les données si je fais suivant sans valider et qu'ensuite je fais précédent, je retrouve mes données dans les champs correspondants.
Par contre si je saisie les données sans valider et que je vais vers une des forms précédentes, puis je reviens à la fiche en question, les champs sont vides !!!!


Je sais que cela est du au fait que quand je reviens à nouveau vers ma fiche cv'est un tform.create qui réinitialise ma fiche!!!
Que me proposez vous comme lignes de code??


2) Je tiens à préciser que mon app n'est pas une mdi (ie: il n'y a pas de fiche parent et de fiches filles, mais simplement une fiche principale et le reste sont des "fiches disponibles".
Le pb : lorsque je minimise l'application et que l'agrandis à nouveau, j'ai toujours la première fiche qui apparait au lieu de la dernière fiche active. Il faudrait alors minimiser l'app à nouveau pour avoir
la dernière fiche! que faut il faire pour éliminer ce désagrément??


Merci d'avoir lu ce message qui, je le reconnait, est pour le moins l'un des plus longs dans ce forum ;-)

fiorrita

5 réponses

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
16 août 2005 à 18:42
Ce que tu peux faire c' est créer toutes tes forms dès le départ avec le create.
Puis tu n' as plus qu' à jouer avec le Show/Hide des forms sans faire le create vu que tu as déjà créer les forms.
N' oublie pas de mettre la propriété Visible à false dans toutes tes forms sauf la principale !!!
A+
3
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
17 août 2005 à 02:57
Dans les options du projet , place les fiches dans cree automatiquement, la premiere étant la fiche principale ,les autres ne seront pas visible.

Lorsque tu appelles une fiche tu peux l'appeler avec ShowModal , ce qui bloque l'accès à la fiche principale tant que la fiche n'est pas fermer.Mais ça limite souvent ce que l'on souhaite faire.

dans les procedures :suivantClick et precedentClick tu répètes les opérations en appelant les fiches appropriées.

////////////////////////////////////////////////
var
Form1: TForm1;
implementation
uses unit2,unit3;
{$R *.dfm}
procedure TForm1.Menu_Ou_AutreClick(Sender: TObject);
begin
form1.Enabled:=false;
unit2.Form2.Show;
end;
end.
/////////////////////////////////////////////////////////
var
Form2: TForm2;
implementation
uses unit1,unit3;
{$R *.dfm}
procedure TForm2.PrecedentClick(Sender: TObject);
begin
hide;
form1.Enabled:=true;
form1.BringToFront;
end;


procedure TForm2.SuivantClick(Sender: TObject);
begin
hide;
unit3.Form3.Show;
end;
end.
///////////////////////////////////////3
var
Form3: TForm3;
implementation
uses unit2, Unit1;
procedure TForm3.SuivantClick(Sender: TObject);
begin
hide;
form1.Enabled:=true;
form1.BringToFront;
end;
procedure TForm3.PrecedentClick(Sender: TObject);
begin
hide;
unit2.Form2.Show;
end;
end.

yve
3
Fiorrita Messages postés 5 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 21 août 2005
17 août 2005 à 09:30
Bonjour à tous
Je tiens tout à bord à vous remerciier pour avoir eu la gentillesse de me répondre. Je vais faire comme vous le dites et je vous rendrai la réponse :-)

Thanks a lot!!!

fiorrita
0
Fiorrita Messages postés 5 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 21 août 2005
17 août 2005 à 11:27
Merci à toi Mauriaco!! Et bien, je viens de tester ta solution et c'est effectivement la bonne. En effet, elle permet de régler le pb1. Merci à toi et bon courage.

Fiorrita
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fiorrita Messages postés 5 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 21 août 2005
17 août 2005 à 11:30
Merci à toi aussi 10599 yvemoreau. Ton code a permis de régler le pb n°2. Je n'ai pas utilisé le shomodal car me fait des blocages. Par contre j'ai utilisé les :
Form1.enabled: =false;
form2.show;

et

form2.hide;
form1.enabled:=true;
form1.bringtofront;

Merci beaucoup! Ca marche trés bien maintenant :-)

fiorrita
0
Rejoignez-nous