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


Автор: kefir01 17.6.2008, 19:20
Не подскажите каким образом можно разместить полученные в результате ADO запроса данные на кнопках если не известно сколько записей в таблице?


Автор: Dmi3ev 17.6.2008, 22:13
не понимаю в чем проблема. считаешь записи в запросе (например), сколько записей, столько кнопок нужно создать, запускаешь цикл (от 1 до кол-ва записей в бд) и создаешь кнопки, добавляя каждой кнопке надпись (значение поля, например). если что-то непонятно, то задавайте уже более конкретные вопросы:
-как создать кнопку программно
-как написать цикл
-как изменить св-во caption

Автор: Dmi3ev 18.6.2008, 14:34
вот как можно создавать кнопки:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int k=0;//для того, чтобы кнопки не накладывались друг на друга ввел переменную, чтобы изменять св-во Top кнопок
TButton *t1[50];// объявление массива кнопок
for (int i=0; i<=49; i++)//в вашем случае надо запускать цикл в зависимости от кол-ва записей в запросе (это количество надо узнать с помощью Count) 
 {
  t1[i]=new TButton(Form1);//создание кнопки
  t1[i]->Parent=Form1;
  t1[i]->Caption=IntToStr(i);//здесь надписью будет являться величина переменной i
  t1[i]->Top=k;//расстояние от верхней границы формы
  k+=20;
 }
Button1->Enabled=false;
}

Автор: kefir01 18.6.2008, 14:48
Огромное спасибо! (хоть вчера к ночи я примерно такой код написал)

Автор: kefir01 19.6.2008, 16:22
Кстати по ходу дела появилась новая проблема - как обрабатывать события для динамически созданных кнопок smile 

upd:
Ступил..

Код

themes[i]->OnClick = ToThemes;

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