|
[ inherited @ 09.03.2007. 15:46 ] @
| 1) Imam dve forme. Na Form1 postavljen je Edit1 i odradjen event OnKeyDown.
Na Form2 ima Button1 koji ima obradjen event OnClick. Hteo bih na OnClick
odraditi Close forme Form2, pa onda da se pozove Edit1KeyDown sa Form1?
2) Kako mogu odraditi da se boja edita menja spram fokusa?
Onaj koji je fokusiran ima zutu boju, npr., a kad pritiskom na enter predjemo
na drugi edit taj drugi dobije zutu boju te prethodni se vrati na bazicnu? |
[ savkic @ 09.03.2007. 16:16 ] @
> 1) Imam dve forme. Na Form1 postavljen je Edit1 i odradjen event OnKeyDown.
> Na Form2 ima Button1 koji ima obradjen event OnClick. Hteo bih na OnClick
> odraditi Close forme Form2, pa onda da se pozove Edit1KeyDown sa Form1?
Ako dobro pratim šta želiš, možeš ovako:
Code:
Release;
Form1.EventKojiZelis;
Mada mislim da ti nije dobra ideja da direktno zoveš EventHandler.
> 2) Kako mogu odraditi da se boja edita menja spram fokusa?
> Onaj koji je fokusiran ima zutu boju, npr., a kad pritiskom na enter predjemo
> na drugi edit taj drugi dobije zutu boju te prethodni se vrati na bazicnu?
Boja selektovanog teksta zavisi od podešavanja windowsa, ako želiš neku drugu boju onda ćeš morati da sam radiš iscrtavanje. Eventualno možeš pogledati neku custom komponentu, mada čisto sumnjam da postoji edit sa takvom funkcionalnošću. Razjasni šta misliš pod ovim da se boja menja spram fokusa?
[ inherited @ 09.03.2007. 18:06 ] @
Otvori se forma, odradjeno je Edit1.SetFocus i npr. Edit1.Color:= clYellow (boja kad je fokus na editu
inace je clBtnFace).
Upise se nesto u Edit1, pritisne enter, prelazi na Edit2.
Edit1.Color sad dobija vrednost clBtnFace, a Edit2.Color:= clYellow.
I tako redom. Ako se opet s nekog Edita vratimo na predjasnji,
taj predjasnji dobija vrednost clYellow, a ovaj clBtnFace, npr.
Jel jasnije?
Ako nije dobra ideja pozivati event s druge forme, sta predlazes?
Meni treba da na drugoj formi iz dataseta, koji je prikazan u dbgridu izaberem lice i duplim klikom na dbgrid,
odnosno, slog, prebacim sifru lica na edit s prve forme, pozovem OnKeyDown(pretragu na osnovu te sifre u editu)
i kao rezultat dobijem u drugim kontrolama podatke iz drugih tabela vezanih za tu sifru lica?
[ savkic @ 09.03.2007. 18:38 ] @
> Otvori se forma, odradjeno je Edit1.SetFocus i npr. Edit1.Color:= clYellow (boja kad je fokus na editu
> inace je clBtnFace).
Dakle kad ima fokus jedna boja a kad nema druga? Handluj OnExit i OnEnter evente i shodno podesi odgovarajuću boju.
> Ako nije dobra ideja pozivati event s druge forme, sta predlazes?
> Meni treba da na drugoj formi iz dataseta, koji je prikazan u dbgridu izaberem lice i duplim klikom na dbgrid,
> odnosno, slog, prebacim sifru lica na edit s prve forme, pozovem OnKeyDown(pretragu na osnovu te sifre u editu)
> i kao rezultat dobijem u drugim kontrolama podatke iz drugih tabela vezanih za tu sifru lica?
Napravi posebnu metodu koju ćeš pozvati ili handluj TEdit.OnChange a ne OnKeyDown.
[ inherited @ 10.03.2007. 10:44 ] @
Napravio sam posebnu proceduru i nju pozivam umesto OnKeyDown.
Da li je Release i Free forme isto?
Citat:
Dakle kad ima fokus jedna boja a kad nema druga? Handluj OnExit i OnEnter evente i shodno podesi odgovarajuću boju.
Npr.:
Imam 10 edita na formi. Na Edit1 OnEnter(Edit1.Color:= clYellow), OnExit(Edit1.Color:= clBtnFace).
Da li to moram uraditi za svaki pojedinacno ili bi se to moglo odraditi na prvom editu i posle
samo za event drugih edita postaviti od prvog(Edit1Enter, Edit1Exit). Ako da, sta predlazete?
Treba mi jos da u MaskEdit napravim: ___/__ = (000/00) ?
Hvala unapred.
[Ovu poruku je menjao inherited dana 10.03.2007. u 13:50 GMT+1]
[ savkic @ 10.03.2007. 13:14 ] @
> Da li je Release i Free forme isto?
Ne, Free odmah oslobađa objekat a Release sa zadrškom, kada se završi sve prethodno, pogleda u Helpu za više detalja.
> Da li to moram uraditi za svaki pojedinacno ili bi se to moglo odraditi na prvom editu i posle
> samo za event drugih edita postaviti od prvog(Edit1Enter, Edit1Exit). Ako da, sta predlazete?
Jedan event handler može deliti više kontrola, u krajnjem slučaju probaj pa ćeš videti i sam može li ili ne.
[ inherited @ 10.03.2007. 14:27 ] @
Savkic, hvala na odgovorima.
Znam da jedan event handler moze deliti vise kontrola, ali ne znam kako to primeniti
u mom slucaju. Imam 10 edita, ako na Edit1 za OnExit i OnEnter odradim:
Code:
procedure TForm1.Edit1Enter(Sender: TObject);
begin
Edit1.Color:= $0011E3EE;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
Edit1.Color:= cl3DLight;
end;
kako da ga handlujem za ostalih devet. Ne mogu dodeliti od edit1 jer se boja onda
menja samo za edit1. Koliko vidim, moracu za svaki edit pisati OnExit i OnEnter, a to mi
deluje neispravno!?! Jel zna neko bolje, kvalitetnije, resenje?
Da li u JEDI biblioteci ima neka gotova komponenta koja to radi?
Ne mogu nikako skontati kako ovo ___/__ u maskeditu da napravim? (tri broja/dva broja)
[ savkic @ 10.03.2007. 14:42 ] @
> Znam da jedan event handler moze deliti vise kontrola, ali ne znam kako to primeniti
procedure TForm1.Edit1Enter(Sender: TObject);
begin
Edit1.Color:= $0011E3EE;
end;
> kako da ga handlujem za ostalih devet. Ne mogu dodeliti od edit1 jer se boja onda
> menja samo za edit1.
Taj parametar Sender ne stoji u event handlerima reda radi ;)
TEdit(Sender).Color := clYellow;
> Ne mogu nikako skontati kako ovo ___/__ u maskeditu da napravim? (tri broja/dva broja)
Koliko se sećam cifra se označava sa 0 (može i ne mora) ili 9 (obavezan), imaš MaskEdit editor gde se sve to lako može uneti i isprobati, ima i primera, a tu je uvek i help.
[ inherited @ 10.03.2007. 19:17 ] @
Parametar Sender ne stoji reda radi, ali treba znati!?! 
Hvala na tome, to je bilo to.
Sto se tice MaskEdita, znam za help, trazio sam, pa posto nisam nasao
postavio sam pitanje. Jos uvek trazim resenje. Jedino sto sam uspeo je
'0009!-00;1;_', ali nikako umesto - da postavim / !?!
[ savkic @ 10.03.2007. 23:21 ] @
> Sto se tice MaskEdita, znam za help, trazio sam, pa posto nisam nasao
> postavio sam pitanje. Jos uvek trazim resenje. Jedino sto sam uspeo je
> '0009!-00;1;_', ali nikako umesto - da postavim / !?!
Onda nisi pažljivo čitao:
"The character that follows a \ character is a literal character. Use this character to use any of the mask special characters as a literal in the data."
Dakle, upiši xxx\/xxx i dobićeš xxx/xxx.
[ Miloš Baić @ 11.03.2007. 01:12 ] @
Proveri u Control Panel -u "Customize Regional Options" pa "Date" - "Date Separator", treba da bude "/" da bi radilo, ako me pamćenje dobro drži.
[ inherited @ 11.03.2007. 10:33 ] @
U pravu si, Milose, meni stoji ".", a kad sam postavio "/" dobio sam razmak u MaskEditu.
Da li to moze da se napravi bez sistemskih podesavanja?
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|