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

Вниз

Запуск формы перед другой   Найти похожие ветки 

 
webpauk   (2006-11-13 16:35) [0]

Для входа на форму заполнения реквизитов(не основная) сначала надо заполнить пароль. На какое событие вешать запуск парольной формы. В зависимости от результата ввода пароля форма заполнения реквизитов или запускается или закрывается.


 
KilkennyCat ©   (2006-11-13 16:37) [1]

я тут подумал, и придумал:
наверное, есть какое-то событие, которое запускает форму реквизитов?
а что, если сделать гениальную вещь: вместо нее запустить форму пароля?
А из формы пароля запустить ее, если аутентифицировано?


 
Рамиль ©   (2006-11-13 16:38) [2]

fmMyPasswordForm.ShowModal


 
KilkennyCat ©   (2006-11-13 16:38) [3]

Вот только я не понял, вопрос это был, или оглавления из методички какой-то...


 
KilkennyCat ©   (2006-11-13 16:39) [4]

> [2] Рамиль ©   (13.11.06 16:38)

это событие?


 
Anatoly Podgoretsky ©   (2006-11-13 16:39) [5]

> webpauk  (13.11.2006 16:35:00)  [0]

На событие необходимости заполнения реквизитов.


 
webpauk   (2006-11-13 16:44) [6]

когда активизировать новую форму?
OnCreate
OnShow&


 
novill ©   (2006-11-13 16:44) [7]

OnShow
+ проверка необходимости


 
webpauk   (2006-11-13 16:45) [8]

на OnShow - if FormPass.ShowModal=mrCancel then Close
Close формы не происходит


 
webpauk   (2006-11-13 16:46) [9]

а на OnCreate - if FormPass.ShowModal=mrCancel then Close
форма становится недоступна


 
KilkennyCat ©   (2006-11-13 16:47) [10]

я уже отвечал.


 
novill ©   (2006-11-13 16:49) [11]

я знаю :)

А почему не проверять заполнение пароля вообще перед вызовом формы реквизитов?


 
webpauk   (2006-11-13 16:49) [12]


> KilkennyCat ©   (13.11.06 16:47) [10]


дык ежели из разных мест загружать форму реквизитов - везде цеплять и форму пароля!
нерацуха...


 
KilkennyCat ©   (2006-11-13 16:51) [13]

> [12] webpauk   (13.11.06 16:49)

непонял. я был уверен, что вызов пароля обязателен.


 
webpauk   (2006-11-13 16:54) [14]

обязателен. Только прицепить бы проверку пароля на запуск формы реквизитов. А не вызывать форму пароля каждый раз перед тем как вызываешь форму реквизитов (запуск формы идет из разных мест)


 
Anatoly Podgoretsky ©   (2006-11-13 16:55) [15]

> webpauk  (13.11.2006 16:49:12)  [12]

Глупый человек, ты запускай другую форму из всех мест, а она уже знает когда можно запустить другую форму.


 
webpauk   (2006-11-13 16:56) [16]


> Anatoly Podgoretsky ©   (13.11.06 16:55) [15]

т.е. if FormPassword.showModal = mrOk then FormData.Show;


 
novill ©   (2006-11-13 16:57) [17]

> [14] webpauk   (13.11.06 16:54)
> А не вызывать форму пароля каждый раз перед тем как вызываешь
> форму реквизитов

Сделай одну процедуру, которая бы сначала вызвала форму пароля, а потом форму реквизитов и не парь!


 
webpauk   (2006-11-13 16:58) [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 (её запуск предшествует)


 
KilkennyCat ©   (2006-11-13 16:59) [19]

и даже если требуется по паролю открывать несколько форм, можно просто передавать признак требуемой формы.


 
KilkennyCat ©   (2006-11-13 16:59) [20]

программировать ваще глупо.


 
webpauk   (2006-11-13 17:02) [21]

т. е. из формы FormData нигде нельзя запустить FormPassword, и если результат неуд - закрыть форму FormData?


 
KilkennyCat ©   (2006-11-13 17:05) [22]

> [21] webpauk   (13.11.06 17:02)

если результат неуд - сообщение об этом и все. Зачем закрывать неоткрытое?


 
saxon   (2006-11-13 17:06) [23]


> webpauk   (13.11.06 17:02)

OnIdle, но и это глупо - см [20].


 
clickmaker ©   (2006-11-13 17:07) [24]

тоже мне, придумал проблему. Кода на минуту, а ватокатания на целый день

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, надеюсь, воткнешь по аналогии


 
webpauk   (2006-11-13 17:08) [25]

я начинаю нервничать...
вопрос был: можно ли перед работой с формой FormData проверить доступ, активировав фому FormPassword. И если рез неуд - не активировать FormData, причем эту проверку подвесить на какое-то событие внутри модуля TformData (OnCreate, OnShow, etc)


 
webpauk   (2006-11-13 17:09) [26]


> clickmaker ©   (13.11.06 17:07) [24]

сложнее.
лучше уж каждый раз перед созданием формы где-то в коде делать проверку пароля


 
clickmaker ©   (2006-11-13 17:13) [27]


> [26] webpauk   (13.11.06 17:09)

мужик, ты уже перенервничал, это точно.
ЧЕМ сложнее.
Вызов ОДНОЙ строчки из любого места - что может быть проще?


 
webpauk   (2006-11-13 17:18) [28]


> clickmaker ©   (13.11.06 17:13) [27]

а где объявить class function TRekvizitForm.Execute;?


 
clickmaker ©   (2006-11-13 17:21) [29]


> [28] webpauk   (13.11.06 17:18)

поручик, вам какие еще намеки нужны? TRekvizitForm ни о чем не говорит? Ну ладно, ладно - TformData, делаем скидку на нервы )


 
webpauk   (2006-11-13 17:24) [30]


> clickmaker ©   (13.11.06 17:21) [29]

блин, ну ты совс меня за ламера принимяешь. Обыдна...
я имел в виду private.. public...


 
clickmaker ©   (2006-11-13 17:26) [31]


> блин, ну ты совс меня за ламера принимяешь. Обыдна...
> я имел в виду private.. public...

ты эта... смотри, вот после таких вопросов и правда начну принимать
какой здесь private, сам-то подумай?


 
webpauk   (2006-11-13 17:32) [32]


> 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
объясните-с


 
webpauk   (2006-11-13 17:34) [33]

т. е. RekvizitForm.Execute запускает TRekvizitForm.Create(Application) ?


 
clickmaker ©   (2006-11-13 17:35) [34]


> [32] webpauk   (13.11.06 17:32)

про статические методы, стало быть, не слышали?
Ну так вот: ежели метод объявлен с ключевым словцом class, то его можно вызывать до создания экземпляра.
упомянутый Create, кстати, ни что иное, как специальный статический метод, именуемый конструктором.
Из специфики метода вытекает, что в нем нельзя обращаться к полям класса до создания объекта, что мы и делаем строчкой with TRekvizitForm.Create(Application) do begin


 
webpauk   (2006-11-13 17:40) [35]


> clickmaker ©   (13.11.06 17:35) [34]

спасибо.
поучил дурака. буду знать на будущее. всё заработало.



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

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

Наверх




Память: 0.54 MB
Время: 0.061 c
2-1163490915
TrainerOfDolphins
2006-11-14 10:55
2006.12.03
Клик с нажатой Ctrl на гриде


6-1152518143
Antuan
2006-07-10 11:55
2006.12.03
проблемы с отправкой письма


6-1152778501
Lex_!
2006-07-13 12:15
2006.12.03
TWebBrowser + автоматическое действие


15-1163048704
Steep
2006-11-09 08:05
2006.12.03
Клавиши


2-1163580837
Sanyok
2006-11-15 11:53
2006.12.03
По правте пожалуйста этот запрос не правильно делит