Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с TabControl! [D7, XP]


Страницы:   1 2

Vitek2 ©   (2007-09-26 18:40:00) 

Здравствуйте!
Нужно реализовать такой пример:
1.При нажатии кнопки "Создать" добавляется новая вкладка на компаненте TabControl, на этой вкладке создаётся Поле RichEdit#. На каждой вкладке своё поле.
2. А при нажатии кнопки "Сохранить", Текст из RichEdit# Выбраной закладкис помощью диалога сохранения сохраняется в файл.

Некое подобие листов в Excel`е.

Также можно реализовать такое пример через PageControl.


Германн   (2007-09-27 01:52:00) [21]


> Vitek2 ©   (27.09.07 01:42) [16]

Ну и где и какая ошибка?


{RASkov}   (2007-09-27 01:51:00) [22]

> [16] Vitek2 ©   (27.09.07 01:42)

Не правильно делаешь....
Сравни:
> RE:=TRichEdit.Create(Tt);
> with RE do begin

И

> with TRichEdit.Create(Tt) do

Ну и соответственно у тебя в Tt.Tag ничего нет

> Tt.tag:=Integer(RE);


Vitek2   (2007-09-27 01:42:00) [23]

var i:integer;
  RE: TRichEdit;
  Tt: TTabSheet;

procedure TForm1.Button1Click(Sender: TObject);

begin
Tt:=TTabSheet.Create(PageControl1);
Tt.PageControl:=PageControl1;
Tt.Caption:='New';
with TRichEdit.Create(Tt) do
begin
 Parent:=Tt;
 Align:=alClient;
 Tt.tag:=Integer(RE);
end;
PageControl1.ActivePage:=Tt
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
TRichEdit(PageControl1.ActivePage.Tag).Lines.LoadFromFile('1.txt');
end;


Германн   (2007-09-27 01:22:00) [24]


> Что-то не хочет работать выдаёт ошибку при нажатии кнопки.

Показывай код. И сообщай где и какую ошибку выдаёт.


Vitek2   (2007-09-27 01:15:00) [25]

Что-то не хочет работать выдаёт ошибку при нажатии кнопки.


Германн   (2007-09-27 00:40:00) [26]

Измени вышеуказанный пример:
var
 Tt: TTabSheet;
  RE : TRichEdit;
begin
Tt:=TTabSheet.Create(PageControl);
Tt.PageControl:=PageControl;
Tt.Caption:='New';
RE:=TRichEdit.Create(Tt);
with RE do begin
 Parent:=Tt;
Tt.tag:=Integer(RE);
 Align:=alClient;
end;
PageControl.ActivePage:=Tt;
end;


По нажатию кнопки пишешь:
TRichEdit(PageControl.ActivePage.tag).Lines.LoadFromFile(...);


Vitek2   (2007-09-27 00:33:00) [27]

Ну чтоб знать куда помещать текст из файла.
А лучше ответьте на второй вопрос.

> как чтоб при нажатии кнопки в RichEdit активной вкладки
> загружался текст из файла?


Германн   (2007-09-27 00:26:00) [28]


> В этом случае какие имена имеют RichEdit и Вкладки?

А зачем тебе имена?


Vitek2   (2007-09-27 00:00:00) [29]

var Tt: TTabSheet;
begin
Tt:=TTabSheet.Create(PageControl);
Tt.PageControl:=PageControl;
Tt.Caption:='New';
with TRichEdit.Create(Tt) do begin
 Parent:=Tt;
 Align:=alClient;
end;
PageControl.ActivePage:=Tt;
end;

В этом случае какие имена имеют RichEdit и Вкладки?
,,,,,
А вот как чтоб при нажатии кнопки в RichEdit активной вкладки загружался текст из файла?


{RASkov}   (2007-09-26 23:00:00) [30]

> [8] Vitek2 ©   (26.09.07 22:49)
> А как Создать Новую вкладку в PageControl и чтоб в созданой
> вкладке создался Компонент RichEdit.

Примерно так:
var Tt: TTabSheet;
begin
 Tt:=TTabSheet.Create(PageControl);
 Tt.PageControl:=PageControl;
 Tt.Caption:='New';
 with TRichEdit.Create(Tt) do begin
  Parent:=Tt;
  Align:=alClient;
 end;
 PageControl.ActivePage:=Tt;
end;


Vitek2   (2007-09-26 22:49:00) [31]

Спасибо большое.
А как Создать Новую вкладку в PageControl и чтоб в созданой вкладке создался Компонент RichEdit.


Алексей Петухов   (2007-09-26 20:41:00) [32]


> И как програмно создать новый компонент?

Примерно так:

var
 myEdit: TEdit;
begin
 myEdit:=TEdit.create(self);
 myEdit.parent:=self;
end;

вобщем кинь это в onClick какой нибудь кнопке на форме.
ошибки поправь. эх... давненько не брал я в руки шашки :-)

P.S. self это "ссылка" на саму форму (TForm).


{RASkov}   (2007-09-26 20:32:00) [33]

> [5] Vitek2 ©   (26.09.07 20:20)
> А как сделать чтоб файл открывался в новой вкладке

вкладке чего?
Если TabControl - то у него нет как таковых вкладок...
Посмотри внимательно код из [3].... Там есть указание конкретной "вкладки" TabControl'а...
Memo1.Lines.LoadFromFile(TabContol1.Tabs[TabControl1.TabIndex]);
Смотри:
Memo для всех вкладок общее, а в зависимости выбора закладки у TabContol'а, в него грузится файл, имя которого указано в названии закладки.

> И как програмно создать новый компонент?

Ты вопросы смотрел соседние? Тут только про создание и говорят последнее время...
:)


Vitek2   (2007-09-26 20:20:00) [34]

Я разобрался.Все работает. Опечатка была в сравке. Сразу и не заметил. А как сделать чтоб файл открывался в новой вкладке.

И как програмно создать новый компонент?
Помогите плиз.


{RASkov}   (2007-09-26 20:13:00) [35]

> [3] Vitek2 ©   (26.09.07 19:53)
> Только вот он что-то не работает.

Не верю.
Надеюсь в OpenDialog1 выбраны только текстовые файлы?


Vitek2   (2007-09-26 19:53:00) [36]

В справке Делфи есть такой пример:
procedure TForm1.Button1Click(Sender: TObject);

begin
 OpenDialog1.Options := [ofAllowMultiSelect, ofFileMustExist, ofHideReadOnly ];
 if OpenDialog1.Execute then
 begin
   TabControl1.Tabs.Assign(OpenDialog1.Files);
   Memo1.Lines.LoadFromFile(TabContol1.Tabs[TabControl1.TabIndex]);
 end;

end;


Только вот он что-то не работает.


Vitek2   (2007-09-26 18:52:00) [37]

1.Чтоб вкладка создавалась ВМЕСТЕ с RichEdit.
2.Текст должен сохранятся из RichEdit с выбраной вкладке.
Нужен код. Как мне такое реализовать?


Kolan   (2007-09-26 18:41:00) [38]

> Также можно реализовать такое пример через PageControl.

Спасибо что разрешил.

Где вопрос?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо