Показать сообщение отдельно
  #11  
Старый 09.02.2011, 16:25
vikk vikk вне форума
Начинающий
 
Регистрация: 01.10.2010
Сообщения: 132
Репутация: 10
По умолчанию

Выкладываю (и нервно курю в сторонке) :
Код:
{На главной форме есть бар с меню, состоящем из кнопок с названиями директорий, содержащих данные для конкретного процесса. Данные будут загружаться в зависимости от выбранной директории :} 
procedure TMainForm.BtnExClick(Sender: TObject);
begin
with Sender as TdxBarButton do
    FocusedDir := Caption;

{если пользователь хочет создать новый процесс, то загружается спецформочка, в которой задаётся название нового процесса и пр. инфа для создания директории нового процесса :}
if FocusedDir = 'Новый' then
  begin
    if FormAddExam = nil then
      FormAddExam := TFormAddExam.Create(nil);
    try
      FormAddExam.onAddNewExam := OnAddNewExam; {Это свойство типа TNotifyEvent, сообщающее вызывающей форме введённое в спецформочке имя новой директории(чтоб создать новую кнопку меню на баре) }

      if FormAddExam.WindowState = wsMinimized then
        FormAddExam.WindowState := wsNormal;

      if FormAddExam.ShowModal = mrCancel then
        exit;
    finally
      FormAddExam.Free;
      FormAddExam := nil;
    end;
  end;

{если пользователь подтвердил создание нового процесса (форма закрылась с ModalResult = mrOK - там внутри возможны только 2 варианта ModalResult), то создаётся новая форма для осуществления толькочтосозданного процесса: }
  if FormExam <> nil then
    FormExam := nil;
  FormExam := TFormExam.Create(nil);
  FormExam.Top := Top + Height;
  FormExam.onCloseExam := OnCloseExam; {свойство типа TNotifyEvent, вызывающееся в FormExam.CloseForm(и там же после этого вызова Action := caFree) и сообщающее вызывающей форме, что эту форму можно разрушать (в теле процедуры OnCloseExam только один оператор: FormExam := nil ) : }
  FormExam.DefineFilesListForExam(FocusedDir);{инициация некоторых полей формы }
  if FormExam <> nil then
    begin
      if FormExam.WindowState = wsMinimized then
        FormExam.WindowState := wsNormal;

   FormExam.Show;
    end;

end;
//================

Ну вот, как-то так примерно Жду строгого разбора полётов.
Ответить с цитированием