C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
--OpenDialog--, Как забанить кнопку открытия?
beetlehead
  Отправлено: 16.06.2005, 15:09


Ученик-кочегар

Группа: Участник
Сообщений: 10



Подскажите пожалуйста, как можно (если можно конечно) запретить кнопку открытия в OpenDialog
Просто необходимо открывать из кучи файлов только те, которые удовлетворяют опр. условиям.
Дело осложняется тем, что все эти файлы одного расширения, так что вариант с фильтром не подойдет.
Заранее спасибо.
olegenty
Отправлено: 16.06.2005, 15:26


Ветеран

Группа: Модератор
Сообщений: 2412



ничто не мешает эти условия отразить в фильтре.
** exp
Отправлено: 17.06.2005, 12:22


Не зарегистрирован







Мешает.
Olegenty, хоть прочитал бы.
QUOTE

файлы одного расширения

Еще варианты есть?
Konstantine
Отправлено: 17.06.2005, 12:54


Мастер участка

Группа: Модератор
Сообщений: 545



всё верно, olegenty имел ввиду что фильтр может быть типа *fd*.dat, т.е. фильтровать не только по расширению, но и по известным символам в имени...
xTrim
Отправлено: 17.06.2005, 12:58


Машинист паровоза

Группа: Участник
Сообщений: 208



Есть еще вариант использовать событие OpenDialog OnIncludeItem.

Не, фигню сказал. Был не прав. smile.gif

Отредактировано xTrim — 17/06/2005, 16:05
GIZMO
Отправлено: 17.06.2005, 13:13


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (** exp @ 17/06/2005, 12:22)
Мешает.
Olegenty, хоть прочитал бы.
QUOTE

файлы одного расширения

Еще варианты есть?

CODE

//где-то в
void __fastcall TForm1::OpenDialog1SelectionChange(TObject *Sender)
{
   ...
  //1. получаем хэндл кнопки Open
   HWND hWndDlg = GetParent(OpenDialog1->Handle);
   HWND hWndBtn = GetDlgItem(hWndDlg, 1);
   bool bEnable;
   
   //2. определяем условия блокировки
   /*user defined function
   bEnable = CheckOpen(OpenDialog1->FileName);
   */
   
   //3. собственно разрешаем/запрешаем кнопку Open
   /* id элементов управления, можно посмотреть открыв comdlg32.dll какам-  нибудь редактором ресурсов*/
   EnableWindow(hWndBtn, bEnable);
}

** exp
Отправлено: 20.06.2005, 10:02


Не зарегистрирован







Щасс....

Гениально!
Спасибо, GIZMO!

Вернуться в Вопросы программирования в C++Builder