Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как позиционировать SelectDirectory на экране? 
:(
    Опции темы
Good Man
Дата 11.12.2002, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



При вызове данной функции диалоговое окно выбора каталогов стремится почему-то вниз экрана.

Как заставить его отображаться по центру?
PM MAIL   Вверх
Technoboss
Дата 13.12.2002, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет!
Ф -ция SelectDirectory не позиционируется.
Предлогаю сделать самому.
Необходимо создать форму и вызывать её ShowModal
=========================================================================
Пример вызова

unit Unamrts;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 DirPath: String; //Переменная директории  

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
 Application.CreateForm(TForm2, Form2);
 Form2.ShowModal;
 if Form2.ModalResult = mrOk then
 begin
   Form2.Destroy;
   if Length(DirPath) > 3 then DirPath:= DirPath + '\';
  {здесь дествия с выбранной директорией}
 end else Form2.Destroy;
end;


end.
========================================================
Пример выбора директории

На форме: TEdit, TDirectoryListBox, TFileListBox, TDriveComboBox, Button1, Button2

unit Dirs;

interface

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

type
 TForm2 = class(TForm)
   DriveComboBox1: TDriveComboBox;
   DirectoryListBox1: TDirectoryListBox;
   Button1: TButton;
   Button2: TButton;
   Edit1: TEdit;
   StaticText1: TStaticText;
   StaticText2: TStaticText;
   StaticText3: TStaticText;
   FileListBox1: TFileListBox;
   StaticText4: TStaticText;
   procedure Button2Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure DriveComboBox1Change(Sender: TObject);
   procedure DirectoryListBox1Change(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;
 Dir: String;

implementation

{$R *.DFM}

uses
 Unamrts;

procedure TForm2.Button2Click(Sender: TObject);
begin
 Close;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
 Edit1.Text:= '';
 DriveCombobox1.Drive:= 'C';
 DirectoryListBox1.Drive:= DriveCombobox1.Drive;
 Edit1.Text:= DirectoryListBox1.Directory;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
 case GetDriveType(PChar(UpCase(DriveCombobox1.Drive) + ':\')) of
   DRIVE_UNKNOWN,
   DRIVE_NO_ROOT_DIR,
   DRIVE_CDROM,
   DRIVE_RAMDISK: begin
                    if Application.MessageBox('Text!' +
                    #13 + 'Text?', 'Confirm',
                    MB_YESNO + MB_ICONEXCLAMATION) = IDYES then
                    begin
                      DirPath:= DirectoryListBox1.Directory;
                      ModalResult:= mrOk;
                    end else Exit;
                  end;
 end;
 DirPath:= DirectoryListBox1.Directory;
 ModalResult:= mrOk;
end;

procedure TForm2.DriveComboBox1Change(Sender: TObject);
begin
 try
   DirectoryListBox1.Drive:= DriveCombobox1.Drive;
 except
   {Обработка неправильно выбранного диска (н-р CD-ROM без диска)}
   Application.MessageBox('Text!', 'Error', MB_ICONHAND);
   DriveCombobox1.Drive:= 'C';
 end;
end;


procedure TForm2.DirectoryListBox1Change(Sender: TObject);
begin
 FileListBox1.Directory:= DirectoryListBox1.Directory;
 Edit1.Text:= DirectoryListBox1.Directory;
end;

end.
PM MAIL   Вверх
XpyDi
Дата 13.12.2002, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В таком случае, чем самому лепить окно проще через FindWindow, получив Handle нашего окна вызвать для него MoveWindow или что-то вроде этого, тем самым разместив его в нужной позиции на экране.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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