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

Résolu
Signaler
Messages postés
5
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
21 août 2005
-
Messages postés
5
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
21 août 2005
-
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

Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
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+
Messages postés
308
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
26 septembre 2008

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
Messages postés
5
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
21 août 2005

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
Messages postés
5
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
21 août 2005

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
Messages postés
5
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
21 août 2005

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