Pan-SQL |
Отправлено: 01.11.2006, 09:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Здравствуйте! Подскажите, как программно создать ToolButton на ToolBar. Заранее благодарен |
|
Valdemar |
Отправлено: 01.11.2006, 13:05 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Читайте help.
Пример взят из справки:
CODE | void AddButtons(TToolBar *pToolBar, TStringList *pCaptions)
{
for (int i = 0; i < pCaptions->Count; i++)
{
TToolButton *pButton = new TToolButton(pToolBar);
pButton->Parent = pToolBar;
pButton->Caption = pCaptions->Strings[i];
if (pButton->Caption == "|")
pButton->Style = tbsSeparator;
else
pButton->Style = tbsButton;
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TToolBar *pToolBar = new TToolBar(this);
pToolBar->Parent = this;
TStringList *pCaptions = new TStringList();
pCaptions->Add("New");
pCaptions->Add("Save");
pCaptions->Add("|");
pCaptions->Add("Cut");
pCaptions->Add("Copy");
pCaptions->Add("Paste");
AddButtons(pToolBar, pCaptions);
delete pCaptions;
pToolBar->ShowCaptions = True;
pToolBar->Height = 40;
} | |
|
Pan-SQL |
Отправлено: 28.11.2006, 14:14 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Спасибо! Заработало! Можно ли программно на эту кнопенцию поместить пикту (пиктограмму)? |
|
Evil_Smile |
Отправлено: 28.11.2006, 15:41 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 57
|
Немного модифицировать код из help-а
CODE |
void AddButtons(TToolBar *pToolBar, TStringList *pCaptions)
{
for (int i = 0; i < pCaptions->Count; i++)
{
TToolButton *pButton = new TToolButton(pToolBar);
pButton->Parent = pToolBar;
pButton->Caption = pCaptions->Strings[i];
if (pButton->Caption == "|")
{
pButton->Style = tbsSeparator;
pButton->ImageIndex = -1;// для разделителя картинка не нужна
}
else
{
pButton->Style = tbsButton;
pButton->ImageIndex = 1;// номер картинки с 0
}
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TToolBar *pToolBar = new TToolBar(this);
pToolBar->Parent = this;
pToolBar->Images = ImageList1; // прикрепляем к toolbar-у уже заполненый imagelist
TStringList *pCaptions = new TStringList();
pCaptions->Add("New");
pCaptions->Add("Save");
pCaptions->Add("|");
pCaptions->Add("Cut");
pCaptions->Add("Copy");
pCaptions->Add("Paste");
AddButtons(pToolBar, pCaptions);
delete pCaptions;
pToolBar->ShowCaptions = True;
pToolBar->Height = 40;
|
|
|
Pan-SQL |
Отправлено: 26.12.2006, 14:44 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Можно ли каким-либо образом переменную класса TToolButton объявить как глобальную, т. е. в разделе public? |
|
olegenty |
Отправлено: 26.12.2006, 15:00 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
чё-то не наблюдаю связи между глобальностью и public.
да, можно. таким же образом, как и в любом другом месте.
|
|
Pan-SQL |
Отправлено: 26.12.2006, 15:47 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Объявляю в заголовочном файле:
public
TToolBar *pToolBar;
Компилятор выдает ошибку |
|
olegenty |
Отправлено: 26.12.2006, 15:57 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
какую? (всегда, когда говоришь об ошибке компилятора, не забывай её озвучивать, здесь телепатов нет)
двоеточие после public не пробовал ставить?
|
|
Pan-SQL |
Отправлено: 16.01.2007, 14:43 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
На форме имеется кнопка. Если переменная типа TtoolButton объявлена внутри события:
TToolButton *tbn=new TToolButton(Application);
tbn->Parent=MyTrackBar->ToolBar1;
tbn->AutoSize=false;
tbn->Height=50;
tbn->Width=200;
tbn->Visible=true;
все работает нормально, но когда я выношу строку TToolButton tbn в заголовочный файл в раздел public, то получаю сообщение: Type name expected
|
|