Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос о ShowModal


desc ©   (2009-04-02 10:41:00) 

Необходимо создать форму в режиме ShowModal, но только чтобы fmMyForm.ShowModalвозвращал не Modal result, а то что мне необходимо. Например если я делаю таким образом форму fmLogin, то ShowModalдолжен вернуть IDпользователя который авторизовался...

Как реализовать ? В каком направлении двигаться ?

Спасибо.


Игорь Шевченко   (2009-04-02 14:19:00) [1]


> Еще один вопросик если можно... Не в тему правда, но все
> же...


нельзя


clickmaker   (2009-04-02 14:08:00) [2]

ControlAtPos, например


desc   (2009-04-02 14:02:00) [3]


> clickmaker ©   (02.04.09 13:46) [14]
>
> > в чем собственно может быть ошибка ?
>
> в том, что не у всех есть hwnd

И как быть ? )


clickmaker   (2009-04-02 13:46:00) [4]

> в чем собственно может быть ошибка ?

в том, что не у всех есть hwnd


desc   (2009-04-02 13:44:00) [5]


> clickmaker ©   (02.04.09 13:06) [10]

procedure TfmMyForm.aeMessage(var Msg: tagMSG; var Handled: Boolean);
begin
 if Msg.message = WM_MOUSEMOVE then
   sb.Panels.Items[1].Text := FindControl(Msg.hwnd).Name;
end;


что-то непойму, вроде отображаются имена контролов но не всех... в чем собственно может быть ошибка ?


D@nger   (2009-04-02 13:20:00) [6]

можно приравнять ID к свойству Tag формы и считывать ее


desc   (2009-04-02 13:15:00) [7]


> clickmaker ©   (02.04.09 13:06) [10]


Ну если например у компонента поставить свойство ShowHint := False, то ведь OnHintне сработает. Я так понимаю или я ошибаюсь...?


clickmaker   (2009-04-02 13:06:00) [8]

Application.OnMessage - глобальней некуда
а чем, кстати, OnHint не устраивает? или OnShowHint


desc   (2009-04-02 13:01:00) [9]

Еще один вопросик если можно... Не в тему правда, но все же...

Существует ли глобальное событие у Application, которое срабатывает каждый раз когда курсор мышки находится над новым объектом (компонентом) в котором можно было бы получить имя этого объекта (компонента) над которым находится курсор мыши...

Я имею введу что-то на подобии OnHintу ApplicationEvents.

Спасибо.


Спасибо   (2009-04-02 12:47:00) [10]


> clickmaker ©   (02.04.09 12:34) [7]

Какой однако хитрый выверт !
А я то по наивности всегда создавал отдельную функцию...


clickmaker   (2009-04-02 12:34:00) [11]

потому что метод класса, а не экземпляра.
экземпляр формы создается внутри и уничтожается после выполнения


desc   (2009-04-02 12:31:00) [12]

Почему classfunction TMyForm.Execute: integer;?


clickmaker   (2009-04-02 12:08:00) [13]

> потом ID окажется строкой...

else
 Result := '-1';
o)


Игорь Шевченко   (2009-04-02 12:04:00) [14]

clickmaker ©   (02.04.09 11:40) [3]

потом ID окажется строкой...


clickmaker   (2009-04-02 11:40:00) [15]

class function TMyForm.Execute: integer;
begin
 with TMyForm.Create(Application) do begin
   try
     if ShowModal = mrOk then
       Result := GetUserID
     else
       Result := -1;
   finally
     Free;
   end;
 end;
end;


Сергей М.   (2009-04-02 10:52:00) [16]


> Необходимо создать форму в режиме ShowModal


Модальный режим - это режим визуализацииуже созданной формы, а не режим создания этой формы. Единожды созданную форму можно визуализировать как модально, так и не модально.


> должен вернуть ID пользователя который авторизовался


Если ID - это Cardinal, то

ModalResult := ID;


Игорь Шевченко   (2009-04-02 10:45:00) [17]

в направлении свойств формы

public
 property ID: TID read GetID;
end;

with TMyForm.Create(Application) do
 try
   if SHowModal = mrOk then
     aID := ID;
  else
    Halt;
 finally
    Free;
 end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо