Július Pastierik / 18. 05. 2011, 00:00
V treťom pokračovaní makier pre nastavenie sklonu, hrúbky, šírky, reliéfu, prečiarknutia, podčiarknutia a nadčiarknutia textu si ukážeme funkcie pre testovanie, či určitý reťazec má nastavené zvolené parametre.
Okrem nastavovania potrebujeme niekedy aj vyhľadávať reťazce, ktoré majú nastavené nami špecifikované parametre sklonu, hrúbky, šírky, reliéfu, prečiarknutia, podčiarknutia a nadčiarknutia textu. Samozrejme, okrem ich hľadania požadujeme častokrát zmeniť príslušné nastavenia. Preto si v ďalších dieloch ukážeme funkcie, pomocou ktorých to dokážeme urobiť.
Podobne, ako pri nastavovaní, aj teraz budeme používať dialógové okno, v ktorom si nastavíme hľadané parametre a parametre, aké chceme nastaviť. V dnešnom pokračovaní si na úvod uvedieme feunkciu, pomocou ktorej zistíme, či určitý text má nastavené všetky nami špecifikované parametre.
REM Testovanie zadanej podmienky
function test_podmienky (znak as object) as boolean
dim splnena as boolean
dim pom_text as string
dim podmienka as long
REM Či je zadaná aspoň jedna podmienka
splnena=(oDlgz.model.FontSlantCheck1.State=1) _
or (oDlgz.model.FontWeightCheck1.State=1) _
or (oDlgz.model.FontWidthCheck1.State=1) _
or (oDlgz.model.FontReliefCheck1.State=1) _
or (oDlgz.model.FontStrikeoutCheck1.State=1) _
or (oDlgz.model.FontUnderlineCheck1.State=1) _
or (oDlgz.model.FontOverlineCheck1.State=1)
if splnena then
' Je zadaná aspoň jedna podmienka
REM Sklon písma
if oDlgz.model.FontSlantCheck1.State=1 then
pom_text=trim(oDlgz.getControl("FontSlantBox1").Text)
select case pom_text
case "None"
podmienka=com.sun.star.awt.FontSlant.NONE
case "Oblique"
podmienka=com.sun.star.awt.FontSlant.OBLIQUE
case "Italic"
podmienka=com.sun.star.awt.FontSlant.ITALIC
case "Don't Know"
podmienka=com.sun.star.awt.FontSlant.DONTKNOW
case "Reverse Oblique"
podmienka=com.sun.star.awt.FontSlant.REVERSE_OBLIQUE
case "Reverse Italic"
podmienka=com.sun.star.awt.FontSlant.REVERSE_ITALIC
end select
if oDlgz.model.FontSlantR.State=1 then
splnena=splnena and (znak.CharPosture=podmienka)
else
splnena=splnena and (znak.CharPosture<>podmienka)
endif
endif
REM Hrúbka písma
if oDlgz.model.FontWeightCheck1.State=1 then
pom_text=trim(oDlgz.getControl("FontWeightBox1").Text)
select case pom_text
case "Don't Know"
podmienka=com.sun.star.awt.FontWeight.DONTKNOW
case "Thin"
podmienka=com.sun.star.awt.FontWeight.THIN
case "Ultra Light"
podmienka=com.sun.star.awt.FontWeight.ULTRALIGHT
case "Light"
podmienka=com.sun.star.awt.FontWeight.LIGHT
case "Semi Light"
podmienka=com.sun.star.awt.FontWeight.SEMILIGHT
case "Normal"
podmienka=com.sun.star.awt.FontWeight.NORMAL
case "Semi Bold"
podmienka=com.sun.star.awt.FontWeight.SEMIBOLD
case "Bold"
podmienka=com.sun.star.awt.FontWeight.BOLD
case "Ultra Bold"
podmienka=com.sun.star.awt.FontWeight.ULTRABOLD
case "Black"
podmienka=com.sun.star.awt.FontWeight.BLACK
end select
if oDlgz.model.FontWeightR.State=1 then
splnena=splnena and (znak.CharWeight=podmienka)
else
splnena=splnena and (znak.CharWeight<>podmienka)
endif
endif
REM Šírka písma
if oDlgz.model.FontWidthCheck1.State=1 then
pom_text=trim(oDlgz.getControl("FontWidthBox1").Text)
select case pom_text
case "Don't Know"
podmienka=com.sun.star.awt.FontWidth.DONTKNOW
case "Ultra Condensed"
podmienka=com.sun.star.awt.FontWidth.ULTRACONDENSED
case "Extra Condensed"
podmienka=com.sun.star.awt.FontWidth.EXTRACONDENSED
case "Condensed"
podmienka=com.sun.star.awt.FontWidth.CONDENSED
case "Semi Condensed"
podmienka=com.sun.star.awt.FontWidth.SEMICONDENSED
case "Normal"
podmienka=com.sun.star.awt.FontWidth.NORMAL
case "Semi Expanded"
podmienka=com.sun.star.awt.FontWidth.SEMIEXPANDED
case "Expanded"
podmienka=com.sun.star.awt.FontWidth.EXPANDED
case "Extra Expanded"
podmienka=com.sun.star.awt.FontWidth.EXTRAEXPANDED
case "Ultra Expanded"
podmienka=com.sun.star.awt.FontWidth.ULTRAEXPANDED
end select
if oDlgz.model.FontWidthR.State=1 then
splnena=splnena and (znak.CharScaleWidth=podmienka)
else
splnena=splnena and (znak.CharScaleWidth<>podmienka)
endif
endif
REM Reliéf písma
if oDlgz.model.FontReliefCheck1.State=1 then
pom_text=trim(oDlgz.getControl("FontReliefBox1").Text)
select case pom_text
case "None"
podmienka=com.sun.star.awt.FontRelief.NONE
case "Embossed"
podmienka=com.sun.star.awt.FontRelief.EMBOSSED
case "Engraved"
podmienka=com.sun.star.awt.FontRelief.ENGRAVED
end select
if oDlgz.model.FontReliefR.State=1 then
splnena=splnena and (znak.CharRelief=podmienka)
else
splnena=splnena and (znak.CharRelief<>podmienka)
endif
endif
REM Prečiarknutie písma
if oDlgz.model.FontStrikeoutCheck1.State=1 then
pom_text=trim(oDlgz.getControl("FontStrikeoutBox1").Text)
select case pom_text
case "None"
podmienka=com.sun.star.awt.FontStrikeout.NONE
case "Single"
podmienka=com.sun.star.awt.FontStrikeout.SINGLE
case "Double"
podmienka=com.sun.star.awt.FontStrikeout.DOUBLE
case "Don't Know"
podmienka=com.sun.star.awt.FontStrikeout.DONTKNOW
case "Bold"
podmienka=com.sun.star.awt.FontStrikeout.BOLD
case "Slash"
podmienka=com.sun.star.awt.FontStrikeout.SLASH
case "X"
podmienka=com.sun.star.awt.FontStrikeout.X
end select
if oDlgz.model.FontStrikeoutR.State=1 then
splnena=splnena and (znak.CharStrikeout=podmienka)
else
splnena=splnena and (znak.CharStrikeout<>podmienka)
endif
endif
REM Podčiarknutie písma
if oDlgz.model.FontUnderlineCheck1.State=1 then
pom_text=trim(oDlgz.getControl("FontUnderlineBox1").Text)
select case pom_text
case "None"
podmienka=com.sun.star.awt.FontUnderline.NONE
case "Single"
podmienka=com.sun.star.awt.FontUnderline.SINGLE
case "Double"
podmienka=com.sun.star.awt.FontUnderline.DOUBLE
case "Dotted"
podmienka=com.sun.star.awt.FontUnderline.DOTTED
case "Don't Know"
podmienka=com.sun.star.awt.FontUnderline.DONTKNOW
case "Dash"
podmienka=com.sun.star.awt.FontUnderline.DASH
case "Long Dash"
podmienka=com.sun.star.awt.FontUnderline.LONGDASH
case "Dash Dot"
podmienka=com.sun.star.awt.FontUnderline.DASHDOT
case "Dash Dot Dot"
podmienka=com.sun.star.awt.FontUnderline.DASHDOTDOT
case "Small Wave"
podmienka=com.sun.star.awt.FontUnderline.SMALLWAVE
case "Wave"
podmienka=com.sun.star.awt.FontUnderline.WAVE
case "Double Wave"
podmienka=com.sun.star.awt.FontUnderline.DOUBLEWAVE
case "Bold"
podmienka=com.sun.star.awt.FontUnderline.BOLD
case "Bold Dotted"
podmienka=com.sun.star.awt.FontUnderline.BOLDDOTTED
case "Bold Dash"
podmienka=com.sun.star.awt.FontUnderline.BOLDDASH
case "Bold Long Dash"
podmienka=com.sun.star.awt.FontUnderline.BOLDLONGDASH
case "Bold Dash Dot"
podmienka=com.sun.star.awt.FontUnderline.BOLDDASHDOT
case "Bold Dash Dot Dot"
podmienka=com.sun.star.awt.FontUnderline.BOLDDASHDOTDOT
case "Bold Wave"
podmienka=com.sun.star.awt.FontUnderline.BOLDWAVE
end select
if oDlgz.model.FontUnderlineR.State=1 then
splnena=splnena and (znak.CharUnderline=podmienka)
else
splnena=splnena and (znak.CharUnderline<>podmienka)
endif
endif
REM Nadčiarknutie písma (konštanty sú ako pri podčiarknutí)
if oDlgz.model.FontOverlineCheck1.State=1 then
pom_text=trim(oDlgz.getControl("FontOverlineBox1").Text)
select case pom_text
case "None"
podmienka=com.sun.star.awt.FontUnderline.NONE
case "Single"
podmienka=com.sun.star.awt.FontUnderline.SINGLE
case "Double"
podmienka=com.sun.star.awt.FontUnderline.DOUBLE
case "Dotted"
podmienka=com.sun.star.awt.FontUnderline.DOTTED
case "Don't Know"
podmienka=com.sun.star.awt.FontUnderline.DONTKNOW
case "Dash"
podmienka=com.sun.star.awt.FontUnderline.DASH
case "Long Dash"
podmienka=com.sun.star.awt.FontUnderline.LONGDASH
case "Dash Dot"
podmienka=com.sun.star.awt.FontUnderline.DASHDOT
case "Dash Dot Dot"
podmienka=com.sun.star.awt.FontUnderline.DASHDOTDOT
case "Small Wave"
podmienka=com.sun.star.awt.FontUnderline.SMALLWAVE
case "Wave"
podmienka=com.sun.star.awt.FontUnderline.WAVE
case "Double Wave"
podmienka=com.sun.star.awt.FontUnderline.DOUBLEWAVE
case "Bold"
podmienka=com.sun.star.awt.FontUnderline.BOLD
case "Bold Dotted"
podmienka=com.sun.star.awt.FontUnderline.BOLDDOTTED
case "Bold Dash"
podmienka=com.sun.star.awt.FontUnderline.BOLDDASH
case "Bold Long Dash"
podmienka=com.sun.star.awt.FontUnderline.BOLDLONGDASH
case "Bold Dash Dot"
podmienka=com.sun.star.awt.FontUnderline.BOLDDASHDOT
case "Bold Dash Dot Dot"
podmienka=com.sun.star.awt.FontUnderline.BOLDDASHDOTDOT
case "Bold Wave"
podmienka=com.sun.star.awt.FontUnderline.BOLDWAVE
end select
if oDlgz.model.FontOverlineR.State=1 then
splnena=splnena and (znak.CharOverline=podmienka)
else
splnena=splnena and (znak.CharOverline<>podmienka)
endif
endif
endif
test_podmienky=splnena
end function
Copyright © 2002 - 2013 inet.sk, s. r. o. | Všetky práva vyhradené | Neprešlo jazykovou úpravou | ISSN 1336-1899
Využívame kvalitný webhosting za rozumnú cenu od Inet.sk