|
Вопрос # 5 260/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Подскажите, как реализовать следующее.
На фрорме имеются 2 Edit и StringGid.
Задача состоит в том, что надо ввести данные из Edit1 и Edit2 в StringGrig, затем изменить данные в Edit1 и Edit2 и ввести измененные данные в следующую строку StringGrig.
Пытаюсь сделать это с помощью нижеприведенного кода, но данные вводятся только в первую строку StringGrig, заменяя предудущие данные.
Заранее благодарен.
Al_Sha
Приложение: Переключить в обычный режим- unit Unit1;
- interface
- uses
- 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
-
- end
- else
-
- begin
- str:=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сця, де призупинилося.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|