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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 18:29   #1
Rainkhz
 
Регистрация: 25.05.2010
Сообщений: 9
Вопрос Сравнивание ячеек двух таблиц

Всем доброго времяни суток!
Помогите в решении задачи:
Два стринггрида, при нажатии на баттон в ячейках генерируются случайные семволы, а при нажатии на второй баттон они должны сравниваться друг с другом, и если значения совпадают подсвечиваться.
Rainkhz вне форума Ответить с цитированием
Старый 29.05.2010, 19:08   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

принцип
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
begin
randomize;
//включаем прорисовку по умолчанию
StringGrid1.DefaultDrawing:=True;
StringGrid2.DefaultDrawing:=True;

//параметры для 1
StringGrid1.ColCount:=5;
StringGrid1.RowCount:=5;
StringGrid1.FixedCols:=0;
StringGrid1.FixedRows:=0;
//параметры для 2
StringGrid2.ColCount:=5;
StringGrid2.RowCount:=5;
StringGrid2.FixedCols:=0;
StringGrid2.FixedRows:=0;
// заполняем 1
for x := 0 to StringGrid1.ColCount - 1 do
for y := 0 to StringGrid1.RowCount -1 do
StringGrid1.Cells[x,y]:=inttostr(Random(50));
// заполняем 2
for x := 0 to StringGrid2.ColCount - 1 do
for y := 0 to StringGrid2.RowCount -1 do
StringGrid2.Cells[x,y]:=inttostr(Random(50));

end;

procedure TForm1.Button2Click(Sender: TObject);
var
x,y,z,j:integer;
begin
//отключаем прорисовку по умолчанию
StringGrid1.DefaultDrawing:=false;
StringGrid2.DefaultDrawing:=false;
//ищем  рисуем
for x := 0 to StringGrid1.ColCount - 1 do
for y := 0 to StringGrid1.RowCount -1 do
for z := 0 to StringGrid2.ColCount - 1 do
for j := 0 to StringGrid2.RowCount -1 do
if StringGrid1.Cells[x,y]=StringGrid2.Cells[z,j] then
begin
 StringGrid1.Canvas.FillRect(StringGrid1.CellRect(x,y));
 StringGrid1.Canvas.Brush.Color:=clYellow;
 StringGrid1.Canvas.TextOut(StringGrid1.CellRect(x,y).Left+5 , StringGrid1.CellRect(x,y).Top+3 , StringGrid1.Cells[x, y]);
 StringGrid2.Canvas.FillRect(StringGrid2.CellRect(z,j));
 StringGrid2.Canvas.Brush.Color:=clYellow;
 StringGrid2.Canvas.TextOut(StringGrid2.CellRect(z,j).Left+5 , StringGrid2.CellRect(z,j).Top+3 , StringGrid2.Cells[z, j]);
 end;
end;
естественно требуется подумать и доработать.. Но это уже как я думаю ваша задача

ЗЫ подсказка, для прорисовки лучше использовать процедуру DrawCell стринггрида

Последний раз редактировалось vovk; 29.05.2010 в 19:11.
vovk вне форума Ответить с цитированием
Старый 29.05.2010, 19:16   #3
Rainkhz
 
Регистрация: 25.05.2010
Сообщений: 9
По умолчанию

Благодарю!
Rainkhz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь двух таблиц Denmart БД в Delphi 5 19.08.2009 10:58
связь двух таблиц cub Microsoft Office Excel 11 03.08.2009 18:45
Сопоставление двух таблиц Miku Microsoft Office Excel 2 25.07.2009 21:48
Объединение двух таблиц jekis2506 Microsoft Office Excel 5 15.04.2009 08:34