Fórum como colocar um edit na celula celecionada do dbgrid #227170

20/04/2004

0

nao consigo colocar um edit na posicao da celula selecionada do dbgrid igual da pra por no stringgrid pois o dbgrid nao possui a funcao selectcell como posso resolver isso.


atencao! quero q o codigo seja idependente da coluna, quando eu mover as setas de direcao o edit me acompanhe na posicao left e top da celula celecionada. ja tente colocar os parametros rect.left rect.top na funcao oncollumdatacel do dbgrid mas nao deu certo

me ajudem to precisando dessa dica urgente. agradeco a todos q puderem me ajudar


Urgente é tudo aquilo que não foi feito no momento que deveria ter sido. Seu título foi editado pra ficar de acordo com as regras de conduta.
Zoom


Eltontlms

Eltontlms

Responder

Posts

20/04/2004

Lucas Silva

se vocÊ animar usar um stringGrid... ai vai o código.
só troque o combobox pelo edit....
//Inclua no seu Form um componente ComboBox e um componente StringGrid. type TForm1 = class(TForm) StringGrid1: TStringGrid; ComboBox1: TComboBox; procedure FormCreate(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox1Exit(Sender: TObject); procedure StringGrid1SelectCell (Sender: TObject; Col, Row: Integer; var CanSelect: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} // Evento OnCreate do Form procedure TForm1.FormCreate(Sender: TObject); begin { Ajusta a altura do ComboBox com a altura da linha do StringGrid} StringGrid1.DefaultRowHeight := ComboBox1.Height; {Esconde o ComboBox} ComboBox1.Visible := False; end; // Evento OnChange do componente ComboBox procedure TForm1.ComboBox1Change(Sender: TObject); begin StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex]; ComboBox1.Visible := False; StringGrid1.SetFocus; end; // Evento OnExit do componente ComboBox procedure TForm1.ComboBox1Exit(Sender: TObject); begin StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex]; ComboBox1.Visible := False; StringGrid1.SetFocus; end; // Evento OnSelectCell do componente StringGrid procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer; var CanSelect: Boolean); var R: TRect; begin if ((Col = 3) 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; ComboBox1.SetFocus; end; CanSelect := True; end;

Retirada das 800 dicas delphi....


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar