Passer d'une fiche à l'autre en validant les données saisies [Résolu]

Fiorrita 5 Messages postés mercredi 10 août 2005Date d'inscription 21 août 2005 Dernière intervention - 16 août 2005 à 17:13 - Dernière réponse : Fiorrita 5 Messages postés mercredi 10 août 2005Date d'inscription 21 août 2005 Dernière intervention
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_MAURICIO 2233 Messages postés mardi 10 décembre 2002Date d'inscription 15 décembre 2014 Dernière intervention - 16 août 2005 à 18:42
3
Merci
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+

Merci cs_MAURICIO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_MAURICIO
Meilleure réponse
yvemoreau 320 Messages postés mardi 11 juin 2002Date d'inscription 26 septembre 2008 Dernière intervention - 17 août 2005 à 02:57
3
Merci
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

Merci yvemoreau 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de yvemoreau
Fiorrita 5 Messages postés mercredi 10 août 2005Date d'inscription 21 août 2005 Dernière intervention - 17 août 2005 à 09:30
0
Merci
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
Commenter la réponse de Fiorrita
Fiorrita 5 Messages postés mercredi 10 août 2005Date d'inscription 21 août 2005 Dernière intervention - 17 août 2005 à 11:27
0
Merci
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
Commenter la réponse de Fiorrita
Fiorrita 5 Messages postés mercredi 10 août 2005Date d'inscription 21 août 2005 Dernière intervention - 17 août 2005 à 11:30
0
Merci
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
Commenter la réponse de Fiorrita

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.