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