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

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

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


oracled ©   (2008-11-28 12:42:00) 

В консольном приложении пытаюсь создать объект 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
Подскажите в чём может быть загвоздка?


Anatoly Podgoretsky   (2008-11-28 17:02:00) [1]

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

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


Ega23   (2008-11-28 14:20:00) [2]


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


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


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


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

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


oracled   (2008-11-28 13:32:00) [4]

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


Ega23   (2008-11-28 13:25:00) [5]


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


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


oracled   (2008-11-28 13:23:00) [6]

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

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


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


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


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


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


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


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


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

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


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

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


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

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

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


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

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


oracled   (2008-11-28 12:50:00) [13]

Palladin
Спасибо!


Palladin   (2008-11-28 12:49:00) [14]

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


oracled   (2008-11-28 12:49:00) [15]

Сделал так:

var
st:TStringList;
begin
...


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


oracled   (2008-11-28 12:47:00) [16]

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


oracled   (2008-11-28 12:45:00) [17]

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


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

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

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

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


Palladin   (2008-11-28 12:43:00) [19]

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


Наверх

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