Combobox dans stringgrid [Résolu]

Messages postés
265
Date d'inscription
dimanche 7 décembre 2003
Dernière intervention
11 novembre 2016
- - Dernière réponse : fbalien
Messages postés
265
Date d'inscription
dimanche 7 décembre 2003
Dernière intervention
11 novembre 2016
- 30 mars 2005 à 00:08
je veux afficher dans une cellule un combobox

pour cella je fait

cbxType.Parent := StringGrid1 ;



par la suite pour afficher la cbo a la ligne selectionnée j'utilise l'évenement selectcell



procedure TfrmTable.StringGrid1SelectCell(Sender: TObject; ACol,

ARow: Integer; var CanSelect: Boolean);

begin

if arow > 0 then

begin

cbxType.Left := StringGrid1.CellRect(1,arow).Left ;

cbxType.Top := StringGrid1.CellRect(1,arow).top ;

end;

end;



jusque la pas de souci



le problem c'est le comportement de la cbo lors de l'affichage de la liste de choix

la liste ne s'affiche pas

il s'emble que la zone de liste à une hauteur null
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
265
Date d'inscription
dimanche 7 décembre 2003
Dernière intervention
11 novembre 2016
3
Merci
bon a trouvé une autre solution qui consiste à déplacer la cbo au dessu
de la cellule selectionée cela donne dans l'évenement SelectCell du
stringgrid dans mon cas il faut l'affiche dans la deuxieme colonne

// ****************************************************************************

// * Affichage de la cbo dans
la cellule si
sélectionnée
*

// ****************************************************************************



if (ACol = 1) and (ARow <> 0) then

begin

R := StringGrid1.CellRect(ACol, ARow);

R.Left := R.Left + StringGrid1.Left;

R.Right := R.Right + StringGrid1.Left;

R.Top := R.Top + StringGrid1.Top;

R.Bottom := R.Bottom + StringGrid1.Top;

with cbxType do

begin

Left := R.Left + 1;

Top := R.Top + 1;

Width := (R.Right + 1) - R.Left;

Height := (R.Bottom + 1) - R.Top;

Visible := True;

SetFocus;

Text := StringGrid1.Cells[acol,arow];

end;


// ****************************************************************************

// * récupération de la valuer
de la cellule dans le cbo

*

// ****************************************************************************


cbxType.ItemIndex := cbxType.Items.IndexOf(StringGrid1.Cells[acol,arow]);

end;



pour la recupe du cbo j'utilise l'évenement exit du cbo



StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := cbxType.Items[cbxType.ItemIndex];

cbxType.Visible := False;

StringGrid1.SetFocus;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de fbalien
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
0
Merci
Hello,



La propriété ItemHeight de ton combobox est à combien?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
Messages postés
265
Date d'inscription
dimanche 7 décembre 2003
Dernière intervention
11 novembre 2016
0
Merci
bonjour



itemheight est à 13

tant que je laisse le combo sur la fiche pas de souci mais des que
j'afecte le stringgrid comme parent la zone de liste ne s'affiche plus
Commenter la réponse de fbalien

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.