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

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

Использованние TMemo не для визуального компонента [D7, 2003]


Vyacheslav ©   (2011-11-28 00:14:00) 

Здравствуйте.
Есть необходимость использовать TMemo как переменную для временного хранения буфера работы консольной программы.

Как в Delphi создать экземпляр не визуального обьекта динамически?

Самое простое, что приходит на ум... Обьявляю в глобальных переменных
var tM: TMemo;
...
затем
tM.Lines.Add('Hello');

Вылетает ошибка
Project Project1.exe raised exception class EAccessViolation with message 'Access Violation at address 004628AE' in module 'Project1.exe'. Read of address 00002020'.Process stopped.
Use Step or Run to continue.


Как я понял, надо что-то типа
var tM := new TMemo или create ... ;


Anatoly Podgoretsky   (2011-11-28 12:00:00) [1]

Нас не запугаешь.


Sha   (2011-11-28 11:35:00) [2]

то ли еще будет


Омлет   (2011-11-28 10:54:00) [3]

Какая-то мода пошла, форум использовать в качестве учебника..


Anatoly Podgoretsky   (2011-11-28 09:38:00) [4]


>  Использованние TMemo не для визуального компонента [D7,
>  2003]
var tM: TMemo;
...
затем
tM.Lines.Add('Hello');

А ошибка наверно в трех точках.


KilkennyCat   (2011-11-28 01:47:00) [5]

public
    tS: TStrings;
 end;

var
 Form1: TForm1;

ибо не хрен.


Плохиш   (2011-11-28 01:46:00) [6]


> Vyacheslav   (28.11.11 01:03) [6]

Зачем оно тебе, это программирование?


Плохиш   (2011-11-28 01:45:00) [7]


> Ну когда начнём читать учебники?

Э, дарагой, чë, не знаш, шо они для лохов писаны?


Германн   (2011-11-28 01:32:00) [8]


> Jeer ©   (28.11.11 01:05) [8]

И что это ты сего дни такой добрый, тёзка? Даже про свой ник забыл.
:)


Jeer   (2011-11-28 01:05:00) [9]

ts := TStringList.Create;
...
ts.Add('Hello World !');
..

Caption := ts[0];

..
ts.Free;

// Зачем такие изыски, вот скажи ?


Германн   (2011-11-28 01:04:00) [10]


> Процедура возвращает TStrings. Значит будем пробовать его.

Ну когда начнём читать учебники? Тип TStrings абстрактный!
Хотя не читая учебники и/или хелп этого не понять.
Но в [3] тебе уже почти прямо сказали какой класс нужно использовать.


Vyacheslav   (2011-11-28 01:03:00) [11]

var
tS: TStrings;

Как присвоить tS хоть что угодно?!


Jeer   (2011-11-28 01:01:00) [12]


> Как заставить работать подобный код:


Начни с самого начала  - четкая постановка твоей задачи.
Ответ четкий - получишь, факт.


Vyacheslav   (2011-11-28 00:53:00) [13]

Вобщем, всё верно, я не тот тип исаользую...
Процедура возвращает TStrings. Значит будем пробовать его.

Как заставить работать подобный код:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 tS: TStrings;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 tS.Create;
 tS.Clear;
 tS.Append('Hello!');
 Form1.Caption := tS.Strings[0];
 tS.Destroy;
end;

end.


Amoeba_   (2011-11-28 00:40:00) [14]

Нафига в данном случае TMemo? Чем TStringList не устроил?


Vyacheslav   (2011-11-28 00:27:00) [15]

Программа не консольная.

Некая процедура отдаёт данные параметру с типом TMemo
Визуальн он не нужен в релизе.


Jeer   (2011-11-28 00:15:00) [16]


> Vyacheslav   (28.11.11 00:14)
>
> Здравствуйте.


Госпидя.. до свидания. :)
Мемо-то зачем в консольной программе ?


Наверх

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