Griser un item d'un radiogroup [Résolu]

florian060190 21 Messages postés mardi 11 août 2009Date d'inscription 27 décembre 2014 Dernière intervention - 29 avril 2009 à 14:52 - Dernière réponse : Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention
- 1 mai 2009 à 10:58
Bonjour,
Dans la réalisation d'un jeu style 1000 bornes, je n'arrive pas, au sein d'un radiogroup à griser UN seul item de manière qu'il soit incliquable.
Nous pensions à radiogroup1.items[I].enabled:=false mais cette solution semble bien trop simple pour Delphi vu qu'il ne compile pas.

Merci d'avance.
Très cordialement.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscriptionModérateurStatut 18 novembre 2010 Dernière intervention - 29 avril 2009 à 17:01
1
Merci
BOUH !
On peut :
 MonRadioGroup.Controls[MonIndex].Enabled := MonBoolean;

De rien ^^

Merci JulioDelphi 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de JulioDelphi
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 29 avril 2009 à 16:10
0
Merci
Ce n'est malheureusement pas possible avec un TRadioGroup.
Ce que tu peux faire, c'est mettre autant de TRadioButtons qu'il y avait d'items dans le TRadioGroup, et là tu peux utiliser la propriété Enabled de chaque bouton. Après, il faudra gérer toi-même l'unicité de la sélection (1 seul radiobutton coché, pas plus). Pour cela, rien de très difficile : tu décoches tous les boutons cochés puis tu coches celui sur lequel on a cliqué).

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 29 avril 2009 à 16:21
0
Merci
Salut,




Comme dit Bacterius ou plus simple :

utilise une GroupBox contenant tes RadioButtons et fait :

MonRadioButton.Enabled := not MonRadioButton.Enabled;
Commenter la réponse de Caribensila
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 29 avril 2009 à 16:37
0
Merci
Ou alors, en plus compliqué, et pour une utilisation extensive, crée un nouveau composant TRadioGroup et, à la place des chaînes pour mettre des items, mets plutôt des TRadioButtons :)

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 29 avril 2009 à 17:09
0
Merci
*Gros silence dans la salle*
*kof kof*
Non mais oui très bonne idée, je ne savais pas que les composants TRadioButton contenus dans le TRadioGroup étaient référencés dans les Controls ... j'aurais dû m'en douter en même temps lol puisqu'ils sont créés en prenant comme propriétaire le TRadioGroup ...

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 29 avril 2009 à 18:01
0
Merci
... Ah bein ouais.

C'est Julio le plus fort au 1000 bornes !..
Commenter la réponse de Caribensila
florian060190 21 Messages postés mardi 11 août 2009Date d'inscription 27 décembre 2014 Dernière intervention - 1 mai 2009 à 01:22
0
Merci
Merci Julio!


Désolé pour le retard mais merci beaucoup.


Donc voilà un problème en moins. Niveau 2:


Nous cherchons à présent (je vais essayer d'expliquer clairement mais je vous garantis rien) à changer la couleur de la colonne du joueur. Par exemple, lorsque le joueur ne peut pas jouer et est bloqué (notamment au début de la partie tant qu'il n'a pas de feu vert), nous cherchons à ce que sa colonne reste avec un fond ROUGE(ou au moins la première case de cette colonne (comportant le numéro du joueur)). Dès qu'il obtient un feu vert paf, ça passe en fond VERT. Nous avons tenté avec le paragraphe MASELECTION vu en cours mais cette option semble faire des siennes. Je comprends pas pourquoi Delphi ne propose pas une propriété plus simple car dans le fond nous ne demandons pas grand chose, juste quelque chose du genre: MonStringgrid[1,2].fixedcolor:=ClLime

En vous remerciant à nouveau.
Commenter la réponse de florian060190
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 1 mai 2009 à 10:58
0
Merci
En gros tu voudrais colorier une cellule du TStringGrid ... Delphi ne peut pas tout faire pour toi lol, mais il t'offre un événement intéressant, qui est appelé à chaque dessin de cellule : OnDrawCell.
Regarde :

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
{ On vérifie que ça soit bien la colonne (et la ligne, optionnellement) voulue - chaque cellule mérite un événement OnDrawCell) }
if (ACol ColonneVoulue) {and ARow LigneVoulue} then
begin
StringGrid1.Canvas.Brush.Color := clLime; { Couleur verte }
StringGrid1.Canvas.Rectangle(Rect);
{ On dessine un rectangle vert dans la cellule - le rectangle est fourni }
end;
end;

Ici, par exemple, si tu définis ColonneVoulue à 1, la deuxième colonne sera toute verte après avoir connecté cette procédure à l'événement OnDrawCell de ta stringgrid. Après, il faudra peut-être créer un tableau booléen bidimensionnel pour savoir si une cellule est verte, rouge, ... etc ...

Cordialement, Bacterius !
Commenter la réponse de Bacterius

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.