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

Вниз

Внимание! Exception.   Найти похожие ветки 

 
AL2002   (2002-10-11 01:01) [0]

Переменная List1 типа TStrings выдаёт Exception, когда я ей делаю List1.Clear.
С чего бы это?


 
Suntechnic   (2002-10-11 01:21) [1]

Ну например переменная List1 ссылается на несуществующий объект типа TStrings. Достаточно весомая причина? А для того чтобы получить нормальный ответ надо хотя бы написать что за Exception. Они ж ведь тоже разные бывают...


 
AL2002   (2002-10-11 01:25) [2]

>Suntechnic © (11.10.02 01:21)
То был глюк. После перезагрузки уже ничего не исключается.
Подлость, слов нет. Я полчаса бился.


 
MBo   (2002-10-11 06:50) [3]

Не забыл, что TStrings - абстрактный тип?
Нужно создавать экземпляры класса TStringList


 
AL2002   (2002-10-11 11:03) [4]

>MBo © (11.10.02 06:50)
Как их создавать?


 
Mike_Goblin   (2002-10-11 11:17) [5]

var
MyList:TStrings;
begin
MyList:=TStringList.Create;
end;


 
qube   (2002-10-11 11:18) [6]

AL2002 © (11.10.02 11:03)
TStringList.Create :)


 
Skier   (2002-10-11 11:24) [7]

А вот так ещё круче :)


var
MyList:TStrings;
begin
MyList:=TStringList.Create;
try
//..............
MyList.Clear;
//..............
finally
FreeAndNil(MyList);
end; //try
end;


 
AL2002   (2002-10-11 12:09) [8]

Exception от этого криейта. И до присвоения значения и после.
Ну их в пень.


 
MBo   (2002-10-11 12:48) [9]

>AL2002
Покажи код


 
AL2002   (2002-10-11 14:34) [10]

>MBo © (11.10.02 12:48)
Убил я его.

Но там было так (по памяти):

var
List1,List2:TStrings;
Begin
List1:=ListBox1.Items;
List2:=ListBox2.Items;

If List1<>List2 Then ...

//Пробовал If List1.Text<>List2.Text Then ...
//Пробовал и List1.Create. Где только его не ставил.


Наверное, надо, как Скаер сказал:
MyList:=TStringList.Create;
но было уже позно. Но ничего. Я выжил.


 
Skier   (2002-10-11 14:41) [11]

>AL2002



var
List1:TStrings;
List2:TStrings;

begin
List1:=TStringList.Create;
List2:=TStringList.Create;
try
List1.Text:=ListBox1.Items.Text;
List2.Text:=ListBox2.Items.Text;
If List1.Text<>List2.Text Then ...
finally
FreeAndNil(List1);
FreeAndNil(List2);
end; //try
end;


 
AL2002   (2002-10-11 14:47) [12]

>Skier © (11.10.02 14:41)
Козырно.


 
Skier   (2002-10-11 14:51) [13]

>AL2002
???


 
AL2002   (2002-10-11 14:59) [14]

>Skier © (11.10.02 14:51)
>>AL2002
>???
Да. Это оно.
Теперь хоть буду знать.


Я просто взял, и ListBoxов.Items.Countы проверил.
Зато поумнел. Спасибки. :))


 
Darlock   (2002-10-11 15:23) [15]


var
List1,List2:TStrings;
Begin
List1 :=ListBox1.Items;
List2 :=ListBox2.Items;

If List1.Text<>List2.Text Then ...


тоже должно было бы работать ИМХО...


 
Darlock   (2002-10-11 15:25) [16]

Хотя может и нет, но если подправить

List1,List2 : TStringsList;

то тогда точно заработало бы...


 
qube   (2002-10-11 15:28) [17]

Darlock (11.10.02 15:25)
Точно, причем производительность будет выше.


 
AL2002   (2002-10-14 11:01) [18]

>Skier ©
пришлось таки применить. Работает. :))


 
down   (2002-10-14 11:07) [19]

а зачем вообще List1,2?
if ListBox1.Items.Text <> ListBox2.Items.Text then...


 
AL2002   (2002-10-14 11:26) [20]

>down (14.10.02 11:07)
Не в листбоксах дело.


 
down   (2002-10-14 11:28) [21]

2AL2002
Ну извини, извини...


 
Zemal   (2002-10-14 11:51) [22]

Вот-с... многие только узнают о существовании классов, реализованных ещё в 5 версии :). Кстати, кто-нибудь в курсе, что есть ещё куча классов в модуле Classes? Кстати, там полно таких полезностей, которые в основном никто не юзает :). Кто знает о существовании классов потомков от TList? Например TObjectList? А ведь он позволяет хранить в своих Items не ссылки на объекты (как это можно реализовать в TStringList), а сами объекты! :) Например теже TStringList-ы :). К сведению: он умеет удалять все объекты в своём массиве и очищать память при своём удалении!!!
Почему-то самый популярный класс TStringList... в основном другое никто неиспользует :(... Наверное, когда 8 делфя выйдет, все бросятся на изучение классов 6 версии :). Прикольно. Кстати, никто не юзал 7 делфю? Не смотрел какие классы там нагромоздили на TStrings, TList и TStream?
Весь форум просмотрел и создалось впечатление, что кроме TStringList, и за некоторым исключением TFileStream и TThread, в Делфи больше классов нет!!! Не интересны общей массе другие полезности :(... а Борландовцы так старались...


 
Anatoly Podgoretsky   (2002-10-14 12:49) [23]

AL2002 © (11.10.02 14:34)
В приведенном тобой коде ошибок нет


 
AL2002   (2002-10-14 12:55) [24]

>Anatoly Podgoretsky © (14.10.02 12:49)
Ошибок-то нет. Там ещё нескольких нужных строк тоже нет.


 
Anatoly Podgoretsky   (2002-10-14 13:06) [25]

Так ты их приведи


 
AL2002   (2002-10-14 13:16) [26]

>Anatoly Podgoretsky © (14.10.02 13:06)
Дык, Скайер уже привёл. А я про них и не знал.



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

Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.008 c
14-78640
Dim!S
2002-10-04 13:09
2002.10.24
Складская программа


3-78250
ErmSergey
2002-10-02 11:44
2002.10.24
Русский язык в ADO


14-78608
Стивенс
2002-10-01 13:02
2002.10.24
Delphi 7


1-78418
Chinas
2002-10-11 17:55
2002.10.24
Форма из DLL, как правильно закрыть?


3-78279
TTCustomDelphiMaster
2002-10-02 17:23
2002.10.24
Имя таблицы = 8 символов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский