[an error occurred while processing this directive]
я знал, что будет продолжение, поэтому +
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено iosifk. 04 сентября 2006 г. 14:14
В ответ на: 2 iosifk по поводу динамических кнопок(+) отправлено misyachniy 04 сентября 2006 г. 14:00

{// пример создания кнопок, символизирыющих несколько микросхем в JTAG-цепочеке
// если не кнопки, то можно сделать "Панели" или что-то в этом роде.
// если надо одну картинку на кнопку, то можно взять продвинутые кнопки - SpeedBtn BitBtn или что-то в этом роде
// потом я делал так - я на форме помещал невидимую кнопку, например под какой - нибудь панелью и перенаправлял на нее - вот это OnClick = FloorPlanForm->Button1Click;

// а в обработке этой невидимую кнопки делал обработчик чтобы найти того, кто psg[i]==Sender...

int Btns = StrToInt(Edit55->Text); // в окне записано, сколько кнопок надо создать...

if(BtnsDone!=0)
{
for(int i=0; i {
delete psg[i];
}
}

// открыть порт
for(int i=0; i {
psg[i] = new TButton(this);
psg[i]->Parent = Form1->GroupBox9;
psg[i]->Name = AnsiString("pts") + IntToStr(i);

SetWindowLong(psg[i]->Handle,GWL_STYLE,GetWindowLong(psg[i]->Handle,GWL_STYLE)|BS_MULTILINE);
psg[i]->Caption="Chip "+IntToStr(i) + "\nLoaded - ****\nManuf - ****\nIr Scan - ****\nMy Regs - ***"; // это пример многострочной надписи на кнопке...

psg[i]->Align = alNone;
psg[i]->Height = 80;
psg[i]->Width = (Form1->GroupBox9->Width-10)/Btns;
psg[i]->Top = 20;
psg[i]->Left = 5 + (psg[i]->Width)*i;
psg[i]->ShowHint=true;
psg[i]->Hint="Chip "+IntToStr(i) + "\nLoaded - ****\nManuf - ****\nIr Scan - ****\nMy Regs - ***";
/*
psg[i]->Tag = i;
//-----------------------------------------------------------
psg[i]->OnClick = FloorPlanForm->Button1Click;

а в обработке фиктивной и невидимой кнопки делаем
void __fastcall TFloorPlanForm::Button1Click(TObject *Sender)

и потом ищем, какая psg[i]-кнопка была нажата

for (int i=0;i<(Btns);i++) //Btns - это число кнопок если кликнули по кнопке
{if(psg[i]==Sender)
номер кнопки - i, И соотв. можно сказать, что в массиве эта кнопка имеет = IntToStr(psg[i]->Tag);
}

*/
}
BtnsDone = Btns;


}

Может это и криво, но так у меня работало.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание