begin process at 2012 02 11 09:30:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Foxpro

 > 

Formulaires

 > 

Général

 > 

Comportements différents entre form et class


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comportements différents entre form et class

lundi 10 mai 2010 à 15:00:59 | Comportements différents entre form et class

mike_vk

Bonjour,

J'avais l'habitude de créer mes formulaires foxpro en faisant un simple *.scx, que j'appelais via des DO FORM.
Récemment, j'ai commencé à créer des classes pour mes forms, et je les instancie via:

oForm = CEATEOBJECT(..)
oForm.Show()

Ce matin, un comportement étrange m'est apparu: j'ai créé un grid dans la classe de ma form, paramétré les colonnes tel que la première comporte un checkbox et un header avec un Caption vide. Les autres colonnes importent peu.

Le problème est apparu en alimentant mon grid "at run time" via:

thisform.grid1.recordsourcetype = 1
thisform.grid1.recordsource = "moncurseur"

Cette dernière ligne assigne tout à coup au Caption vides des header du grid, le nom du champ correspondant du curseur! Je me suis creusé la tête pour savoir d'où ça venait, en vérfiant mes propriétés etc... Rien à faire. J'ai alors refait un simple scx avec un tout simple grid et un bouton pour le remplir, et là pas de problème. Le Caption reste vide. En sauvegardant cette même form comme classe (File > Save as class...), le problème apparaît !
Je sais, il suffit de rechanger le Caption après modification du recordsource, mais bon... Je voudrais savoir d'où vient cette différence de comportement ! Quelqu'un a-t-il une idée ?

Merci d'avance!
Michael.
dimanche 23 mai 2010 à 17:29:46 | Re : Comportements différents entre form et class

MichelAtoutFox

Membre Club
Réponse acceptée !
Bonjour,

dès que tu modifies le recordsource d'un grid au runtime, tu peux t'attendre .... à de l'inattendu .

est-ce que les colonnes et les headers de cette classe de grid sont issus de classes que tu as toi-même créées, ou bien utilises-tu les classes de vfp par défaut pour ces objets contenus? Dès que tu crées une classe de grid, tu as tout intéret à créer également tes classes de colonnes et de header, sinon tu vas sans arrêt être embêté par ce type de problème.
lundi 24 mai 2010 à 16:03:03 | Re : Comportements différents entre form et class

mike_vk

Réponse acceptée !
Bonjour,

Merci pour ta réponse. Il m'est effectivement arrivé régulièrement de me dire "Mais !?" en changeant le recordsource au runtime. Le plus flagrant est la perte des tailles de colonnes. La solution que j'ai trouvée et qui fonctionne très bien (pour l'instant en tous cas) est d'assigner d'abord le recordsource à SPACE(0), et ensuite de le réattribuer.

Ici j'ai résolu mon problème en assignant aux Caption des header que je voulais vides, la valeur SPACE(1). Disons que cela contourne le problème.

Enfin, pour te répondre, le problème que je décris apparait également avec un grid issu des classes par défaut.
Le comportement form <-> class est vraiment totalement différent, c'est cela que je voudrais comprendre. Peut-être que ce n'est pas possible...
lundi 24 mai 2010 à 16:48:47 | Re : Comportements différents entre form et class

MichelAtoutFox

Membre Club
Non, c'est juste pour les grid que le comportement est différent

Quelques questions quand même:
pour quoi crées-tu tes classes avec SaveAsClass, plutot que de le faire directement en design visuel ou dans un prog en non visuel?
et une fois que tes classes sont créées, pourquoi changes-tu ta façon d'instancier un form (plutot que de créer tes forms en visuels en les dérivant d'une classe, et en les instanciant ensuite par le traditionnel DO FORM)?
lundi 24 mai 2010 à 17:31:32 | Re : Comportements différents entre form et class

mike_vk

Je te rassure : je ne crée pas mes class en faisant Save as class...
C'était juste une manière de m'assurer que la classe et la form fussent identiques !!!
Précision: il s'agissait bien du point de menu File>Save as class... et non de la méthode (que je n'ai jamais utilisée d'ailleurs)

Pourquoi je ne crée pas une form basée sur ma classe ? Parce que je n'ai pas trouvé d'intérêt... je n'ajouterais rien de plus que ce que contient la classe... Je n'aurais jamais qu'une form par classe dans les projets que je fais pour l'instant, donc, je mets tout mon code directement dans la classe. Au fond, je suis passé de l'utilisation de simples scx à l'utilisation de simples vcx, mais n'y ai pas encore trouvé grand intérêt. Peut-être que j'ai loupé qqch?
lundi 24 mai 2010 à 18:57:46 | Re : Comportements différents entre form et class

MichelAtoutFox

Membre Club
Tes explications sont parfaitement claires.

Savoir si tu as loupé quelques chose? à première vue, j'aurais tendance à penser que si chaque classe de form ne définit qu'une seule form, alors c'est peut-être ton arborescence de classes qui est à revoir, mais ce n'est qu'une supposition de ma part, basée uniquement sur ma façon de construire mes bibliothèques de classes et mes objets.
Simplement un point de vue différent.
lundi 24 mai 2010 à 19:01:37 | Re : Comportements différents entre form et class

mike_vk

ok :)

Merci de ton aide en tous cas.


Cette discussion est classée dans : form, caption, simple, class, grid


Répondre à ce message

Sujets en rapport avec ce message

Caption pour les checkbox [ par johnmary ] BonjourDans l'extrait de code ci-dessous, le groupe d'options comprend 3 checks , je souhaiterais ajouter une légende (caption) pourchacun d'eux. Comm Form [ par Domatreal ] SalutJe suis un novice en Visual FoxPro. J'ai la version 9.0. Je programme par plaisir. J'ai creer une forme avec laquelle j'ouvre un fichier et j'aim Ajouter une form [ par Domatreal ] Salut je cherche a avoir plusieurs forms a l'interieur d'un meme objet.Est-ce possible ? Merci Formulaire premier niveau et enfant . [ par spoutnic_37 ] aloha !!!   Je voudrais faire apparaitre des formulaires enfants dans un formulaire parent. Je parametre donc avec showWindow et mdiform.Je met dans m Probleme d'etat et de requete !!! [ par spoutnic_37 ] aloha , Je voudrais savoir si il etait possible de copier les infos d'un grid pour les afficher dans un etat ? En fait pour ceux qui veulent m'aider, Hiérarchie des FOrm [ par fgones ] Bonjour,j'ai lu tous les messages déjà postés concernant et pourtant aucune des réponses apportées ne me permet de résoudre mon problème :- dans mon p vfp9 parcours de tous les controles d'une form [ par samirba ] Bonjour,je voudrais parcourir tous les objets d'un formulaire y compris les conteneurs ainsi que les objets qui s'y trouvent dedans.j'ai essayé avec c URGENT - PB en VFP9 [ par mimyangelworld ] Bonjour a tousvoila j'ai un gros soucy sur vfp9, j'ai cree un formulaire en vfp6 qui regroupe une grid un container et u vfp grid [ par zouheir_ali ] Bonjour à tous,Je voudrais accéder dans une cellule d'une grille dans une colonne bien déterminé même si la grille contient plusieurs colonnes.Soit je vfp9 environnement de données [ par zouheir_ali ] Bonjour,J'utilise dans une form l'environnement de données avec un  filtre sur une table(Filter), je voudrais lors de la fermeture de la form enlever


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales