![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск формы перед другой [D6, XP]
webpauk © (2006-11-13 16:35:00)Для входа на форму заполнения реквизитов(не основная) сначала надо заполнить пароль. На какое событие вешать запуск парольной формы. В зависимости от результата ввода пароля форма заполнения реквизитов или запускается или закрывается.
webpauk (2006-11-13 17:40:00) [1]
> clickmaker © (13.11.06 17:35) [34]
спасибо.
поучил дурака. буду знать на будущее. всё заработало.
clickmaker (2006-11-13 17:35:00) [2]
> [32] webpauk (13.11.06 17:32)
про статические методы, стало быть, не слышали?
Ну так вот: ежели метод объявлен с ключевым словцом class, то его можно вызывать до создания экземпляра.
упомянутый Create, кстати, ни что иное, как специальный статический метод, именуемый конструктором.
Из специфики метода вытекает, что в нем нельзя обращаться к полям класса до создания объекта, что мы и делаем строчкой with TRekvizitForm.Create(Application) do begin
webpauk (2006-11-13 17:34:00) [3]т. е. RekvizitForm.Execute запускает TRekvizitForm.Create(Application) ?
webpauk (2006-11-13 17:32:00) [4]
> class function TRekvizitForm.Execute;
> begin
> if TLoginForm.Execute then begin
> with TRekvizitForm.Create(Application) do begin
> try
> ShowModal;
> finally
> Free;
> end;
> end;
> end;
> end;
что новое... вызов метода до Create
объясните-с
clickmaker (2006-11-13 17:26:00) [5]
> блин, ну ты совс меня за ламера принимяешь. Обыдна...
> я имел в виду private.. public...
ты эта... смотри, вот после таких вопросов и правда начну принимать
какой здесь private, сам-то подумай?
webpauk (2006-11-13 17:24:00) [6]
> clickmaker © (13.11.06 17:21) [29]
блин, ну ты совс меня за ламера принимяешь. Обыдна...
я имел в виду private.. public...
clickmaker (2006-11-13 17:21:00) [7]
> [28] webpauk (13.11.06 17:18)
поручик, вам какие еще намеки нужны? TRekvizitForm ни о чем не говорит? Ну ладно, ладно - TformData, делаем скидку на нервы )
webpauk (2006-11-13 17:18:00) [8]
> clickmaker © (13.11.06 17:13) [27]
а где объявитьclass function TRekvizitForm.Execute;?
clickmaker (2006-11-13 17:13:00) [9]
> [26] webpauk (13.11.06 17:09)
мужик, ты уже перенервничал, это точно.
ЧЕМ сложнее.
Вызов ОДНОЙ строчки из любого места - что может быть проще?
webpauk (2006-11-13 17:09:00) [10]
> clickmaker © (13.11.06 17:07) [24]
сложнее.
лучше уж каждый раз перед созданием формы где-то в коде делать проверку пароля
webpauk (2006-11-13 17:08:00) [11]я начинаю нервничать...
вопрос был: можно ли перед работой с формой FormData проверить доступ, активировав фому FormPassword. И если рез неуд - не активировать FormData, причем эту проверку подвесить на какое-то событие внутри модуля TformData (OnCreate, OnShow, etc)
clickmaker (2006-11-13 17:07:00) [12]тоже мне, придумал проблему. Кода на минуту, а ватокатания на целый день
class function TRekvizitForm.Execute;
begin
if TLoginForm.Execute then begin
with TRekvizitForm.Create(Application) do begin
try
ShowModal;
finally
Free;
end;
end;
end;
end;
как должна выглядеть TLoginForm.Execute, надеюсь, воткнешь по аналогии
saxon (2006-11-13 17:06:00) [13]
> webpauk (13.11.06 17:02)
OnIdle, но и это глупо - см [20].
KilkennyCat (2006-11-13 17:05:00) [14]> [21] webpauk (13.11.06 17:02)
если результат неуд - сообщение об этом и все. Зачем закрывать неоткрытое?
webpauk (2006-11-13 17:02:00) [15]т. е. из формы FormData нигде нельзя запустить FormPassword, и если результат неуд - закрыть форму FormData?
KilkennyCat (2006-11-13 16:59:00) [16]программировать ваще глупо.
KilkennyCat (2006-11-13 16:59:00) [17]и даже если требуется по паролю открывать несколько форм, можно просто передавать признак требуемой формы.
webpauk (2006-11-13 16:58:00) [18]
> webpauk (13.11.06 16:56) [16]
>
> > Anatoly Podgoretsky © (13.11.06 16:55) [15]
>
> т.е. if FormPassword.showModal = mrOk then FormData.Show;
>
тока это глупо. Я должен вызывать форму FormData, а получается главной формой оказывается FormPassword (её запуск предшествует)
novill (2006-11-13 16:57:00) [19]> [14] webpauk (13.11.06 16:54)
> А не вызывать форму пароля каждый раз перед тем как вызываешь
> форму реквизитов
Сделай одну процедуру, которая бы сначала вызвала форму пароля, а потом форму реквизитов и не парь!
webpauk (2006-11-13 16:56:00) [20]
> Anatoly Podgoretsky © (13.11.06 16:55) [15]
т.е. if FormPassword.showModal = mrOk then FormData.Show;