Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| CENTER ? FOCUS ? | |
| | Auteur | Message |
---|
yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: CENTER ? FOCUS ? Ven 7 Mai 2010 - 23:20 | |
| Bonjour à tous,
Est il possible de centrer un texte dans un edit ? Si oui comment ?
Est il possible de déterminer l'objet qui va prendre le focus au lancement de l'appli ?
Comment peut on rendre constamment le focus à un objet en particulier "un EDIT" quelle que soit l'action réalisée (souris qui se ballade, qui clique,...) ?
Désolé de poser mes questions en rafale,
Merci d'avance à tous
Yop | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 8 Mai 2010 - 1:17 | |
| 1) Pour centrer un texte dans un edit :(de façon très approximative) compter le nombre de lettres de la ligne soustraire ce nombre du nombre (approximatif) de lettres d'une ligne complète (le mieux, c'est de mettre des polices à tailles constantes, comme courier New) et rajouter la moitié de ce nombre sous forme d'espaces devant la ligne. (c'est vrai que ce n'est ni très pratique, ni très esthétique) 2) L'objet qui va prendre le focus au moment de l'application :Si on ne le précise pas, je ne sais plus comment on peut le prévoir, le plus simple, c'est de le déterminer à l'avance avec un : set_focus N 2) Comment rendre le focus permanent sur un edit quelque soient les événements :Le plus simple, c'est de remettre des : set_focus N dans toutes les routines, ça ne résoud peut-être pas tous les cas de figure, mais presque. Bonne programmation ! | |
| | | Invité Invité
| Sujet: Re: CENTER ? FOCUS ? Sam 8 Mai 2010 - 1:24 | |
| Mais pour centrer les texte dans un edit il faudrait de nouvelles commandes comme :
text_right N Affiche les texte à droite text_center N Affiche les texte au centre text_left N Affiche les texte à gauche
Mais pour tout de suite écoute jjn4! |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: CENTER ? FOCUS ? Sam 8 Mai 2010 - 1:30 | |
| Bonsoir, Les réponses à tes questions: - Citation :
- Est il possible de centrer un texte dans un edit ?
Si oui comment ? Non, on ne peut pas. Un edit est en réalité une fenêtre sur un champ texte dont la longueur varie et est ndépendente de la largeur du edit. Tu peux saisir 200 caractères dans un édit qui ne fait que 50 pixels de large, par exemple. Les données défilent automatiquement lors de la saisie, et on peut se déplacer dedans avec les flèches et les touches début et fin. La notion de "centrage" n'a donc pas de sens pour un edit. - Citation :
- Est il possible de déterminer l'objet qui va prendre le focus au lancement de l'appli ?
Oui, il suffit de placer, n'importe où mais AVANT l'nstruction "end", l'instruction suivante: - Citation :
set_focus n
n étant l'objet qui doit recevoir le focus au début. - Citation :
Comment peut on rendre constamment le focus à un objet en particulier "un EDIT" quelle que soit l'action réalisée (souris qui se ballade, qui clique,...) ?
Ceci est plus compliqué mais parfaitement faisable. Il y a deux solutions pour cela. La première solution, c'est de désactiver rous les objets sur lesquels on ne doit pas pouvoir cliquer, par une instruction du type - Citation :
inactive n
Je sais, c'est brutal, mais cela marche. Certains objets changent d'aspect visuel dans ce contexte/ La deuxième solution, c'est de placer une instruction on_click ur chaque objet sur lequel on ne doit pas pouvoir cliquer, et dans le sousprogramme associé, on rétablit le focus sur l'objet cible. Faisons un exemple: l'edit numéro 1 doit garder le focus, et le mémo 2 et l'edit 3 ne doivent pas pouvoir être utilisés. On peut faire quelque chose comme ceci: - Citation :
dim tout_est_bloque% label click_2, click_3
edit 1 : top 1,10 : left 1,10 : set_focus 1 memo 2 : top 2,40 : left 2,10 : on_click 2,click_2 edit 3 : top 3,40 : left 3,100 : on_click 3,click_3
tout_est_bloque% = 1 end
click_2: if tout_est_bloque%=1 : set_focus 1 : return : end_if return
click_3: if tout_est_bloque%=1 : set_focus 1 : return : end_if return
Du coup, tous les clicks reviennent au edit 1. | |
| | | yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: CENTER ? FOCUS ? Sam 8 Mai 2010 - 10:03 | |
| Merci à vous tous pour votre intérêt à mon cas et pour ces réponses ultra rapides. Dans un soucis de présentation, il peut être néanmoins plus pertinent d'avoir des centrages dans un édit même si, il est vrai, la taille du texte peut dépasser la taille de la fenêtre. La question reste ouverte...
Et merci encore !!!
Cordialement
Yop | |
| | | Invité Invité
| Sujet: Re: CENTER ? FOCUS ? Sam 8 Mai 2010 - 20:46 | |
| Voila qui devrait faire plaisir à quelques uns On a déjà parlé de ce sujet, et j'avais réussi à connaitre la largeur d'un texte dans un mémo, mais le traitement était très (et trop long) J'ai donc revu ma copie, et simplifié énormément la tâche. En fait j'écris le texte, en mettant la même fonte sur l'edit que sur un picture, avec une couleur noir, à la fin du texte je rajoute le caractère "|" pour ne pas avoir à lire sur toute la hauteur du texte (Il y aura un petit décalage, mais il n'est pas visible ). Auparavant j'ai fait la même chose avec des espaces pour connaitre la largeur d'un seul. Suivez les lignes du programme, c'est pas trop complexe. - Code:
-
' centrage d'un texte ici sur un edit !!!
dim a$,l%,defaut%,a% ,b% ,suite% , b$ dim size%,fond% ,espace% dim espace_gauche%,mot$
label essai , calcul
width 0,1000 :height 0,500
rem "faire des essais avec différentes hauteur de fonte, en modifiant size (maxi=30) size%=30
form 3 :width 3,1000:height 3,40 picture 1 :width 1,1980:height 1,30:parent 1,3:color 1,255,250,177 : font_color 1,0,0,0:font_size 1,size% edit 2 :top 2,110:height 2,100:width 2,500 :font_size 2, size%:on_key_up 2,essai
2d_target_is 1:print_target_is 1: 2d_fill_color 255,255,255
rem "calcul la dimension d'un espace par rapport à la hauteur" a$=string$(30," ")+"|" :gosub calcul : rem "calcule nb pixels d'un espace" on néglige le "|" espace%=suite%/30
set_focus 2 end ' __________________________________ essai: if key_up_code=13 mot$=trim$(text$(2)): a$=mot$+"|" gosub calcul espace_gauche%=(width(2)-suite%)/2 rem "donne le nombre d'espaces à mettre devant le texte " rem " (si cela avait été un picture, espace_gauche% aurait été l'écart du côté gauche pour rem " afficher le texte)" b%= espace_gauche% / espace% text 2,string$(b%," ")+mot$ message "maintenant à droite"
espace_gauche%=width(2)-suite% b%=espace_gauche% / espace% -1 :' -1, le calcul n'est pas tout à fait précis, et il y a le signe "|" qui intervient ! text 2, string$(b%," ")+mot$ end_if
return
calcul: rem "on écrit sur le picture en dessous et on regarde les pixels en reculant pour voir" rem "si on a une différence avec le fond" color 1,255,250,177 : rem "remet la coloration du fond avant de réinscrire du texte" print_locate 0,1 : print a$; : display :rem "maintenant on a écrit du texte, et on peut rem "comparer les pixels" defaut%=len(a$)*size% for a%=defaut% *1.2 to 1 step -1 fond%= color_pixel_blue(1,a%,1+size%/2) if fond%=0 then exit_for next a% suite%=a% return
Maintenant je pourrai rajouter cette possibilité dans mon truc à cellule |
| | | Invité Invité
| Sujet: Re: CENTER ? FOCUS ? Sam 8 Mai 2010 - 22:52 | |
| Je suis un peu surpris de voir que personne ne réponde; pourtant la question a tété posée plus d'une fois. @+ |
| | | Cobra
Nombre de messages : 14 Localisation : France Date d'inscription : 05/11/2009
| Sujet: Re: CENTER ? FOCUS ? Dim 9 Mai 2010 - 15:38 | |
| Bonjour, Concernant ce problème de centrage de texte, il me semble me souvenir que Jack avait prévu de nouvelles fonctions. - Jack a écrit:
- J'ai mis cela dans mes priorités, qui devrait répondre à ta demande:
TEXT_HEIGHT(N,A$) : retourne la hauteur en pixels qu'aurait A$ s'il était imprimé sur l'objet de numéro N, compte tenu de la police du style et de la taille, utilisée pour N TEXT_WIDTH(N,A$) : retourne la largeur en pixels qu'aurait A$ s'il était imprimé sur l'objet de numéro N, compte tenu de la police du style et de la taille, utilisée pour N A plus | |
| | | Invité Invité
| Sujet: Re: CENTER ? FOCUS ? Lun 10 Mai 2010 - 16:04 | |
| Pour ce qui est des commandes en préparation, les priorités changent régulièrement, et comme certaine demande sont faite continuellement, la liste change Il n'est pas certain de voir ces commandes pour tout de suite. J'ai repris mon programme pour centrer ici sur un edit, en fait ce serait mieux sur un memo, pour un alpha en précisant bien entendu les emplacement X extrèmes droite et gauche, ou un picture. - Code:
-
width 0,1000 :height 0,500:' centrage d'un text ici sur un edit !!! dim a$,defaut%,a% ,b% ,suite%,size_espace% , size% ,size_trait% ,passage dim espace_gauche%,mot$
label essai , calcul , centrage , droite ,gauche , size , fonte
form 3 :width 3,1000:height 3,40 :rem "form en dessous sur laquelle on calcul les largeurs border_hide 3 picture 1 :parent 1,3:width 1,1980:height 1,30:color 1,255,250,177 : font_color 1,0,0,0 2d_target_is 1:print_target_is 1: 2d_fill_color 255,255,255
edit 2 :top 2,110:height 2,100:width 2,500 container_option 4 :left 4,10:width 4,100:height 4,100:caption 4,"position du texte" option 5 :parent 5,4:left 5,10:top 5,20:width 5,60:caption 5,"gauche" :on_click 5,gauche option 6 :parent 6,4:left 6,10:top 6,45:width 6,60:caption 6,"centré" :on_click 6,centrage option 7 :parent 7,4:left 7,10:top 7,70:width 7,60:caption 7,"droite" :on_click 7,droite spin 9 :left 9,120:top 9,20:width 9,50:min 9,4:max 9,30:on_change 9,size alpha 10 :left 10,120:caption 10,"size" alpha 11 :left 11,180:caption 11,"fonte" list 12 :left 12,180:top 12,20:width 12,100:height 12,30:on_click 12,fonte
font_names_load 12 position 9,15:gosub size
end ' __________________________________ fonte: font_name 1,item_index$(12) font_name 2,item_index$(12) a$=string$(30,"|"):gosub calcul size_trait% = suite% / 30 a$=string$(30," ")+"|" :gosub calcul : rem "calcule nb pixels d'un espace" size_espace%=(suite%-size_trait%)/30 : set_focus 2 gosub essai return
size: size%=position(9) : font_size 2,size% :font_size 1,size% rem "calcul la dimension d'un espace par rapport à la hauteur" a$=string$(30,"|"):gosub calcul size_trait% = suite% / 30 a$=string$(30," ")+"|" :gosub calcul : rem "calcule nb pixels d'un espace" size_espace%=(suite%-size_trait%)/30 : set_focus 2 gosub essai return
essai: if checked(5)=1 then gosub gauche if checked(6)=1 then gosub centrage if checked(7)=1 then gosub droite return
calcul: rem "on écrit sur le picture en dessous et on regarde les pixels en reculant pour voir" rem "si on a une différence avec le fond" color 1,255,250,177 : rem "remet la coloration du fond avant de réinscrire du texte" print_locate 0,1 : print a$; : display :rem "maintenant on a écrit du texte, et on peut comparer les pixels" defaut%=len(a$)*size% for a%=defaut% *1.1 to 1 step -1 if color_pixel_blue(1,a%,1+size%/2)= 0 then exit_for :' RGB b=0 si noir next a% : suite% = a% - size_trait% + 8:' +8 car selon larg dernier caractère, celui-ci est affiché ou non set_focus 2 return ' ========================= gauche: text 2,trim$(text$(2)) return ' ========================= centrage: mot$=trim$(text$(2)): a$=mot$+"|" : gosub calcul rem "donne le nombre d'espaces à mettre devant le texte " espace_gauche%=(width(2)-suite%)/2 b%= espace_gauche% / size_espace% : text 2,string$(b%," ")+mot$ return ' ======================== droite: mot$=trim$(text$(2)): a$=mot$+"|":gosub calcul espace_gauche%=width(2)-suite% : b%=int(espace_gauche% / size_espace%) text 2, string$(b%," ")+mot$ rem arque"l'espace entre le bord droite du texte et l'edit est forcément variable, vu que ce rem "sont des espaces qui placent le texte, et un espace a une larg fixe de plusieurs pixels" rem "d'où l'imprecision" return
87) Pour ce qui est d'un picture ou d'un alpha, ce n'est pas le nombre d'espace mais la position X de départ (ici espace_gauche%) augmenté de la (marge gauche) si on peut appeler cela comme ça Voyant que mes efforts n'apportent pas grand chose ici, je pense réduire ma présence. Laissons la place aux nouveaux qui ont des choses à dire. J'essayerai d'intervenir sur un autre sujet ce soir, si j'en ai le temps. |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: CENTER ? FOCUS ? Lun 10 Mai 2010 - 17:00 | |
| TEXT_HEIGHT(N,A$) et TEXT_WIDTH(N,A$) sont en préparation. - Citation :
- Pour ce qui est des commandes en préparation, les priorités changent régulièrement, et comme certaine demande sont faite continuellement, la liste change
Oui. J'ai peut-être trop tendance à répondre aux demandes du forum, au détriment de ma ligne de conduite. Mais les nouvelles fonctionnalités sont d'intérêt général. Le TIMER est sorti aujourd'hui et c'est une demande ancienne. Par contre, SPRITE_X_POSITION et SPRITE_Y_POSITION viennent de sortir alors que ces fonctions n'ont été demandées que depuis quelques jours. Ces 2 fonctions me faisaient plaisir car elles sont utiles dans les jeux en 2D et je tiens à répondre en priorité à des demandes qui seront utiles pour les jeux (c'était le but de Panoramic ... snif ...). Des demandes beaucoup plus vielles ne sont pas encore sorties. Mais tout cela je pense va dans le bon sens. - Citation :
- Voyant que mes efforts n'apportent pas grand chose ici, je pense réduire ma présence.
Moi, je ne suis pas ici pour faire des efforts. Je suis ici pour m'amuser et Panoramic est mon hobby, mon passe-temps, ma danseuse. Je pense que tout ce qui restera des programmes qu'on aura bien pu faire, ce sont les jeux. Ce ne sera pas des traitements de texte, des tableurs et tous ces logiciels qui servent à travailler. | |
| | | Invité Invité
| Sujet: Re: CENTER ? FOCUS ? Lun 10 Mai 2010 - 19:17 | |
| Je n'ai aucun reproche à faire quant au choix de tes commandes. Comme je l'ai déjà dit, tu en l'ais l'auteur, donc le choix t'appartient, surtout qu'il est gratuit.
Surtout tu dois faire Panoramic pour que cela te fasse plaisirs.
J'ai plein de demande à faire, mais je sais que je suis pas près d'avoir satisfaction. Quoi qu'il en soit, le basic aujourd'hui est très riche, et possède presque toutes les possibilités de ceux que j'ai jusqu'alors utilisé.
Le programme que j'ai publié sur les cellules, n'était pas pour faire du traitement de texte comme tu pourrais le penser, mais j'avais absolument besoin s'un écran montrant très précisément avec les couleurs en repérage de données diverses pour les sorties d'un programme personnel. Au vu du résultat, j'ai voulu en faire profiter les autres. Et c'est ensuite que avais peu de choses supplémentaires, j'ai remarqué qu'il pouvait aussi servir de modèles pour la saisie d'autre sujet.
C'est peut-être peut de chose pour toi, mais pour un traitement de texte ou autre qui peut également être contrôlé par le basic, apporte pour moi un plus, sinon j'ai mieux à faire avec les programmes du commerce.
Que tu donnes la priorité aux jeux, c'est ton choix, mais je te rappèle que le nom de Panoramic que tu as donné, était parce que c'était un basic tout "azimut" (je ne souvient plus les termes que tu as mis). Si dès le départ ce basic n'avait été que pour les jeux, je ne crois pas que j'aurai "tiqué" dessus, et je n'aurais pas suivi, comme les autres basics que j'ai évité.
Ne m'en veut pas, mais dès mon enfance, j'ai été écarté des jeux, et obligé à travailler, et le faite de jouer me donne l'impression d'être inutile et de perdre mon temps. Il est très dure de se reprogrammer.
Si tu lis ces lignes, j'aimerai tout de même savoir si tu penses un jour faire en sorte qu'un picture puisse être suivi avec les ascenseurs, du coin gauche haut, au coin bas droit, avec la possibilité de se repérer dans l'écran avec les vrais coordonnées. Après tout une image que ce soit une photo ou pour moi en ce moment du texte, peut aussi servir aux jeux.
@+ |
| | | Invité Invité
| Sujet: Re: CENTER ? FOCUS ? Lun 10 Mai 2010 - 21:09 | |
| Je viens de retrouver ceci: - Citation :
- Soyons encore plus fous: on pourrait se définir un projet en commun, dont les modules seraient écrits par des volontaires parmi vous, par exemple:
- un traitement de texte, - un tableur, - un traitement d'image, - un "serious game", - un didacticiel, - un modeleur 3D, que sais-je encore, et où mon rôle serait de développer les commandes et les fonctions manquantes. On prendrait tout notre temps pour le faire, car on n'est pas pressés, mais on le mènerait jusqu'au bout...
Ce logiciel serait bien sûr en open source et pourrait évoluer ensuite en fonction des besoins... Je pense donc que mes demandes sont aussi dans le bon sens de Panoramic. |
| | | Contenu sponsorisé
| Sujet: Re: CENTER ? FOCUS ? | |
| |
| | | | CENTER ? FOCUS ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |