Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/33: Рейтинг темы: голосов - 33, средняя оценка - 4.76
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
1

compess images (Разработка программы)

20.04.2010, 12:53. Показов 6156. Ответов 72
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток уважаемые программисты.
Я совсем недавно начал увлекаться программированием, и мне захотелось освоить Builder. Сейчас мне для себя хочется написать программу, которая будит способна изменять размерность фотографии, по указанным критериям.

все что я пока сделал, это примерно набросал, как хотелось бы видеть этот продукт
compess images (Разработка программы)


Сейчас я хочу организовать отображение изображений gif, jpg и bmp в ListView. Но открывается как-то не так как хотелось бы.
C++
1
2
3
4
5
6
7
8
9
10
11
    void __fastcall TForm1::Button3Click(TObject *Sender)
{
     FILE *FOpen;
 
    if( OpenDialog->Execute() )
    {
        FOpen = fopen(OpenDialog->FileName.c_str(), "r+");
                    }
                ListView1 -> AddItem(OpenDialog->FileName,NULL);
 
    fclose(FOpen);
я столкнулся с несколькими проблемами.
1) не могу добавить одновременно несколько файлов
2) отображается только путь файла
compess images (Разработка программы)


Помогите разобраться как сделать правильное отображение файла. Что б в таблице был виден тип файла и размер.
Миниатюры
compess images (Разработка программы)  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2010, 12:53
Ответы с готовыми решениями:

Как сохранить все превьюшки из google/images или yandex/images или gogo.ru/images
Мне требуется много маленьких картинок, которые можно взять на поиске по картинкам. Скажите...

Написание программы с использованием файловых переменных. Разработка программы для работы с текстовым файлом
Помогите пожалуйста : С помощью текстового редактора создать текстовый файл file1. Переписать...

Разработка программы на С#
Нужна помощь в написании программы на С#, программа не сложная(уровень - 1 курс ВУЗа). Цена...

Разработка программы
Напишите модуль включающий процедуру CallMe и функцию CallCount. Первая выводит на дисплей...

72
221 / 135 / 48
Регистрация: 12.04.2010
Сообщений: 248
20.04.2010, 13:22 2
Для добавления файла в LIstView его не нужно открывать и закрывать.
А добавить можно следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  void __fastcall TForm1::Button3Click(TObject *Sender)
{
//     FILE *FOpen;
     ListView1->ViewStyle = vsReport;
     TListItem *li;
 
        if( OpenDialog->Execute() )
        {
                //FOpen = fopen(OpenDialog->FileName.c_str(), "r+");                      
                li = ListView1->Items->Add();
                li->Caption = OpenDialog1->FileName;
                li->SubItems->Add("тип файла");
                li->SubItems->Add("размер файла");
                // fclose(FOpen);
         }
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
20.04.2010, 13:31 3
Цитата Сообщение от HollywooD-new Посмотреть сообщение
не могу добавить одновременно несколько файлов
OpenDialog - Options - ofAllowMultiSelect

C++
1
2
3
4
5
6
7
8
9
10
11
for (int i=0; i<OpenDialog1->Files->Count; i++)
{
   AnsiString path = OpenDialog1->Files->Strings[i];
   AnsiString name = ExtractFileName (path);
   int pos = LastDelimiter(".", name);
   AnsiString ext = name.SubString (pos + 1, name.Length() - pos);
   name = name.SubString (1, pos - 1);
   ....
   ShowMessage (path + "\n" + name + "\n" + ext); //  для проверки
   ....      
}
0
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
20.04.2010, 13:36  [ТС] 4
Цитата Сообщение от uggway Посмотреть сообщение
Для добавления файла в LIstView его не нужно открывать и закрывать.
А добавить можно следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  void __fastcall TForm1::Button3Click(TObject *Sender)
{
//     FILE *FOpen;
     ListView1->ViewStyle = vsReport;
     TListItem *li;
 
        if( OpenDialog->Execute() )
        {
                //FOpen = fopen(OpenDialog->FileName.c_str(), "r+");                      
                li = ListView1->Items->Add();
                li->Caption = OpenDialog1->FileName;
                li->SubItems->Add("тип файла");
                li->SubItems->Add("размер файла");
                // fclose(FOpen);
         }
если использовать
C++
1
ListView1->ViewStyle = vsReport;
в ListView1 вообще ничего не отоброжается((
0
221 / 135 / 48
Регистрация: 12.04.2010
Сообщений: 248
20.04.2010, 13:46 5
Нужно добавить в ListView колонки...
Правой кнопочкой по ListView. Там будет Columns Editor. В нем уже добавить 3 колонки.
И будет счастье.

Либо вручную...
C++
1
2
3
ListView1->Columns->Add()->Caption="Имя файла";
ListView1->Columns->Add()->Caption="Тип файла";
ListView1->Columns->Add()->Caption="Размер файла";
0
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
20.04.2010, 19:41  [ТС] 6
uggway, а как мне в
C++
1
li->SubItems->Add("тип файла");
записать тип файла ?)))
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
20.04.2010, 19:46 7
Цитата Сообщение от HollywooD-new Посмотреть сообщение
записать тип файла ?)))
а кому я свой пост писал...
1
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
20.04.2010, 20:03  [ТС] 8
Цитата Сообщение от Roma_F Посмотреть сообщение
а кому я свой пост писал...
Я как то не очень разобрался как это работает.
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
20.04.2010, 20:08 9
в свойствах OpenDialog поставить ofAllowMultiSelect = true
во время запуска программы при открытии выбрать несколько файлов

ext - тип файла
0
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
20.04.2010, 20:10  [ТС] 10
Цитата Сообщение от Roma_F Посмотреть сообщение
в свойствах OpenDialog поставить ofAllowMultiSelect = true
во время запуска программы при открытии выбрать несколько файлов

ext - тип файла
это я понял...
я пробывал сделать
C++
1
ListView->SubItems->Add(ext);
но не получилось
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
20.04.2010, 20:12 11
Цитата Сообщение от HollywooD-new Посмотреть сообщение
но не получилось
покажи весь код
1
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
20.04.2010, 20:20  [ТС] 12
все получилось)))))

Добавлено через 7 минут
вобщем все получилось так :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void __fastcall TForm1::Button3Click(TObject *Sender)
{
   {
         ListView1->ViewStyle = vsReport;
     TListItem *li;
        if( OpenDialog->Execute() )
        {
               for (int i=0; i<OpenDialog->Files->Count; i++)
               { 
                AnsiString path = OpenDialog->Files->Strings[i];
                AnsiString name = ExtractFileName (path);
                int pos = LastDelimiter(".", name);
                AnsiString ext = name.SubString (pos + 1, name.Length() - pos);
                name = name.SubString (1, pos - 1);
                li = ListView1->Items->Add();
                li->Caption = OpenDialog->FileName;
                li->SubItems->Add(ext);
                li->SubItems->Add("ðàçìåð ôàéëà1");
                   // ShowMessage (path + "\n" + name + "\n" + ext); //  äëÿ ïðîâåðêè
               }
          }
    }
}
а где можно изменять размер по ширине колонок ListView ?
и как получить размер выбраных файлов?
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
20.04.2010, 21:24 13
Цитата Сообщение от HollywooD-new Посмотреть сообщение
а где можно изменять размер по ширине колонок ListView ?
в IDE при добавлении
или в коде ListView->Columns->Items[0]->Width

Цитата Сообщение от HollywooD-new Посмотреть сообщение
и как получить размер выбраных файлов?
C++
1
unsigned int size = FileSizeByName("...");
2
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
20.04.2010, 23:31  [ТС] 14
Roma_F,
а что писать в
C++
1
unsigned int size = FileSizeByName("...");
в функцию FileSizeByName("...")? пишу путь "path" и имя "name" файла, но в ответ получаю
error : call to undefined function 'FileSizeByName'
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
21.04.2010, 00:15 15
Цитата Сообщение от HollywooD-new Посмотреть сообщение
в функцию FileSizeByName("...")? пишу путь "path" и имя "name" файла, но в ответ получаю
error : call to undefined function 'FileSizeByName'
#include <idglobal.hpp>

а писать надо полный путь (path)
1
221 / 135 / 48
Регистрация: 12.04.2010
Сообщений: 248
21.04.2010, 10:38 16
Можно еще так узнать размер файла...
C++
1
2
3
4
5
#include <sys/stat.h>
struct stat statbuf;
AnsiString path;
stat(path.c_str(),&statbuf);
long size = statbuf.st_size;
0
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
21.04.2010, 17:15  [ТС] 17
спасибо всем БОЛЬШОЕ, все получилось)

За сегодня хочу сделать кнопку удаления из списка и с помощью Combobox возможность изменения стиля отображения в таблице
vsIcon - крупные значки,
vsSmallIcon - мелкие значки,
vsList - список,
vsReport – таблица

Добавлено через 3 часа 13 минут
Нашел как удолять строки
C++
1
ListView1-> Items->Delete(0);
не могу разобратся как удолять только те которые выделены в ListViev CheckBoxes?
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
21.04.2010, 17:30 18
Цитата Сообщение от HollywooD-new Посмотреть сообщение
ListViev CheckBoxes?
выделены или отмечены чекбоксами?

для выделеных
ListView->DeleteSelected()

а отмеченые можно выделить в цикле и потом так же удалить
0
0 / 0 / 3
Регистрация: 12.04.2010
Сообщений: 99
21.04.2010, 19:02  [ТС] 19
C++
1
ListView->DeleteSelected()
удаляет даже несколько файлов одновременно, а мне хотелось что бы удаление происходило только у
отмеченных ChechBoxes
compess images (Разработка программы)
=>
compess images (Разработка программы)
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
21.04.2010, 20:22 20
C++
1
2
3
4
5
6
7
8
    for (int i = 0; i < LView_1->Items->Count; i++)
    {
        if (LView_1->Items->Item[i]->Checked)
        {
            LView_1->Items->Delete(i);
            i--;
        }
    }
0
21.04.2010, 20:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2010, 20:22
Помогаю со студенческими работами здесь

Разработка программы!!
Сделайте программу органайзер ну или адресная книга с помощью С#!!

Разработка программы
Здравствуйте, пишу легкую игру и все время сталкиваюсь с тем, что сбиваюсь с &quot;маршрута&quot; данной...

Разработка программы..
Здравствуйте, нужна помощь в написание программы, реализ. обработку числового двумерного массива...

Разработка программы
Разработать программу для задания: найти сумму положительных элементов квадратной матрицы (10*10)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru