Combobox dans stringgrid [Résolu]

fbalien 265 Messages postés dimanche 7 décembre 2003Date d'inscription 11 novembre 2016 Dernière intervention - 28 mars 2005 à 11:09 - Dernière réponse : fbalien 265 Messages postés dimanche 7 décembre 2003Date d'inscription 11 novembre 2016 Dernière intervention
- 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

fbalien 265 Messages postés dimanche 7 décembre 2003Date d'inscription 11 novembre 2016 Dernière intervention - 30 mars 2005 à 00:08
+3
Utile
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;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de fbalien
jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention - 29 mars 2005 à 09:21
0
Utile
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
fbalien 265 Messages postés dimanche 7 décembre 2003Date d'inscription 11 novembre 2016 Dernière intervention - 29 mars 2005 à 17:35
0
Utile
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.