| 
| 
 | Вопрос # 5 260/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Подскажите, как реализовать следующее.
 На фрорме имеются 2 Edit и  StringGid.
 Задача состоит в том, что надо ввести данные из Edit1 и Edit2 в StringGrig, затем изменить данные в Edit1 и Edit2 и ввести измененные данные в следующую строку StringGrig.
 Пытаюсь сделать это с помощью нижеприведенного кода, но данные вводятся только в первую строку StringGrig, заменяя предудущие данные.
 Заранее благодарен.
 Al_Sha
 Приложение:Переключить в обычный режим unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, Grids, StdCtrls;type  TForm1 = class(TForm)    Edit1: TEdit;    Edit2: TEdit;    Button1: TButton;    StringGrid1: TStringGrid;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var  str: integer;begin  if (Edit1.Text='') or (Edit2.Text='') then  begin   endelse beginstr:=0;  StringGrid1.Cells[0,str]:=Edit1.Text;  StringGrid1.Cells[1,str]:=Edit2.Text;  str:=str+1;  StringGrid1.RowCount:=StringGrid1.RowCount+1;  StringGrid1.Col:=0;  StringGrid1.SetFocus; end; Edit1.Clear; Edit2.Clear; end; end. 
|  |   Вопрос задал: Al_Sha (статус: Посетитель)Вопрос отправлен: 5 мая 2011, 22:01
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Цитата (Al_Sha): И все же, как подправить код?????  Ну, вот как-то так:
 
 procedure TForm1.Button1Click(Sender: TObject);
begin
  if (Edit1.Text='') or (Edit2.Text='')
    then showmessage('Данные не введены...')
    else with StringGrid1 do
           begin
             RowCount:= RowCount + 1;
             Cells[0, RowCount - 1]:= Edit1.Text;
             Cells[1, RowCount - 1]:= Edit2.Text;
             Col:=0;
             if CanFocus
               then SetFocus();
 
             Edit1.Clear();
             Edit2.Clear();
           end;
end;
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 5 мая 2011, 22:38
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо большое, все работает.Однако при вводе данных в StringGrid появляется пустая первая строка...
 |  
 Мини-форум вопросаВсего сообщений: 8; последнее сообщение — 6 мая 2011, 21:42; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 5 мая 2011, 22:04 [#1]:Код так и должен работать. Переменная str локальная, она равна нулю при каждом проходе процедуры. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 5 мая 2011, 22:06 [#2]:Наверняка, компилятор ещё и хинт выкидывает, типа "...assigned... but never used". Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Al_Sha (статус: Посетитель), 5 мая 2011, 22:12 [#3]:Да нет, компилятор ничего не выдает... И все же, как подправить код?????
 |  
|   | bugmenot (статус: 3-ий класс), 5 мая 2011, 22:47 [#4]: Цитата (Al_Sha): Да нет, компилятор ничего не выдает... Неправда
 
 [DCC Hint] Unit12.pas(43): H2077 Value assigned to 'str' never used виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  5 мая 2011, 23:52: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А. 
|   | Al_Sha (статус: Посетитель), 6 мая 2011, 07:23 [#5]:Нет правда. Такой строки
 >[DCC Hint] Unit12.pas(43): H2077 Value assigned to 'str' >never used
 у меня компилятор не выдает.
 Использую Turbo Delphi Lite
 |  
|   | min@y™ (статус: Доктор наук), 6 мая 2011, 08:14 [#6]: Цитата (min@y™): Однако при вводе данных в StringGrid появляется пустая первая строка...  Ну сделай FixedRows = 1.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 6 мая 2011, 10:31 [#7]: Цитата (Al_Sha): Нет правда.Такой строки
 >[DCC Hint] Unit12.pas(43): H2077 Value assigned to 'str' >never used
 у меня компилятор не выдает.
 Использую Turbo Delphi Lite
 Это от компилятора мало зависит. Это зависит от настроек.
 Но замечания компилятора уместны. значение переменной действительно не используется.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | bugmenot (статус: 3-ий класс), 6 мая 2011, 21:42 [#8]: Цитата (Вадим К): Это от компилятора мало зависит. Это зависит от настроек. 
 Цитата (Al_Sha): Turbo Delphi Lite Если моя таблица не врёт, то в Turbo компилятор версии 18.0, а замечания появились в 12.0 (кто точно знает - прошу подтвердить или опровергнуть).
 
 
 Цитата (Вадим К): замечания компилятора уместны даже больше скажу: их должно внимательно читать и ни при каких обстоятельствах не отключать.
 
 Рекомендую сбросить настройки к заводским умолчаниям.
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |