![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с TabControl! [D7, XP]
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.
Спасибо что разрешил.
Где вопрос?