StringGrid - geteditmask, getedittext e setedittext

Top  Previous  Next

Para que servem OnGetEditMask, OnGetEditText e OnSetEditText do 

TStringGrid?

 

O evento OnGetEditMask ocorre quando entramos no modo de edição.

Neste momento podemos verificar em qual linha/coluna se 

encontra o cursor e então, se quiser, poderá especificar uma

máscara de edição. Exemplo:

 

procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol,

  ARow: Integer; var Value: String);

begin

  if (ARow = 1and (ACol = 1) then

    Value := '(999) 999-9999;1;_'// Telefone

end;

 

O evento OnGetEditText ocorre também quando entramos no modo

de edição. Neste momento podemos manipularmos o texto da

célula atual (linha/coluna) e então podemos simular algo tal

como uma tabela onde opções podem ser digitadas através

de números. Exemplo:

 

procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol,

  ARow: Integer; var Value: String);

begin

  if (ARow = 1and (ACol = 2) then begin

    if StringGrid1.Cells[ACol, ARow] = 'Ótimo' then

      Value := '1'

    else if StringGrid1.Cells[ACol, ARow] = 'Regular' then

      Value := '2'

    else if StringGrid1.Cells[ACol, ARow] = 'Ruim' then

      Value := '3';

  end;

end;

 

O evento evento OnSetEditText ocorre quando saímos do modo de

edição. Neste momento podemos manipular a entrada e trocar

por um texto equivalente. Normalmente usamos este evento em

conjunto com o evento OnGetEditText. Exemplo:

 

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,

  ARow: Integer; const Value: String);

begin

  if (ARow = 1and (ACol = 2) then begin

    if Value = '1' then

      StringGrid1.Cells[ACol, ARow] := 'Ótimo'

    else if Value = '2' then

      StringGrid1.Cells[ACol, ARow] := 'Regular'

    else if Value = '3' then

      StringGrid1.Cells[ACol, ARow] := 'Ruim'

  end;

end;

 

Observações

Para testar o exemplo anterior crie um novo projeto e coloque no Form1 um TStringGrid. Mude os três eventos mencionados conforme os exemplos. Execute e experimente digitar nas céluas 1 e 2 da primeira linha (na parte não fixada, é claro!).