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

Вниз

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

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

Наверх




Память: 0.52 MB
Время: 0.048 c
2-1163695212
kat_nik
2006-11-16 19:40
2006.12.03
Проверка заполненности ячеек компонента TStringGrid


3-1159550644
Kley
2006-09-29 21:24
2006.12.03
Exel&Delphi


15-1163273225
Anatoly Podgoretsky
2006-11-11 22:27
2006.12.03
Ура, закончил - конечная версия APC


15-1163510461
Loginov Dmitry
2006-11-14 16:21
2006.12.03
Какое значение окажется в итоге в Caption?


2-1163591974
Толян__
2006-11-15 14:59
2006.12.03
Архивировать файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский