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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2014, 21:46   #1
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию выделить самых повторяющихся значений в stringgrid

как выделить самых повторяющихся значений в stringgrid ?
alman12 вне форума Ответить с цитированием
Старый 14.11.2014, 22:10   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Код:

var
  Form1: TForm1;
  i, j: integer; //счетчик
 one,two,three,four,five: integer; //числа
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  //подготовка таблицы
  StringGrid1.RowCount := 10;
  StringGrid1.ColCount := 10;
  StringGrid1.DefaultRowHeight := 30;
  StringGrid1.DefaultColWidth := 30;
end;
 
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  //заполнение таблицы
  for i := 0 to 9 do
    for j := 0 to 9 do
      StringGrid1.Cells[i, j] := IntToStr(Random(5) + 1);
end;
 
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  ListBox1.Clear;
  for i := 0 to 9 do
  begin
    /////////////// считаем 1 ///////////////
     one := 0; //обнуляем переменную при проверке нового столбика
    for j := 0 to 9 do
    begin
      if StrToInt(StringGrid1.Cells[i, j]) = 1 then
        inc(one);
    end;
     ListBox1.Items.Add('Столбик ' + IntToStr(i + 1)+ ' единиц = '+ IntToStr(one)+' шт');
 
 
    /////////////// считаем 2 ///////////////
    two := 0; //обнуляем переменную при проверке нового столбика
    for j := 0 to 9 do
    begin
      if StrToInt(StringGrid1.Cells[i, j]) = 2 then
        inc(two);
    end;
    ListBox1.Items.Add('Столбик ' + IntToStr(i + 1)+ ' двоек = '+ IntToStr(two)+' шт');
 
 
    /////////////// считаем 3 ///////////////
     three := 0; //обнуляем переменную при проверке нового столбика
    for j := 0 to 9 do
    begin
      if StrToInt(StringGrid1.Cells[i, j]) = 3 then
        inc(three);
    end;
     ListBox1.Items.Add('Столбик ' + IntToStr(i + 1)+ ' троек = '+ IntToStr(three)+' шт');
 
 
      /////////////// считаем 4 ///////////////
    four := 0; //обнуляем переменную при проверке нового столбика
    for j := 0 to 9 do
    begin
      if StrToInt(StringGrid1.Cells[i, j]) = 4 then
        inc(four);
    end;
    ListBox1.Items.Add('Столбик ' + IntToStr(i + 1)+ ' четверок = '+ IntToStr(four)+' шт');
 
 
       /////////////// считаем 5 ///////////////
    five := 0; //обнуляем переменную при проверке нового столбика
    for j := 0 to 9 do
    begin
      if StrToInt(StringGrid1.Cells[i, j]) = 5 then
        inc(five);
    end;
     ListBox1.Items.Add('Столбик ' + IntToStr(i + 1)+ ' пятерок = '+ IntToStr(five)+' шт');
 
   end;
 
  end;
 
end.
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 14.11.2014, 22:31   #3
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

здес не выделяется
alman12 вне форума Ответить с цитированием
Старый 15.11.2014, 10:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как выделить самых повторяющихся значений в stringgrid ?
Показывай как пробовал. Хватит скрывать свои коды, снимай паранджу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2014, 11:50   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
здес не выделяется
Если тупо копировать чужой код, то нигде выделяться не будет.
Человек_Борща вне форума Ответить с цитированием
Старый 15.11.2014, 19:24   #6
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

мой код не работает

Код:
var s:String;
begin
    if ((ARow=StringGrid1.Row)and(Acol>0)) then
    begin
       if ACol=StringGrid1.Col then
         StringGrid1.Canvas.Brush.Color:=12303359
      else
         StringGrid1.Canvas.Brush.Color:=clAqua;
      StringGrid1.canvas.Font.Color:=clBlack;
    end;
 
    if (ACol > 0) and (ARow > 24) then
    begin
      StringGrid1.canvas.brush.Color:=clBtnFace;
      StringGrid1.canvas.Font.Color:=clBlack;
    end;
    StringGrid1.Canvas.FillRect(Rect);
    s := StringGrid1.Cells[ACol, ARow];
    Dec(Rect.Right, 2);
    Dec(Rect.Bottom, 2);
    if (Length(s) > 0) then
    if ((Arow>0) and (ACol>0)) then
       DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, DT_BOTTOM or DT_RIGHT or DT_SINGLELINE)
    else
       DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, DT_CENTER);
end;

Последний раз редактировалось Stilet; 15.11.2014 в 20:44.
alman12 вне форума Ответить с цитированием
Старый 15.11.2014, 21:06   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да... Такой код действительно работать не будет.
А как ты высчитываешь частоту элемента можно увидеть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2014, 21:11   #8
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

незнаю как сделать
alman12 вне форума Ответить с цитированием
Старый 15.11.2014, 21:49   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
незнаю как сделать
во втором посте дан ответ.
Человек_Борща вне форума Ответить с цитированием
Старый 15.11.2014, 22:25   #10
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

втором посте не высчитивает повторяюшихся ячеек
alman12 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос повторяющихся значений Artem_85 Microsoft Office Excel 6 07.11.2012 13:49
удаление из таблицы повторяющихся значений CodeNOT PHP 2 28.03.2011 12:01
Удаление повторяющихся значений в строке aimk0 Помощь студентам 7 11.10.2010 16:58
Подсчет повторяющихся значений поля JSilver БД в Delphi 9 04.03.2009 10:34
Поиск повторяющихся значений Flangini Microsoft Office Excel 23 22.02.2008 15:57