![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем доброго утра.
Вопщем с delphi работаю недавно, нужно помощь в написаниипрограмки как показано на скрине. Тут скрин Меня интересует какие компоненты нужно использовать.. дальше думаю разберусь. Немного опишу. Там где "Схемы", "TabSheet2" добавится кнопка "Настройки. "Добавить марку" уберется. Категории и под-категории создаются на диске ручками. По сути название категории=название папки "Добавить схему" уберется. Схемы добавляются в папки - под-категории на диске ручками Кнопочку "Удалить схему" можно поставить рядом к каждой схемкой. При клике удалить должно вылезти окно о подтверждении. В левом окне выводятся Категории и под-категории, при клике на под-категории в правой окошке должны появится схемки как показано на скрине. пс; я не прошу писать за меня прогу, я прошу помочь разабраца какие компоненты использовать. До скорых встреч. ![]() Последний раз редактировалось mishqa35, 20.01.2010 в 17:00. |
|
#2
|
||||
|
||||
|
Тебе нужны компоненты базы данных...
Копай в сторону BDE или ADO...на твой выбор... Во вкладках Delphi7 - Data Access, Data Controls, BDE, ADO все найдешь... Ну и нужно немного полистать литературу по базам данных в Delphi, в сети такой инфы предостаточно... |
|
#3
|
|||
|
|||
|
NIch, мне дб не нужны... тут все просто вроде как..
я хочу сделать вот так.. Тут скрин вот исходники того что получилось.. rapidshare Последний раз редактировалось mishqa35, 20.01.2010 в 17:00. |
|
#4
|
|||
|
|||
|
Так в чем конкретно вопрос?
Вообще-то, БД тут не помешала бы - где ты будешь хранить всю информацию между запусками программы. Другой вопрос - какую БД использовать и надо ли именно СУБД. Можно написать свою хранилку, благо это не так сложно. А можно хранить в виде файлов на диске, но тогда переносить неудобно. |
|
#5
|
|||
|
|||
|
Тут задача такая, у мня на винте куча схем они все разбросаны по углам, хотел прибраца и забацать програмульку, чтобы все по папкам отсортировать. (по папкам буду ручками сортировать))
например Диск 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
|
||||
|
||||
|
Так в чем вопрос, то???
Если не хочешь использовать базу данных, то и компонентов то никаких секретных нет... Стандартные компоненты + можг в голове))) За тебя программу могут написать "тильки за гроши"... Ты лучше конкретный вопрос задай, а не Цитата:
|
|
#7
|
|||
|
|||
|
У мня есть форма, на ней TreeView1 и ListView1
не знаю как вывести в TreeView1 папки и под-папки с диска D:\ не знаю как сделать чтобы нажав на под-папку (в TreeView1), если в ней есть файлы ,чтобы все эти файлы выводились в ListView1 и их можно было от туда открыть, двойным кликом. о файле показывалась название, формат, размер (кб. мб. гб). Файлы в папках тока двух форматов .pdf и .djvu. ps; с головкой все впорядке, просто делфи мучал всего пару раз. |
|
#8
|
||||
|
||||
|
Есть такой стандартный компонент ShellTreeView...И вообще все компоненты с началом Shell...работают с файлами и папками винды...
|
|
#9
|
|||
|
|||
|
Появилось еще пара вопросов по теме..
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;И немагу сделать чтобы вместо Edit2 и Button2 был выпадающий список тех файлов от куда запущем exe'шник Последний раз редактировалось mishqa35, 21.01.2010 в 16:28. |
|
#10
|
|||
|
|||
|
Админы закройте темку.
|