Voila, je sais qu'en WD55 c'est un des trucs qui me manquait le plus,
mais, la je réalise un projet sous WD75, et je ne le trouve pas non plus.
Je parle des Champs "SPLITTER", dans Delphi ça permet de couper les
fenêtres en plusieurs parties redimensionnables.
Je ne sais pas comment faire dans WD75 ? J'imagine que PCSoft a
implémenter ça sous un autre nom, ou via un composant, que sais-je ?
Hélas, impossible de trouver le truc en question ! Qqun pourrait-il me
dépanner ?
Par contre, il ne faut pas : Mettre des ancrages, donc la fenêtre n'est pas redimensionnable, avoir des champs de saisie, des intérrupteurs, des sélecteurs, Bref tout champs qui, si on diminue la taille, ne sont plus exploitables.
J'avais pu résoudre certaines choses (ma fenetre est redimensionnable mes champs non affectés par les splits sont ancrés), en gros :
// déclaration globale de la fen gf_oSplitH est un objet cSplit( "H",..) gf_oSplitV est un objet cSplit( "V", ...) pl_BorneSplit()
// a chaque modification de taille de la fenetre pl_BorneSplit()
PROCEDURE pl_BorneSplit() // Récupération des bornes minimales pour le split gf_oSplitH:m_nBorneGH = Table_TEST..Y + 55 gf_oSplitH:m_nBorneDB = Table_DOSSIER..Y+Table_DOSSIER..Hauteur-SC_EtatDossier..Hauteur-55
Et j'ai modifié le code suivant dans la classe cSplit au niveau de : PROCEDURE cSplit::DeplaceSeparateur()
... SINON // Cas d'un split horizontal SI _EVE.wMessageQ2 ET ToucheEnfoncée(teBoutonG) ALORS nPosMaxþnIntHaut()-:m_nBorneDB nPosMax=:m_nBorneDB // si nPosMax<0 alors nPosMaxþninthaut() //Survol du "split" et déplacement en cours nNewPos=PoidsFort(CurseurPos(cpClient)) // nNewPos=PoidsFaible(CurseurPos(cpClient)) SI nNewPos>=nPosMin ET nNewPos<=nPosMax ALORS //Maj de la position du "split" {:m_cNomSplit}..Y=nNewPos
A voir si ça peut s'adapter à ta fenetre...
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Il se trouve que Pascal ROY a formulé :
Par contre, il ne faut pas : Mettre des ancrages,
donc la fenêtre n'est pas redimensionnable, avoir des
champs de saisie, des intérrupteurs, des sélecteurs,
Bref tout champs qui, si on diminue la taille, ne sont plus
exploitables.
J'avais pu résoudre certaines choses (ma fenetre est redimensionnable
mes champs non affectés par les splits sont ancrés), en gros :
// déclaration globale de la fen
gf_oSplitH est un objet cSplit( "H",..)
gf_oSplitV est un objet cSplit( "V", ...)
pl_BorneSplit()
// a chaque modification de taille de la fenetre
pl_BorneSplit()
PROCEDURE pl_BorneSplit()
// Récupération des bornes minimales pour le split
gf_oSplitH:m_nBorneGH = Table_TEST..Y + 55
gf_oSplitH:m_nBorneDB =
Table_DOSSIER..Y+Table_DOSSIER..Hauteur-SC_EtatDossier..Hauteur-55
Et j'ai modifié le code suivant dans la classe cSplit au niveau de :
PROCEDURE cSplit::DeplaceSeparateur()
...
SINON // Cas d'un split horizontal
SI _EVE.wMessageQ2 ET ToucheEnfoncée(teBoutonG) ALORS
nPosMaxþnIntHaut()-:m_nBorneDB
nPosMax=:m_nBorneDB
// si nPosMax<0 alors nPosMaxþninthaut()
//Survol du "split" et déplacement en cours
nNewPos=PoidsFort(CurseurPos(cpClient))
// nNewPos=PoidsFaible(CurseurPos(cpClient))
SI nNewPos>=nPosMin ET nNewPos<=nPosMax ALORS
//Maj de la position du "split"
{:m_cNomSplit}..Y=nNewPos
A voir si ça peut s'adapter à ta fenetre...
A+
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Par contre, il ne faut pas : Mettre des ancrages, donc la fenêtre n'est pas redimensionnable, avoir des champs de saisie, des intérrupteurs, des sélecteurs, Bref tout champs qui, si on diminue la taille, ne sont plus exploitables.
J'avais pu résoudre certaines choses (ma fenetre est redimensionnable mes champs non affectés par les splits sont ancrés), en gros :
// déclaration globale de la fen gf_oSplitH est un objet cSplit( "H",..) gf_oSplitV est un objet cSplit( "V", ...) pl_BorneSplit()
// a chaque modification de taille de la fenetre pl_BorneSplit()
PROCEDURE pl_BorneSplit() // Récupération des bornes minimales pour le split gf_oSplitH:m_nBorneGH = Table_TEST..Y + 55 gf_oSplitH:m_nBorneDB = Table_DOSSIER..Y+Table_DOSSIER..Hauteur-SC_EtatDossier..Hauteur-55
Et j'ai modifié le code suivant dans la classe cSplit au niveau de : PROCEDURE cSplit::DeplaceSeparateur()
... SINON // Cas d'un split horizontal SI _EVE.wMessageQ2 ET ToucheEnfoncée(teBoutonG) ALORS nPosMaxþnIntHaut()-:m_nBorneDB nPosMax=:m_nBorneDB // si nPosMax<0 alors nPosMaxþninthaut() //Survol du "split" et déplacement en cours nNewPos=PoidsFort(CurseurPos(cpClient)) // nNewPos=PoidsFaible(CurseurPos(cpClient)) SI nNewPos>=nPosMin ET nNewPos<=nPosMax ALORS //Maj de la position du "split" {:m_cNomSplit}..Y=nNewPos
A voir si ça peut s'adapter à ta fenetre...
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Pascal ROY
Romain PETIT a écrit :
Il se trouve que Pascal ROY a formulé :
Par contre, il ne faut pas : Mettre des ancrages, donc la fenêtre n'est pas redimensionnable, avoir des champs de saisie, des intérrupteurs, des sélecteurs, Bref tout champs qui, si on diminue la taille, ne sont plus exploitables.
J'avais pu résoudre certaines choses (ma fenetre est redimensionnable mes champs non affectés par les splits sont ancrés), en gros :
// déclaration globale de la fen gf_oSplitH est un objet cSplit( "H",..) gf_oSplitV est un objet cSplit( "V", ...) pl_BorneSplit()
// a chaque modification de taille de la fenetre pl_BorneSplit()
PROCEDURE pl_BorneSplit() // Récupération des bornes minimales pour le split gf_oSplitH:m_nBorneGH = Table_TEST..Y + 55 gf_oSplitH:m_nBorneDB = Table_DOSSIER..Y+Table_DOSSIER..Hauteur-SC_EtatDossier..Hauteur-55
Et j'ai modifié le code suivant dans la classe cSplit au niveau de : PROCEDURE cSplit::DeplaceSeparateur()
... SINON // Cas d'un split horizontal SI _EVE.wMessageQ2 ET ToucheEnfoncée(teBoutonG) ALORS nPosMaxþnIntHaut()-:m_nBorneDB nPosMax=:m_nBorneDB // si nPosMax<0 alors nPosMaxþninthaut() //Survol du "split" et déplacement en cours nNewPos=PoidsFort(CurseurPos(cpClient)) // nNewPos=PoidsFaible(CurseurPos(cpClient)) SI nNewPos>=nPosMin ET nNewPos<=nPosMax ALORS //Maj de la position du "split" {:m_cNomSplit}..Y=nNewPos
A voir si ça peut s'adapter à ta fenetre...
A+
Merci Romain,
J'essaierais ça des que j'aurais un moment, pour le moment je split uniquement des tables et de treeview, et ça me suffit.
Je regarderais ce que tes modifs changent dans le comportement de champs comme les boutons ou les champs de saisie...
-- Pascal ROY (Service Informatique - SODALEC)
Romain PETIT a écrit :
Il se trouve que Pascal ROY a formulé :
Par contre, il ne faut pas : Mettre des ancrages,
donc la fenêtre n'est pas redimensionnable, avoir des
champs de saisie, des intérrupteurs, des sélecteurs,
Bref tout champs qui, si on diminue la taille, ne sont plus
exploitables.
J'avais pu résoudre certaines choses (ma fenetre est redimensionnable
mes champs non affectés par les splits sont ancrés), en gros :
// déclaration globale de la fen
gf_oSplitH est un objet cSplit( "H",..)
gf_oSplitV est un objet cSplit( "V", ...)
pl_BorneSplit()
// a chaque modification de taille de la fenetre
pl_BorneSplit()
PROCEDURE pl_BorneSplit()
// Récupération des bornes minimales pour le split
gf_oSplitH:m_nBorneGH = Table_TEST..Y + 55
gf_oSplitH:m_nBorneDB =
Table_DOSSIER..Y+Table_DOSSIER..Hauteur-SC_EtatDossier..Hauteur-55
Et j'ai modifié le code suivant dans la classe cSplit au niveau de :
PROCEDURE cSplit::DeplaceSeparateur()
...
SINON // Cas d'un split horizontal
SI _EVE.wMessageQ2 ET ToucheEnfoncée(teBoutonG) ALORS
nPosMaxþnIntHaut()-:m_nBorneDB
nPosMax=:m_nBorneDB
// si nPosMax<0 alors nPosMaxþninthaut()
//Survol du "split" et déplacement en cours
nNewPos=PoidsFort(CurseurPos(cpClient))
// nNewPos=PoidsFaible(CurseurPos(cpClient))
SI nNewPos>=nPosMin ET nNewPos<=nPosMax ALORS
//Maj de la position du "split"
{:m_cNomSplit}..Y=nNewPos
A voir si ça peut s'adapter à ta fenetre...
A+
Merci Romain,
J'essaierais ça des que j'aurais un moment,
pour le moment je split uniquement des tables
et de treeview, et ça me suffit.
Je regarderais ce que tes modifs changent dans
le comportement de champs comme les boutons
ou les champs de saisie...
Par contre, il ne faut pas : Mettre des ancrages, donc la fenêtre n'est pas redimensionnable, avoir des champs de saisie, des intérrupteurs, des sélecteurs, Bref tout champs qui, si on diminue la taille, ne sont plus exploitables.
J'avais pu résoudre certaines choses (ma fenetre est redimensionnable mes champs non affectés par les splits sont ancrés), en gros :
// déclaration globale de la fen gf_oSplitH est un objet cSplit( "H",..) gf_oSplitV est un objet cSplit( "V", ...) pl_BorneSplit()
// a chaque modification de taille de la fenetre pl_BorneSplit()
PROCEDURE pl_BorneSplit() // Récupération des bornes minimales pour le split gf_oSplitH:m_nBorneGH = Table_TEST..Y + 55 gf_oSplitH:m_nBorneDB = Table_DOSSIER..Y+Table_DOSSIER..Hauteur-SC_EtatDossier..Hauteur-55
Et j'ai modifié le code suivant dans la classe cSplit au niveau de : PROCEDURE cSplit::DeplaceSeparateur()
... SINON // Cas d'un split horizontal SI _EVE.wMessageQ2 ET ToucheEnfoncée(teBoutonG) ALORS nPosMaxþnIntHaut()-:m_nBorneDB nPosMax=:m_nBorneDB // si nPosMax<0 alors nPosMaxþninthaut() //Survol du "split" et déplacement en cours nNewPos=PoidsFort(CurseurPos(cpClient)) // nNewPos=PoidsFaible(CurseurPos(cpClient)) SI nNewPos>=nPosMin ET nNewPos<=nPosMax ALORS //Maj de la position du "split" {:m_cNomSplit}..Y=nNewPos
A voir si ça peut s'adapter à ta fenetre...
A+
Merci Romain,
J'essaierais ça des que j'aurais un moment, pour le moment je split uniquement des tables et de treeview, et ça me suffit.
Je regarderais ce que tes modifs changent dans le comportement de champs comme les boutons ou les champs de saisie...