Советы по Delphi

         

Изменение модального статуса формы


Вы не можете изменить статус формы с не-модального на модальный без ее закрытия и повторного открытия.

Тем не менее, вы можете достигнуть этой цели, блокируя (disabling) все остальные открытые формы. Следующий пример переключает модальный статус формы в зависимости от нахождения таблицы в режиме редактирования:

procedure TForm2.DataSource1StateChange(Sender: TObject);varix: integer;b: boolean;beginwith (Sender as TDataSource).DataSet do b := (State = dsBrowse);with Screen dofor ix := 0 to FormCount-1 doif Forms[ix] <> ActiveForm then Forms[ix].Enabled := b;end;

Примечание: вам также потребуется предотвращение закрытия формы, пока таблица находится в режиме редактирования (через обработчик события OnCloseQuery).

- Mike Orriss [000862]



Содержание раздела