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


Автор: visert 28.1.2008, 23:11
Как сделать перенос слова на следующую строку на закладке, свойства caption? а то он тупо длинный получается  smile 

Автор: orthrus 29.1.2008, 06:38
Стандартный PageControl не позволяет такого сделать, нужно использовать сторонние компоненты.

Автор: s1lver 21.5.2008, 21:47
Может я  и не в тему, но просто тему свою не нашел поиском.
Вообщем проблема такая....создаю таб  динамически при открытии 

Код

if(!sOpenDialog1->Execute()) return;
    TTabSheet* pPage = new TTabSheet(PageControl2);
    pPage->PageControl = PageControl2;
    pPage->Name = "tab" + IntToStr(number);
    pPage->Caption = ExtractFileName(sOpenDialog1->FileName);
    TRichEdit* memo=new TRichEdit(pPage);
    memo->Parent=pPage;
    memo->Name="memo"+IntToStr(number);
    memo->Clear();
    memo->Align=alClient;
    memo->BorderStyle=bsNone;
    memo->ScrollBars=ssBoth;



как мне теперь обратится к этому текстовому полю, чтобы можно было выполнить такой код:
Код

SelectAll();


пробовал так:
Код

memo->SelectAll();


но похоже конкретно туплю. smile 

Автор: pandrew 22.5.2008, 10:10
Именно так и надо, memo->SelectAll();
Только надо обеспечить доступ к переменной memo. Сделать ее глобальной к примеру.

Автор: s1lver 22.5.2008, 20:39
если не сложно, можно поподробнее? smile 

Код

int memo=TRichEdit* ;

 smile 

Автор: pandrew 23.5.2008, 09:22
Цитата(s1lver @ 22.5.2008,  20:39)
если не сложно, можно поподробнее? smile 

Код

// в описаниии класса формы вставь
   TRichEdit* memo;
// твой код создания страницы
if(!sOpenDialog1->Execute()) return;
    TTabSheet* pPage = new TTabSheet(PageControl2);
    ...
    memo=new TRichEdit(pPage); // здесь иначе, чем у тебя
    ...
// после отработки можешь в любом месте вызвать
   memo->SelectAll();


Автор: s1lver 23.5.2008, 09:47
Ага, спасибо большое - все работает smile  smile 

Вот еще маленький вопрос по этой же теме. 
Если мне нужно будет обратится к этому же полю с другой формы, то просто написать,к примеру, так:

Код

Form1->memo->SelectAll(); 


ща попробовал так обратится, выдает ошибку

Автор: pandrew 23.5.2008, 13:03
а что за ошибка?

Автор: s1lver 23.5.2008, 17:45
Вот такая ошибка вылезает

[C++ Error] resource.cpp(20): E2316 'memo' is not a member of 'TForm1'

Автор: Jorjio 23.5.2008, 19:44
А что мешает добавить в класс формы? smile 

class TForm1
public:
   TRichEdit* memo;

Автор: s1lver 23.5.2008, 20:03
он мне типа говорит что я пытаюсь сослаться на индентификатор.... и предлагает проверить декларац...

вот что:

[Linker Warning] Public symbol '_memo' defined in both module D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TEST\UNIT1.OBJ and D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TEST\RESOURCE.OBJ

а вот тут вообще безпонятия

или куда добавить?

Код

class TForm1 : public TForm
{   TRichEdit* memo;
__published:    // IDE-managed Components


или так:

Код

private:    // User declarations
public:        // User declarations
TRichEdit* memo;
        __fastcall TForm1(TComponent* Owner);
};

Автор: s1lver 23.5.2008, 20:36
Вот я чего не понял, удалил файл RESOURCE.OBJ и начало все компилится... smile 

Автор: Jorjio 24.5.2008, 10:57
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TRichEdit* memo;
.
.
.
.
.
.
.
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
};

[Linker Warning] Public symbol '_memo' defined in both module D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TEST\UNIT1.OBJ and D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TEST\RESOURCE.OBJ

memo ты объявил в обоих модулях. Потом наверное в одном из них удалил. По уму компилятор и линкер должны были всё заново сделать т.е. сделать новые .OBJ файлы, но не сделали и использовали имеющийся .OBJ файл в котором у тебя не порядок.

Автор: s1lver 24.5.2008, 12:52
Ага, судя по всему так... убрал тот файл, и все заработало smile 

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