1

Dans mon projet VB j'utilise des boutons, optionbutton mais le problème c'est que j'ai de zone bien différente qui utilise ce genre de button. Le problème c'est que lorsque clique sur une otpion d'une zone, l'autre zone ce decoche et l'autre ce coche.

J'ai donc penser à utiliser dans l'autre zone, des case à cocher check, mais lorsque que je veut en décocher un puis cocher l'autre et inversement j'ai un message d'erreur 'espace pile insuffisant'.

Ca commence à me taper sur le système, c'est un casse tête pour pas grand chose. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

2

Normalement, lorsque tu définis deux zones de boutons Radio, chaque zone est indépendante (en tous cas en Pascal/Delphi). Tu es sur d'avoir bien déterminé deux zones bien différentes et d'avoir tes boutons radios affectés à la bonne zone ?
avatar

3

normallement tu crée d'abord les 2 zones de bouton
ensuite tu places les boutons dans chaque zone

Et normallement chaque zone est alors indépendante, avec un seul optionbutton cochable par zone.

c'est comme ca que j'avais fait pour mon projet vb à l'iut et ca marchait smile

4

Pour faire une zone, je dois utiliser le contrôle frame?

Si c'est ça, vous me sauvez la vie. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

5

si tu veux je f un mini projet ac juste ca
je crois que c le controle frame oui, je connais pas les noms par coeur

6

Je viens d'essayer et c'est ça. Encore un truc con que j'ai pas pensé.
Merci. )
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

7

Sinon, ton problème était que tes évènements _Check s'entre-appelaient. Il faut utiliser un booléen global pour arrêter cette boucle infinie.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

oui mais ce n'est pas tres propre :/

9

Sinon, ton problème était que tes évènements _Check s'entre-appelaient. Il faut utiliser un booléen global pour arrêter cette boucle infinie


Ah bon, c'est bon à savoir. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

10

Oui, c'est même plutôt crade comme programmation en multi-tâche.
avatar

11

oui mais des fois tu peux pas faire autrement
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

12

En effet les boutons d'options marchent par zones
Voici les différents types de zones que je connaît:
La feuille (Form)
Le contrôle Frame
Le contrôle PictureBox
Le contrôle ToolBar
Et le contrôle CoolBar
Il y en a sûrement d'autres mais je ne les connaît pas
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

13

mrtrampo> ben faut utiliser des sémaphores, c'est fait pour ça... parce qu'un booleen fait la même chose, mais n'est pas prévu pour.
avatar

14

Ah
Parce que je sais pas ce que c'est qu'un sémaphore
C'e'st pas un variable qui est déclarée dans la fonction mais qui garde sa valeur au cours des différentes exécutions?

Tu peux expliquer comment ca marche
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

15

Ca fait longtemps que j'ai pas fait de programmation multitâche (3ans), alors si je dis une connerie, n'hésitez pas à corriger.
Un sémaphore est un outil propre au multitâche permettant de donner la main à une tache prioritairement à une autre tâche. L'exemple bâteau qu'on donne au début, c'est 5 personne qui doivent manger avec une seule fourchette sans se gêner.
Si ça t'interesse, je rechercherais mes cours (mais c'est sur Montpellier, et j'y redescendrais pas avant un bout de temps).
avatar

16

Mais ici, on n'a pas besoin d'un sémaphore, un booléen pour désactiver les 2 évènements temporairement est largement suffisant.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

17

Sauf que le booléen n'est pas prévu pour ça au niveau système. Tu me diras que normalement l'ordonnateur va le gérer de la même façon vu qu'on est en multitâche, mais l'ordonnateur (dans un système conditionnel (win16) et pas préemptif (win 32/nux)) peut se bloquer sur un booleen alors qu'il ne se bloquera pas sur un sémaphore (sauf crash, bien sur).
avatar

18

Bon
Quoi qu'il en soit quelqu'un peut-il expliquer comment on déclare un sémaphore et comment on s'en sert?
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

19

Ben en vb, je ne sais pas si c'est faisable gni.
En java, je peux t'indiquer ça, c'est le mot clé "synchronized" qui permet de gérer ça (de façon à ce qu'un bloc d'instruction soit bloqué tant qu'un autre n'est pas exécuté (après, on peut aussi utiliser un système de priorité, mais c'est un peu plus complexe à mettre en oeuvre et surtout à tracer).
Il existe une page assez accessible pour tout le monde là dessus, si tu veux plus d'infos :
http://perso.club-internet.fr/assomasi/Sciences_Informatiques/Systemes_Exploitation/SE_Processus.html
Mais pour plus de détails, pour moi, ça fait trop longtemps que j'ai pas touché à tout ça.
avatar

20

[cite]Nil :
Normalement, lorsque tu définis deux zones de boutons Radio, chaque zone est indépendante (en tous cas en Pascal/Delphi)[cite]
Bah pas sous VC++, pas sur les case radios qui sont justements aligné pas types, mais il existe d'autres types de cases

21

nEUrOO>Je n'ai jamais utilisé VC++, donc je ne savais pas (je préfère les produits Borland/Inprise, malgré leurs lacunes).
avatar

22

Nil
: Sauf que le booléen n'est pas prévu pour ça au niveau système. Tu me diras que normalement l'ordonnateur va le gérer de la même façon vu qu'on est en multitâche, mais l'ordonnateur (dans un système conditionnel (win16) et pas préemptif (win 32/nux)) peut se bloquer sur un booleen alors qu'il ne se bloquera pas sur un sémaphore (sauf crash, bien sur).

Il ne se bloquera pas sur le booléen. Le booléen n'est pas un sémaphore, c'est un stoppeur de boucles infinies. Il n'y a pas besoin d'un sémaphore ici! Peu importe si les 2 Click s'activent en même temps, l'important et qu'ils ne s'activent pas récursivement.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

23

Exemple:
Private stophere as Boolean
 
Private Sub CheckBox1_Click(...)
If Not stophere
'endroit critique
stophere=True
CheckBox1.Value=1
CheckBox2.Value=0
stophere=False
End If
End Sub
 
Private Sub CheckBox2_Click(...)
If Not stophere
stophere=True
CheckBox1.Value=0
CheckBox2.Value=1
stophere=False
End If
End Sub


1. Le pire qui pourrait théoriquement se produire est que CheckBox2_Click soit activé à l'endroit marqué "endroit critique". Tout ce qui se passera dans ce cas est que CheckBox2_Click et CheckBox1_Click modifieront tous les 2 les checkboxes. Pas de boucle infinie ou autre plantage. On n'est pas dans une situation nécessitant un sémaphore.

2. De plus, même ceci ne peut pas se produire parce qu'aucun évènement ne peut être exécuté pendant le déroulement de CheckBox1_Click, car cette routine ne comporte aucun appel à DoEvents. Le système d'évènement de VB est du single-threaded, pas du multi-threaded.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

24

Bref, les gens qui parlent de sémaphores dans ce topic ne savent pas du tout de quoi ils parlent!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

25

Le système d'évènement de VB est du single-threaded, pas du multi-threaded.

oui Je sais.
Bien sur que tu as raison. Mais (en dehors du fait qu'on soit avec du VB), je persiste à penser qu'un sémaphore serait plus propre (ou voir s'il n'existe pas une propriété d'un des objets à changer pour que ça soit géré automatiquement).
Celà dit, en Delphi je faisais pareil (un booleen), donc voilà, c'est tout cheeky
avatar

26

Bref, les gens qui parlent de sémaphores dans ce topic ne savent pas du tout de quoi ils parlent !

Même si ça fait longtemps que je n'ai pas fait de programmation mtache, je persiste à penser ce que j'ai dit (en Java en tous cas c'est la solution qu'on nous avait conseillé en cours de système).
avatar

27

D'ailleurs, je précise que je connais très bien l'intérêt d'un sémaphore (cf. l'indication de l'endroit critique smile), c'est juste qu'il n'est pas nécessaire dans cette situation.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

28

Je ne me pronocerais pas là dessus, j'y connais rien. :-
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

29

Dire qu'il n'est pas nécessaire ne veut donc pas dire qu'il ne pourrait pas être utilisé, non ? wink
Bon, sinon, une solution a répondu au topic, on va peut-être pas faire un nouveau débat sans fin, hein ? happy
avatar

30

Pourquoi pas ?
Allez, plus qu'un post avant la page 2 ! Courage ! triroll
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#