Форум: "Основная";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
ВнизСмена текста одного из контролов Open Dialog Box... Найти похожие ветки
← →
gdaujk © (2006-11-11 18:12) [0]Доброго времени суток, уважаемые мастера.
Вопрос к Вам следующий: как изменить текст одного из стандартных элементов управления в диалоге открытия/сохранения файла (Open/Save dialog box)? Делаю так:…
uses
Windows, Dialogs;
type
TExampleDialog = class(TOpenDialog)
protected
procedure DoTypeChange; override;
end;
implementation
uses CommDlg;
const
ID_EDT1 = 1148; // ???
procedure TExampleDialog.DoTypeChange;
begin
SendMessage(Handle,
CDM_SETCONTROLTEXT,
WPARAM(ID_EDT1),
LPARAM(PChar("NewString"))); // текст не меняется
inherited;
end;
end.
…
procedure TForm1.Button1Click(Sender: TObject);
var
ExDlg: TExampleDialog;
begin
ExDlg := TExampleDialog.Create(Self);
ExDlg.Filter := "Filter 1|*.fl1|Filter 2|*.fl2";
ExDlg.FilterIndex := 1;
ExDlg.Execute;
end;
При смене фильтра ничего не происходит. Подскажите, что я делаю не так.
PS: Меня терзают сомнения по поводу константы ID_EDT1: я взял её из описания диалога в comdlg32.dll. В WinAPI пишут, что edt1 "are constant defined in DLGS.H"; если у вас есть DLGS.H, то будьте добры – подскажите, чему равно edt1.
← →
Leonid Troyanovsky © (2006-11-12 01:34) [1]
> gdaujk © (11.11.06 18:12)
> const
> ID_EDT1 = 1148; // ???
Если имелся ввиду Edit для имени файла, то, видимо, 1152.
> procedure TExampleDialog.DoTypeChange;
> begin
> SendMessage(Handle,
> CDM_SETCONTROLTEXT,
> WPARAM(ID_EDT1),
> LPARAM(PChar("NewString"))); // текст не
> меняется
Здесь не очень понятен Handle, бо для диалога это должно
быть нечто другое. Ну, скажем GetActiveWindow.
--
Regards, LVT.
← →
gdaujk © (2006-11-12 15:35) [2]Точно, там не Handle, а GetParent(Handle) должно быть (см. TOpenDialog.GetFileName).
Leonid Troyanovsky, вы как всегда на высоте :-). Спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c