Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Вниз

Есть ли в Дельфи стандартный компонент...   Найти похожие ветки 

 
AL2002   (2002-10-17 18:22) [0]

...который являет собой диалог и позволяет выбрать каталог для сохранения файлов? Очень не хочется ещё одну форму создавать.


 
andrey_pst   (2002-10-17 18:24) [1]

SelectDirectory("Выбор папки", "", NewDir);


 
Smithson   (2002-10-17 18:28) [2]

SaveDialog


 
AL2002   (2002-10-17 18:36) [3]

>Smithson © (17.10.02 18:28)
Понимаете, мне нужно сохранять сразу несколько файлов. Нужно, чтобы поля для имени файла там не было.


 
Андрей Прокофьев   (2002-10-17 18:38) [4]

см
andrey_pst © (17.10.02 18:24)


 
TTCustomDelphiMaster   (2002-10-17 18:49) [5]

SHBrowseForFolder


 
pusrg   (2002-10-17 19:32) [6]

Если хош могу выслать компонент, который сам накатал, честно говоря уже давненько, так что возможные баги можешь исправить сам.
Правда там делать нечего, насколько я по помню, я его за полчасика смайстрячил.


 
pusrg   (2002-10-17 19:37) [7]

Честно говоря, зачем высылать :) Вот код:


unit SelectDirDlg;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, FileCtrl, ExtCtrls;

type
TFormDlg = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
DriveComboBox: TDriveComboBox;
DirectoryListBox: TDirectoryListBox;
BOk: TBitBtn;
BCancel: TBitBtn;
GroupBox1: TGroupBox;
EDir: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;

type TSelectDirDlg = class (TComponent)
private
FInitialDir:string;
FormDlg:TformDlg;
FTitle:string;
FNewDirectory,FQuestion:boolean;
FOnDriveChange:TNotifyEvent;
FOnDirChange:TNotifyEvent;
protected
procedure DriveChange(sender:TObject);
procedure DirChange(sender:TObject);
public
DirPath:String;
function Execute:boolean;
published
property InitialDir:String read FInitialDir write FInitialDir;
property Title:string read FTitle write FTitle;
property NewDirectory:boolean read FNewDirectory write FNewDirectory;
property Question:boolean read FQuestion write FQuestion;
property OnDriveChange:TNotifyEvent read FOnDriveChange write FOnDriveChange;
property OnDirChange:TNotifyEvent read FOnDirChange write FOnDirChange;
end;

procedure Register;

implementation

{$R *.DFM}
{$R SelectDirDlg.dcr}

procedure Register;
begin
RegisterComponents("MyComponent",[TSelectDirDlg]);
end;

function TSelectDirDlg.Execute: boolean;
begin
FormDlg:=TFormDlg.Create(Application);
try
Result:=false;
DirPath:="";
FormDlg.Caption:=FTitle;
FormDlg.EDir.Enabled:=FNewDirectory;
FormDlg.DriveComboBox.OnChange:=DriveChange;
FormDlg.DirectoryListBox.OnChange:=DirChange;
if not DirectoryExists(FInitialDir) then
FormDlg.DriveComboBox.Drive:="c"
else
begin
FormDlg.DriveComboBox.Text:=ExtractFileDrive(FInitialDir);
FormDlg.DirectoryListBox.Directory:=FInitialDir;
end;
FormDlg.EDir.Text:=FormDlg.DirectoryListBox.Directory;
if FormDlg.ShowModal=mrOk then
begin
if not DirectoryExists(FormDlg.EDir.Text) then
begin
if FQuestion then
if application.MessageBox(PChar("


 
pusrg   (2002-10-17 19:41) [8]

Кракозябликами там вышли мессаги на русском (писал под конкретную ситуацию), можешь вставить что-то свое.

Заодно и обработку сохранения файлов добавить (невнимательно прочитал вначале).


 
AL2002   (2002-10-18 10:16) [9]

>pusrg © (17.10.02 19:41)
Спасибо, но, ИМХО, это жестоко. Я такое накручу, что сам потом не рад буду. Вот если б ты исходник формы, в которой это есть, прислал, вот тагда бы да бы.

> andrey_pst © (17.10.02 18:24)
> SelectDirectory("Выбор папки", "", NewDir);
Вы знаете, для этого надо QDialogs Unit. И теперь прога просто зависает. Со словами: "Error Reading SaveDialog.OnTypeChange. Property does not exist".


 
AL2002   (2002-10-18 10:23) [10]

>pusrg © (17.10.02 19:41)
Ага. Так ты прислал.
Раз прислал, придётся пробовать. Тока может быть, придётся тебя поFAQать немножко.


 
Юрий Федоров   (2002-10-18 11:03) [11]

cм.
1. andrey_pst
2. TTCustomDelphiMaster


 
AL2002   (2002-10-18 11:37) [12]

>Юрий Федоров © (18.10.02 11:03)
QDialogs и компонента SaveDialog делают ошибку.
"Error Reading SaveDialog.OnTypeChange. Property does not exist".


 
andrey_pst   (2002-10-18 11:51) [13]

>> Вы знаете, для этого надо QDialogs Unit
можно и так:
uses FileCtrlу меня работает


 
AL2002   (2002-10-18 12:05) [14]

>andrey_pst © (18.10.02 11:51)
Попробую. Чуть позже скажу, что получилось.


 
Pumpkin   (2002-10-18 12:32) [15]

А чем тебе SHBrowseForFolder не нравится?

function BrowseFolder(Owner: HWND; OldDir:String): String;
var
Bi:TBrowseInfo;
IL:PItemIDList;
P:packed array[0..MAX_PATH] of Char;
begin
FillChar(P,MAX_PATH+1,0);
Move(OldDir[1], P, Length(OldDir));
Bi.hwndOwner := Owner;
Bi.pidlRoot := nil;
Bi.pszDisplayName := @P;
Bi.lpszTitle := "Choose folder";
Bi.ulFlags := BIF_RETURNONLYFSDIRS;
Bi.lpfn := nil;
IL := SHBrowseForFolder( Bi );
if ( IL <> nil ) and SHGetPathFromIDList( IL, P ) then Result := P
else Result := OldDir;
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.04 c
4-92804
Velocity
2002-09-16 11:44
2002.10.28
Резиденты


4-92784
Denvor
2002-09-14 03:27
2002.10.28
Как кликнуть по Radiobutton в дочернем окне чужого приложения?


3-92335
студент2002
2002-10-06 11:10
2002.10.28
ADOQuery


1-92412
sas1
2002-10-15 20:21
2002.10.28
подскажите


3-92351
Gaber
2002-10-07 11:18
2002.10.28
Как связать 2 таблицы ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский