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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.07.2012, 11:09
Pcrepair
 
Сообщения: n/a
По умолчанию ПОчему ДЕЛФИ без спроса создает-уничтожает TStringList?

Добрый день. есть код:

Код:
uses uTransformText, uGlobalVariables; (*внешние модули*)

procedure TForm1.Button1Click(Sender: TObject);
var DataIn,DataOut : TStringList;
begin
    DataIn := TStringList.Create;
    DataOut := TStringList.Create;
    DataIn.Text := Memo1.Text; (*просто ввод строк из МЕМО в ПЕРЕМ*)
       TransformText(DataIn, DataOut); (*вызов основной ПРОЦ обработки текста*)
    gRequestStrings := DataOut; (*Перенос строк запроса в ГлобПерем*)
    //ShowMessage(gRequestStrings.Text); (*вот тут строки есть*)
    Memo1.Text := DataOut.Text; (*контрольное отображение результата*)
    DataIn.Free;
    DataOut.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   //gRequestStrings := TStringList.Create; (*и без инициализации ГлобПЕрем работает*)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage(gRequestStrings.Text); (*вот тут ничего нет*)
end;
1. нажимает на кнопку1, строки копируются из МЕМО1 в ПЕРЕМ, обрабатываются и возвращаются. тут все нормально. в ГлобПЕрем gRequestStrings строки есть
2. нажимаем на кнопку2. по идее в gRequestStrings должны сохранятся данные, но их там нет. кроме того почемуто нет необходимости в создании gRequestStrings при запуске программы

ВОПРОС:
Что получается? ДЕЛФИ без разрешения создает-уничтожает gRequestStrings при нажатии кнопки1?
З.Ы. только не надо о вреде ГлобПерем. это чиста учебный код, для изучения ДЕЛФИ
Ответить с цитированием
  #2  
Старый 01.07.2012, 11:23
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

все объекты это указатели
Код:
gRequestStrings := DataOut; (*Совсем не перенос строк*)
...
DataOut.Free; // равносильно gRequestStrings.Free;
Ответить с цитированием
  #3  
Старый 01.07.2012, 11:57
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Assign или x.text:=y.text
Ответить с цитированием
Этот пользователь сказал Спасибо ALexandr555 за это полезное сообщение:
Pcrepair (01.07.2012)
  #4  
Старый 02.07.2012, 13:04
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

+AddStrings:
Код:
var
  AStringList: TStringList;
begin
  AStringList:=TStringList.Create;
  AStringList.AddStrings(Memo1.Lines);
  Memo2.Lines.AddStrings(AStringList);
  AStringList.Free;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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