Poslao: 18 Avg 2011 00:10
|
offline
- NIx Car

- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
Zadatak: Treba da napravim GUI kao na slici:

to sam uradio. Treba da podesim dugme "Formatiraj poruku" da kada pritisnem na njega mogu da promenim boju slova,i takodje da mogu da menjam njihov oblik (kurziv,podebljano,podvuceno).
E sad boje sam uspeo da sredim pomocu petlje case
case RgrpBoja.ItemIndex of
0: EdtPoruka.Color:=clRed;
1: edtPoruka.Color:=clBlue ;
2: edtPoruka.Color:=clGreen ;
3: edtPoruka.Color:=clYellow ;
4: edtPoruka.Color:=clBlack;
ali stilove nikako ne mogu da promenim.
Stilovi sam morao da "pravim" preko checkBoxa (posto ne postoji nesto kao CheckGroup) i svaki od njih je poseban objekat tako da nemam ideju kako da nateram ovaj kod da proradi (u knjizi u kojoj mi je data vezba imam vec i kod)
EdtPoruka.Font.style:= [fsbold,fsitalic,fsunderline];
i
EdtPoruka.Font.Style:=[] {za ponistavanje svih stilova slova}
ali kad god napisem prvi kod desi se da mi slova budu u sva tri oblika, a kada ubacim ovu drugu liniju slova nece da se promene. Kada ih kucam posebno,izbaci mi samo zadnji. (npr ako je zadnji fsBold, slova ce samo biti podebljana nista drugo ne bih mogao da uradim)....
ako bi neko mogao da mi pomogne bio bih mu zahvalan.....
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 18 Avg 2011 00:21
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Sta se desava ako na klik uradis ovo:
EdtPoruka.Font.style:= [fsbold];
EdtPoruka.Font.style:= [fsitalic];
hoce li biti podebljana i iskosena ili samo iskosena?
Pitam, jer ne znam sintaksu delphi-ja , radio sam nesto bzvz u srednjoj skoli samo.
Ako je podebljana i iskosena, onda ubacis jedan if, i ispitujes za svaki od ta tri checkbox-a da li otkacen ili ne(postoji neki metod za ispitivanje sigurno), ako jeste samo mu dodas taj deo, recimo , ako je otkacen podebljan u tom if-u stavis
EdtPoruka.Font.style:= [fsbold];
i slicno i za druga dva...i mislim da ce raditi...
A pre svega toga ponistis, znaci, na pocetku akcije stavis ovaj deo:
EdtPoruka.Font.Style:=[] {za ponistavanje svih stilova slova}
da ti ponisti sta je u prethodnom formatiranju bilo, pa tek onda stavis ta tri if-a
|
|
|
|
Poslao: 18 Avg 2011 01:35
|
offline
- NIx Car

- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
kada ih stavim po tom redosledu oni budu samo iskoseni,a ako idem obrnutim redosledom budu podebljana.
|
|
|
|
Poslao: 18 Avg 2011 02:31
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Napisano: 18 Avg 2011 2:26
Onda je jedan nacin, nacin grube sile, da za te tri stavke ispitas 9 kombinacija.
Postoji verovatno elegantnije resenje, ali ne znam kako moze da se na postojeci stil samo doda novi a da se ne izgubi stari...
Dopuna: 18 Avg 2011 2:31
Evo ga nacin za "nadogradnju"
Canvas.Font.Style := Canvas.Font.Style + [fsBold];
Dakle, mozes samo da opalis tri if-a i ako je otkacen bold, dodas mu samo na prethodno opisan nacin, ako je italic - slicno
|
|
|
|
Poslao: 18 Avg 2011 14:00
|
offline
- NIx Car

- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
stavih IF ali
if
EdtPoruka.Font.style= [fsitalic]
then
EdtPoruka.Font.style:=EdtPoruka.Font.style + [fsbold];
EdtPoruka.Font.style:=EdtPoruka.Font.style + [fsunderline];
if
EdtPoruka.Font.style= [fsbold]
then
EdtPoruka.Font.style:=EdtPoruka.Font.style + [fsitalic];
EdtPoruka.Font.style:=EdtPoruka.Font.style + [fsunderline];
if
EdtPoruka.Font.style=[fsunderline]
then
EdtPoruka.Font.style:=EdtPoruka.Font.style + [fsitalic];
EdtPoruka.Font.style:=EdtPoruka.Font.style + [fsbold];
end;
opet se isto desava.... dobijem sva tri....
|
|
|
|
Poslao: 18 Avg 2011 14:37
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
if
EdtPoruka.Font.style= [fsitalic]
then
ne proveravas to, los ti je uslov.
Proveravas da li je checkbox otkacen...
If CheckBox1.Checked then
Samo umesto checkbox1 stavi kako ti se zove checkbox za svaki od njih
|
|
|
|
|
Poslao: 21 Avg 2011 10:48
|
offline
- Pridružio: 02 Jul 2008
- Poruke: 125
|
Evo kako bih ja to uradio (cbI, cbB, cbU - check boksovi za Kurziv, podebljano i podvučeno):
if cbI.Checked then EdtPoruka.Font.Style := EdtPoruka.Font.Style + [fsitalic] else EdtPoruka.Font.Style:= EdtPoruka.Font.Style - [fsitalic];
if cbB.Checked then EdtPoruka.Font.Style := EdtPoruka.Font.Style + [fsbold] else EdtPoruka.Font.Style:= EdtPoruka.Font.Style - [fsbold];
if cbU.Checked then EdtPoruka.Font.Style := EdtPoruka.Font.Style + [fsunderline] else EdtPoruka.Font.Style:= EdtPoruka.Font.Style - [fsunderline];
|
|
|
|