restart: with(Maplets[Elements]): FontFamily:=table( ["courier"=courier, "helvetica"=helvetica, "symbol"=symbol, "times"=times] ): FontBold:=table( [true=bold, false=nobold] ): FontItalic:=table( [true=italic, false=noitalic] ): FontSize:=table( ["8"=8,"10"=10,"12"=12,"14"=14,"16"=16] ): FontSequence:=NULL: for f in ["times","courier","helvetica","symbol"] do for b in [true,false] do for i in [true,false] do for s in ["8","10","12","14","16"] do remove(a->evalb((a=nobold) or (a=noitalic)), [f,FontBold[b],FontItalic[i],FontSize[s]]): Font[cat(FontFamily[f],FontBold[b],FontItalic[i],FontSize[s])](op(%)): FontSequence:=FontSequence,%: end do: end do: end do: end do: GetFont:=proc(f,b,i,s) cat(FontFamily[f],FontBold[b],FontItalic[i],FontSize[s]): end proc: ChangeFont:=proc() local f,b,i,s: f:=Maplets:-Tools:-Get(DDB_Font); b:=Maplets:-Tools:-Get(CB_Bold); i:=Maplets:-Tools:-Get(CB_Italic); s:=Maplets:-Tools:-Get(DDB_Size); Maplets:-Tools:-Set(TB_Text(font)=GetFont(f,b,i,s)); end proc: M:=Maplet( Window( title="Font Exchanger",resizable=false, layout=GridLayout( inset=5, GridRow( GridCell(height=5, TextBox[TB_Text]( width=25,height=10,font=timesnoboldnoitalic14, "Этот текст находится в TextBox.\ С помощью DropDownBox и других элементов\ управления будем менять характеристики\ шрифта. Поскольку элемент Font не меняет\ своих свойств, то нужно заранее подготовить\ варианты шрифтов и поместить в Maplet." ) ), GridCell( halign=left,valign=top, DropDownBox[DDB_Font]( "times",["courier","helvetica","symbol","times"], onchange=A_Change ) ) ), GridRow( GridCell( halign=left,valign=top, BoxLayout(inset=0, BoxCell(Label("Bold:")),BoxCell(CheckBox[CB_Bold](onchange=A_Change)) ) ) ), GridRow( GridCell( halign=left,valign=top, BoxLayout(inset=0, BoxCell(Label("Italic:")),BoxCell(CheckBox[CB_Italic](onchange=A_Change)) ) ) ), GridRow( GridCell( halign=left,valign=top, BoxLayout(inset=0, BoxCell(Label("Size:")), BoxCell(DropDownBox[DDB_Size]("14",["8","10","12","14","16"],onchange=A_Change)) ) ) ), GridRow( GridCell(valign=bottom, Button[B_Exit]("Exit",onclick=Shutdown()) ) ) ) ), Action[A_Change](Evaluate(function = ChangeFont)), FontSequence ): Maplets:-Display(M);#