Soyez le premier à donner votre avis sur cette source.
Snippet vu 14 150 fois - Téléchargée 487 fois
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; procedure StringGrid1SelectCell(Sender: TObject; Col, Row: Integer; var CanSelect: Boolean); procedure FormShow(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Déclarations privées } public { Déclarations publiques } procedure ComboBox1Exit(Sender: TObject); end; var Form1: TForm1; ComboBox1:TComboBox; implementation {$R *.dfm} procedure TForm1.ComboBox1Exit(Sender: TObject); begin StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row]:=ComboBox1.Text; ComboBox1.Visible := False; StringGrid1.SetFocus; end; procedure TForm1.StringGrid1SelectCell(Sender: TObject;Col,Row: Integer; var CanSelect: Boolean); var R: TRect; begin if (Col > 0) and (Row <> 0) then begin R := StringGrid1.CellRect(Col, Row); R.Left := R.Left + StringGrid1.Left; R.Right := R.Right + StringGrid1.Left; R.Top := R.Top + StringGrid1.Top; R.Bottom := R.Bottom + StringGrid1.Top; ComboBox1.Left := R.Left + 1; ComboBox1.Top := R.Top + 1; ComboBox1.Width := (R.Right + 1) - R.Left; ComboBox1.Height := (R.Bottom + 1) - R.Top; ComboBox1.Visible := True; if StringGrid1.Cells[Col,Row]<>'' then ComboBox1.Text:=StringGrid1.Cells[Col,Row] else ComboBox1.Text:=''; ComboBox1.SetFocus; end; CanSelect := True; end; procedure TForm1.FormShow(Sender: TObject); Var X:Integer; begin StringGrid1.Options:=StringGrid1.Options+[goColSizing,goThumbTracking]-[goEditing]; ComboBox1:=TComboBox.Create(Self); ComboBox1.Parent:=Form1; ComboBox1.Visible:=False; ComboBox1.OnExit:=ComboBox1Exit; ComboBox1.Clear; For X:=1 to 10 do ComboBox1.Items.Add(IntToStr(X)); end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin ComboBox1.Free; end; end.
30 juil. 2008 à 15:03
comment faire pour colorier une ligne d'une StringGrid lorsqu'une cellule depasse une certaine valeur, c'est à dire que si la ligne nr 4 possede un cellule avec une valeur > 100 elle doit la colorier en rouge, si cetet valeur est entre 50 et 100 doit la colorier en bleu et si c'est en dessous de 50 doit la colorier en jaune. J'ai cherché sur le formu mais il n'y a aucun topic, aucun code qui soumet la couler à uen condition de valuer.
Si vous ne asavez pas ne repondez pas, cela polue plus ls forum qu'autre chose, on passe de page en page sur des suposés explicaiton qui ne sont que des embrouilles.
@+
4 mai 2008 à 08:33
3 avril 2008 à 13:13
et merci beaucoup pour ce code il m'a vraiment aider a devvelopper mon programme mais j'ai un petit probleme c'est que je veux utilser le combobbox deux ..trois fois et parfois q'une seul fois pour entrer les données dans ma cellule c.a.d:"1,2,3" puisque je viens tous juste de debuter,,je vs pris de bien m'aider et merci.
11 août 2006 à 10:34
pour les purs débutants, voici exactement comment utiliser ce code :
1. créer un nouveau projet
2. mettre sur la forme vierge un StringGrid (onglet Win32)
3. remplacer tout le code de l'unité par celui-ci
4. retourner sur la forme et affecter les évènements suivants :
SelectCell du StringGrid
FormShow de la forme
FormCloseQuery de la forme
25 oct. 2005 à 12:40
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.