como colocar um edit na celula celecionada do dbgrid
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
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
Curtidas 0
Respostas
Lucas Silva
20/04/2004
se vocÊ animar usar um stringGrid... ai vai o código.
só troque o combobox pelo edit....
Retirada das 800 dicas delphi....
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....
GOSTEI 0