Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
ВнизПомогите с TabControl! Найти похожие ветки
← →
Vitek2 © (2007-09-26 18:40) [0]Здравствуйте!
Нужно реализовать такой пример:
1.При нажатии кнопки "Создать" добавляется новая вкладка на компаненте TabControl, на этой вкладке создаётся Поле RichEdit#. На каждой вкладке своё поле.
2. А при нажатии кнопки "Сохранить", Текст из RichEdit# Выбраной закладки с помощью диалога сохранения сохраняется в файл.
Некое подобие листов в Excel`е.
Также можно реализовать такое пример через PageControl.
← →
Kolan © (2007-09-26 18:41) [1]> Также можно реализовать такое пример через PageControl.
Спасибо что разрешил.
Где вопрос?
← →
Vitek2 © (2007-09-26 18:52) [2]1.Чтоб вкладка создавалась ВМЕСТЕ с RichEdit.
2.Текст должен сохранятся из RichEdit с выбраной вкладке.
Нужен код. Как мне такое реализовать?
← →
Vitek2 © (2007-09-26 19:53) [3]В справке Делфи есть такой пример:
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;
Только вот он что-то не работает.
← →
{RASkov} © (2007-09-26 20:13) [4]> [3] Vitek2 © (26.09.07 19:53)
> Только вот он что-то не работает.
Не верю.
Надеюсь в OpenDialog1 выбраны только текстовые файлы?
← →
Vitek2 © (2007-09-26 20:20) [5]Я разобрался.Все работает. Опечатка была в сравке. Сразу и не заметил. А как сделать чтоб файл открывался в новой вкладке.
И как програмно создать новый компонент?
Помогите плиз.
← →
{RASkov} © (2007-09-26 20:32) [6]> [5] Vitek2 © (26.09.07 20:20)
> А как сделать чтоб файл открывался в новой вкладке
вкладке чего?
Если TabControl - то у него нет как таковых вкладок...
Посмотри внимательно код из [3].... Там есть указание конкретной "вкладки" TabControl"а...
Memo1.Lines.LoadFromFile(TabContol1.Tabs[TabControl1.TabIndex]);
Смотри:
Memo для всех вкладок общее, а в зависимости выбора закладки у TabContol"а, в него грузится файл, имя которого указано в названии закладки.
> И как програмно создать новый компонент?
Ты вопросы смотрел соседние? Тут только про создание и говорят последнее время...
:)
← →
Алексей Петухов (2007-09-26 20:41) [7]
> И как програмно создать новый компонент?
Примерно так:
var
myEdit: TEdit;
begin
myEdit:=TEdit.create(self);
myEdit.parent:=self;
end;
вобщем кинь это в onClick какой нибудь кнопке на форме.
ошибки поправь. эх... давненько не брал я в руки шашки :-)
P.S. self это "ссылка" на саму форму (TForm).
← →
Vitek2 © (2007-09-26 22:49) [8]Спасибо большое.
А как Создать Новую вкладку в PageControl и чтоб в созданой вкладке создался Компонент RichEdit.
← →
{RASkov} © (2007-09-26 23:00) [9]> [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-27 00:00) [10]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 активной вкладки загружался текст из файла?
← →
Германн © (2007-09-27 00:26) [11]
> В этом случае какие имена имеют RichEdit и Вкладки?
А зачем тебе имена?
← →
Vitek2 © (2007-09-27 00:33) [12]Ну чтоб знать куда помещать текст из файла.
А лучше ответьте на второй вопрос.
> как чтоб при нажатии кнопки в RichEdit активной вкладки
> загружался текст из файла?
← →
Германн © (2007-09-27 00:40) [13]Измени вышеуказанный пример:
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 01:15) [14]Что-то не хочет работать выдаёт ошибку при нажатии кнопки.
← →
Германн © (2007-09-27 01:22) [15]
> Что-то не хочет работать выдаёт ошибку при нажатии кнопки.
Показывай код. И сообщай где и какую ошибку выдаёт.
← →
Vitek2 © (2007-09-27 01:42) [16]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;
← →
{RASkov} © (2007-09-27 01:51) [17]> [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);
← →
Германн © (2007-09-27 01:52) [18]
> Vitek2 © (27.09.07 01:42) [16]
Ну и где и какая ошибка?
← →
Германн © (2007-09-27 01:55) [19]
> {RASkov} © (27.09.07 01:51) [17]
Ещё раз не приметил слона. Да ещё и розового :-)
← →
Vitek2 © (2007-09-27 01:58) [20]Я просто думал что это одно и тоже. Теперь всё работает. Спасибо большое.
← →
Германн © (2007-09-27 02:03) [21]
> Ещё раз не приметил слона. Да ещё и розового :-)
Склероз, блин. Перепутал слона с козой. А слон был:
"Крылья как у пчелы. Вместо ушей - цветы" :-)
Но суть была правильная:
"Даром преподаватели время со мною тратили!"
:-)
← →
Vitek2 © (2007-09-27 02:08) [22]такс... а что надо попровить чтоб вместо сохранением под именем 1.txt появлялось диалоговое окно SaveDialog?
← →
{RASkov} © (2007-09-27 02:11) [23]> [19, 21] Германн © (27.09.07 01:55)
Бывает :)
> Vitek2
Кстати в [13] можно и без дополнительной переменной RE.... Все тоже самое но без RE ;)
Это я к тому, что ты в [16] сделал переменные вообще глобальными.... ни к чему это....
> [22] Vitek2 © (27.09.07 02:08)
SaveDialog.Execute ?
← →
Германн © (2007-09-27 02:13) [24]
> Vitek2 © (27.09.07 02:08) [22]
>
> такс... а что надо попровить чтоб вместо сохранением под
> именем 1.txt появлялось диалоговое окно SaveDialog?
А ты разве уже приводил тут своюпроцедуру сохранения/записи в файл? Не припомню что-то. :-)
← →
{RASkov} © (2007-09-27 02:15) [25]> > [22] Vitek2 © (27.09.07 02:08)
>
> SaveDialog.Execute ?
Тьфу....
Ты имеешь ввиду вот это:
> procedure TForm1.Button2Click(Sender: TObject);
> begin
> TRichEdit(PageControl1.ActivePage.Tag).Lines.LoadFromFile("1.txt");
> end;
?
Тогда так:procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog.Execute then
TRichEdit(PageControl1.ActivePage.Tag).Lines.LoadFromFile(OpenDialog.FileName);
end;
Ты сам хоть строчку кода сможешь написать? )
← →
Германн © (2007-09-27 02:21) [26]
> Ты сам хоть строчку кода сможешь написать? )
>
Риторический вопрос.
Кстати, очень важный сейчас для меня.
Вопрос "Что за комиссия, создатель?" меня сейчас волнует более всего.
← →
Vitek2 © (2007-09-27 02:22) [27]Спасибо всем большое.Чтоб я без вас делал.. =)
Вот только интересут что такое with..do, Parent и Tag. Раньше вроде не встречал. или опять что-то забыл... =)
И пойду ка я спать а то учёбу просплю.
← →
Германн © (2007-09-27 02:24) [28]
> Вот только интересут что такое with..do, Parent и Tag. Раньше
> вроде не встречал. или опять что-то забыл... =)
> И пойду ка я спать а то учёбу просплю.
>
Похоже, что ты её слишком часто просыпал!
← →
{RASkov} © (2007-09-27 02:28) [29]> [28] Германн © (27.09.07 02:24)
:) +5
← →
Vitek2 © (2007-09-27 02:29) [30]Кстати ещё не разу не проспал и не прогулял. =)
И между прочим, в колледже, в группе я дальше всех ушёл...как бы это странно не звучало...
← →
{RASkov} © (2007-09-27 02:36) [31]> [30] Vitek2 © (27.09.07 02:29)
> в группе я дальше всех ушёл...
Надеюсь, что не на программера учишься :)
Иначе чего же помнят остальные)
← →
Германн © (2007-09-27 02:42) [32]
> И между прочим, в колледже, в группе я дальше всех ушёл
В лес? Ну тогда понятно, :-)
> {RASkov} © (27.09.07 02:36) [31]
+1
← →
Vitek2 © (2007-09-27 02:44) [33]Это ты к тому что я нечего не понимаю?
Дя я учусь на программера.
У нас очень странная методика обучения программирования вколледже. Многого от туда не унесёшь, так что приходиться самому...
Остальные, точнее большенство вообще не чего не понимают. Лучше бы на менеджеров или юристов пошли.
Вот есть в группе несколько девчёнок(!). Учатся на 4 и 5 а на любой практике полный Null =). Так что оценка не показатель уровня знаний.
← →
Германн © (2007-09-27 02:54) [34]
> Vitek2 © (27.09.07 02:44) [33]
>
> Это ты к тому что я нечего не понимаю?
> Дя я учусь на программера.
> У нас очень странная методика обучения программирования
> вколледже. Многого от туда не унесёшь, так что приходиться
> самому...
>
> Остальные, точнее большенство вообще не чего не понимают.
> Лучше бы на менеджеров или юристов пошли.
> Вот есть в группе несколько девчёнок(!). Учатся на 4 и 5
> а на любой практике полный Null =). Так что оценка не показатель
> уровня знаний.
>
Это всё !"отмазки".
Ты хотя бы русский язык изучи.
← →
Vitek2 © (2007-09-27 02:57) [35]Наверное надо бросить программирование и заняться чем-нибудь другим!?
Что? У меня ошибок много?
← →
Германн © (2007-09-27 03:12) [36]
> Vitek2 © (27.09.07 02:57) [35]
>
> Наверное надо бросить программирование и заняться чем-нибудь
> другим!?
> Что? У меня ошибок много?
>
Возможно надо.Ошибок много. Но не больше, чем у ап в период освоения 10-пальцевого метода. :-)
Или перестань быть чукчей!
← →
Anatoly Podgoretsky © (2007-09-27 07:48) [37]> Vitek2 (27.09.2007 02:29:30) [30]
Жалко ваш колледж
← →
Anatoly Podgoretsky © (2007-09-27 08:37) [38]> Vitek2 (27.09.2007 02:57:35) [35]
Хоть одна трезвая мысль.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.048 c