Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.17;
Скачать: CL | DM;

Вниз

Вопрос о ShowModal   Найти похожие ветки 

 
desc   (2009-04-02 10:41) [0]

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

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

Спасибо.


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

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

public
 property ID: TID read GetID;
end;

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


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


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


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


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


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

ModalResult := ID;


 
clickmaker ©   (2009-04-02 11:40) [3]

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 12:04) [4]

clickmaker ©   (02.04.09 11:40) [3]

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


 
clickmaker ©   (2009-04-02 12:08) [5]

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

else
 Result := "-1";
o)


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

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


 
clickmaker ©   (2009-04-02 12:34) [7]

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


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


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

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


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

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

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

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

Спасибо.


 
clickmaker ©   (2009-04-02 13:06) [10]

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


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


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


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


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

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


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


> 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;


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


 
clickmaker ©   (2009-04-02 13:46) [14]

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

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


 
desc   (2009-04-02 14:02) [15]


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

И как быть ? )


 
clickmaker ©   (2009-04-02 14:08) [16]

ControlAtPos, например


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


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


нельзя



Страницы: 1 вся ветка

Текущий архив: 2009.05.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
15-1236701442
It's not me
2009-03-10 19:10
2009.05.17
AnsiString и его изменение потокобезопасно?


9-1179837261
evg123
2007-05-22 16:34
2009.05.17
Загрузка ЦП 100%


4-1208885015
Dmitry
2008-04-22 21:23
2009.05.17
Прочитать UNICODE файл с китайским текстом


15-1237156549
Германн
2009-03-16 01:35
2009.05.17
Это интересно


15-1237228271
AlexDan
2009-03-16 21:31
2009.05.17
Тактовая частота.