Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2014, 16:04   #1
DSBM
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 13
По умолчанию Очистка конкретной ячейки StringGrid./Delphi/

На форме располагаются: два компонента ListBox, таблица StringGrid размером 4х6, кнопка SpeedButton, две кнопки Button и кнопка Close. На одной из кнопок Button надпись «Очистка», на другой – «Занесение». Над одним из компонентов ListBox надпись «Строки», над другим – «Столбцы». С помощью первого выбирается строка таблицы, другим - столбец. При нажатии кнопки “Занесение” в соответствующую ячейку заносится произведение или сумма номеров строки и столбца. Вид операции определяется состоянием кнопки SpeedButton. Кнопка «Очистка» очищает данную ячейку. Кнопка Close заканчивает программу.

Как очистить конкретную ячейку?

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
For i:=0 to StringGrid1.RowCount-1 do
StringGrid1.Rows[i].Clear;
ListBox1.Items.Clear;
ListBox1.Items.Add(IntToStr(Random(4)+1));
ListBox2.Items.Clear;
ListBox2.Items.Add(IntToStr(Random(6)+1));

if SpeedButton1.Down then begin
StringGrid1.Cells[StrToInt(listbox1.Items.Strings[listbox1.Count-1])-1,StrToInt(listbox2.Items.Strings[listbox2.Count-1])-1]:=
IntToStr(StrToInt(listbox1.Items.Strings[listbox1.Count-1])+StrToInt(listbox2.Items.Strings[listbox2.Count-1]));
end else begin
StringGrid1.Cells[StrToInt(listbox1.Items.Strings[listbox1.Count-1])-1,StrToInt(listbox2.Items.Strings[listbox2.Count-1])-1]:=
IntToStr(StrToInt(listbox1.Items.Strings[listbox1.Count-1])*StrToInt(listbox2.Items.Strings[listbox2.Count-1]));
 end;
end;


procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 SpeedButton1.GroupIndex:=1;
 SpeedButton1.AllowAllUp:=True;
end;


end.
DSBM вне форума Ответить с цитированием
Старый 09.02.2014, 17:05   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, у Вас же была аналогичная тема (этот код точно вижу не в первый раз!!)
зачем ещё одну создавать?

во-вторых, если я не ошибаюсь, то ваш код вполне можно заменить на такой:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var sRez : string;
begin
For i:=0 to StringGrid1.RowCount-1 do
   StringGrid1.Rows[i].Clear;

ListBox1.Items.Clear;
ListBox1.Items.Add(IntToStr(Random(4)+1));
ListBox2.Items.Clear;
ListBox2.Items.Add(IntToStr(Random(6)+1));


if SpeedButton1.Down then 
  sRez := IntToStr(StrToInt(listbox1.Items.Strings[0])+StrToInt(listbox2.Items.Strings[0]))
else 
  sRez := IntToStr(StrToInt(listbox1.Items.Strings[0])*StrToInt(listbox2.Items.Strings[0]));

  StringGrid1.Cells[StrToInt(listbox1.Items.Strings[0])-1,StrToInt(listbox2.Items.Strings[0])-1] := sRez;

end;
в третьих, если вы хотите очистить одну ячейку, то надо написать так:
Код:
  StringGrid1.Cells[НомерСтолбца,НомерСтроки] := '';
если хотите очистить ячейку, у которой номер строки и столбца заданы вашими случайными числами в ListBox1 / LisBox2, то можно написать:
Код:
StringGrid1.Cells[StrToInt(listbox1.Items.Strings[0])-1,StrToInt(listbox2.Items.Strings[0])-1] := '';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.02.2014, 22:00   #3
DSBM
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 13
По умолчанию

Благодарю.

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, у Вас же была аналогичная тема (этот код точно вижу не в первый раз!!)
зачем ещё одну создавать?
Так вроде в правилах форума один вопрос - одна тема. Да и правила хорошего тона поддерживают такое отношение.)
DSBM вне форума Ответить с цитированием
Старый 10.02.2014, 09:50   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от DSBM Посмотреть сообщение
Благодарю.
Пожалуйста.



Данную тему закрываем?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цвет ячейки stringgrid в delphi The Catalyst Помощь студентам 0 01.12.2011 14:47
выполнение макроса по завершении редактирования конкретной ячейки Обыватель Microsoft Office Excel 2 20.05.2010 11:52
(Delphi)stringgrid раскраска ячейки ошибка zoza1 Помощь студентам 1 17.02.2010 19:28
можно ли в stringgrid задавать размер конкретной ячейки SeЯgey Помощь студентам 3 26.04.2008 18:47
Delphi: Сортировка строк в StringGrid, критерий - элемент ячейки Andris Помощь студентам 9 09.03.2008 23:04