Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.01.11;
Скачать: [xml.tar.bz2];

Вниз

Консольное приложение, пытаюсь создать объект 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
15-1226332584
Капибара из гостей
2008-11-10 18:56
2009.01.11
Вопрос по железу


15-1226651963
Поросенок Винни-Пух
2008-11-14 11:39
2009.01.11
Пятничное позитивище


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


15-1226583210
codemaster
2008-11-13 16:33
2009.01.11
Проигрыватель


15-1226691834
DVM
2008-11-14 22:43
2009.01.11
Из C в Pascal. Помогите с переводом.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский