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

Вниз

Чудеса с TStrings?   Найти похожие ветки 

 
чудак   (2004-07-02 16:56) [0]

Код:
var LBItems:TStrings;
begin
LBItems.add("rerer");
end;

Вылетает с ошибкой "access violation....". Подскажите пожалуйста новичку, что я сделал не так?


 
Тимохов ©   (2004-07-02 16:56) [1]

объект не создал

lbitems := tstringlist.create();


 
Reindeer Moss Eater ©   (2004-07-02 16:57) [2]

Не прочитал хелп


 
Тимохов ©   (2004-07-02 16:57) [3]

на плюсах небось наинали? :)))


 
Digitman ©   (2004-07-02 17:00) [4]


> Вылетает с ошибкой "access violation....".


малацца !... нечего читать незнакомые буквы, следующие в тексте "ошибки" после многоточия... не царское это дело


 
Digitman ©   (2004-07-02 17:03) [5]

особор радует слово "Вылетает"

сразу чувствуется, что равно как и у меня в практике у автора из СиДи-привода вылетает диск ...


 
чудак   (2004-07-02 17:07) [6]

Господа, хорош издевацца над маленькими! :)

"малацца !... нечего читать незнакомые буквы, следующие в тексте "ошибки" после многоточия... не царское это дело"
Ну а что даст продолжение "at adress 0043E238..."?

"lbitems := tstringlist.create();"
Как ни странно - так делал (только без пустых скобочек)... Тогда тоже ошибка: "Abstract Error".


 
Reindeer Moss Eater ©   (2004-07-02 17:08) [7]

"lbitems := tstringlist.create();"
Как ни странно - так делал (только без пустых скобочек)... Тогда тоже ошибка: "Abstract Error".


Не врать.
Ты делал
tstrings.create();"


 
Romkin ©   (2004-07-02 17:08) [8]

чудак  (02.07.04 17:07) [6] Не так ты делал. Смотри внимательно :)))


 
Тимохов ©   (2004-07-02 17:08) [9]


> "lbitems := tstringlist.create();"
> Как ни странно - так делал (только без пустых скобочек)...
> Тогда тоже ошибка: "Abstract Error".

гоните :)))
вы делали tstrings.create();


> Ну а что даст продолжение "at adress 0043E238..."?

например, что ошибка в вашем exe, а не в системной библиотеке user32.dll скажем.


 
чудак   (2004-07-02 17:13) [10]

Ничего я не гоню, говорю как есть:( И не сишник я.. так, самую малость:)

"procedure TForm1.FormShow(Sender: TObject);
var LBItems:TStrings;
begin
LBItems:=TStrings.Create();
LBItems.add("rerer");
end;"

Abstract error (тоже не в системной dll, а в ехе) в строке " LBItems.add("rerer");"

"например, что ошибка в вашем exe, а не в системной библиотеке user32.dll скажем."
Он так и пишет - ошибка в exe.


 
Тимохов ©   (2004-07-02 17:14) [11]


> чудак   (02.07.04 17:13) [10]

глаза протри, чудак:))))


 
чудак   (2004-07-02 17:14) [12]

опс.. там ж tstringLIST... прошу прощения, действительно гнал, выходит:( Пошёл пробовать.


 
Digitman ©   (2004-07-02 17:14) [13]


> чудак   (02.07.04 17:07) [6]
> Господа, хорош издевацца над маленькими! :)


"маленький" - не повод для оправдания отсутствия желания шевелить извилинами, когда делают намек


> что даст продолжение


даст повод сосредоточиться на изучении  пунктов главногго меню среды, где есть направление для поисков ответа на вопрос, что есть "0043E238" и как это реально может помочь в поисках ошибки


 
Тимохов ©   (2004-07-02 17:14) [14]


> Он так и пишет - ошибка в exe.

к тому же по адресу можете найти команду, которая вызвала исключение.


 
чудак   (2004-07-02 17:15) [15]

Работает!!!!!!!!!!
все такие "добрые"... но спасибо, что помогли.


 
Anatoly Podgoretsky ©   (2004-07-02 17:15) [16]

А чудо где?
Вот когда заработает, тогда и будет чудо.


 
чудак   (2004-07-02 17:16) [17]

"к тому же по адресу можете найти команду, которая вызвала исключение."
Лет через 10.. научусь:)


 
Digitman ©   (2004-07-02 17:26) [18]


> чудак   (02.07.04 17:16) [17]


если для тебя Делфи-разработка - не более чем сиюсекундное развлечение или необходимость отмазки в вузовском курсе  - на 10 лет не можешь расчитывать ни ты ни мы ...статья за это предусматривает пожизненный срок


 
чудак   (2004-07-02 17:40) [19]

"статья за это предусматривает пожизненный срок"
???

"если для тебя Делфи-разработка - не более чем сиюсекундное развлечение или необходимость отмазки в вузовском курсе"
Это не так.


 
han_malign ©   (2004-07-02 17:42) [20]

>Лет через 10.. научусь:)
Project Options...->Linker->Map file=Detailed

>"at adress 0043E238..."
00400000 - Image base - отнимаем
остается 0003E238
в SysUtils: code start set by linker to $1000
остается 0002D238

и ещем этот или близкий к нему адрес(что чаще) в, к примеру:
Project1.map:
.................

Line numbers for Unit1(Unit1.pas) segment .text

  278 0001:000066F0   279 0001:000066FC   280 0001:00006707   281 0001:00006710
  282 0001:00006728   284 0001:0000673A   285 0001:0000674A   287 0001:00006760
  313 0001:00006764   314 0001:00006770   315 0001:0000677B   316 0001:00006786
  317 0001:0000678C   318 0001:00006794   320 0001:0000679A   321 0001:000067A2
  322 0001:000067B2   323 0001:000067BA   324 0001:000067BD   325 0001:000067C0
  318 0001:000067C3   327 0001:000067C9   331 0001:000067D0   332 0001:000067EF
  333 0001:000067F3   334 0001:000067F9   335 0001:00006822   336 0001:00006833
  337 0001:00006868   341 0001:0000686C   342 0001:00006875   343 0001:00006886
  344 0001:0000689E   348 0001:000068A4   349 0001:000068C6   350 0001:000068D1
  351 0001:000068D7   352 0001:000068E9   350 0001:000068EC   354 0001:000068F2
  355 0001:00006902   356 0001:0000692A   360 0001:00006930   361 0001:00006952
  362 0001:0000695D   363 0001:00006963   364 0001:00006975   362 0001:00006978
  366 0001:0000697E   367 0001:000069AF   385 0001:000069B4   386 0001:000069D6
  387 0001:000069E2   388 0001:00006A0B   389 0001:00006A3C   390 0001:00006A4F
  391 0001:00006A83   394 0001:00006A88   395 0001:00006A94   396 0001:00006AA5
  397 0001:00006AB2   398 0001:00006AD2   399 0001:00006AF3   402 0001:00006AF8
  403 0001:00006B04   404 0001:00006B11   405 0001:00006B31   406 0001:00006B42
  407 0001:00006B63   408 0001:00006B86   411 0001:00006B8C   412 0001:00006B98
  413 0001:00006BA5   414 0001:00006BBD   415 0001:00006BDA   418 0001:00006BE0
  419 0001:00006BED   420 0001:00006BFA   421 0001:00006C21   422 0001:00006C48
  423 0001:00006C6F   424 0001:00006C8A   427 0001:00006C90   428 0001:00006C9C
  429 0001:00006CA9   430 0001:00006CC4   431 0001:00006CDF   432 0001:00006CFA
  433 0001:00006D15   434 0001:00006D30   435 0001:00006D4B   436 0001:00006D66
  437 0001:00006D7C   441 0001:00006D80   442 0001:00006D8F   444 0001:00006D9F
.................


 
чудак   (2004-07-02 17:57) [21]

Спасибо конечно, но я только совсем начинающий программист. Даже не программист в понятии "кодер", а так - "погулять вышел":) Если реши посвятить этому свою жизнь, тогда буду разбираться в тонкостях.


 
чудак   (2004-07-02 17:57) [22]

всёёёё. Начался флейм:) Всем пожимаю руку и желаю удачи. Пока.


 
Тимохов ©   (2004-07-02 17:59) [23]


> Начался флейм

вы его и начали :(((


 
Romkin ©   (2004-07-02 18:08) [24]

Таки я бы рекомендовал дополнить код Free ;)
List := TStringList.Create;
try
 ... - юзаем List
finally
 List.Free;
end;


 
чудак   (2004-07-02 18:42) [25]

Romkin, спасибо, Вы опередили мой вопрос :) Тож задумался об удалении объекта )


 
Igorek ©   (2004-07-02 19:36) [26]

А я бы рекоммендовал вместо Free использовать FreeAndNil. Даже для локальных переменных. Даже если они потом переедут куда-то код не будет сбоить.

Кроме того вроде надо так:
try
 List := TStringList.Create;
 ... - юзаем List
finally
 FreeAndNil(List);
end;


 
Fay ©   (2004-07-02 19:44) [27]

2Igorek ©   (02.07.04 19:36) [26]

> try
>  List := TStringList.Create;
>  ... - юзаем List
> finally
>  FreeAndNil(List);
> end;

А если List := TStringList.Create; не прокатит?


 
Anatoly Podgoretsky ©   (2004-07-02 20:36) [28]

Ну будет неприятно немного


 
Mim1 ©   (2004-07-02 20:42) [29]


> [26] Igorek ©   (02.07.04 19:36)

Я смотрю вы совсем не учитесь. Вас в такие ошибки уже тыкали  :(.


 
jack128 ©   (2004-07-02 20:42) [30]


> try
>  List := TStringList.Create;
>  ... - юзаем List
> finally
>  FreeAndNil(List);
> end;

во первых строку List := TStringList.Create; - нужно вынести за пределы блока try finally
List := TStringList.Create;
try
 // ... - юзаем List
finally
 FreeAndNil(List);
end;

во вторых всё, что ты говорил про FreeAnNil будет работатьь только если дополнить код условием
if not Assigned(List) then
 List := TStringList.Create;

а это уже излишества..


 
Тимохов ©   (2004-07-02 23:16) [31]

Igorek ©   (02.07.04 19:36) [26]
учите числа с плавующей точкой, с советами пока погодите :)))))))))))


 
Style ©   (2004-07-03 00:01) [32]

Я бы назвал эту ветку так:
Чудак и TStrings ;)


 
GuAV ©   (2004-07-03 00:10) [33]

jack128 ©   (02.07.04 20:42) [30]
А ты еще забыл сказать, что FreeAndNil - тоже излишество, если List создается только здесь. А он имхо ваще тут за локальную переменную.


 
Marser ©   (2004-07-03 01:26) [34]


> Anatoly Podgoretsky ©   (02.07.04 20:36) [28]
> Ну будет неприятно немного

:-)
Потом пройдет


> чудак

Главный совет - вместо абстрактного TStrings использовать TStringList - прикладного его потомка.



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

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

Наверх




Память: 0.53 MB
Время: 0.032 c
1-1088799088
Алексей
2004-07-03 00:11
2004.07.18
Как правильно определить индекс в RichEdit?


1-1089204255
гость
2004-07-07 16:44
2004.07.18
Директория приложения


3-1087551104
asa
2004-06-18 13:31
2004.07.18
поиск


8-1081456553
CAHEK
2004-04-09 00:35
2004.07.18
SWF из ресурса???


1-1088687372
wasabi
2004-07-01 17:09
2004.07.18
Внутреннее представление формата Extended





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