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