Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > работа со StringGrid


Автор: Свят86 17.2.2009, 08:17
здравствуйте!
у меня на форме очень много StringGridов и мне нужно проводить их обработку, действия почти все одинаковые и легко можно сделать все через циклы, подскажите можно ли производить обработку в циклах и если да то как это сделать??? я имею ввиду чтоб не писать StringGrid1,StringGrid2,StringGrid3,StringGrid4, а сделать это церез цикл!!! заранее спасибо!!!

Автор: Usper 17.2.2009, 08:53
Можно, например так:
Код

#include <vector>

...

std::vector <TStringGrid*> SGList;
SGList.push_back(StringGrid1);
SGList.push_back(StringGrid2);
SGList.push_back(StringGrid3);

...

for(int count=0; count<SGList.size(); count++)
        SGList[count]->Cells[1][1]="StringGrid"+IntToStr(count);

Автор: YanTsys 17.2.2009, 09:00
А в чем собственно проблема?
Идете в header file своей формы, в разделе public: описания класса формы добавляете
Код

TStringGrid *MyStringGrid[100];


В событии FormCreate прописываете
Код

MyStringGrid[0]=StringGrid1;
MyStringGrid[1]=StringGrid2;
MyStringGrid[2]=StringGrid3;
MyStringGrid[3]=StringGrid4;

и т.д. указываете все гриды подлежащие обработке

потом вместо StringGrid3->Cells[2][3] можно писать StringGrid[2]->Cells[2][3]

Если гриды создаете динамически то лучше использовать TList

Автор: taiven 17.2.2009, 13:24
вот, на примере TMemo
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TMemo *memo;
    for(int i = 1; i <= 3; i++)
    {
        memo = dynamic_cast<TMemo*>(FindComponent("Memo" + AnsiString(i)));
        memo->Text = i;
    }
}

Автор: Свят86 17.2.2009, 22:00
всем огромное спасибо за помощь!!! все получилось!!! smile)))))

Автор: Свят86 26.2.2009, 22:43
а еще влпросик если мне с первой формы нужно управлять стринг гридами со второй??? то как мне это сделать??? ведь при обработке FormCreate первой формы вторая еще не была создана!!! как быть???

Добавлено через 35 секунд
я в том плане чтобы также обработку массва стринг гридов сделать!!!

Автор: mrbrooks 27.2.2009, 08:40
Цитата(Свят86 @  26.2.2009,  22:43 Найти цитируемый пост)
а еще влпросик если мне с первой формы нужно управлять стринг гридами со второй???

заинклюдить юнит с формой 2 в юните с формой 1 (Alt-F11) 


Автор: Свят86 28.2.2009, 01:57
немножко не так и со своими особенностями но я все сделал!!! всем спасибо за помощьььь!!!!!!!!!!!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)