Понедельник, 13.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Как часто ви на этот сайт заходите?
Всего ответов: 159
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Система » Kol и MCK

Стандартные диалоги

В основе диалогов лежат совсем другие объекты, чем PControl (для каждого свой). KOL предлагает для работы 3 вида диалога

Обьект Диалог
POpenSaveDialog открыть или сохранить файл
POpenDirDialog выбрать директорию
PColorDialog выбрать цвет.

Их конструкторы:

function NewOpenSaveDialog( const Title, StrtDir: String; Options: TOpenSaveOptions ): POpenSaveDialog;

Title - заголовок диалога
StrDir - начальная директория для работы

В Options может быть следующее:

  • OSCreatePrompt -
  • OSExtensionDiffent -
  • OSFileMustExist -
  • OSHideReadonly -
  • OSNoChangedir -
  • OSNoReferenceLinks -
  • OSAllowMultiSelect -
  • OSNoNetworkButton -
  • OSNoReadonlyReturn -
  • OSOverwritePrompt -
  • OSPathMustExist -
  • OSReadonly -

Для диалога открытия файла (Open File), надо свойство OpenDialog установить в true, и соответственно для диалога сохранения файла OpenDialog := false.
В остальном, этот диалог идентичен своему VCL аналогу.


function NewOpenDirDialog( const Title: String; Options: TOpenDirOptions ): POpenDirDialog;

Title - заголовок диалога

В Options может быть следующее:

  • odBrowseForComputer -
  • odBrowseForPrinter -
  • odDontGoBelowDomain -
  • odOnlyFileSystemAncestors -
  • odOnlySystemDirs -
  • odStatusText

Выбранный путь можно узнать через свойство Path


function NewColorDialog( FullOpen: TColorCustomOption ): PColorDialog;

В FullOpen следующее:

  • ccoFullOpen - кроме базовой палитры показывается и дополнительная
  • ccoShortOpen - сначала показывается только базовая палитра но доступна и дополнительная
  • ccoPreventFullOpen - доступна только базовая палитра цветов

Пример: небольшой и мало функциональный, но текстовый редактор ;-)

 program Primer;

 uses
 Windows,
 messages,
 KOL;

 {$R *.RES}
 var
 form,
 PanTools,
 REdit,
 butOpen,
 butSave:PControl;

 procedure clikButOpenSave( Dummy : Pointer; Sender : PControl );
 var
 Dialog:POpenSaveDialog;
 title:string;
 begin
 if sender= butOpen then //определяем что за кнопка 
 begin
 Dialog.title := 'Îòêðûòü';
 Dialog.OpenDialog := true;
 REdit.Clear ;
 end
 else
 begin
 Dialog.title := 'Ñîõðàíèòü êàê';
 Dialog.OpenDialog := false;
 end;
 if Dialog.Execute then
 if sender= butOpen then
 REdit.RE_LoadFromFile(Dialog.Filename,reText,false)
 else
 REdit.RE_SaveToFile(Dialog.Filename,reText,false);
 form.StatusText[0]:=PChar(Dialog.Filename);
 end;

 begin
 form:=NewForm(Applet,'Ðåäàêòîð');

 Dialog:=NewOpenSaveDialog(title,'',[]) ; 
 panTools := NewPanel(form,esRaised).SetAlign(caTop);
 panTools.Height := 35 ;
 REdit := NewRichEdit(form,[]).SetAlign(caClient);
 butOpen:= NewButton(panTools,'Open').SetSize(50,25);
 butSave:= NewButton(panTools,'Save as').SetSize(60,25).PlaceRight ;
 butOpen.OnClick := TOnEvent(MakeMethod(nil,@clikButOpenSave));
 butSave.OnClick := TOnEvent(MakeMethod(nil,@clikButOpenSave));
 run(form);
 end.

Получить ссылку на материал

Категория: Kol и MCK | Добавил: Барон (13.12.2011)
Просмотров: 961 | Теги: диалог | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
ActiveX [10]
CORBA и COM [16]
Kol и MCK [23]
WinAPI [28]
Компоненты [27]
Работа с Bluetooth [4]
Железо [8]
Текст [18]
Разное [98]
Королевство Delphi © 2010-2024
Яндекс цитирования