Малко помощ

4 отговора 0 прегледа
#1

Малко помощ

Здравейте!
И аз съм от тези които сега започвам с Делфи.
Имам два въпроса за които неможах да намеря отговор. Елементарни са знам но както казах съм начинаещ. С кое свойство на TEdit да върна фокуса след извеждането на информацията му в Label примерно. С аутофокус нестава или аз бъркам нещо. Напишете го с код примерно Form1.Edit1.... свойство.....

И втория ми въпрос е при MaskEdit съм ограничил до 10 символа за ЕГН какво събитие се активира и как да го обработя т.е. да активирам процедура.

а и още нещо как да накарам бутон клик да се активира и с мишка и с ентер.

Благодаря Ви предварително.

Извинявам се пак за лъишките въпроси.

Отговор
в отговор на lbr #2

Re: Малко помощ

Можеш да фокусираш даден контрол като извикаш метода му SetFocus (например в твоя случай Edit1.SetFocus).
По втория ти въпрос - зависи как искаш да се държи твоята програма. Можеш да прихванеш различни събития - например OnKeyPress или OnExit. В първия случай ще можеш да извършваш проверка още докато се пише ЕГН-то, а във втория ще я направиш след като потребителя го е написал и излезе от контролата. Първия случай е подходящ за по-ненатрапчиви проверки (например да оцветяваш текста в червено, ако въведеният текст не е валидно ЕГН), а втория - ако ще показваш някакви съобщения. Лично аз смятам, че такива проверки обикновено е по-добре да се правят чак когато се записват данните (например при затваряне на формата).
За бутона предполагам питаш как да се активира, когато потребителя натисне Enter, без значение къде е фокуса в момента. За да стане това използвай пропъртито Default на бутона. Ако го сетнеш на True при натискането на Enter все едно е бил кликнат бутона. Аналогично той има и пропърти Cancel, което обаче е свързано с натискането на ESC.

Linux isn't free, it's worthless.


Отговор
в отговор на lbr #3

Re: Малко помощ

Благодаря за отговара.
За бутона имах предвид когато искам примерно да му присвоя освен слик с мишката и примено функционален клавиш примерно F2. А за контролата TEdit след въвеждането на десетата цифра автоматично да се вика функцията за проверка на ЕГН то.

Отговор
в отговор на lbr #4

ActionList

По първия ти въпрос - най-добре ще е да използваш екшъни. Сложи си един ActionList на формата и в него си създай един Action. Задай му стойности на пропъртитата Caption, Hint, Shortcut (в твоя случай F2) и създай обработчици на събитията OnExecute и OnUpdate. В OnExecute сложи кода, който искаш да се изпълнява при натискането на бутона и при натискането на зададения от теб шорткът. В OnUpdate напиши код който да определя дали това действие да е активно / видимо или не. След това си сложи бутона на формата и му задай на пропъртито Action да е създадения от теб екшън. Това ще оправи на бутона надписа и т.н. Можеш да вържеш същия екшън и към елемент от MainMenu, PopupMenu, бутон от toolbar и т.н. и всички бутони, менюта и т.н. ще ти се активират / изключват автоматично по твоята логика.
По втория въпрос - прехвани събитието OnChange на TEdit-а. В него си провери дължината на въведения текст и ако е 10 символа си викни функцията за проверка.

Linux isn't free, it's worthless.


Отговор
в отговор на andrew_nikoloff #5

Re: ActionList

Благодаря ти за отделеното време.
Това с екшън листи не ми е познато все още но ще се поровя.
А за втори въпрос и аз до този извод стигнах до обработвам събитието или ончейнч или онкийпрес. И това ще го разиграя и ако имам въпроси пак ще пиша. Разчитам на компетентнтния ти отговор. Благодаря ти пак.

Отговор