Главная страница
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.013 c
2-1238564131
Руслан
2009-04-01 09:35
2009.05.17
update


3-1220953220
миникодер
2008-09-09 13:40
2009.05.17
Конвертация типов полей из TFieldType в тип полей DOA


3-1220993402
kaif
2008-09-10 00:50
2009.05.17
TClientDataSet + ADO + MSSQL


15-1236699497
Кое кто
2009-03-10 18:38
2009.05.17
Включить "Администратор"


15-1236720610
Юрий
2009-03-11 00:30
2009.05.17
С днем рождения ! 11 марта 2009 среда