Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.01.2010, 09:06
mishqa35 mishqa35 вне форума
Прохожий
 
Регистрация: 20.01.2010
Сообщения: 16
Репутация: 10
По умолчанию Нужна помощь в написании програмки

Всем доброго утра.
Вопщем с delphi работаю недавно, нужно помощь в написаниипрограмки как показано на скрине.

Тут скрин

Меня интересует какие компоненты нужно использовать.. дальше думаю разберусь.
Немного опишу.
Там где "Схемы", "TabSheet2" добавится кнопка "Настройки.
"Добавить марку" уберется. Категории и под-категории создаются на диске ручками. По сути название категории=название папки
"Добавить схему" уберется. Схемы добавляются в папки - под-категории на диске ручками
Кнопочку "Удалить схему" можно поставить рядом к каждой схемкой. При клике удалить должно вылезти окно о подтверждении.
В левом окне выводятся Категории и под-категории, при клике на под-категории в правой окошке должны появится схемки как показано на скрине.

пс; я не прошу писать за меня прогу, я прошу помочь разабраца какие компоненты использовать.

До скорых встреч.

Последний раз редактировалось mishqa35, 20.01.2010 в 17:00.
  #2  
Старый 20.01.2010, 10:07
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Тебе нужны компоненты базы данных...
Копай в сторону BDE или ADO...на твой выбор...
Во вкладках Delphi7 - Data Access, Data Controls, BDE, ADO все найдешь...
Ну и нужно немного полистать литературу по базам данных в Delphi, в сети такой инфы предостаточно...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
  #3  
Старый 20.01.2010, 10:43
mishqa35 mishqa35 вне форума
Прохожий
 
Регистрация: 20.01.2010
Сообщения: 16
Репутация: 10
По умолчанию

NIch, мне дб не нужны... тут все просто вроде как..

я хочу сделать вот так..

Тут скрин

вот исходники того что получилось..

rapidshare

Последний раз редактировалось mishqa35, 20.01.2010 в 17:00.
  #4  
Старый 20.01.2010, 16:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Так в чем конкретно вопрос?
Вообще-то, БД тут не помешала бы - где ты будешь хранить всю информацию между запусками программы. Другой вопрос - какую БД использовать и надо ли именно СУБД. Можно написать свою хранилку, благо это не так сложно. А можно хранить в виде файлов на диске, но тогда переносить неудобно.
  #5  
Старый 20.01.2010, 16:47
mishqa35 mishqa35 вне форума
Прохожий
 
Регистрация: 20.01.2010
Сообщения: 16
Репутация: 10
По умолчанию

Тут задача такая, у мня на винте куча схем они все разбросаны по углам, хотел прибраца и забацать програмульку, чтобы все по папкам отсортировать. (по папкам буду ручками сортировать))
например Диск D:\ (флешка F:\)
там папки:
Автомагнитолы [папка]
-Pioneer [папка]
--Pioner DEH-1524.pdf [файл]
-Prology [папка]
--Prology CMD-200.pdf [файл]
--Prology MDD-702L.pdf [файл]
-Clarion [папка]
Телевизоры [папка]
-Lg [папка]
-Samsung [папка]
Телефоны [папка]
Радиостанции [папка]

и вот в каждой папке куча файлов(схем)
я хачу прогрмаму как показано на 1-2 скрине, чтобы слева выводились папки а справа файлы, те что отмечены. Так же щас проблемы с поиском, хочется чтобы можно было выбрать категорию где искать и поле чтобы имя ввести, а искать тока по имени.

Тут скрин

ps; Так же возможно запишу на дики, этот exe-шник будет типа автораном.

Последний раз редактировалось mishqa35, 20.01.2010 в 17:16.
  #6  
Старый 20.01.2010, 17:36
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Так в чем вопрос, то???
Если не хочешь использовать базу данных, то и компонентов то никаких секретных нет...
Стандартные компоненты + можг в голове)))
За тебя программу могут написать "тильки за гроши"...
Ты лучше конкретный вопрос задай, а не
Цитата:
я хочу сделать вот так..
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
  #7  
Старый 20.01.2010, 17:53
mishqa35 mishqa35 вне форума
Прохожий
 
Регистрация: 20.01.2010
Сообщения: 16
Репутация: 10
По умолчанию

У мня есть форма, на ней TreeView1 и ListView1
не знаю как вывести в TreeView1 папки и под-папки с диска D:\
не знаю как сделать чтобы нажав на под-папку (в TreeView1), если в ней есть файлы ,чтобы все эти файлы выводились в ListView1 и их можно было от туда открыть, двойным кликом. о файле показывалась название, формат, размер (кб. мб. гб). Файлы в папках тока двух форматов .pdf и .djvu.

ps; с головкой все впорядке, просто делфи мучал всего пару раз.
  #8  
Старый 20.01.2010, 22:28
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Есть такой стандартный компонент ShellTreeView...И вообще все компоненты с началом Shell...работают с файлами и папками винды...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
  #9  
Старый 21.01.2010, 13:03
mishqa35 mishqa35 вне форума
Прохожий
 
Регистрация: 20.01.2010
Сообщения: 16
Репутация: 10
По умолчанию

Появилось еще пара вопросов по теме..
1. У меня форма на ней ShellTreeView и ShellListView.
В ShellTreeView выводятся тока папки и под-папки, из директории D:\ - как сделать чтобы выводились те папки от куда запущена программа...?
В ShellListView выводятся тока файлы из отмеченной папки ShellTreeView.
У ShellListView стоит ViewStyle > vsReport и в окне ShellListView сверху пишется Имя, Размер, Тип, Изменен - Не знаю как оставить тока Имя и Размер

2.На форме установлены компоненты Edit1, Edit2, Button1, Button2, Memo1, Label1

Edit1 - то что ищем
Edit2 - где ищем
Button1 - Кнопка Найти
Button2 - кнопка Обзор
Memo1 - выводит найденые обекты
Label1 - выводит число найденых обьектов

Вот код:
Код:
var
   FileName: string;  // имя или маска искомого файла
   cDir: string;
   n: integer;       // кол-во файлов, удовлетворяющих запросу

// поиск файла в текущем каталоге
procedure Find;
var
   SearchRec: TSearchRec; // информация о файле или каталоге
begin
   GetDir(0,cDir); // получить имя текущего каталога
   if cDir[length(cDir)] <> '\' then cDir := cDir+'\';

   if FindFirst(FileName, faAnyFile,SearchRec) = 0 then
       repeat
          if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then
             begin
               Form1.Memo1.Lines.Add(cDir +  SearchRec.Name);
               n := n + 1;
             end;
        until FindNext(SearchRec) <> 0;

       // обработка подкаталогов текущего каталога

       { Если не обрабатывать системные каталоги, то
         вместо faAnyFile можно задать faDidertory.
         Это объясняется тем, что значение SearchRec.Attr
         для обычного каталога равно faDirectory (16),
         для Program Files - faDirectory+faReadOnly (17),
         а для каталога Windows - faDirectory+faSysFile (20).
        }

       if FindFirst('*', faAnyFile, SearchRec) = 0 then
          repeat
              if (SearchRec.Attr and faDirectory) = faDirectory then
                    // каталоги .. и . тоже каталоги,
                    // но в них входить не надо !!!
                    if SearchRec.Name[1] <> '.' then
                       begin
                         // Form1.Memo1.Lines.Add('>>>>'+SearchRec.Name);
                         ChDir(SearchRec.Name);// войти в каталог
                         Find; // выполнить поиск в подкаталоге
                         ChDir('..');// выйти из каталога
                         //Form1.Memo1.Lines.Add('<<<<'+SearchRec.Name);
                       end;
          until FindNext(SearchRec) <> 0;
end;

// щелчок на кнопке Поиск
procedure TForm1.Button1Click(Sender: TObject);
begin
        if not DirectoryExists(Edit2.Text) then
        begin
            ShowMessage('Каталог указан неверно.');
            Edit2.SetFocus;
            exit;
        end;

        Button1.Enabled := False;
        Label1.Caption := '';
        Label1.Repaint;
        Memo1.Clear;             // очистить поле Memo1
        Label1.Caption := '';
        FileName := Edit1.Text;  // что искать
        cDir := Edit2.Text;      // где искать
        n:=0;                    // кол-во найденных файлов
        ChDir(cDir);             // войти в каталог начала поиска
        Find;                    // начать поиск
        if n = 0 then
           ShowMessage('Файлов, удовлетворяющих критерию поиска нет.')
        else Label1.Caption := 'Найдено файлов:' + IntToStr(n);
        Button1.Enabled := True;
end;

// возвращает каталог, выбранный пользователем
function GetPath(mes: string):string;
var
  Root: string;      // корневой каталог
  pwRoot : PWideChar;
  Dir: string;
begin
  Root := ''; // корневой каталог - папка Рабочий стол
  GetMem(pwRoot, (Length(Root)+1) * 2);
  pwRoot := StringToWideChar(Root,pwRoot,MAX_PATH*2);
  if SelectDirectory(mes, pwRoot, Dir)
     then
          if length(Dir) = 2  // пользователь выбрал корневой каталог
              then GetPath := Dir+'\'
              else GetPath := Dir
     else
          GetPath := '';
end;

// щелчок на кнопке Папка
procedure TForm1.Button2Click(Sender: TObject);
var
  Path: string;
begin
  Path := GetPath('Выберите папку');
  if Path <> ''
     then Edit2.Text := Path;
end;
Ни как не могу сделать чтобы то что найдено выводилось не в Memo1 а в ListView1
И немагу сделать чтобы вместо Edit2 и Button2 был выпадающий список тех файлов от куда запущем exe'шник

Последний раз редактировалось mishqa35, 21.01.2010 в 16:28.
  #10  
Старый 05.02.2010, 22:32
mishqa35 mishqa35 вне форума
Прохожий
 
Регистрация: 20.01.2010
Сообщения: 16
Репутация: 10
По умолчанию

Админы закройте темку.
Закрытая тема


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:02.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025