Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > StringGrid пишет в одну и ту же строку


Автор: ACMilian 27.3.2007, 17:15
Есть стринггрид. с двумя строками, одна из которых фиксированная. Каждый раз надо по клику вводить данные в новую строку, а оно пишет в ту же. хотя строку добавляет...как быть? 
Код

var 
 row : integer =1 ;

procedure TfrRaspPoUstan.BitBtn1Click(Sender: TObject);
var
   plusrow : integer;
begin
  if (edPostavka.Text = '') or (edUstan.Text = '')   then
  ShowMessage('Не введены необходимые данные!')
  else begin
          with StringGrid1 do
           begin
             Cells[0,row] := lbReagent.Caption;
             Cells[1,row] := edPostavka.Text;
             Cells[2,row] := edUstan.Text;
           end;
           row := row + 1;
           if row > 1 then
           begin
            plusrow := row;
            StringGrid1.RowCount := plusrow+1;
           end;
           edPostavka.Text := '';
           edUstan.Text := '';
       end;
end;


Автор: skyboy 27.3.2007, 17:24
потому что "with". в этом блоке
Код

with StringGrid1 do
           begin
             Cells[0,row] := lbReagent.Caption;
             Cells[1,row] := edPostavka.Text;
             Cells[2,row] := edUstan.Text;
           end;

"row" может относиться как к глобальной переменной, так и к свойству row(текущая строка) в TStringGrid. текущая строка там НЕ меняется. значит, писать данные ты будешь в одну и ту же строку.

Автор: ACMilian 27.3.2007, 17:30
точна. спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)