Gambas France BETA


Pas de compte ? Incription

adapter la taille de la FORM

12
AuteurMessages
gambix#16 Posté le 26/3/2010 à 08:50:00
Faire simple !ça commence a être vraiement originale comme demande :)... je ne voit vraiement pas a quoi tu veut arriver mais bon :)


le chemin a suivre pour ce que tu veus faire est complexe... c'est une fonction du genre de scale que tu veut... un zoom mais je n'en voit vraiement pas l'intérêt dans ton cas...

ou ta fenêtre est très très mal conçue

pour comprendre ce que ça va donner sur l'écran de ton amis ... tu fais une copie décran tu l'ouvre avec gimp et tu joue avec le zoom...

c'est vraiement ce que tu veut ?

tu a déja vu ça quelque part ?
Moins de texte dans une signature c'est agrandir son espace.
spheris#17 Posté le 27/3/2010 à 02:58:00
Il veut peut être installer son appli sur Android :
http://fr.wikipedia.org/wiki/Android
:tongue: ;)
Invité#18 Posté le 27/3/2010 à 11:16:00
merci a tous de l'aide apportée, je pense pouvoir faire qqchose avec toutes vos infos!

il est vrai que je ne suis pas très clair dans mes demandes.
, et parfois trop rapide dans mes réponses : pas vrai Sphéris?

Mais pour moi, c'est la première fois que je programme avec un logiciel comme gambas.
La seule programmation que j'ai faite auparavant était en Qbasic et un tout petit peu de C ! Donc cela me change beaucoup
mais c'est très agréable de programmer avec Gambas

une fois que j'aurais réglé ce soucis pour adapter mon prog a toutes les configuration d'écran, je vais m'essayer à l'impression du résultat

si j'y arrive je poursuivrai donc les suites de mon projet

En tout cas, l'ambiance de ce forum est excellente
Invité#19 Posté le 27/3/2010 à 15:35:00
jai crée un Hpanel et voudrait y insérer un de mes panels déjà existant

a priori, lorsque je déplace mon panel existant sur le Hpanel, mon panel existant se pose dessus mais n'est pas inclus dans le Hpanel : dans la hierarchie il apparait comme a côté et non comme parent

y a t'il une facon de rendre se Hpanel parent ou alors de rendre mon panel existant enfant, sans avoir a le re créer dans ce Hpanel?
manu#20 Posté le 27/3/2010 à 15:38:00
Avec Gambas ca roule !oui

tu fait couper sur ton Panel puis tu selectione hPanel et coller :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
Invité#21 Posté le 27/3/2010 à 21:53:00
Bon !!
j'ai un peu compris comment me servir de arrangement et de expand

En gros, vraiment en gros, quand un container arrange Horizontalement et que ses contrôles enfants sont en propriété expand=true :
Si ce container grandit horyzontalement , ses enfants seront redimensionnés par : new_W (Nouvelle Taille du container ) / nbre d'enfants ==> tous les enfants auront la même W
OK pratique pour complet le vide!
La dessus, il est possible d'interdire à un enfant de d'agrandir (expand=false) dans ce cas il garde ses dimensions originales données. et le reste de l'espace est comblé par les enfants qui se redivisent entre eux l'espaces restants et ,ce, à taille (W) égale entre eux!!!
On peu aussi jouer avec expand= false et autorezize = true

>Donc pareil pour arrangement verticale , etc...
Le tout est de réussir à jongler avec l'ensemble !! dur dur ...Pourtant en ce moment je bosse dans un cirque !!(':bom:') : c'est pas évident : pas le cirque mais l'expand de Gambas!!!
Bon je pense avoir capté, mais pas convaincu de la simplicité de pratique!

N'y aurait il pas un moyen qui simplifierait le chimiliblic comme :

mon écran fait X,Y

ma form(F) fait a%X=Fx et b%Y=Fy
mes contrôles sont positionnés à Gx_Pixel(F) du bord gauche de et Hy_Pixel(F) du bord haut

Mes contrôles internes à ma form ont donc une taille C :
pour Cx=a%Fx
et
pour Cy=b%Fy

Donc si ma form change de taille mes contrôles seront positionnés comme :
a%*Gx_Pixel(F) et b%*Gy_Pixel(F)

Ceci étant dit : rien de bien original!

Par contre serait il possible d'avoir un automatisme d'un .X ou .Y pour TOUS les contrôles, contaimers, etc... qui soit donné proportionnel à deskop lors de form_open
ce qui éviterait de redonner avec du code pour Chaque Contrôle:
ex :

ce qu'il faudrait éviter de faire pour chaque contrôle :
label1.W = label1W * x% (% de réduction ou d'agrandissement de la form)
label1.X= label1W*x%
etc...


Donc en fait, à l'ouverture de la form :

Fmain.X= a%*Desktop.X
Fmain.Y= b%*Desktop.Y

DONC ==> .X = .XCoefx
et .Y = .YCoefy

et .H= .HCoefx
.W= .WCoefy

ce qui éviterait plein de grimlins dans les neurones !!!

Tout pourrait rester proportionnel quelque-soit la taille de notre écran ?

Est ce possible?

Oui mais pour l'instant je n'ai réussi à le faire que ligne par ligne de code et contrôle par contrôle : Vraiment trop long et astreignant

Suis je trop bête et fainéant pour avoir envie de faire simple quand c'est pas compliqué?
Ou y a t'il quelquechose que je ne perçoit pas du tout?
Si c'est le cas : qu'est ce?

JL
gambix#22 Posté le 27/3/2010 à 22:52:00
Faire simple !c'est un peu idiot ton truc non ?

et si tu passe d'un ecran 3/4 a un ecran 16/9 ?

tu devrait essaiyer de coder en vb.... la tu pleurerait ... le système des container de gambas simplifie au maximum le processus d'arrangement des formulaires qui devait être entièrement fait a a main en vb !

pour ce qui est du problème de proportion je vien de l'expliqué clairement a JY au sujet de la propriété scale des formulaire.

Avant de chercher a savoir quel aspect aura to appli sur un autre ecran ... essais la sur un autre ecran.

il n'a pas un toolkit que ce sois sous windows ou mac ou linux qui permette ce que tu veux... une page web le permet en partie grace au zoom.

c'est tout ce que je peus dire...


en gros pour simplifier fait en sorte que to appli soit bien sur ton ecran ... et c'est gambas qui l'adaptera au autres... tu n'a rien a faire d'autre.

par contre tu doit configurer les container si tu veut que l'utilisateur puisse redimentionner
Moins de texte dans une signature c'est agrandir son espace.
Invité#23 Posté le 27/3/2010 à 23:19:00
Gambix
c'est ce que j'ai fait

j'ai changé ma résolution d'écran au mini 832X624
j'ai positionné mes controles et ma form pour que cela entre dans cette configue d'ecran minie
puis j'ai re essayé en re changeant ma definition d'ecran au max de mon ecran 1024x1280

cela fonctionne : OK
mais les controles ne se retrouvent pas réellement là ou je voudrais : c'est tout


tu me parle de VB mais j'ai jamais essayé !

ce que je dis dans mon dernier post :
C'est que en forçant la position et la taille des contrôles en fonction de la taille de l'écran, cela fonctionne mais c'est très long à réaliser
Donc je me demandais s'il pouvait pas exister un automatisme de ce que j'ai fait ligne à ligne

pour ce qui est d'un 3/4 à 16/9 avec mon ligne à ligne cela est ok puisque je force une échelle W et une H

je ne critique pas gambas en mal ! je pose des questions d'un néophite : la critique est bonne pas la satire !

Quand tu parles de scale : c'est quoi un scale???? une echelle ok mais à quoi cela correspond?

oui oui je pose beaucoup de questions! désolé
gambix#24 Posté le 27/3/2010 à 23:55:00
Faire simple !Bon tu veut un tour de magie ?

tu va découvrir les fonction récursive :)

PUBLIC SUB Form_Open()

DIM fScale AS Float = 0.6
ME.X = ME.X * fScale
ME.Y = ME.Y * fScale
ME.Width = ME.Width * fScale
ME.Height = ME.Height * fScale
ScaleAll(ME, fScale)
END

PRIVATE SUB ScaleAll(hCont AS Container, fScale AS Float)

DIM hCtrl AS Object

FOR EACH hCtrl IN hCont.Children

hCtrl.X = hCtrl.X * fScale
hCtrl.Y = hCtrl.Y * fScale
hCtrl.Width = hCtrl.Width * fScale
hCtrl.Height = hCtrl.Height * fScale
TRY hCtrl.Font.size = hCtrl.Font.size * fScale
IF hCtrl IS Container THEN ScaleAll(hCtrl, fScale)

NEXT

END
Moins de texte dans une signature c'est agrandir son espace.
Invité#25 Posté le 28/3/2010 à 00:13:00
merci Gambix, sincèrement

je vois que tu abandonnes jamais même avec un élève comme moi aussi compliqué

par contre : quelques mots d'explication de ton code serait bienveillant : en tout cas pour moi

fonction récursive ? désolé mais je connais pas !

est ce une fonction qui agit sur des contrôles ou propriété qui ne devraient pas pouvoir être touchées dans la normale?
oulalala je crois que je devient vraiment chiant
manu#26 Posté le 28/3/2010 à 00:18:00
Avec Gambas ca roule !Google est (encore) notre amis :
http://fr.wikipedia.org/wiki/Algorithme_r%C3%A9cursif
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
gambix#27 Posté le 28/3/2010 à 00:22:00
Faire simple !une fonction récursive est une fonction qui s'appelle elle même

elle est souvent utilisé pour parcourir un arbre


Parcourirdossier(dossier)

pour chaque element dans dossier

faire queleque chose a l'élément

si element est un dossier alors Parcourirdossier(element)

ensuite

fin

et on commence par appeler avec :

Parcourirdossier(mondossierdebase)
Moins de texte dans une signature c'est agrandir son espace.
Invité#28 Posté le 28/3/2010 à 19:20:00
Gambix

j'ai adapté ton code comme ceci :

1
public_sub form open()DIM fEchelleX AS FLOAT DIM fEchelleY AS Floa'***Ma résolution de travail*******IF Desktop.W = 1280 OR Desktop.W > 1280 THENFMain.W = Desktop.W fEchelleX = 1.25END IFIF Desktop.H = 1024 OR Desktop.H > 1024 THEN FMain.H = Desktop.HfEchelleY = 1.2END IF'*****************************'***Resolution inférieure***************IF Desktop.W < 1280 THEN FMain.W = Desktop.W '* (Desktop.W / 1280)fEchelleX = 1.23 * (Desktop.W / 1280)END IFIF Desktop.H < 1024 THEN FMain.H = Desktop.H '* (Desktop.H / 1024)fEchelleY = 1.14 * (Desktop.H / 1024)END IF'************************************ME.X = ME.X * fEchelleXME.Y = ME.Y * fEchelleYME.Width = ME.Width * fEchelleXME.Height = ME.Height * fEchelleYEchelleAll(ME, fEchelleX, fEchelleY)endPRIVATE SUB EchelleAll(hCont AS Container, fEchelleX AS Float, fEchelleY AS Float)DIM hCtrl AS ObjectFOR EACH hCtrl IN hCont.ChildrenhCtrl.X = hCtrl.X * fEchelleXhCtrl.Y = hCtrl.Y * fEchelleYhCtrl.Width = hCtrl.Width * fEchelleXhCtrl.Height = hCtrl.Height * fEchelleYIF Desktop.W = 1280 OR Desktop.W > 1280 THEN TRY hCtrl.Font.size = hCtrl.Fonsize * fEchelleX * 0.90END IFIF Desktop.W < 1280 AND Desktop.W > 1022 THEN 'TRY hCtrl.Font.size = hCtrl.Font.size * fEchelleX * 1END IFIF Desktop.W < 1023 THEN TRY hCtrl.Font.size = hCtrl.Font.size * fEchelleX * 1.1END IFIF hCtrl IS Container THEN EchelleAll(hCtrl, fEchelleX, fEchelleY)NEXTend


Ca a l'air de bien fonctionner, même sur un écran 16/9
peut ếtre a améliorer la netteté de la fonte mais je pense que cela vient de la définition qui varie
gambix#29 Posté le 28/3/2010 à 21:04:00
Faire simple !rien a faire a ce sujet ... c'est pour cela que personne n'utilse ce procédé
Moins de texte dans une signature c'est agrandir son espace.
12