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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2010, 21:38   #1
WeRsUs
 
Регистрация: 26.10.2010
Сообщений: 7
Печаль Задача со stringgrid !!

у меня есть stringgrid (его размеры вводятся с помощью едитов) . Числа в ячейках могут быть произвольными (полож. и отрицат.) . И вопрос , как удалить столбец в котором находиться самое большое количество положительных чисел . вот мой код :
Код:
var
  Form1: TForm1;
  a:array of array of real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
stringgrid1.rowCount:=strtoint(edit1.text);
stringgrid1.colCount:=strtoint(edit2.text);
setlength(a,strtoint(edit2.text),strtoint(edit1.text));
end;
procedure TForm1.Button2Click(Sender: TObject);
var
 //Col, Row - индекс столбца и строки для перебора в циклах.
  //Col1 - индекс первого столбца с наибольшим количеством элементов.
  //CntCol - количество столбцов с наибольшим количеством положительным элементов.
  //CntNum - количество положительных элементов в столбце.
  //CntNumMax - наибольшее количество положительных элементов в столбце.
col,row,col1, cntcol,cntnum,cntnummax:integer;
begin
CntCol := 0;
Col1 := -1;
CntNumMax := 0;
for col := 0 to Stringgrid1.ColCount - 1 do begin
CntNum := 0;
for row := 0 to Stringgrid1.RowCount - 1 do
if StrToInt( Stringgrid1.Cells[col,row] ) > 0 then Inc(CntNum);
if CntNum > CntNumMax then begin
CntNumMax := CntNum;
Col1 := col;
CntCol := 1;
end else
if (CntNum = CntNumMax) and ( CntNum > 0 ) then begin
Inc(CntCol);
end;
end;
if CntCol > 1 then begin
for col := Col1 to Stringgrid1.ColCount - 1 - 1 do
for row := 0 to Stringgrid1.RowCount - 1 do
Stringgrid1.Cells[col, row] := Stringgrid1.Cells[col + 1, row];
Stringgrid1.ColCount := Stringgrid1.ColCount - 1;
end;
но он иногда не работает . то есть он иногда не удаляет то что нужно , а иногда вообще не реагирует на нажатие кнопки ! Помогите разобраться пожалуйста

Последний раз редактировалось Stilet; 30.10.2010 в 22:11.
WeRsUs вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid[..]..... zotox Помощь студентам 3 24.07.2009 10:49
StringGrid StartMis Общие вопросы Delphi 5 21.11.2008 15:11
StringGrid Dimon88 Компоненты Delphi 15 14.02.2008 11:44
Задача по StringGrid Оля Помощь студентам 3 21.04.2007 13:49