Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TStringList->CustomSort, Ошибка Invalid Pointer Operation 
:(
    Опции темы
r00xus
Дата 21.4.2013, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 15.1.2010

Репутация: нет
Всего: нет



Здравствуйте уважаемые коллеги. Пробую сделать пользовательскую сортировку в TStringList. Вываливается в ошибку "Invalid Pointer Operation" Если функции CustomSort не использовать Item1 и Item2 то программа ошибки не выдает. В чем же дело?
Код ниже. Еще файл прикрепил с исходником
Код

// ---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include <tchar.h>
#include <cstring.h>
// ---------------------------------------------------------------------------

#pragma argsused

enum TGender {
    grMale, grFemale
};

class TItem : public TObject {
public:
    int Hight;
    UnicodeString Name;
    TGender Gender;
};

int __fastcall CustomSort(TStringList* List, int Index1, int Index2) {
    TItem *Item1, *Item2;

    Item1 = dynamic_cast<TItem*>(List->Objects[Index1]);
    Item2 = dynamic_cast<TItem*>(List->Objects[Index2]);

    // далее сравниваем
    // ...
}

int _tmain(int argc, _TCHAR* argv[]) {
    TStringList* List = new TStringList;
    TItem* Item;

    List->OwnsObjects = true;

    Item = new TItem;
    Item->Name = "Джон";
    Item->Hight = 171;
    Item->Gender = grMale;
    List->AddObject(Item->Name, Item);

    Item = new TItem;
    Item->Name = "Мэри";
    Item->Hight = 160;
    Item->Gender = grFemale;
    List->AddObject(Item->Name, Item);

    Item = new TItem;
    Item->Name = "Стефан";
    Item->Hight = 181;
    Item->Gender = grMale;
    List->AddObject(Item->Name, Item);

    Item = dynamic_cast<TItem*>(List->Objects[0]);

    List->CustomSort(CustomSort);

    List->Sort();

    List->Free();
}
// ---------------------------------------------------------------------------


Это сообщение отредактировал(а) r00xus - 21.4.2013, 21:49

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  main.cpp 1,33 Kb
PM MAIL   Вверх
Avazart
Дата 22.4.2013, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 6.4.2013

Репутация: нет
Всего: нет



Вероятно TItem плохое название для своего класса...

Добавлено через 54 секунды
А тут
Код

    // далее сравниваем
    // ...

Стоило привести полный код
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0377 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.