Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 19:27   #1
lena pryadun
Новичок
Джуниор
 
Регистрация: 27.05.2012
Сообщений: 3
Восклицание Реализовать сортировку строк по заданному столбцу для каждой таблицы

помогите разобраться с заданием, идей нет вообще никаких(

Реализовать сортировку строк по заданному столбцу для каждой таблицы

созданна форма, на форме таблица. вот код таблицы
Код:
void TfmPassengerTable::Refresh()
{
        lvPassenger->Clear();
        TPassenger *passenger;
        TListItem *item;
        for (int i=0; i<MainForm->Passenger->Count; i++)
        {
                passenger = (TPassenger *)MainForm->Passenger->Items[i];
                item = lvPassenger->Items->Add();
                item->Caption = passenger->Passport;
                item->SubItems->Add(passenger->Fio);
                item->SubItems->Add(passenger->Birthday.FormatString("dd.mm.yyyy"));
                item->SubItems->Add(passenger->Nationality);
        }
        if (lvPassenger->Items->Count > 0)
        {
                lvPassenger->Items->Item[0]->Selected = true;
                lvPassenger->Items->Item[0]->Focused = true;
                btAdd->Enabled = true;
                btChange->Enabled = true;
                btDelete->Enabled = true;
        }
        else
        {
        btChange->Enabled = false;
        btDelete->Enabled = false;
        }


}
//---------------------------------------------------------------------------

void __fastcall TfmPassengerTable::FormClose(TObject *Sender,
      TCloseAction &Action)
{      
	Action = caFree;
}
//-----------------------------------------------------------------------------

void __fastcall TfmPassengerTable::btAddClick(TObject *Sender)
{
        // Создание и выделение памяти для графического окна
        TfmPassenger *fmPassenger = new TfmPassenger(this);
        // Отображение графического окна
        if (fmPassenger->ShowModal() == mrOk)
        Refresh();
        // Удаление окна
        delete fmPassenger;
}
//---------------------------------------------------------------------------

void __fastcall TfmPassengerTable::btChangeClick(TObject *Sender)
{
        if (lvPassenger->Selected == NULL)
                return;
        unsigned int Passport = (unsigned int)lvPassenger->Selected->Caption.ToInt();
        //создание и выделение памяти для графического окна
        TfmPassenger *fmPassenger = new TfmPassenger(this, Passport);
        //отображение графического окна
        if (fmPassenger->ShowModal() == mrOk)
                Refresh();
        //удаление окна
        delete fmPassenger;
}
//---------------------------------------------------------------------------

void __fastcall TfmPassengerTable::btDeleteClick(TObject *Sender)
{
        if (Application->MessageBoxA("Вы действительно хотите удалить выбранную строку?", "Внимание", MB_OKCANCEL) == IDCANCEL)
        return;

        if (lvPassenger->Selected == NULL)
        return;

        unsigned int Passport = lvPassenger->Selected->Caption.ToInt();
        TPassenger *passenger;
        //поиск в таблице пассажиров строки с указанным значением ПК = Passport
        for (int i = 0; i<MainForm->Passenger->Count; i++)
        {
                passenger = (TPassenger *)MainForm->Passenger->Items[i];
                if (passenger->Passport == Passport)
                break;
        }
        //исключение указателя из общего списка строк таблицы
        MainForm->Passenger->Remove(passenger);
        //освобождение памяти
        delete passenger;

        Refresh();

}
//---------------------------------------------------------------------------

void __fastcall TfmPassengerTable::lvPassengerSelectItem(TObject *Sender,
      TListItem *Item, bool Selected)
{
    if (Item == NULL || Selected == false)
        return ;

    // Получение индекса выделенной строки
    int index = lvPassenger->Items->IndexOf(Item);
    TPassenger *passenger;
    // Получение значения выделенной строки
    passenger = (TPassenger *)MainForm->Passenger->Items[index];
    // Извлечение значения фотографии из выделенной строки и установка фотографии в графический объект
    imPhoto->Picture->Bitmap = passenger->Photo;
}
-----------------------------------------------------------
помогите пожалуйста написать код к заданию( если можно с комментариями

Последний раз редактировалось Stilet; 27.05.2012 в 19:46.
lena pryadun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить сортировку таблицы по одному столбцу, выбирая новый столбец С++ Johnny_Grunge Помощь студентам 0 27.01.2012 17:49
Изображение и кнопки для каждой строки таблицы БД Sasha_S Компоненты Delphi 4 03.05.2011 18:13
Сортировка строк по столбцу Ilya_L Microsoft Office Excel 2 19.06.2010 06:36
Отчет для каждой записи таблицы lilu1559 Microsoft Office Access 2 19.05.2010 18:16
Расчет по столбцу таблицы zallza Помощь студентам 0 09.03.2010 22:34