Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.07.2013, 14:52
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Есть компонент TabControl а на нем рич
Размер максимальных странниц = 100 тоесть размер массива = 100

Скажите какой тип использовать для сохранения текста во время перещелкивания между странницами чтобы потом его можно было вернуть назад или скажите как осуществить способ создания многомерного блокнота меня интересуют странницы и их перещелкивания

с типом разобрался вот массив
Код:
DynamicRichEditPage:Array[1..100] of TStrings;

а вот код сохранения текста рича в массив

Код:
procedure TForm1.TabControl1Change(Sender: TObject);
begin
  DynamicRichEditPage[Form1.TabControl1.TabIndex-1]:=Form1.RichEdit1.Lines;
end;
Но как его обратно вернуть

вот код для создания новых странниц
Код:
Procedure Change_And_Click;
var hjd0,hjd1,hjd2:Integer;
begin
  //Проверяем не равен ли Value меньше чем MinValue
  If (Length(Form1.SpinEdit1.Text)>0) and (Form1.SpinEdit1.Value < Form1.SpinEdit1.MinValue) then Form1.SpinEdit1.Value:=Form1.SpinEdit1.MinValue;
  //Показываем занятый размер на ProgressBar'е
  If Length(Form1.SpinEdit1.Text) > 0 then begin
    hjd0:=Form1.SpinEdit1.Value;
    hjd1:=Form1.SpinEdit1.MaxValue;
    hjd2:=(hjd0*100) div hjd1;
    Form1.PRGB1.Progress:=HJD2;
  end;
  //Создаем новый Tab
  Form1.TabControl1.Tabs.Add(Inttostr(Form1.SpinEdit1.Value)+' '+DynamicLang[51]);
  If Form1.TabControl1.Tabs.Count > form1.SpinEdit1.Value then begin
    repeat
      Form1.TabControl1.Tabs.Delete(Form1.TabControl1.Tabs.Count-1);
    Until Form1.TabControl1.Tabs.Count = Form1.SpinEdit1.Value;
  end;
end;

Происходит он при событии SpinEdit

Последний раз редактировалось M.A.D.M.A.N., 10.07.2013 в 16:27.
Ответить с цитированием
  #2  
Старый 10.07.2013, 16:28
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
lines.text := 'foo bar'
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 10.07.2013, 16:34
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

непонял. такой код вызывает системную ошибку
Код:
DynamicRichEditPage[Form1.TabControl1.TabIndex-1]:=Form1.RichEdit1.Lines;
  Form1.RichEdit1.Lines:=DynamicRichEditPage[Form1.TabControl1.TabIndex-1];

нет в принципе системная ошибка и я даже незна почему

код дерьмо. Как мне из TStrings в TStringList засунуть текст до тогокак таб перещелкницца у компонента TabControl

Последний раз редактировалось M.A.D.M.A.N., 10.07.2013 в 17:13.
Ответить с цитированием
  #4  
Старый 10.07.2013, 17:14
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

У Вас
Код:
DynamicRichEditPage:Array[1..100] of TStrings;
TStrings - это объект, к тому же и абстрактный. Все объекты в Дельфи нужно создавать с помощью вызова конструктора.

Например так
Код:
procedure TForm1.FormCreate(Sender:TObject)
var
  I:Integer;
begin
  for I:=Low(DynamicRichEditPage) to High(DynamicRichEditPage) do
     DynamicRichEditPage[i]:=TStringList.Create;
end;
И соответственно
Код:
procedure TForm1.FormDestroy(Sender:TObject)
var
  I:Integer;
begin
  for I:=Low(DynamicRichEditPage) to High(DynamicRichEditPage) do
     DynamicRichEditPage[i].Free;
end;
И вместо
Код:
DynamicRichEditPage[Form1.TabControl1.TabIndex-1]:=Form1.RichEdit1.Lines;

использовать
Код:
DynamicRichEditPage[Form1.TabControl1.TabIndex-1].Assign(Form1.RichEdit1.Lines);
Здесь
Код:
Form1.RichEdit1.Lines:=DynamicRichEditPage[Form1.TabControl1.TabIndex-1];
Assign можно не использовать, потомучто Lines - это Property, и внутри присваивания Assign уже есть.
Ответить с цитированием
Этот пользователь сказал Спасибо icWasya за это полезное сообщение:
AlexandrV (11.07.2013)
  #5  
Старый 10.07.2013, 17:14
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Прекращаем флуд.
TStrings абстрактный класс.
Я же написал, что можно вызывать свойство text.

Мля, как уже забали со своими блокнтоами несчастными и нежеланием почитать справку, пошариться в интернете.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:49.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025