Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.11;
Скачать: CL | DM;

Вниз

Консольное приложение, пытаюсь создать объект TString   Найти похожие ветки 

 
oracled ©   (2008-11-28 12:42) [0]

В консольном приложении пытаюсь создать объект TString для того, чтобы манипулировать многострочными частями, но почему-то не получается.

Делаю так

program Project1;

{$APPTYPE CONSOLE}

uses
 SysUtils,
 Windows,
 Forms,
 Dialogs,
 StdCtrls,
 Controls;
var
st:TString;
begin

st:= TString.Create(nil);

end.


Проблема в строке st:TString;
Пишет ошибку Undeclared identifier

Может быть компонент не подключил в Uses ?
Однако взял все компоненты из успешного консольного поекта где работает объект Tmemo, а в нём ведь фигурирует и TString
Подскажите в чём может быть загвоздка?


 
Palladin ©   (2008-11-28 12:43) [1]

и что же такое TString ? откуда ты про него узнал? или сам выдумал?


 
Сергей М. ©   (2008-11-28 12:44) [2]

Нет такого компонента.

Есть класс объекта, и зовется он не TString, а TStrings

И создавать следует не TStrings-объект, а TStringList-объект.


 
oracled ©   (2008-11-28 12:45) [3]

ошибочка вышла, конечно же TStrings :)
Однако всё равно пишет Undeclared identifier TStrings


 
oracled ©   (2008-11-28 12:47) [4]

Сергей М.
О как!
А не подскажешь где можно почитать об этом? Может есть какая инфа на примете.
А то везде только о визуальном использовании компонентов...


 
oracled ©   (2008-11-28 12:49) [5]

Сделал так:

var
st:TStringList;
begin
...


Всё-равно пишет ошибку, блин, недопонимаю чего-то


 
Palladin ©   (2008-11-28 12:49) [6]

TStringList + F1
там написано какой модуль


 
oracled ©   (2008-11-28 12:50) [7]

Palladin
Спасибо!


 
Palladin ©   (2008-11-28 12:52) [8]

что за неприязнь такая к кнопке F1 ? там очень много интересного написано


 
oracled ©   (2008-11-28 12:53) [9]

Ура, заработало :) оказывается нужен был модуль Classes

Ведь в принципе можно создать и объект от класса TStrings
просто будет меньше функционала, т.к. TStringList наследует TStrings ?


 
Palladin ©   (2008-11-28 12:53) [10]

в том числе и почему не нужно использовать TStrings


 
oracled ©   (2008-11-28 12:54) [11]

Palladin
да я вообще об этой функции не знал, теперь, разумеется буду активно использовать.
Просто раньше с дельфи не сталкивался, всё на php и т.п. сидел, а тут задача за задачей валится, да и самому уже интересно :)


 
Сергей М. ©   (2008-11-28 12:56) [12]


> об этой функции не знал


О какой такой "функции" ?


 
Сергей М. ©   (2008-11-28 13:03) [13]


> оказывается нужен был модуль Classes


.. и, что самое удивительное, "консольность" или "неконсольность" приложения не имеет к этому ни малейшего отношения)


 
oracled ©   (2008-11-28 13:23) [14]

Сергей М
О функциональности вызова справки если встать на метод и т.п

Ну, если обычное приложение, то просто накидываем компоненты, и модули сами прописываются ,и свойства все на виду, т.е. визуально всё происходит, как-то не серьёзно :)
А так уже видно что сам всем рулишь процессом


 
Ega23 ©   (2008-11-28 13:25) [15]


> Ведь в принципе можно создать и объект от класса TStrings
> просто будет меньше функционала, т.к. TStringList наследует
> TStrings ?


TStrings - абстрактный класс. У него масса абстактных методов, которые перекрываются в потомках. А сделан он для удобства приведения.
На мой взгляд, это недостаток delphi - возможность создания экземпляра абстрактного класса. В каком-нибудь c++ такое компилятор не пропустил бы. Delphi тебе только warning выдаст.
Хотя, с другой стороны, у готовой программы не должно быть варнингов...  :)


 
oracled ©   (2008-11-28 13:32) [16]

Ega23
Вот как оно всё! буду знать, спасибо :)


 
qqq   (2008-11-28 14:03) [17]


> TStrings - абстрактный класс. У него масса абстактных методов,

первое - неверно
второе - верно
но из второго первое не следует


 
Ega23 ©   (2008-11-28 14:20) [18]


> первое - неверно


It depends, как говорят наши вероятные противники.
Смотря что считать абстрактным классом. В Delphi, насколько мне известно, такое понятие отсутствует в принципе (т.к. можно создать экземпляр любого класса). Но с точки зрения ООП, абстрактным классом является тот, у которого есть хотя бы один абстрактный метод. Либо свой, либо не перекрытый от предков.


 
Anatoly Podgoretsky ©   (2008-11-28 17:02) [19]

> Ega23  (28.11.2008 14:20:18)  [18]

По определению слова Аbstract это что то несуществующее, голая абстракция, кроме как для шаблонов не пригодно.



Страницы: 1 вся ветка

Текущий архив: 2009.01.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
8-1189005676
Tehnik(^____^)
2007-09-05 19:21
2009.01.11
Вставляем скрин в TImage


3-1212508863
pavel_guzhanov
2008-06-03 20:01
2009.01.11
Как ускорить обмен между двумя базами?


15-1226817733
Igor20
2008-11-16 09:42
2009.01.11
СтринГлист :) помогите


2-1227794000
oracled
2008-11-27 16:53
2009.01.11
Строка больше 255 символов, как?


2-1227969557
crazy_student
2008-11-29 17:39
2009.01.11
Задача по работе с массивами