Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 1
Регистрация: 13.11.2015
Сообщений: 27
1

Как соединить StringGrid с другим StringGrid (Rad xe8)

19.05.2016, 12:57. Показов 2376. Ответов 10

Author24 — интернет-сервис помощи студентам
Здраствуйте. Проблема заключается в следующем:
Есть таблица которая указана на 1 изображении
дание с которой нада синхронизировать с другой таблицей(рис 2.)
в поле П.І.Б. только под этой надписью + номер напротив П.І.Б.

Вот код которым я питался это сделать но после этого таблица не сохранялась и очень мерцала
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
          TGridDrawState State)
{
//---------------------синхронізація прізвища та номеру-------------
int i=7, j=1;
 
int a=Form2->StringGrid1->RowCount;  //рядки в редагуванні персоналу
int b=Form2->StringGrid1->RowCount+7;   //рядки для обчислення  від 7 до b
int kol=StringGrid1->ColCount-2;//кількість колонок обчислення від 3 до kol
int c=Form2->StringGrid1->RowCount+13;  //всього рядків
int c2=Form2->StringGrid1->RowCount+11;  //краска множення рядків
 
int d=Form2->StringGrid1->RowCount+8; //сумма операції
int e=Form2->StringGrid1->RowCount+10; //множення операції
int kolv=StringGrid1->ColCount-1;//виввод колонок
 
int v2=Form2->StringGrid1->RowCount+12;     //рядок сумми опреаціЙ
int kolv1=StringGrid1->ColCount-3;//колонка виводу сумми операціЙ
//----------------------------номер----------------------------------
  while((i<b)&&(j<a))
 {StringGrid1->Cells[0][i]= Form2->StringGrid1->Cells[0][j]; i++;j++;}
//-----------------------------прізвище-------------------------------
i=8; j=1;
while((i<b)&&(j<a))
 {StringGrid1->Cells[1][i]= Form2->StringGrid1->Cells[1][j]; i++;j++;}
 
 //----------синхронізація рядків------------------------
StringGrid1->RowCount=c;
Компилятор Rad xe8
Миниатюры
Как соединить StringGrid с другим StringGrid (Rad xe8)   Как соединить StringGrid с другим StringGrid (Rad xe8)  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2016, 12:57
Ответы с готовыми решениями:

Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid
Нужно чтобы из Stringgrid1 данные переносились в Stringgrid2 Но ТОЛЬКО ПО УСЛОВИЮ Таблицы...

Как перенести строку из одного StringGrid в столбец другого StringGrid?
Всем добра уважаемые спецы в программировании! Не могу сообразить как сделать следующее в...

Есть 2 StringGrid в С++ Builder, и нужно взять оттуда данные и заполнить ими 3 StringGrid, как бы сложить 2 та
Код C++ void __fastcall TForm1::Button1Click(TObject *Sender) { int i,j; float p,p1; for (i =...

StringGrid и Image возможно ли их соединить ?
У меня есть StringGrid растянутая на всю форму, изначально таблица из 2 строк и по мере прихода...

10
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
19.05.2016, 13:49 2
Событие StringGrid1DrawCell происходит при каждом изменении любой ячейки таблицы. Вы в этом событии полностью переформировываете таблицу. То есть на каждое изменение таблицы происходит полное пересоздание таблицы. Поэтому и мерцает. Удивительно, что вообще не валится.
0
1 / 1 / 1
Регистрация: 13.11.2015
Сообщений: 27
19.05.2016, 14:04  [ТС] 3
а как перенести данные с первой таблицы во вторую под надписю П.І.Б?
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
19.05.2016, 14:30 4
Скопировать в цикле.
1
1 / 1 / 1
Регистрация: 13.11.2015
Сообщений: 27
19.05.2016, 14:42  [ТС] 5
За суть спасибо. А от не очень понимаю как это делаеться(программно).
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
19.05.2016, 16:51 6
Программно вам надо определиться со следующим: по какому событию пересобирать таблицу.
То есть надо выбрать момент, когда данные в таблице изменяются.
Мне неведомо что это за таблицы, когда они заполняются, что это за столбец такой PIB, зачем вообще нужны две таблицы, зачем из них копировать столбец, какова структура всей программы. Поэтому я не могу вам подсказать здесь.

Если, к примеру, в первой таблице список чего-либо, а во второй расширенное описание каждого элемента первой, тогда надо по событию изменения выделенной ячейки первой таблицы и ориентироваться. StringGrid1SelectCell подойдет.
1
1 / 1 / 1
Регистрация: 13.11.2015
Сообщений: 27
19.05.2016, 18:30  [ТС] 7
Копировать текст надо потому что 2 таблица не одна, их штук 20 а роботники одинаковие потому и копирую их
Вызвать надо когда меняються данные вы заметили правильно что надо использовать в StringGrid1SelectCell
Но это я понимаю я только не пойму как именно скопировать дание(сам процес).
Если можно навести пример как скопировать например 2 столбик начиная с 3 рядка в другую таблицу в определьоное место.
Именно пример копирования. И если не сложно вставки.
А и 2 таблица на другой форме.

Добавлено через 40 минут
Ищо добавлю поле П.І.Б. или PIB ето (ФИО) фамилия, имя, отчество. Они сначала заполняют роботников тоисть 1 таблицу, а в 2 таблицу вводят здание напротив работников по каких ведет расчеты.
По сути мне просто надо перенести дание с 1 таблицы в 2 таблицу, но при етом сохранять дание в той и етой таблице.Таблицы связанные с БД(Access).
Если надо могу скинуть исходник.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
20.05.2016, 09:24 8
Цитата Сообщение от Tiger_rv Посмотреть сообщение
навести пример как скопировать например 2 столбик начиная с 3 рядка в другую таблицу в определьоное место.
Именно пример копирования. И если не сложно вставки.
А и 2 таблица на другой форме.
C++
1
2
3
4
5
6
7
8
9
10
11
int NumColumn = 2; // Номер столбеца который копируем
int NumRow    = 3; // Номер строки которую копируем
int MaxRow    = Form1->StringGrid1->RowCount; // Номер последней строки таблицы из которой копируем
 
int PosColumn = 2; // Номер столбца в который копируем
int PosRow    = 2; // Номер строки в которую копируем
 
for( int i=0; i<MaxRow-NumRow; i++ ) // MaxRow-NumRow - это количество ячеек для копирования
  {
  Form2->StringGrid1->Cells[PosColumn][PosRow + i] = Form1->StringGrid1->Cells[NumColumn][NumRow + i];
  }
Цитата Сообщение от Tiger_rv Посмотреть сообщение
По сути мне просто надо перенести дание с 1 таблицы в 2 таблицу
Нет. Это плохой подход. В таблицах должно быть только отображение данных. Барть их надо только лишь из базы (access).
Цитата Сообщение от Tiger_rv Посмотреть сообщение
Если надо могу скинуть исходник.
Весь проект заархивируйте и прикрепите к сообщению. Вместе с базой желательно.
0
1 / 1 / 1
Регистрация: 13.11.2015
Сообщений: 27
20.05.2016, 14:39  [ТС] 9
ссылка на файл он большой тому на хосте
Папку БД нада закинуть на диск С
Компилятор: Rad Studio xe8 (Builder c++)
Пароль: 123
http://rgho.st/8mjwpzSN9

Добавлено через 11 минут
а и в папке Win32\Release есть Exel файл
нада сделать его аналог в С++ только некоторие дороботки нада добавить такие как:
Добавлять людей добавляя формули + База с людьми одна для всех Листов
а и когда вводить № операции, Цена(Вартість) должно подставлять само
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
20.05.2016, 16:35 10
Цитата Сообщение от Tiger_rv Посмотреть сообщение
ссылка на файл он большой тому на хосте
надо было весь мусор удалить, был бы маленький (не всем охота 30 Мб качать, чтобы увидеть временные файлы, создаваемые Билдером) :
Вложения
Тип файла: 7z exel – копія.7z (130.9 Кб, 6 просмотров)
0
1 / 1 / 1
Регистрация: 13.11.2015
Сообщений: 27
20.05.2016, 17:37  [ТС] 11
по сути только заметыл если использивать
C++
1
 {StringGrid1->Cells[0][i]= Form2->StringGrid1->Cells[0][j]; i++;j++;}
то оно копирует силуэт ячейки что ли
но как бы даних там нет там только иллюзия даних
Если б были это дание они б сохранились в БД
0
20.05.2016, 17:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2016, 17:37
Помогаю со студенческими работами здесь

StringGrid заменить один элемент массива другим
Вообщем массив одномерный из 5 элементов,требуется заменить элементы,тоесть допустим элемент номер...

Закрасить определенную ячейку StringGrid-а другим цветом
возможно ли сделать так: чтобы с помощью ТОЛЬКО кнопки (потомучто у меня есть цикл где копирует в...

Вывести данные из StringGrid-ов на двух формах в StringGrid на третьей форме
Помогите,не разбираюсь,только учусь:(:wall:...Вообщем,имеется программа с 3 формами. На первой из...

Необходимо сложить ячейки в столбце Stringgrid и вывести в другой Stringgrid
Необходимо сложить ячейки в столбце Stringgrid и вывести в другой Stringgrid Количество столбцов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru