Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.05.17;
Скачать: [xml.tar.bz2];

Вниз

Вопрос о 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.007 c
15-1237009771
Pi:)
2009-03-14 08:49
2009.05.17
О числе Pi


15-1234352551
Правильный$Вася
2009-02-11 14:42
2009.05.17
2 вопроса по установке D2009


2-1238746934
Iriss
2009-04-03 12:22
2009.05.17
работа с Gridom


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


15-1236783730
Empleado
2009-03-11 18:02
2009.05.17
Pointer to records





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский