Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Помогите найти ошибку... 
:(
    Опции темы
Crash512
Дата 15.12.2006, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я тут написал... В примере не отображаются значки, хотя писал по книжке. 

З.Ы. Папки и расширения файлов не отображаются преднамеренно=)

Прикрепил исходник...

Код

//---------------------------------------------------------------------------
#include <vcl.h>
#include "FileCtrl.hpp"
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString Dir;         // Отображаемая папка
TListItem *Selected;    // Выделенный элемент
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
// Начальное значение отображаемой папки
Dir = "E:\\Games";
 if (Dir[Dir.Length()] != '\\')
   Dir = Dir + "\\";
 Find();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Открытие папки
 SelectDirectory("Выберите папку", "", Dir);
 if (Dir[Dir.Length()] != '\\')
   Dir = Dir + "\\";
 Find();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ListView1->ViewStyle = vsIcon;  // крупные значки
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
// запоминание выделенного элемента
Selected = ListView1->GetItemAt(X, Y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1DblClick(TObject *Sender)
{
// двойной щелчок на элементе
  if (Selected)
  {
    ShellExecute(Handle, "open", Selected->Caption.c_str(), NULL, NULL, SW_SHOW);
  }
}
//===========================================================================
//=====FIND==================================================================
//===========================================================================
void __fastcall TForm1::Find(void)
{
ListView1->Items->BeginUpdate();        //начало блокировки списка
ListView1->Items->Clear();              //очистка списка
StaticText1->Caption = Dir;
ViewDir();                              // уход на поиск
ListView1->Items->EndUpdate();
}
//===========================================================================
//====VIEW DIR===============================================================
//===========================================================================
void __fastcall TForm1::ViewDir(void)
{
// основная процедура поиска
TSearchRec SR;
int ires, TBegin;
TListItem *NewItem;
TSHFileInfo FileInfo;

TIcon *Icon = new TIcon;

Form1->ImageListIcon->Clear();
Form1->ImageListIcon->AddIcon(Icon);

ChDir(Dir);  // смена каталога

// начало поиска
ires = FindFirst("*.*", faHidden+faSysFile, SR);
 while (ires == 0)
 {
  if ((SR.Name != ".") && (SR.Name != ".."))
  {
    AnsiString FName;
    // занесение элемента в список
    NewItem = Form1->ListView1->Items->Add();
    FName = SR.Name;
    NewItem->Caption = FName.SubString(0,FName.Length()-4);
    // задание пиктограмм
    SHGetFileInfo((Dir + SR.Name).c_str(), 0, &FileInfo, sizeof(FileInfo), SHGFI_ICON | SHGFI_LARGEICON);
    Icon->Handle = FileInfo.hIcon;
    Form1->ImageListIcon->AddIcon(Icon);
    NewItem->ImageIndex = Form1->ImageListIcon->Count-1;
    // отметка элемента как файла
    NewItem->OverlayIndex = 1;
  }
  // продолжение поиска
  ires = FindNext(SR);
 }
// завершение поиска файлов
FindClose(SR);
}
//---------------------------------------------------------------------------


Не скажите, где ошибся?.. 

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  FolderView.zip 55,91 Kb
PM MAIL ICQ   Вверх
586
Дата 15.12.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



1) Задать размер значков (в данном случае здесь большие значки):
Код
ImageListIcon->Width=GetSystemMetrics(SM_CXICON);
ImageListIcon->Height=GetSystemMetrics(SM_CYICON);


2) Приаттачить ImageList к ListView'у, для этого задать в IDE
ListView1->LargeImages=ImageListIcon;
PM   Вверх
Crash512
Дата 15.12.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо!!! А как сделать, чтобы ярлыки открывались?.. Обычные ехе-шники открываются... А вот ярлыки для них - нет...
PM MAIL ICQ   Вверх
sergejzr
Дата 15.12.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Модератор: Название темы должно отражать ее суть!
Модератор: Пожалуйста, один топик - один вопрос.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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