home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS 1
/
BBS#1.iso
/
document
/
tvcpp.a04
/
TV_DOC.DOC
Wrap
Text File
|
1992-03-03
|
159KB
|
3,284 lines
«ó«⌐ ß¿ßΓÑ¼δ »«ññÑ᪬¿ "¼δΦ¿".
é «ß¡«óÑ Σ¿½«ß«Σ¿¿ αáºαáí«Γ¬¿ Turbo Vision ½ÑªáΓ ñóÑ ß½Ññπε-
Θ¿Ñ αѬ«¼Ñ¡ñᵿ¿: »«½¡«Ñ ¿ß»«½∞º«óá¡¿Ñ «íΩÑ¬Γ¡«-«α¿Ñ¡Γ¿α«óá¡¡«⌐
ΓÑσ¡¿¬¿ ¿ αáí«Γá ß ¬«¼»½Ñ¬ß«¼ í¿í½¿«ΓѬ¿ Turbo Vision ó ÑÑ
ß«íßΓóÑ¡¡δσ »«¡∩Γ¿∩σ. ¥Γ« «º¡áτáÑΓ "¿úαπ »« »αáó¿½á¼" Turbo
Vision ¿ ¿ß»«½∞º«óá¡¿Ñ ÑÑ ß«ßΓáó¡δσ Γ¿»«ó «íΩÑ¬Γ«ó Γá¬, ¬á¬ φΓ« ó
¡Ñ⌐ »αÑñπß¼«ΓαÑ¡«. îδ ß«ºñáó὿ »α«úαá¼¼¡«Ñ ßαÑñßΓó« Turbo
Vision, τΓ«íδ ¿ºíáó¿Γ∞ »«½∞º«óáΓѽÑ⌐ «Γ «úα«¼¡«ú« «íΩÑ¼á ¡Ñ¡πª¡«⌐
»«óΓ«α∩εΘÑ⌐ß∩ αáí«Γδ ¿ »αÑñ«ßΓáó¿Γ∞ ¿¼ »α«óÑαÑ¡¡πε «ß¡«óπ ñ½∩
αáºαáí«Γ¬¿ »α¿¬½áñ¡δσ »α«úαá¼¼, ¬«Γ«α«⌐ ¼«ª¡« ñ«óÑα∩Γ∞. ÅαÑ-
ñ«ßΓáó∞ΓÑ Turbo Vision αáí«ΓáΓ∞ ó óáΦÑ⌐ »α«úαá¼¼Ñ ¿ óδ ¿ºó½ÑτÑΓÑ
¿º φΓ«ú« ¼á¬ß¿¼π¼ »«½∞ºδ.
Turbo Vision ñ½∩ æ++ = 16 =
¥½Ñ¼Ñ¡Γδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, »«ßΓα«Ñ¡¡«⌐ ó Turbo Vision
-----------------------------------------------------------------
Éáßß¼«Γα¿¼, ñ½∩ ¡áτá½á, ¬á¬¿Ñ ßαÑñßΓóá »αÑñ«ßΓáó½∩ÑΓ Turbo
Vision ñ½∩ αáºαáí«Γ¬¿ »α¿¬½áñ¡δσ »α«úαá¼¼.
ê¼Ñ¡«óá¡¿Ñ τáßΓÑ⌐
-----------------
Åਪ½áñ¡á∩ »α«úαá¼¼á, ¿ß»«½∞ºπεΘá∩ Turbo Vision, »αÑñßΓáó½∩-
ÑΓ ß«í«⌐ óºá¿¼«ñÑ⌐ßΓóπεΘÑÑ ¼¡«ªÑßΓó« «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó, ß«íδ-
Γ¿⌐ ¿ ¡Ñ«Γ«íαáªáѼδσ «íΩÑ¬Γ«ó.
ÄΓ«íαáªáѼδÑ «íΩѬΓδ
ÄΓ«íαáªáѼδ⌐ «íΩÑ¬Γ - φΓ« ½εí«⌐ «íΩÑ¬Γ »α«úαá¼¼δ, ¿º«íαáªáÑ-
¼δ⌐ ¡á φ¬αá¡Ñ. é ¬«¡ΓѬßΓÑ Turbo Vision «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ - φΓ«
Γ«, τΓ« óδ ¼«ªÑΓÑ πó¿ñÑΓ∞ ¡á φ¬αá¡Ñ. Å«½∩, ¡áºóá¡¿∩ »«½Ñ⌐, αἬ¿,
ßΓ᫬¿ »α«¬απΓ¬¿ ¿ ¼Ñ¡ε, - óßÑ φΓ« «Γ«íαáªáѼδÑ «íΩѬΓδ. ÄΓ«íαá-
ªáѼδÑ «íΩѬΓδ ¼«úπΓ «íΩÑñ¿¡∩Γ∞ß∩ ¿ «íαẫóδóáΓ∞ í«½ÑÑ ß½«ª¡δÑ
«íΩѬΓδ, Γá¬¿Ñ ¬á¬ «¬¡á ¿ »á¡Ñ½¿ ñ¿á½«úá. Æá¬¿Ñ «íΩÑñ¿¡Ñ¡¡δÑ
«Γ«íαáªáѼδÑ «íΩѬΓδ ¡áºδóáεΓß∩ úαπ»»«ó묨 «íΩѬΓἿ, ¿ «¡¿ Σπ¡¬-
µ¿«¡¿απεΓ ó¼ÑßΓÑ, ¬á¬ Ññ¿¡δ⌐ «Γ«íαáªáѼδ⌐ «íΩѬΓ. âαπ»»δ Σá¬Γ¿-
τÑ߬¿ ∩ó½∩εΓß∩ ߻ѵ¿á½¿º¿α«óá¡¡δ¼¿ «Γ«íαáªáÑ¼δ¼¿ «íΩѬΓἿ, ¬«Γ«-
αδÑ ¼«úπΓ ß«ñÑαªáΓ∞ ó ßÑíÑ ñαπú¿Ñ «Γ«íαáªáѼδÑ «íΩѬΓδ, ¡áºδóáÑ-
¼δÑ «Γ«íαáªáÑ¼δ¼¿ »«ñ«íΩѬΓἿ. âαπ»»δ ñáªÑ ¼«úπΓ ß«ñÑαªáΓ∞ ó ßÑ-
íÑ ñαπú¿Ñ úαπ»»δ, »«α«ªñá∩ µÑ»«τ¬¿ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó ¿ »«-
ñ«íΩÑ¬Γ«ó. ì¿ªÑ óδ πó¿ñ¿ΓÑ, ¬á¬ ó¬½ετ¿Γ∞ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ó
úαπ»»π, ¬«Γ«αá∩ αÑ὿º«óá¡á ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
ÄΓ«íαáªáѼδÑ «íΩѬΓδ óßÑúñá ¿¼ÑεΓ »α∩¼«πú«½∞¡πε Σ«α¼π, ¿ ó
τáßΓ¡«ßΓ¿, φΓ« ¼«úπΓ íδΓ∞ ¿ »α∩¼«πú«½∞¡¿¬¿, ß«ñÑαªáΘ¿Ñ «ñ¿¡ ß¿¼-
ó«½, á Γá¬ªÑ ßΓ᫬¿ ó «ñ¿¡ ß¿¼ó«½ óδß«Γ«⌐ ¿½¿ Φ¿α¿¡«⌐.
Åα¿¼Ñτá¡¿Ñ: Å«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ « «Γ«íαáªáѼδσ «íΩѬΓá ß«ñÑα-
ª¿Γß∩ ó ú½áóÑ 4.
æ«íδΓ¿∩
æ«íδΓ¿Ñ¼ ∩ó½∩ÑΓß∩ Γ«, ¡á τΓ« ñ«½ª¡á «ΓαÑáú¿α«óáΓ∞ óáΦá »α«ú-
αá¼¼á. æ«íδΓ¿∩ »«ßΓπ»áεΓ «Γ ¬½áó¿áΓπαδ, «Γ "¼δΦ¿" ¿½¿ ¿º ñαπú¿σ
τáßΓÑ⌐ Turbo Vision. ìá»α¿¼Ñα, ¡áªáΓ¿Ñ ¬½áó¿Φ¿, (¬á¬ ¿ ¬¡«»¬¿
"¼δΦ¿") - φΓ« ß«íδΓ¿Ñ. æ«íδΓ¿∩ »«¼ÑΘáεΓß∩ ó «τÑαÑñ∞, ºáΓѼ «íαá-
íáΓδóáεΓß∩ ó »«α∩ñ¬Ñ »«ßΓπ»½Ñ¡¿∩ «íαáí«Γτ¿¬«¼. Æᬫ⌐ «íαáí«Γτ¿¬
¿¼ÑÑΓß∩ ó ¬½áßßÑ TAααlication, ∩ó½∩εΘѼß∩ Γѽ«¼ óáΦÑ⌐ »α¿¬½áñ¡«⌐
»α«úαá¼¼δ. æ »«¼«Θ∞ε ¼Ñσá¡¿º¼á, «»¿ßá¡¿Ñ ¬«Γ«α«ú« íπñÑΓ ñá¡« ¡¿-
ªÑ, ß«íδΓ¿∩, ¬«Γ«αδÑ ¡Ñ í뫨 «íαáí«Γá¡δ ó TAααlication, »ÑαÑñá-
εΓß∩ ñαπú¿¼ «Γ«íαáªáÑ¼δ¼ «íΩѬΓá¼, ¿¼ÑεΘ¿¼ß∩ ó »α«úαá¼¼Ñ, ¿ Γá¬
ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ¡á⌐ñÑ¡ ¡πª¡δ⌐ «íαáí«Γτ¿¬ ß«íδΓ¿⌐ ¿½¿
»«¬á ¡Ñ 󫺡¿¬¡ÑΓ «Φ¿í«τ¡á∩ ß¿Γπᵿ∩.
Turbo Vision ñ½∩ æ++ = 17 =
ìá»α¿¼Ñα, ¡áªáΓ¿Ñ ¬½áó¿Φ¿ F1 óδºδóáÑΓ ß»αáó«τ¡πε ß¿ßΓѼπ.
àß½¿ ¬áªñδ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿¼ÑÑΓ ßó«ε ß«íßΓóÑ¡¡πε Γ«τ¬π óσ«-
ñá ó ß»αáó«τ¡πε ß¿ßΓѼπ (τΓ« ¿¼ÑÑΓ ¼ÑßΓ« ó ß¿ßΓÑ¼Ñ ¬«¡ΓѬßΓ¡«⌐
»«¼«Θ¿), Γ« ¡áªáΓ¿Ñ ¬½áó¿Φ¿ F1 «íαáíáΓδóáÑΓß∩ «íαáí«Γτ¿¬«¼ ß«íδ-
Γ¿⌐ ú½áó¡«⌐ »α«úαá¼¼δ. Äíδτ¡δÑ á½Σáó¿Γ¡«-µ¿Σα«óδÑ ¬½áó¿Φ¿ ¿½¿
¬½áó¿Φ¿ αÑñá¬Γ¿α«óá¡¿∩ ßΓ᫬, ¡á«í«α«Γ, ñ«½ª¡δ «íαáíáΓδóáΓ∞ß∩ ß
»«¼«Θ∞ε «Γ«íαáªáѼ«ú« «íΩѬΓá, ¬«Γ«αδ⌐ ó ¡áßΓ«∩Θ¿⌐ ¼«¼Ñ¡Γ ¡áσ«-
ñ¿Γß∩ ó "Σ«¬πßÑ" (á¬Γ¿óÑ¡), Γ.Ñ. «íΩѬΓá, ß ¬«Γ«αδ¼ »«½∞º«óáΓѽ∞
αáí«ΓáÑΓ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ.
Åα¿¼Ñτá¡¿Ñ: Å«ñα«í¡ÑÑ « ß«íδΓ¿∩σ ß¼. ó ú½áóÑ 5.
ìÑ«Γ«íαáªáѼδÑ «íΩѬΓδ
ìÑ«Γ«íαáªáÑ¼δ¼¿ ¡áºδóáεΓß∩ ½εíδÑ «íΩѬΓδ »α«úαá¼¼δ, ¡Ñ ∩ó½∩-
εΘ¿Ñß∩ «Γ«íαáªáÑ¼δ¼¿. Ä¡¿ ¡áºδóáεΓß∩ ¡Ñ «Γ«íαáªáÑ¼δ¼¿ ¡á φ¬αá¡Ñ,
Γ.¬. ¡Ñ»«ßαÑñßΓóÑ¡¡« ¡Ñ óºá¿¼«ñÑ⌐ßΓóπεΓ ß φ¬αá¡«¼. Ä¡¿ óδ»«½¡∩εΓ
óδτ¿ß½Ñ¡¿∩, «ßπΘÑßΓó½∩εΓ ßó∩º∞ ß »Ñα¿ΣÑα¿⌐¡δ¼¿ πßΓα«⌐ßΓóἿ ¿ ó
µÑ½«¼ αÑ὿ºπεΓ Σπ¡¬µ¿¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. àß½¿ ¡Ñ«Γ«íαáªáѼ«-
¼π «íΩѬΓπ »«ΓαÑíπÑΓß∩ óδóÑßΓ¿ ¬á¬πε-½¿í« ¿¡Σ«α¼áµ¿ε ¡á φ¬αá¡, Γ«
φΓ« ñѽáÑΓß∩ ß »«¼«Θ∞ε «Γ«íαáªáѼ«ú« «íΩѬΓá. ¥Γá ¬«¡µÑ»µ¿∩ ∩ó½∩-
ÑΓß∩ «τÑ¡∞ ó᪡«⌐ ñ½∩ »«ññÑαªá¡¿∩ ßΓα«ú«ú« »«α∩ñ¬á ó »α¿¬½áñ¡δσ
»α«úαá¼¼áσ Turbo Vision: ß φ¬αá¡«¼ óºá¿¼«ñÑ⌐ßΓóπεΓ Γ«½∞¬« «Γ«íαá-
ªáѼδÑ «íΩѬΓδ.
ì¿τΓ« ¡Ñ ¼«ªÑΓ, «ñ¡á¬«, »«¼ÑΦáΓ∞ "íѺú½áß¡δ¼" «íΩѬΓá¼ óδ-
»«½¡¿Γ∞ óδó«ñ ¡á φ¬αá¡ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ αrintf ¿½¿ «»ÑαáΓ«-
αá <<. ì« »α¿ φΓ«¼, Ñß½¿ óδ óδó«ñ¿ΓÑ ΓѬßΓ ¡á ñ¿ß»½Ñ⌐ ßá-
¼«ßΓ«∩Γѽ∞¡«,Γ« φΓ« »«ó½ÑτÑΓ αáºαπΦÑ¡¿Ñ ΓѬßΓá, óδó«ñ¿¼«ú«
Turbo Vision, ¿ ΓѬßΓ, ¬«Γ«αδ⌐ óδó«ñ¿Γ ¡á φ¬αá¡ Turbo
Vision, ¼«ªÑΓ ºáΓÑαÑΓ∞ óáΦ "«ΓßΓπ»¡¿τÑ߬¿⌐" ΓѬßΓ (¡á»α¿¼Ñα,
ß »«¼«Θ∞ε »ÑαѼÑΘÑ¡¿∩ ¿½¿ ¿º¼Ñ¡Ñ¡¿∩ αẼÑα«ó «¬«¡).
Turbo Vision ñ½∩ æ++ = 18 =
ÄíΘ¿Ñ »«ñσ«ñδ
ū߬«½∞¬π Turbo Vision αáºαáí«Γá¡ ñ½∩ αÑ὿ºáµ¿¿ ßΓá¡ñáαΓ¿-
º«óá¡¡«ú«, αᵿ«¡á½∞¡«ú« »«ñσ«ñá ¬ »«ßΓα«Ñ¡¿ε ¿¡ΓÑαΣÑ⌐ßá, Γ« óáΦ¿
»α¿¬½áñ¡δÑ »α«úαá¼¼δ «íαÑΓπΓ »«σ«ª¿⌐ ó¿ñ. ¥Γ«Γ ó¿ñ ¿ñÑ¡Γ¿τÑ¡ ó¿ñπ
¿¡ΓÑαΣÑ⌐ßá αẽ¿τ¡δσ ¿¡ΓÑúα¿α«óá¡¡δσ ßαÑñ Σ¿α¼δ Borland ¿ íếαπ-
ÑΓß∩ ¡á ¼¡«ú«½ÑΓ¡Ñ¼ «»δΓÑ ¿ »α«óÑα¬áσ ¿σ ¿ß»«½∞º«óá¡¿∩. ì὿τ¿Ñ
«íΘÑú« ¿ ñ«ßΓπ»¡«ú« ñ½∩ »«¡¿¼á¡¿∩ »«ñσ«ñá ¬ ¿¡ΓÑαΣÑ⌐ßπ »α¿¬½áñ¡«⌐
»α«úαá¼¼δ ∩ó½∩ÑΓß∩ í«½∞Φ¿¼ »αÑ¿¼πΘÑßΓó«¼ ñ½∩ óáß ¿ óáΦ¿σ »«½∞º«-
óáΓѽÑ⌐: ìÑß¼«Γα∩ ¡á ½εíπε ß½«ª¡«ßΓ∞ ¿ "ºá¬αδΓ«ßΓ∞" ºáñáτ óáΦÑ⌐
»α«úαá¼¼δ, ß»«ß«í αáí«Γδ ß ¡Ñ⌐ íπñÑΓ óßÑúñá óá¼ º¡á¬«¼ ¿ »α«µÑßß
αáí«Γδ ß ¡Ñ⌐ ½Ñú«¬ ¿ »α«ßΓ.
ìá α¿ßπ¡¬Ñ 1.1 »«¬áºá¡ α∩ñ «íΘ¿σ φ½Ñ¼Ñ¡Γ«ó, ¬«Γ«αδÑ ¼«úπΓ
íδΓ∞ τáßΓ∞ε »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ß«ºñá¡¡«⌐ ß ¿ß»«½∞º«ó᡿Ѽ
Turbo Vision. Éáí«τá∩ «í½áßΓ∞ - φΓ« ºáΦΓα¿σ«óá¡¡δ⌐ Σ«¡, ¡á ¬«Γ«-
α«¼ «Γ«íαáªáεΓß∩ «íΩѬΓδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. èᬠ¿ óßÑ «ßΓá½∞-
¡δÑ φ½Ñ¼Ñ¡Γδ Turbo Vision, αáí«τá∩ «í½áßΓ∞ ∩ó½∩ÑΓß∩ «íΩÑ¬Γ«¼.
ÄíΩѬΓἿ ∩ó½∩εΓß∩ Γá¬ªÑ ½¿¡Ñ⌐¡«Ñ ¼Ñ¡ε ó óÑασ¡Ñ⌐ τáßΓ¿ φ¬αá¡á ¿
ßΓ᫬á ß«ßΓ«∩¡¿∩ ó Ñú« ¡¿ª¡Ñ⌐ τáßΓ¿. 諼á¡ñδ ó ßΓ᫬«ó«¼ ¼Ñ¡ε
ß««ΓóÑΓßΓóπεΓ ¼Ñ¡ε, ¬«Γ«αδÑ "αá߬αδóáεΓß∩" 󡿺 (óÑαΓ¿¬á½∞¡δÑ ¼Ñ-
¡ε) ß »«¼«Θ∞ε "¼δΦ¿" ¿½¿ ¡áªáΓ¿∩ ß««ΓóÑΓßΓóπεΘ¿σ π»αáó½∩εΘ¿σ ¬½á-
ó¿Φ.
Åα¿¼Ñτá¡¿Ñ: Å«ñα«í¡ÑÑ «í φΓ«¼ ß¼. ó ú½áóÑ 4.
┌──────────────────────────────────────┐
│ ï¿¡Ñ⌐¡«Ñ ¼Ñ¡ε │
├──────────────────────────────────────┤
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░ Éáí«τá∩ «í½áßΓ∞░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
├──────────────────────────────────────┤
│ æΓ᫬á ß«ßΓ«∩¡¿∩ │
└──────────────────────────────────────┘
É¿ßπ¡«¬ 1.1. Éáß»«½«ªÑ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó Turbo Vision ¡á φ¬αá¡Ñ.
ÆѬßΓ, ¬«Γ«αδ⌐ »«∩ó½∩ÑΓß∩ ó ßΓα«¬Ñ ß«ßΓ«∩¡¿∩, »αÑñ¡áº¡áτÑ¡
ñ½∩ óáß, ¿, «íδτ¡«, Γá¼ óδñáεΓß∩ ß««íΘÑ¡¿∩ « ΓѬπΘѼ ß«ßΓ«∩¡¿¿
óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, »«¬áºδóáεΓß∩ ¿¼ÑεΘ¿Ñß∩ π»αáó½∩εΘ¿Ñ
¬½áó¿Φ¿ ¿½¿ »«ñ߬Ậ¿ « ¬«¼á¡ñáσ, ¬«Γ«αδÑ ñ«ßΓπ»¡δ »«½∞º«óáΓѽ∩¼
ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ.
è«úñá «Γ¬αδóáÑΓß∩ óÑαΓ¿¬á½∞¡«Ñ ¼Ñ¡ε, Γ« π¬áºáΓѽ∞ ¼«ªÑΓ »Ñ-
αѼÑΘáΓ∞ß∩ óóÑασ ¿ ó¡¿º »« ¬«¼á¡ñá¼ φΓ«ú« ¼Ñ¡ε ó ß««ΓóÑΓßΓó¿¿ ß
»ÑαѼÑΘÑ¡¿Ñ¼ "¼δΦ¿" ¿½¿ ¬παß«αá. è«úñá óδ ¡áª¿¼áÑΓÑ ¬½áó¿Φπ Enter
¿½¿ ½Ñóπε ¬¡«»¬π "¼δΦ¿", Γ« óδí¿αáÑΓß∩ ¬«¼á¡ñá ¼Ñ¡ε, ¬«Γ«αá∩ íδ½á
óδñѽѡá ó φΓ« óαѼ∩. Åα¿ ÑÑ óδí«αÑ »α«¿ºó«ñ¿Γß∩ »ÑαÑñáτá π»αáó-
½Ñ¡¿∩ ó ¬á¬πε-½¿í« τáßΓ∞ »α«úαá¼¼δ.
Turbo Vision ñ½∩ æ++ = 19 =
æó∩º∞ »α«úαá¼¼δ ß »«½∞º«óáΓѽ∩¼¿ «íδτ¡« «ßπΘÑßΓó½∩ÑΓß∩ τÑαѺ
«¬¡« ¿½¿ ¡Ñ߬«½∞¬« «¬«¡ ¿½¿ »á¡Ñ½¿ ñ¿á½«úá, ¬«Γ«αδÑ «Γ«íαáªáεΓß∩
ó αáí«τÑ⌐ «í½áßΓ¿ ¡á φ¬αá¡Ñ ¿ ¿ßτѺáεΓ ó ß««ΓóÑΓßΓó¿¿ ß ¬«¼á¡ñἿ
«Γ "¼δΦ¿" ¿½¿ ß ¬½áó¿áΓπαδ. Turbo Vision αáß»«½áúáÑΓ í«½∞Φ¿¼
áßß«αΓ¿¼Ñ¡Γ«¼ á½ú«α¿Γ¼«ó αáí«Γδ ß «¬¡á¼¿ »« óó«ñπ ¿ ¿º«íαáªÑ¡¿ε
¿¡Σ«α¼áµ¿¿ ¡á φ¬αá¡Ñ. é¡πΓαÑ¡¡¿Ñ »«½∩ «¬«¡ ¼«ª¡« ßñѽáΓ∞ »α«¬απ-
τ¿óáÑ¼δ¼¿, ¿ Γ«úñá «¡¿ íπñπΓ ß½πª¿Γ∞ "ó«α«ΓἿ" ó í«½ÑÑ ¬απ»¡δÑ
¿º«íαáªÑ¡¿∩ ñá¡¡δσ, Γá¬¿Ñ ¬á¬ Σá⌐½δ ñ«¬π¼Ñ¡Γ«ó. Å᫬απΓ¬á «¬¡á »«
ñá¡¡δ¼ óδ»«½¡∩ÑΓß∩ »ÑαѼÑΘÑ¡¿Ñ¼ íÑúπ¡¬á ßΓ᫬¿-»α«¬απΓ¬¿ ó ¡¿ª¡Ñ⌐
τáßΓ¿ φ¬αá¡á, ó Ñú« »αáó«⌐ τáßΓ¿ ¿½¿ ó «íÑ¿σ φΓ¿σ τáßΓ∩σ. üÑúπ¡«¬
ßΓ᫬¿-»α«¬απΓ¬¿ π¬áºδóáÑΓ »«½«ªÑ¡¿Ñ «¬¡á «Γ¡«ß¿Γѽ∞¡« ß«ó«¬π»-
¡«ßΓ¿ ¿º«íαáªáѼδσ ¡á φ¬αá¡Ñ ñá¡¡δσ.
ä¿á½«ú«óδÑ «¬¡á τáßΓ« ß«ñÑαªáΓ ¬¡«»¬¿, ¬«Γ«αδÑ αÑ὿º«óá¡δ
¬á¬ óδñѽѡ¡δÑ µóÑΓ«¼ ß½«óá, ¬«Γ«αδÑ óδí¿αáεΓß∩ ß »«¼«Θ∞ε "¼δΦ¿"
(¿½¿ ß »«¼«Θ∞ε ¬½áó¿Φ "Γáíπ½∩µ¿∩" ¿ "»α«íѽ"). é «ΓóÑΓ ¡á ¡áªá-
Γ¿Ñ, "¬¡«»¬¿" óñáó½¿óáεΓß∩ (¬á¬ ¡áßΓ«∩Θ¿Ñ ¬¡«»¬¿) ¿ ¼«úπΓ αÑ὿-
º«óáΓ∞ »ÑαÑñáτ𠬫¼á¡ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
Turbo Vision ñ½∩ æ++ = 20 =
Åα«úαá¼¼á "Hello, World!" ó ßΓ¿½Ñ Turbo Vision
-----------------------------------------------------------------
Æαáñ¿µ¿«¡¡δ¼ ß»«ß«í«¼ ñѼ«¡ßΓαᵿ¿ »α¿¼Ñ¡Ñ¡¿∩ ½εí«ú« ¡«ó«ú«
∩ºδ¬á ¿½¿ »á¬ÑΓá, αÑ὿ºπεΘÑú« ¿¡ΓÑαΣÑ⌐ß ß »«½∞º«óáΓѽѼ, ∩ó½∩-
ÑΓß∩ »αÑñßΓáó½Ñ¡¿Ñ »α«úαá¼¼δ "Hello, World" ("çñαáóßΓóπ⌐, ¼¿α"),
¡á»¿ßá¡¡«⌐ ß »«¼«Θ∞ε αáßß¼áΓα¿óáѼδσ ßαÑñßΓó. ¥Γá »α«úαá¼¼á «íδτ-
¡« ó¬½ετáÑΓ ½¿Φ∞ φ½Ñ¼Ñ¡Γ, ñ«ßΓáΓ«τ¡δ⌐ ñ½∩ ¿º«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ
ßΓ᫬¿ "Hello, World" ¿ ó«ºóαáΓá π»αáó½Ñ¡¿∩ ó DOS.
Turbo Vision »αÑñ«ßΓáó½∩ÑΓ ñαπú«⌐ ß»«ß«í »αÑñßΓáó½Ñ¡¿∩ óδαá-
ªÑ¡¿∩ "Hello, World!".
è½áßß¿τÑ߬á∩ »α«úαá¼¼á "Hello, World" ¡Ñ ∩ó½∩ÑΓß∩ ¿¡ΓÑαá¬-
Γ¿ó¡«⌐ («¡á "ú«ó«α¿Γ", ¡« ¡Ñ "ß½πΦáÑΓ"), á Turbo Vision ∩ó½∩ÑΓß∩
ßαÑñßΓó«¼ ñ½∩ αáºαáí«Γ¬¿ ¿¡ΓÑαá¬Γ¿ó¡δσ »α«úαá¼¼.
Åα¿¼Ñτá¡¿Ñ: »α«úαá¼¼á "Hello, World" ß«ñÑনΓß∩ ó Σá⌐½Ñ HELLO.CPP
¡á ñ¿ßΓα¿íπΓ¿ó¡δσ ñ¿ß¬áσ.
Åα«ßΓÑ⌐Φá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á, ß«ºñá¡¡á∩ ß ¿ß»«½∞º«ó᡿Ѽ
Turbo Vision, ú«αáºñ« ß½«ª¡ÑÑ, τѼ óδαáªÑ¡¿Ñ αrintf, ºá¬½ετÑ¡¡«Ñ
¼Ñªñπ { ¿ }. é ßαáó¡Ñ¡¿¿ ß ¬½áßß¿τÑ߬«⌐ »α«úαá¼¼«⌐ "Hello, World"
»α«úαá¼¼á HELLO.CPP ¡á Turbo Vision óδ»«½¡∩ÑΓ ¼áßßπ «»Ñαᵿ⌐, ó
Γ.τ.:
- «τ¿ßΓ¬π αáí«τÑ⌐ «í½áßΓ¿ φ¬αá¡á »« »«½πΓ«¡«ó«¼π Φáí½«¡π;
- ¿º«íαáªÑ¡¿Ñ ßΓ᫬«ó«ú« ¼Ñ¡ε ¿ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ ó óÑασ¡Ñ⌐ ¿
¡¿ª¡Ñ⌐ τáßΓ∩σ φ¬αá¡á;
- πßΓá¡«ó¬π «íαáí«Γτ¿¬á ß«íδΓ¿⌐ «Γ ¬½áó¿áΓπαδ ¿ "¼δΦ¿";
- »«ßΓα«Ñ¡¿Ñ «íΩѬΓá ¼Ñ¡ε "ºá ¬π½¿ßἿ" ¿ »α¿ß«Ññ¿¡Ñ¡¿Ñ Ñú« ¬
ßΓα«¬Ñ ¼Ñ¡ε;
- »«ßΓα«Ñ¡¿Ñ ñ¿á½«ú«ó«ú« «¬¡á Γá¬ªÑ "ºá ¬π½¿ßἿ";
- ßó∩º∞ ñ¿á½«ú«ó«ú« «¬¡á ß ¼Ñ¡ε;
- «ª¿ñá¡¿Ñ ¡áªáΓ¿⌐ ¬½áó¿Φ ¿ ß«íδΓ¿⌐ «Γ "¼δΦ¿".
é φΓ«¼ »ÑαÑτ¡Ñ ¡Ñ ß«ñÑনΓß∩ ¿¡Σ«α¼áµ¿∩ « óδó«ñÑ ΓѬßΓá ¡á
φ¬αá¡. ìѬ«Γ«αδ⌐ ΓѬßΓ íδ½ »«ñú«Γ«ó½Ñ¡, ¡« φΓ« í佫 ßñѽᡫ
¡á ºáñ¡Ñ¼ »½á¡Ñ ó «ª¿ñá¡¿¿ Ñú« ó맮óá »« ¬«¼á¡ñÑ. Åα¿ ¿ºπτÑ-
¡¿¿ Turbo Vision ß½ÑñπÑΓ ¿¼ÑΓ∞ ó ó¿ñπ: ßπΓ∞ »α«úαá¼¼¿α«óá¡¿∩
ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision ºá¬½ετáÑΓß∩ ó αáºαáí«Γ¬Ñ ΓαÑíπ-
Ѽ«ú« ó¿ñá ¿¡ΓÑαΣÑ⌐ßá ¿ Ñú« «íαáí«Γ¬¿ ¬«¼á¡ñ. Turbo Vision -
"߬ѽÑΓ" »α«úαá¼¼δ - »«ºáí«Γ¿Γß∩ « »ÑαÑñáτÑ ¬«¼á¡ñ ¡πª¡δ¼
τáßΓ∩¼ óáΦÑ⌐ »α«úαá¼¼δ. éá¼ ªÑ «ßΓá¡ÑΓß∩ ½¿Φ∞ «»αÑñѽ¿Γ∞, τΓ«
¬«¡¬αÑΓ¡« ñ«½ª¡« íδΓ∞ ßñѽᡫ »«ß½Ñ ¡áªáΓ¿∩ ¬½áó¿Φ¿ ¡á ¬½áó¿-
áΓπαÑ, ¬¡«»¬¿ "¼δΦ¿" ¿½¿ óδí«αá ¬«¼á¡ñδ ¼Ñ¡ε.
Turbo Vision ñ½∩ æ++ = 21 =
Æᬿ¼ «íαẫ¼ "¼∩ß«¼" óáΦÑ⌐ »α«úαá¼¼δ ∩ó½∩ÑΓß∩ Γá ÑÑ τáßΓ∞,
¬«Γ«αá∩ óδ»«½¡∩ÑΓ Σπ¡¬µ¿«¡á½∞¡πε «íαáí«Γ¬π »α¿¡¿¼áѼδσ «Γ »«½∞º«-
óáΓѽ∩ ¬«¼á¡ñ - ¿ φΓá "¼∩ß¡á∩" τáßΓ∞ ß«ñÑনΓß∩ ó ß«ºñáóáѼδσ
«Γ«íαáªáѼδσ «íΩѬΓáσ.
Turbo Vision ñ½∩ æ++ = 22 =
çá»π߬ »α«úαá¼¼δ HELLO.CPP
ÅαѪñÑ, τѼ »α«óÑßΓ¿ ñÑΓá½∞¡δ⌐ á¡á½¿º »α«úαá¼¼δ HELLO.CPP,
ß½ÑñπÑΓ ÑÑ ºáúαπº¿Γ∞, «Γ¬«¼»¿½¿α«óáΓ∞ ¿ »«ß¼«ΓαÑΓ∞, ¬á¬ «¡á αáí«-
ΓáÑΓ.
Åα¿ φΓ«¼ Hello «τ¿ßΓ¿Γ φ¬αá¡ ¿ ß«ºñáÑΓ αáí«τπε «í½áßΓ∞, ¬á¬
»«¬áºá¡¡πε ¡á É¿ß.1.2. é φΓ«⌐ «í½áßΓ¿ ¡ÑΓ «Γ¬αδΓδσ «¬«¡, á ó ½¿-
¡Ñ⌐¡«¼ ¼Ñ¡ε ó óÑασ¡Ñ⌐ τáßΓ¿ φ¬αá¡á »«∩ó½∩ÑΓß∩ ½¿Φ∞ «ñ¿¡ φ½Ñ¼Ñ¡Γ:
¬«¼á¡ñá Hello. ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« íπ¬óá "H" ó ß½«óÑ Hello óδ-
ñÑ½Ñ¡á «ß«íδ¼ µóÑΓ«¼, á ó ßΓα«¬Ñ ß«ßΓ«∩¡¿∩ ¡áσ«ñ¿Γß∩ ß««íΘÑ¡¿Ñ:
Alt-X Exit.
┌──────────────────────────────────────┐
│ Hello │
├──────────────────────────────────────┤
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
├──────────────────────────────────────┤
│ Alt-X Exit │
└──────────────────────────────────────┘
É¿ßπ¡«¬ 1.2. ìáτá½∞¡δ⌐ φ¬αá¡ »α«úαá¼¼δ HELLO.CPP.
çñÑß∞ ß½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞ ñóá «íΘ¿σ »αáó¿½á »α«úαá¼¼¿α«óá¡¿∩ ó
½εí«⌐ »«½∞º«óáΓѽ∞߬«⌐ ßαÑñÑ: ¡¿¬«úñá ¡Ñ ºáßΓáó½∩⌐ΓÑ »«½∞º«óáΓÑ-
½∩ αẼδΦ½∩Γ∞ « Γ«¼, τΓ« ªÑ Ѽπ ñѽáΓ∞ ñá½∞ΦÑ, á Γá¬ªÑ óßÑúñá
»αÑñ«ßΓáó½∩⌐ΓÑ »«½∞º«óáΓÑ½ε »πΓ∞ ñó¿ªÑ¡¿∩ ó»ÑαÑñ ¿ »πΓ∞ ¬ «ΓßΓπ»-
½Ñ¡¿ε. ÅÑαÑñ ΓѼ, ¬á¬ ¡áτáΓ∞ ¬á¬¿Ñ-½¿í« «»Ñαᵿ¿, »«½∞º«óáΓѽ∞
»α«úαá¼¼δ Hello ¿¼ÑÑΓ ñóÑ τÑΓ¬¿Ñ 󫺼«ª¡«ßΓ¿: ½¿í« óδíαáΓ∞ »π¡¬Γ
¼Ñ¡ε Hello, ½¿í« ¡áªáΓ∞ ¬½áó¿Φπ Alt-X, τΓ«íδ óδ⌐Γ¿ ¿º »α«úαá¼¼δ.
Å«∩ó½Ñ¡¿Ñ αáºó«αáτ¿óáεΘÑú«ß∩ ¼Ñ¡ε ¡á φ¬αá¡Ñ
ê¼Ñ∩ ó ó¿ñπ »αÑñδñπΘ¿Ñ ºá¼Ñτá¡¿∩, óδíÑα¿ΓÑ ó ßΓ᫬«ó«¼ ¼Ñ¡ε
¬«¼á¡ñπ Hello. ¥Γ« ¼«ª¡« ßñѽáΓ∞ ΓαѼ∩ ß½ÑñπεΘ¿¼¿ ß»«ß«íἿ:
- »«¼ÑßΓ¿ΓÑ π¬áºáΓѽ∞ "¼δΦ¿" ¡áñ Hello ¿ ¡áª¼¿ΓÑ ÑÑ ½Ñóπε ¬¡«»-
¬π;
- ¡áª¼¿ΓÑ ¬½áó¿Φπ F10, τΓ«íδ πßΓá¡«ó¿Γ∞ ¬παß«α ¡á ½¿¡Ñ⌐¡«Ñ ¼Ñ-
¡ε, óδñѽ¿ó »α¿ φΓ«¼ ß½«ó« Hello. çáΓѼ ¡áª¼¿ΓÑ ¬½áó¿Φπ
Enter, τΓ«íδ óδíαáΓ∞ Hello.
- ¡áª¼¿ΓÑ Alt-H, úñÑ H - φΓ« óδñѽѡ¡á∩ íπ¬óá ó ¬«¼á¡ñÑ Hello.
é« óßÑσ ΓαÑσ ß½πτá∩σ αáºó«αáτ¿óáεΘÑÑß∩ ¼Ñ¡ε »«∩ó¿Γß∩ ¡¿ªÑ
»π¡¬Γá ¼Ñ¡ε Hello. ¥Γ« óá¼, ¬á¬ »α«úαá¼¼¿ßΓπ ¡á ∩ºδ¬Ñ Turbo C++
Turbo Vision ñ½∩ æ++ = 23 =
¿½¿ Borland C++, ñ«½ª¡« íδΓ∞ º¡á¬«¼«. éδ»«½¡¿ó φΓ¿ «»Ñαᵿ¿, óδ
πíÑñ¿ΓÑß∞ ó Γ«¼, τΓ« ó í¿í½¿«ΓÑ¬Ñ Turbo Vision πτΓÑ¡δ óßÑ ß«ú½á-
ΦÑ¡¿∩ ¿¡ΓÑúα¿α«óá¡¡δσ ßαÑñ Σ¿α¼δ Borland.
Å«∩ó¿óΦÑÑß∩ ¼Ñ¡ε »«¬áºá¡« ¡á α¿ß.1.3. é ¡Ñ¼ ß«ñÑনΓß∩ óßÑú«
ñóÑ ¬«¼á¡ñδ, αáºñѽѡ¡δσ «Γñѽ∞¡«⌐ ½¿¡¿Ñ⌐. Äñ¡á¬«, ó «íΘѼ ß½π-
τáÑ, ó ¡¿σ ¼«ªÑΓ αáß»«½áúáΓ∞ß∩ ½εí«Ñ τ¿ß½« ¬«¼á¡ñ, «úαá¡¿τÑ¡¡δσ
½¿Φ∞ αẼÑα«¼ φ¬αá¡á.
┌──────────────────┐
│░░Greeting...░░░░░│
├──────────────────┤
│ Alt-X Exit │
└──────────────────┘
É¿ßπ¡«¬ 1.3. îÑ¡ε »α«úαá¼¼δ HELLO.CPP.
éδ ¼«ªÑΓÑ ßñѽáΓ∞ óδí«α ¬«¼á¡ñδ ¼Ñ¡ε ½¿í« ß »«¼«Θ∞ε ¬½áó¿á-
Γπαδ, ½¿í« ß »«¼«Θ∞ε "¼δΦ¿". æ »«¼«Θ∞ε ¬½áó¿Φ π»αáó½Ñ¡¿∩ ¬παß«α«¼
π¬áºáΓѽ∞ ¼«ª¡« »ÑαѼÑΘáΓ∞ »« ¼Ñ¡ε óóÑασ ¿ ó¡¿º. éδí«α «Γ¼ÑτÑ¡¡«-
ú« »π¡¬Γá ß ¬½áó¿áΓπαδ »α«¿ºó«ñ¿Γß∩ ¡áªáΓ¿Ñ¼ ¬½áó¿Φ¿ Enter. éδí«α
ªÑ ¬«¼á¡ñδ ¼Ñ¡ε ß »«¼«Θ∞ε "¼δΦ¿" »α«¿ßσ«ñ¿Γ ¿¡ΓÑαÑß¡ÑÑ: óδ ñ«½ª¡δ
"ºáσóáΓ¿Γ∞" π¬áºáΓѽ∞ ¼Ñ¡ε, ¡áªáó ½Ñóπε ¬¡«»¬π "¼δΦ¿" ó ëà ¼«-
¼Ñ¡Γ, ¬«úñá ÑÑ π¬áºáΓѽ∞ «¬áªÑΓß∩ ¡áñ ¡¿¼ ¿ πñÑαªáΓ∞ ÑÑ ó φΓ«¼
»«½«ªÑ¡¿¿. Åα¿ φΓ«¼, »«¬á óδ ñÑনΓÑ ¬¡«»¬π ó ¡áªáΓ«¼ ß«ßΓ«∩¡¿¿,
óδ ¼«ªÑΓÑ »ÑαѼÑΘáΓ∞ ¼áα¬Ñα óóÑασ ¿ ó¡¿º »« ¼Ñ¡ε. éδí«α ¬«¼á¡ñδ
¼Ñ¡ε »α«¿ºó«ñ¿Γß∩ »«óΓ«α¡δ¼ ¡áªáΓ¿Ñ¼ ¬¡«»¬¿ "¼δΦ¿" ó ëà ¼«¼Ñ¡Γ,
¬«úñá ¼áα¬Ñα íπñÑΓ ¡áσ«ñ¿Γ∞ß∩ ¡áñ ¡πª¡δ¼ »π¡¬Γ«¼.
Turbo Vision ñ½∩ æ++ = 24 =
Åá¡Ñ½∞ ñ¿á½«úá
éδíαá¡¡δ⌐ ½εíδ¼ ß»«ß«í«¼ »π¡¬Γ ¼Ñ¡ε Greeting óδºδóáÑΓ »«∩ó-
½Ñ¡¿Ñ »α∩¼«πú«½∞¡«ú« «¬¡á, ¡áºδóáѼ«ú« »á¡Ñ½∞ε ñ¿á½«úá, ¬á¬ »«¬á-
ºá¡« ¡á α¿ß. 1.4. Åá¡Ñ½∞ ñ¿á½«úá »«∩ó¿Γß∩ ó µÑ¡ΓαÑ φ¬αá¡á, «ñ¡á¬«
óδ ß¼«ªÑΓÑ »ÑαѼÑΘáΓ∞ ÑÑ, »«ñóÑñ∩ ñ½∩ φΓ«ú« π¬áºáΓѽ∞ "¼δΦ¿" ¬
óÑασ¡Ñ⌐ úαá¡¿µÑ φΓ«ú« «¬¡á, ¡áªáó ½Ñóπε ¬¡«»¬π "¼δΦ¿" ¿ »ÑαÑñó¿-
úá∩ "¼δΦ∞", πñÑনóá∩ »α¿ φΓ«¼ ¬¡«»¬π ó ¡áªáΓ«¼ ß«ßΓ«∩¡¿¿. èá¬
Γ«½∞¬« óδ «Γ»πßΓ¿ΓÑ ¬¡«»¬π, »á¡Ñ½∞ ñ¿á½«úá «ßΓá¡«ó¿Γß∩ ó ñá¡¡«¼
¼ÑßΓÑ ¿ Γá¼ «ßΓá¡ÑΓß∩.
Åα¿¼Ñτá¡¿Ñ: î¡«ú«Γ«τ¿Ñ (...) »«ß½Ñ »π¡¬Γá ¼Ñ¡ε ¿ß»«½∞ºπÑΓß∩ ñ½∩
«í«º¡áτÑ¡¿∩, τΓ« ñá¡¡δ⌐ »π¡¬Γ óδºδóáÑΓ »«∩ó½Ñ¡¿Ñ »á-
¡Ñ½¿ ñ¿á½«úá.
╔═[■]══════Hello, World!═══════════════╗
║ ║
║ Terrific ║
║ ──────────────┘║
║ OK ║
║ How are you? ──────────────┘║
║ Lousy ║
║ ──────────────┘║
║ Cancel ║
║ ──────────────┘║
╚══════════════════════════════════════╝
É¿ßπ¡«¬ 1.4. Åá¡Ñ½∞ ñ¿á½«úá »α«úαá¼¼δ "Hello, World!".
ä¿á½«ú«ó«Ñ «¬¡« ß«ñÑαª¿Γ ºáú«½«ó«¬ "Hello, World!", á ΓᬪÑ
¬¡«»¬π ó ½Ñó«¼ óÑασ¡Ñ¼ πú½π. Åα¿ π¬áºá¡¿¿ "¼δΦ∞ε" ¡á φëà º¡á¬,
»á¡Ñ½∞ ñ¿á½«úá ºá¬αδóáÑΓß∩ ¿ ¿ßτѺáÑΓ ß φ¬αá¡á. é¡πΓα¿ »á¡Ñ½¿ ñ¿-
Ὣúá »«¼ÑΘÑ¡á ¬«α«Γ¬á∩ ßΓ᫬á ΓѬßΓá: "How are you?" ("èᬠ»«ª¿-
óáÑΓÑ?"). Ä¡á ∩ó½∩ÑΓß∩ »α¿¼Ñα«¼ ßΓáΓ¿τ¡«ú« ΓѬßΓá, Γ.Ñ. ΓѬßΓá,
¬«Γ«αδ⌐ ¼«ª¡« »α«τÑßΓ∞, ¡« ¬«Γ«αδ⌐ ¡Ñ ¿¼ÑÑΓ ¿¡ΓÑαá¬Γ¿ó¡«ú« º¡áτÑ-
¡¿∩. äαπú¿¼¿ ß½«óἿ, ßΓáΓ¿τ¡δ⌐ ΓѬßΓ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «»¿ßá¡¿∩
ñαπú¿σ «íΩÑ¬Γ«ó, ¿ »α¿ á¬Γ¿óᵿ¿ Ñú« ¡¿τÑú« ¡Ñ »α«¿º«⌐ñÑΓ.
è¡«»¬¿
ìá¿í«½ÑÑ ¿¡ΓÑαÑß¡δ¼¿ φ½Ñ¼Ñ¡ΓἿ »á¡Ñ½¿ ñ¿á½«úá "Hello,
World!" ∩ó½∩εΓß∩ τÑΓδαÑ »α∩¼«πú«½∞¡¿¬á ó Ñú« »αáó«⌐ τáßΓ¿. Ä¡¿
¡áºδóáεΓß∩ ¬¡«»¬á¼¿ ¿ ∩ó½∩εΓß∩ »α¿¼ÑαἿ φ½Ñ¼Ñ¡Γ«ó π»αáó½Ñ¡¿∩.
Ä¡¿ ¡áºδóáεΓß∩ φ½Ñ¼Ñ¡ΓἿ π»αáó½Ñ¡¿∩, Γ.¬. ¡á»«¼¿¡áεΓ φ½Ñ¼Ñ¡Γδ
π»αáó½Ñ¡¿∩ φ½Ñ¬Γα«¡¡δσ »α¿í«α«ó. èáªñá∩ ¬¡«»¬á ¿¼ÑÑΓ ¼ÑΓ¬π, π¬á-
ºδóáεΘπε, τΓ« »α«¿º«⌐ñÑΓ »α¿ ÑÑ ¡áªáΓ¿¿.
ìáªáΓ¿Ñ ¬¡«»¬¿ »α«¿ºó«ñ¿Γß∩ ß »«¼«Θ∞ε "¼δΦ¿" ¿½¿ »α¿óÑñÑ¡¿Ñ¼
ÑÑ ó ß«ßΓ«∩¡¿Ñ »« π¼«½τá¡¿ε (τΓ« «»¿ßá¡« ¡¿ªÑ) ¿ »«ß½ÑñπεΘ¿¼ ¡á-
ªáΓ¿Ñ¼ ¬½áó¿Φ¿ Enter. Å«»α«íπ⌐ΓÑ "¡áªáΓ∞" «ñ¡π ¿º ¬¡«»«¬ ß »«-
¼«Θ∞ε "¼δΦ¿" (»«¼ÑßΓ¿ó ¡á ¡ÑÑ π¬áºáΓѽ∞ "¼δΦ¿" ¿ ¡áªáó »α¿ φΓ«¼π
¬½áó¿Φπ "¼δΦ¿") ¿ »«ß¼«Γα¿ΓÑ, τΓ« »α«¿º«⌐ñÑΓ: ¬¡«»¬á »ÑαÑñó¿¡ÑΓß∩
Turbo Vision ñ½∩ æ++ = 25 =
ó»αáó« ¡á «ñ¡π »«º¿µ¿ε ¿ ÑÑ ΓÑ¡∞ ¿ßτѺ¡ÑΓ. 櫺ñáÑΓß∩ ¿½½εº¿∩, τΓ«
»α∩¼«πú«½∞¡πε ¬¡«»¬π ¡áª¿¼áεΓ ó ¡á»αáó½Ñ¡¿¿ 󡿺 ¬ φ¬αá¡π. è«úñá
óδ «Γ»πßΓ¿ΓÑ ¬½áó¿Φπ "¼δΦ¿", Γ« óδ»«½¡¿Γß∩ ñÑ⌐ßΓó¿Ñ, ß««ΓóÑΓßΓóπ-
εΘÑÑ «ΓªáΓ«⌐ ¬¡«»¬Ñ.
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á Γ«, τΓ« ¼ÑΓ¬á ¬¡«»¬¿ Cancel («Γ¼Ñ¡á)
¿¼ÑÑΓ µóÑΓ, «Γ½¿τ¡δ⌐ «Γ ñαπú¿σ ¼ÑΓ«¬. ¥Γ« «º¡áτáÑΓ, τΓ« ¬¡«»¬á
Cancel ∩ó½∩ÑΓß∩ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ¬¡«»¬«⌐ π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπѼ«⌐
»« π¼«½τá¡¿ε ó »á¡Ñ½¿ ñ¿á½«úá. àß½¿ ó φΓ«¼ ß½πτáÑ óδ ¡áª¼ÑΓÑ ¬½á-
ó¿Φπ Enter, Γ« Σá¬Γ¿τÑ߬¿ ¡áª¼ÑΓÑ ¬¡«»¬π Cancel.
Åα¿¼Ñτá¡¿Ñ: é ¼«¡«σα«¼¡δσ ß¿ßΓѼáσ ¬¡«»¬¿, ¿ß»«½∞ºπѼδÑ »« π¼«½-
τá¡¿ε, «í«º¡áτáεΓß∩ ß »«¼«Θ∞ε ß¿¼ó«½«ó ">> <<".
ô»αáó½∩εΘá∩ ¬¡«»¬á, ¿ß»«½∞ºπѼá∩ »« π¼«½τá¡¿ε ó »á¡Ñ½¿ ñ¿á-
½«úá, ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á ¡áªáΓ¿Ñ¼ ¬½áó¿Φ¿ Tab (Γáíπ½∩µ¿∩). Å«»-
α«íπ⌐ΓÑ »α«ñѽáΓ∞ φΓ« ß »á¡Ñ½∞ε ñ¿á½«úá "Hello, World!". ÄΓ½¿τ¿-
Γѽ∞¡δÑ µóÑΓá ñ½∩ ¬¡«»¬¿ »« π¼«½τá¡¿ε »ÑαÑσ«ñ∩Γ «Γ «ñ¡«⌐ ¬¡«»¬¿ ¬
ñαπú«⌐ »α¿ ¬áªñ«¼ ¡áªáΓ¿¿ ¬½áó¿Φ¿ Tab. ¥Γ« »«ºó«½∩ÑΓ »«½∞º«óáΓѽε
¡áª¿¼áΓ∞ ¬¡«»¬π, ¡Ñ »«½∞ºπ∩ß∞ "¼δΦ∞ε", á »ÑαѼÑΘá∩ µóÑΓ ¬¡«»¬¿,
¿ß»«½∞ºπѼ«⌐ »« π¼«½τá¡¿ε, ¬ óδíαá¡¡«⌐ ¬¡«»¬Ñ ß »«¼«Θ∞ε ¬½áó¿Φ¿
Tab ¿ ¡áª¿¼á∩ ºáΓѼ ¬½áó¿Φπ Enter ¿½¿ "Åα«íѽ" ñ½∩ "¡áªáΓ¿∩ ¬¡«»-
¬¿".
Åα¿¼¿ΓÑ ó« 󡿼᡿Ñ, τΓ« ¼á¡¿»π½∩µ¿¿ "¼δΦ∞ε" ó¡Ñ »á¡Ñ½¿ ñ¿á-
½«úá (¡á»α¿¼Ñα, «íαáΘÑ¡¿Ñ ¬ ¼Ñ¡ε) ¡¿ ¬ τѼπ ¡Ñ »α¿ó«ñ∩Γ, »«¬á
í½«¬ ñ¿á½«úá á¬Γ¿óÑ¡. ü½«¬ ñ¿á½«úá ¬«¡Γα«½¿απÑΓ dct!
éδσ«ñ ¿º »α«úαá¼¼δ
ìáªáΓ¿Ñ ½εí«⌐ ¬¡«»¬¿, ó »á¡Ñ½¿ ñ¿á½«úá Hello, πí¿αáÑΓ »á¡Ñ½∞
ñ¿á½«úá ¿ «ßΓáó½∩ÑΓ αáí«τπε «í½áßΓ∞ »πßΓ«⌐. éδ ß¡«óá ¼«ªÑΓÑ óδí-
αáΓ∞ ¼Ñ¡ε Hello ¿ óδºóáΓ∞ »á¡Ñ½∞ ñ¿á½«úá ߬«½∞¬« πú«ñ¡« αáº. ä½∩
Γ«ú«, τΓ«íδ óδ⌐Γ¿ ¿º »α«úαá¼¼δ, ¼«ª¡« ½¿í« óδíαáΓ∞ ¬«¼á¡ñπ Exit
¼Ñ¡ε Hello, ½¿í« ¡áªáΓ∞ ¬½áó¿Φπ Alt-X - ß«¬αáΘÑ¡¡δ⌐ óáα¿á¡Γ ¬«-
¼á¡ñδ Exit. ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« φëà óáα¿á¡Γ »αÑñßΓáó½Ñ¡ ¬á¬ ó ¼Ñ-
¡ε Hello, Γᬠ¿ ó ßΓα«¬Ñ ß«ßΓ«∩¡¿∩ ó ¡¿ª¡Ñ⌐ τáßΓ¿ φ¬αá¡á.
æ½ÑñπÑΓ »α¿ñÑনóáΓ∞ß∩ Γᬫú« »αáó¿½á: éßÑúñá «íÑß»Ñτ¿óá⌐ΓÑ
»«½∞º«óáΓÑ½ε »α«ßΓ«⌐ óδσ«ñ ¿º »α«úαá¼¼δ. ìѬ«Γ«αδÑ αáßßÑ∩¡-
¡δÑ »«½∞º«óáΓѽ¿, 󻫽¡Ñ óÑα«∩Γ¡«,¡Ñ ß¼«úπΓ ¡á⌐Γ¿ óδσ«ñ ¿
»«»δΓáεΓß∩ »ÑαѺáúαπº¿Γ∞ ¬«¼»∞εΓÑα, τѼ »«¼ÑΦáεΓ ºá¬αδΓ∞
Σá⌐½δ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½¿ óδ»«½¡¿Γ∞ ñαπú¿Ñ ºáóÑαΦáεΘ¿Ñ
«»Ñαᵿ¿ »ÑαÑñ óδσ«ñ«¼ ¿º »α«úαá¼¼δ.
Turbo Vision ñ½∩ æ++ = 26 =
æΓαπ¬Γπαá »α«úαá¼¼δ HELLO.CPP
-----------------------------------------------------------------
îδ αáßß¼«Γαѽ¿ σ«ñ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ Hello »«ß½Ñ ÑÑ ºá-
»π߬á. èᬿ¼ ªÑ «íαẫ¼ αÑ὿ºπÑΓß∩ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ? ü«½∞Φá∩
τáßΓ∞ »α«úαá¼¼δ Hello π¡áß½Ññ«óá¡á ¿º «»αÑñѽѡ¡δσ αá¡ÑÑ «íΩÑ¬Γ«ó
ó Turbo Vision. Åα¿τѼ π¡áß½Ññ«óá¡á ¡áßΓ«½∞¬« º¡áτ¿Γѽ∞¡á∩ τáßΓ∞
»α«úαá¼¼δ, τΓ« »α¿¡µ¿»δ ÑÑ αÑ὿ºáµ¿¿ ¼«úπΓ »«¬áºáΓ∞ß∩ Γá¿¡ßΓóÑ¡-
¡δ¼¿. Å«Φáú«ó«Ñ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ ß »«¼«Θ∞ε ¿¡ΓÑúα¿α«óá¡¡«ú«
«Γ½áñτ¿¬á ¡Ñ ñáßΓ »«½¡«⌐ ¬áαΓ¿¡δ, Γ.¬. Turbo Vision Σπ¡¬µ¿«¡¿απÑΓ
ó ó¿ñÑ «ΓΓαá¡ß½¿α«óá¡¡«⌐ í¿í½¿«ΓѬ¿. è ßτáßΓ∞ε, Ñß½¿ óδ π½«ó¿ΓÑ
ßπΓ∞ αáí«Γδ »α«úαá¼¼δ, Γ« º¡á¡¿Ñ Γ«τ¡δσ »α¿¡µ¿»«ó ÑÑ αÑ὿ºáµ¿¿
¡Ñ »«ΓαÑíπÑΓß∩.
ùΓ«íδ »«¡∩Γ∞ »α¿¡µ¿»δ αáí«Γδ »α«úαá¼¼δ Turbo Vision, ß½ÑñπÑΓ
»«¼¡¿Γ∞, τΓ« «¡á »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¼¡«ªÑßΓó« ß«ó¼ÑßΓ¡« αáí«Γáε-
Θ¿σ «íΩÑ¬Γ«ó. Ä»αÑñѽ¿ΓÑ ú½áó¡δÑ «íΩѬΓδ ¿ »«ßΓáαá⌐ΓÑß∞ »«¡∩Γ∞
»α¿¡µ¿»δ ¿σ ß«ó¼ÑßΓ¡«⌐ αáí«Γδ. çáΓѼ »α«ß½Ññ¿ΓÑ, ¬á¬ óΓ«α«ßΓѻѡ-
¡δÑ «íΩѬΓδ »«ññÑনóáεΓ í«½ÑÑ ¬απ»¡δÑ «íΩѬΓδ.
ÅÑαÑñ ΓѼ ¬á¬ ¿ºπτáΓ∞ ¼ÑΓ«ñ¿¬π, ß½ÑñπÑΓ »«¡∩Γ∞ «»αÑñѽѡ¿∩
¬½áßß«ó ó »α¿½áúáѼδσ Σá⌐½áσ ºáú«½«ó¬«ó *.H. é᪡« »«¡∩Γ∞, τΓ«
ß«ñÑনΓß∩ ó «íΩѬΓÑ ¿ ¬á¬ «¡ ß««Γ¡«ß¿Γß∩ ß ñαπú¿¼¿ «íΩѬΓἿ ó
ß¿ßΓѼÑ.
è½áßß »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
"èαáÑπú«½∞¡δ¼ ¬á¼¡Ñ¼" ½εí«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ∩ó½∩ÑΓß∩
¬½áßß TAααlication. ò«Γ∩, Σá¬Γ¿τÑ߬¿, óδ ¡¿¬«úñá ó ∩ó¡«¼ ó¿ñÑ ¡Ñ
ß«ºñáÑΓÑ «íΩѬΓδ Γ¿»á TAααlication. èᬠ¡áß½Ññ¡¿¬ TGrouα,
TAααlication - φΓ« úαπ»»«ó«⌐ «íΩѬΓ, ¬«Γ«αδ⌐ º¡áÑΓ ¬á¬ ó½áñÑΓ∞ ¿
π»αáó½∩Γ∞ ñ¿¡á¼¿τÑ߬¿¼¿ µÑ»«τ¬á¼¿ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó, Γᬿσ
¬á¬, ¡á»α¿¼Ñα, ¼Ñ¡ε ¿½¿ «¬¡á »α«úαá¼¼δ ¿½¿ ñαπú¿¼¿ «Γ«íαáªáÑ¼δ¼¿
»«ñ«íΩѬΓἿ. è½áßß TAααlication ßá¼á »« ßÑíÑ ¡Ñ «íÑß»Ñτ¿óáÑΓ óδ-
»«½¡Ñ¡¿Ñ »α«úαá¼¼δ. éδ ¿ß»«½∞ºπÑΓÑ TAααlication ¬á¬ íẫóδ⌐
¬½áßß. êº ¡Ñú« óδ »«α«ªñáÑΓÑ ¬½áßß, ß«ñÑαªáΘ¿⌐ ßπΓ∞ óáΦÑ⌐
»α«úαá¼¼δ - ÑÑ "¼∩ß«". ï¿Φ∞ «ñ¿¡ φ¬ºÑ¼»½∩α Γᬫú« »α¿¬½áñ¡«ú«
¬½áßßá ¡Ñ«íσ«ñ¿¼ ñ½∩ ¬«¡¬αÑΓ¡«⌐ »α«úαá¼¼δ. é »α«úαá¼¼Ñ Hello φΓ¿¼
»α«¿ºó«ñ¡δ¼ ¬½áßß«¼ ∩ó½∩ÑΓß∩ THelloAαα, «íΩ∩ó½Ñ¡¡δ⌐ ß½ÑñπεΘ¿¼ «í-
αẫ¼:
class THelloAαα : αublic TAααlication
{
αublic:
THelloAαα(); // ¬«¡ßΓαπ¬Γ«α
virtual void handleEvent ( TEvent& event );
static TMenuBar *initMenuBar (TRect r);
static TStatusLine *initStatusLine (TRect r);
αrivate:
Turbo Vision ñ½∩ æ++ = 27 =
void greetingBox();
};
é í«½ÑÑ ß½«ª¡δσ »α«úαá¼¼áσ «»αÑñѽѡ¿∩ ¬½áßß«ó ß½ÑñπÑΓ αáº-
¼ÑΘáΓ∞ ó ºáú«½«ó«τ¡δσ Σá⌐½áσ *.H , á ß««ΓóÑΓßΓóπεΘ¿Ñ «»¿ßá¡¿∩ - ó
Σá⌐½áσ *.CPP .
è«¡Ñτ¡«, «íΩÑ¬Γ THelloAαα ß«ñÑαª¿Γ ¡Ñ »α«ßΓ« ¬«¡ßΓαπ¬Γ«α ¿
τÑΓδαÑ Σπ¡¬µ¿¿-φ½Ñ¼Ñ¡Γá (ó ñá½∞¡Ñ⌐ΦѼ »α«ßΓ« ¼ÑΓ«ñ); »«α«ªñÑ¡¡δ⌐
¬½áßß ¡áß½ÑñπÑΓ óßÑ ßó«⌐ßΓóá ßó«Ñú« íẫó«ú« ¬½áßßá (á Γ«Γ, ó
ßó«ε «τÑαÑñ∞, - ßó«Ñú« ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« íẫó«ú« ¬½áßßá, ¿ Γá¬
ñá½ÑÑ). Åα¿ ß«ºñá¡¿¿ «íΩѬΓá THelloAαα óδ «»αÑñѽ∩ÑΓÑ Γá¬ªÑ Ñú«
«Γ½¿τ¿∩ «Γ »αÑñΦÑßΓóÑ¡¡¿¬á TAααlication. éßÑ ¡Ñ »ÑαÑ«»αÑñѽѡ¡δÑ
ßó«⌐ßΓóá ¡áß½ÑñπεΓß∩ ¿º TAααlication ó ¡Ñ¿º¼Ñ¡¡«¼ ó¿ñÑ.
îδ ßÑ⌐τáß «ßΓáó½∩Ѽ ó ßΓ«α«¡Ñ «íßπªñÑ¡¿Ñ ¬«¡ßΓαπ¬Γ«αá ¿
»αÑñ½áúáѼ «íº«α τÑΓδαÑσ ¼ÑΓ«ñ«ó, «»αÑñѽѡ¡δσ ó THelloAαα. ¥Γ¿
¼ÑΓ«ñδ, ó Γ«¼ ¿½¿ ¿¡«¼ ó¿ñÑ, »α¿ßπΓßΓóπεΓ, »αá¬Γ¿τÑ߬¿, ó ½εí«⌐
»α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ:
1. öπ¡¬µ¿«¡¿α«óá¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ «»αÑñѽ∩ÑΓß∩ ΓѼ ¡á
¬á¬¿Ñ ß«íδΓ¿∩ «¡á αÑáú¿απÑΓ ¿ ¬á¬ φΓ« »α«¿ßσ«ñ¿Γ. ä½∩
«íÑß»ÑτÑ¡¿∩ αÑᬵ¿¿ ¡á ß«íδΓ¿∩ óδ ñ«½ª¡δ «»αÑñѽ¿Γ∞ ¼ÑΓ«ñ
handleEvent. é¿αΓπá½∞¡δ⌐ ¼ÑΓ«ñ handleEvent ¡áß½ÑñπÑΓß∩ ¿º
¬½áßßá TAααlication (τÑαѺ Ñú« íẫóδ⌐ ¬½áßß TProgramm) ñ½∩
αáí«Γδ ß ß«íδΓ¿∩¼¿, ¬«Γ«αδÑ »α«¿ßσ«ñ∩Γ ó σ«ñÑ óδ»«½¡Ñ¡¿∩ ½ε-
í«⌐ »α«úαá¼¼δ, «ñ¡á¬« óδ óßÑúñá ñ«½ª¡δ »ÑαÑ«»αÑñѽ∩Γ∞ «íαá-
í«Γτ¿¬ ß«íδΓ¿⌐, ߻ѵ¿Σ¿τ¡δσ ñ½∩ óáΦÑ⌐ ß«íßΓóÑ¡¡«⌐ »α¿¬½áñ¡«⌐
»α«úαá¼¼δ.
2. æΓáΓ¿τÑ߬¿⌐ ¼ÑΓ«ñ initMenuBar ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á «íΩѬΓ
TMenuBar. Ä¡á ºáñáÑΓ ¼Ñ¡ε ñ½∩ óáΦÑ⌐ »α«úαá¼¼δ (¡á»«¼¡¿¼, τΓ«
ßΓ᫬«ó«Ñ ¼Ñ¡ε αáß»«½áúáÑΓß∩ ó óÑασ¡Ñ⌐ ßΓα«¬Ñ φ¬αá¡á).
TAααlication »«ññÑনóáÑΓ ßá¼π αáí«Γπ ¼Ñ¡ε, ¡« ¡Ñ ß«ñÑনΓ
¬«¼á¡ñ; Ñß½¿ óá¼ ΓαÑíπεΓß∩ ¼Ñ¡ε, Γ« óδ ñ«½ª¡δ «»αÑñѽ¿Γ∞ ¼Ñ-
Γ«ñ initMenuBar ñ½∩ ¿σ ß«ºñá¡¿∩. 黫߽ÑñßΓó¿¿ íπñÑΓ ó¿ñ¡«,
¬á¬ ¬«¡ßΓαπ¬Γ«α THelloAαα óδºδóáÑΓ ¼ÑΓ«ñ initMenuBar ¿ ó¬½ε-
τáÑΓ »«½πτÑ¡¡δ⌐ ¿º ¡Ñú« «íΩÑ¬Γ TMenuBar ó úαπ»»π »α¿¬½áñ¡«⌐
»α«úαá¼¼δ.
3. ǡὫú¿τ¡«, ßΓáΓ¿τÑ߬¿⌐ ¼ÑΓ«ñ initStatusLine ó«ºóαáΘáÑΓ π¬á-
ºáΓѽ∞ ¡á TStatusLine, τΓ«íδ «íÑß»Ñτ¿Γ∞ ΓѬßΓ ó ßΓ᫬Ñ
ß«ßΓ«∩¡¿∩ ó ¡¿ª¡Ñ⌐ τáßΓ¿ φ¬αá¡á. é ¡Ñ⌐ «íδτ¡« ß««íΘáÑΓß∩ «
ΓѬπΘѼ ß«ßΓ«∩¡¿¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ñáÑΓß∩ ¿¡Σ«α¼áµ¿∩ «
π»αáó½∩εΘ¿σ ¬½áó¿Φáσ ¿½¿ ¡á»«¼¿¡áÑΓß∩ « ñÑ⌐ßΓó¿∩σ, ¬«Γ«αδÑ
ñ«½ªÑ¡ »αÑñ»α¿¡∩Γ∞ »«½∞º«óáΓѽ∞. èᬠ¿ ó ß½πτáÑ ß
initMenuBar, ¬«¡ßΓαπ¬Γ«α THelloAαα óδºδóáÑΓ initStatusLine ¿
ó¬½ετáÑΓ »«½πτÑ¡¡δ⌐ ¿º ¡ÑÑ «íΩÑ¬Γ TStatusLine ó úαπ»»«ó«⌐
«íΩÑ¬Γ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
4. ùáßΓ¡δ⌐ ¼ÑΓ«ñ greetingBox óδºδóáÑΓ »«∩ó½Ñ¡¿Ñ ñ¿á½«ú«ó«ú« «¬-
¡á »«ß½Ñ óδí«αá »π¡¬Γá ¼Ñ¡ε Greeting. ¥Γ«Γ ¼ÑΓ«ñ óδºδóáÑΓß∩
Turbo Vision ñ½∩ æ++ = 28 =
Γ«½∞¬« ¿º ¼ÑΓ«ñá handleEvent ó «ΓóÑΓ ¡á ß«íδΓ¿Ñ, ¿¡¿µ¿¿α«-
óá¡¡«Ñ óδí«α«¼ ¬«¼á¡ñδ ¼Ñ¡ε Greeting ß »«¼«Θ∞ε "¼δΦ¿" ¿½¿
¡áªáΓ¿∩ ¬½áó¿Φ. é í«½ÑÑ ß«óÑαΦÑ¡¡δσ »α¿¬½áñ¡δσ »α«úαá¼¼áσ
¿¼ÑεΓß∩ «Γñѽ∞¡δÑ Σπ¡¬µ¿¿ ñ½∩ «Γ¬½¿¬á ¡á ¬áªñδ⌐ »π¡¬Γ ¼Ñ¡ε,
«»αÑñѽѡ¡δ⌐ ó »Ñαó«¡áτá½∞¡«¼ ¼Ñ¡ε.
êΓá¬, ¼ÑΓ«ñδ ¬½áßßá THelloAαα ß½πªáΓ ñ½∩ αÑ὿ºáµ¿¿ óßÑσ
󫺼«ª¡«ßΓÑ⌐ «íΩÑ¬Γ«ó óáΦÑ⌐ »α«úαá¼¼δ: ¬«¡ßΓαπ¬Γ«α ñ½∩ πßΓá¡«ó¬¿
»α«úαá¼¼δ, "¼Ñσá¡¿º¼" («íαáí«Γτ¿¬ ß«íδΓ¿⌐) ñ½∩ αáß»«º¡áóá¡¿∩ ß«-
íδΓ¿⌐ ¿ ¼ÑΓ«ñδ, ñ½∩ αÑᬵ¿¿ ¡á φΓ¿ ß«íδΓ¿∩. ¥Γ¿ Γα¿ "ßαÑñßΓóá" óδ
¿ ñ«½ª¡δ óßÑúñá ñ«íáó½∩Γ∞ ¬ ¬½áßßá¼, »«α«ªñÑ¡¡δ¼ ¿º ¬½áßßá
TAααlication.
ÄíΩÑ¬Γ "»á¡Ñ½∞ ñ¿á½«úá"
äαπú¿¼ óáª¡δ¼ «íΩÑ¬Γ«¼, ¿ß»«½∞ºπÑ¼δ¼ ó »α«úαá¼¼Ñ Hello, ∩ó-
½∩ÑΓß∩ «íΩÑ¬Γ "»á¡Ñ½∞ ñ¿á½«úá", Γ.¬. φΓá »á¡Ñ½∞ ¡Ñ óδ»«½¡∩ÑΓ ¬á-
¬¿σ-½¿í« ߻ѵ¿á½∞¡δσ Σπ¡¬µ¿⌐, Γ« ó Hello ¿ß»«½∞ºπÑΓß∩ »α«ßΓ« φ¬-
ºÑ¼»½∩α ¬½áßßá TDialog. Äíδτ¡«, »«α«ªñáΓ∞ ¡«óδ⌐ ¬½áßß ¿º TDialog
¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿, σ«Γ∩ íδóáεΓ ß½πτá¿, ¬«úñá φΓ« ¼«ªÑΓ «¬áºáΓ∞ß∩
»«½Ñº¡δ¼.
æá¼ »« ßÑíÑ ¬½áßß TDialog ¡Ñ ß«ñÑαª¿Γ ¿¡ΓÑαá¬Γ¿ó¡δσ φ½Ñ¼Ñ¡-
Γ«ó. Ä¡ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ½¿Φ∞ Φáí½«¡: ß Ñú« »«¼«Θ∞ε óδ ºáñáÑΓÑ,
¬á¬¿Ñ »«½∩ (¿½¿ φ½Ñ¼Ñ¡Γδ π»αáó½Ñ¡¿∩) ¡πª¡δ ñ½∩ óºá¿¼«ñÑ⌐ßΓó¿∩ ß
»«½∞º«óáΓѽѼ.
öπ¡¬µ¿∩ THelloAαα::greetingBox ß«ºñáÑΓ «íΩÑ¬Γ ¬½áßßá
TDialog, "óßΓáó½∩∩" ó ¡Ñú« τÑΓδαÑ ¬¡«»¬¿, ¬«Γ«αδÑ ∩ó½∩εΓß∩ «Γ«í-
αáªáÑ¼δ¼¿ «íΩѬΓἿ Turbo Vision. (ìừ¼¡¿¼, τΓ« óßÑ «íΩѬΓδ
»α«úαá¼¼δ, óδó«ñ∩Θ¿Ñ σ«Γ∞ ¬á¬¿Ñ-Γ« ¿º«íαáªÑ¡¿∩ ¡á φ¬αá¡, ∩ó½∩εΓß∩
«Γ«íαáªáÑ¼δ¼¿ «íΩѬΓἿ Turbo Vision!) ¥Γ« «íδτ¡á∩ ß¿Γπᵿ∩ »α¿
¿ß»«½∞º«óá¡¿¿ ñ¿á½«ú«óδσ «¬«¡. Äíδτ¡«, óδ »α«ßΓ« "óßΓáó½∩ÑΓÑ" ó
¡¿σ φ½Ñ¼Ñ¡Γδ π»αáó½Ñ¡¿∩, ¬«Γ«αδÑ σ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞. éßÑ ªÑ
«ßΓá½∞¡«Ñ, τΓ« ñ«½ª¡« ¡áσ«ñ¿Γ∞ß∩ ó »á¡Ñ½¿ ñ¿á½«úá (ó¬½ετá∩ «íαá-
í«Γτ¿¬ ß«íδΓ¿⌐), αÑ὿º«óá¡« ó ¬½áßßÑ TDialog.
Turbo Vision ñ½∩ æ++ = 29 =
ò«ñ óδ»«½¡Ñ¡¿∩ ¿ «Γ½áñ¬¿ »α«úαá¼¼δ
Æ.¬. »α«úαá¼¼δ, ¡á»¿ßá¡¡δÑ ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision,
π»αáó½∩εΓß∩ ß«íδΓ¿∩¼¿, ¿σ ßΓαπ¬Γπαá ¡Ñ߬«½∞¬« «Γ½¿τáÑΓß∩ «Γ «íδτ-
¡δσ »α«úαá¼¼. Äß«íÑ¡¡«ßΓ∞ε »α«úαá¼¼, π»αáó½∩Ѽδσ ß«íδΓ¿∩¼¿, ∩ó½∩-
ÑΓß∩ «Γñѽѡ¿Ñ ßΓαπ¬Γπα π»αáó½Ñ¡¿∩, ¬«Γ«αδÑ óδ»«½¡∩εΓ τΓÑ¡¿Ñ ¿
«íαáí«Γ¬π óσ«ñ¡δσ ñá¡¡δσ »«½∞º«óáΓѽ∩ (¿ ñαπú¿σ ß«íδΓ¿⌐), «Γ »α«-
µÑñπα ¿ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ ó«ºñÑ⌐ßΓóπεΓ ¡á φΓ¿ óσ«ñ¡δÑ ñá¡¡δÑ.
Äíδτ¡δÑ »α«úαá¼¼δ, ¬á¬ »αá󿽫, ß«ñÑαªáΓ ¼¡«ú« «Γñѽ∞¡δσ
»α«úαá¼¼¡δσ í½«¬«ó, ¬áªñδ⌐ ¿º ¬«Γ«αδσ »αÑñπß¼áΓα¿óáÑΓ »«½πτÑ¡¿Ñ
óσ«ñ¡δσ ñá¡¡δσ, ºáΓѼ «»αÑñѽ∩ÑΓ, ¬á¬«⌐ τáßΓ¿ »α«úαá¼¼δ «¡¿ áñ-
αÑß«óá¡δ ¿ óδ»«½¡∩εΓ ó맮ó ß««ΓóÑΓßΓóπεΘÑú« Σαáú¼Ñ¡Γá (Σαáú¼Ñ¡-
Γ«ó) ñ½∩ «íαáí«Γ¬¿ φΓ¿σ ñá¡¡δσ, á ºáΓѼ »«óΓ«α∩ÑΓ óßÑ φΓ¿ «»Ñαá-
µ¿¿. èα«¼Ñ Γ«ú«, Σαáú¼Ñ¡Γ, ºáóÑαΦáεΘ¿⌐ «íαáí«Γ¬π óσ«ñ¡δσ ñá¡¡δσ,
ñ«½ªÑ¡ »«½πτ¿Γ∞ ¿¡Σ«α¼áµ¿ε « ¼ÑßΓÑ »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩ ñ½∩ ß½Ññπ-
εΘÑú« φΓá»á óó«ñá.
Åα«úαá¼¼δ, π»αáó½∩ѼδÑ ß«íδΓ¿∩¼¿, ¡á«í«α«Γ, ¿¼ÑεΓ µÑ¡Γα὿-
º«óá¡¡δ⌐ ¼Ñσá¡¿º¼ ñ¿ß»ÑΓτÑα¿ºáµ¿¿ ß«íδΓ¿⌐. Æᬿ¼ «íαẫ¼, í«½∞Φá∩
τáßΓ∞ »α«úαá¼¼δ ¡Ñ ºáí«Γ¿Γß∩ « óδí«α¬Ñ óσ«ñ¡δσ ñá¡¡δσ ¿, »«φΓ«¼π,
¿σ ¿ß»«½∞º«óá¡¿Ñ ¡Ñ íπñÑΓ ß«ßΓáó½∩Γ∞ í«½∞Φ«⌐ »α«í½Ñ¼δ. éáΦ¿ Σπ¡¬-
µ¿¿ »α«ßΓ« ªñπΓ, ¬«úñá µÑ¡Γαá½∞¡δ⌐ ñ¿ß»ÑΓτÑα »ÑαÑñáßΓ ¿σ ¡á «íαá-
í«Γ¬π. ¥Γ« ¿¼ÑÑΓ í«½∞Φ«Ñ º¡áτÑ¡¿Ñ ñ½∩ «Γ½áñ¬¿ »α«úαá¼¼, Γᬠ¬á¬
óδ ñ«½ª¡δ ¿º¼Ñ¡¿Γ∞ ßó«ε ßΓαáΓÑú¿ε «Γ½áñ¬¿, πßΓá¡áó½¿óá∩ ¬«¡Γα«½∞-
¡δÑ Γ«τ¬¿ ó Σπ¡¬µ¿∩σ «íαáí«Γ¬¿ ß«íδΓ¿⌐ ñ½∩ »α«óÑન ñ¿ß»ÑΓτÑਧá-
µ¿¿ ß««íΘÑ¡¿⌐; ó Σαáú¼Ñ¡Γáσ »α«úαá¼¼δ, αÑáú¿απεΘ¿σ ¡á »α«¿ßσ«ñ∩-
Θ¿Ñ ß«íδΓ¿∩, τΓ«íδ »α«óÑα¿Γ∞ »αáó¿½∞¡«ßΓ∞ ¿σ Σπ¡¬µ¿«¡¿α«óá¡¿∩.
Åα¿¼Ñτá¡¿Ñ: ü«½ÑÑ ñÑΓá½∞¡« «í «Γ½áñ¬Ñ »α«úαá¼¼, ¡á»¿ßá¡¡δσ ß »«-
¼«Θ∞ε Turbo Vision, ß¼. ó ú½áóÑ 10.
Turbo Vision ñ½∩ æ++ = 30 =
öπ¡¬µ¿∩ main »α¿¬½áñ¡«⌐ »α«úαá¼¼δ HELLO
-----------------------------------------------------------------
ìá ßἫ¼ óδß«¬«¼ πα«ó¡Ñ, Σπ¡¬µ¿∩ main óßÑσ »α¿¬½áñ¡δσ »α«ú-
αá¼¼, ¡á»¿ßá¡¡δσ ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision, óδú½∩ñ¿Γ »«ñ«í¡«
Σπ¡¬µ¿¿ main ó »α«úαá¼¼Ñ HELLO:
int main()
{
THelloAαα helloWorld;
helloWorld.run();
return 0;
}
äáóá⌐ΓÑ αáºíÑαѼ Γѽ« main í«½ÑÑ »«ñα«í¡«.
櫺ñá¡¿Ñ φ¬ºÑ¼»½∩αá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
ÅÑαó«Ñ óδαáªÑ¡¿Ñ «íΩ∩ó½∩ÑΓ φ¬ºÑ¼»½∩α THelloAαα ß ¿¼Ñ¡Ñ¼
helloWorld. Ä¡« óδºδóáÑΓ ¬«¡ßΓαπ¬Γ«α THelloAαα::THelloAαα ñ½∩
ß«ºñá¡¿∩ ¿ ¿¡¿µ¿á½¿ºáµ¿¿ «íΩѬΓá helloWorld. êú¡«α¿απ∩ ó¡ÑΦ¡¿Ñ
ñÑΓ὿, ¼«ª¡« ߬áºáΓ∞, τΓ« ¬«¡ßΓαπ¬Γ«α THelloAαα »ÑαѬ½ετáÑΓ «í-
αáΘÑ¡¿∩ ¬ íẫóδ¼ ¬«¡ßΓαπ¬Γ«αἠ󡿺 »« ¿Ñαáασ¿¿ ¬½áßß«ó Turbo
Vision «Γ TObject (íẫóδ⌐ ¬½áßß Turbo Vision) ¬ TView, ¬ TGrouα,
¬ TProgram, ¬ TAααlication ¿, ¡á¬«¡Ñµ, ¬ THelloAαα. ¥Γ«Γ »«Γ«¬
¡¿ßσ«ñ∩ΘÑ⌐ ñÑ∩Γѽ∞¡«ßΓ¿ πßΓá¡áó½¿óáÑΓ í«½∞Φ«Ñ ¬«½¿τÑßΓó« πß½«ó¿⌐
»« π¼«½τá¡¿ε ¿ ¼Ñσá¡¿º¼«ó, ¬«Γ«αδÑ αÑ὿ºπεΓ ßΓá¡ñáαΓ¡δÑ ¿¡ΓÑα-
ΣÑ⌐ßδ í«½∞Φ¿¡ßΓóá »α¿¬½áñ¡δσ »α«úαá¼¼. (Ä»δΓ¡δ¼ »α«úαá¼¼¿ßΓá¼,
ªÑ½áεΘ¿¼ αáºαáíáΓδóáΓ∞ ¡ÑßΓá¡ñáαΓ¡δÑ ¿¡ΓÑαΣÑ⌐ßδ, ¡Ñ«íσ«ñ¿¼« ¿ºπ-
τ¿Γ∞ ¿ «ßó«¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ ¬«¡ßΓαπ¬Γ«αδ ¬½áßß«ó, «»¿ßá¡¡δÑ ó
ú½áóÑ 13.) Åα∩¼δ¼ αѺπ½∞ΓáΓ«¼ óßÑú« φΓ«ú« íπñÑΓ Γ«, τΓ«
helloWorld - ú½áó¡δ⌐ »α«úαá¼¼¡δ⌐ «íΩѬΓ, ¡áτ¡ÑΓ ßó«Ñ ßπΘÑßΓó«óá-
¡¿Ñ ß τ¿ßΓ«⌐, »«½¡«φ¬αá¡¡«⌐, »«½πΓ«¡«ó«⌐ αáí«τÑ⌐ «í½áßΓ¿.
è«¡ßΓαπ¬Γ«α TProgram óδºδóáÑΓ initMenuBar ¿ initStatusLine,
τΓ«íδ »α«¿¡¿µ¿á½¿º¿α«óáΓ∞ ¬«¡¬αÑΓ¡δÑ ¼Ñ¡ε ßΓ᫬¿ ß«ßΓ«∩¡¿∩ ¿
»α«úαá¼¼δ HELLO, ¬«Γ«αδÑ óδ ó¿ñѽ¿ αá¡ÑÑ. é᪡Ñ⌐Φ¿Ñ Φáú¿ Γᬫóδ:
// π»α«ΘÑ¡¡δ⌐ »α¿¼Ñα ¬«¡ßΓαπ¬Γ«α«ó ¬½áßß«ó TProgram ¿ TProgInit
menuBar = initMenuBar(); // Å«½πτ¿¼ π¬áºáΓѽ∞ ¡á menuBar
if (menuBar != 0 )
insert( menuBar); // éßΓáó¿¼ Ñú« ó ß»¿ß«¬ «Γ«íαáªáѼδσ
// «íΩÑ¬Γ«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
statusLine = initStatusLine(); // Å«½πτ¿¼ π¬áºáΓѽ∞ ¡á statusLine
if (statusLine != 0 )
insert( statusLine); // éßΓáó¿¼ ¿ Ñú« ó ß»¿ß«¬
// «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó
ìá ñá¡¡«¼ φΓá»Ñ ó᪡« »«½πτ¿Γ∞ «íΘÑÑ »αÑñßΓáó½Ñ¡¿Ñ «í φΓ¿σ
«»Ñαᵿ∩σ. êßσ«ñ¡δ⌐ ΓѬßΓ ñ½∩ THelloAαα::initMenuBar ¿ THelloAαα
::initStatusLine »«¬áºδóáÑΓ «ß¡«ó¡πε ßΓαáΓÑú¿ε. é ú½áóÑ 2 ¼δ «íΩ-
Turbo Vision ñ½∩ æ++ = 31 =
∩ß¡¿¼ í«½ÑÑ »«ñα«í¡«, ¬á¬ ß«ºñáóáΓ∞ ßΓ᫬«ó«Ñ ¼Ñ¡ε ¿ ßó∩ºá¡¡δÑ ß
¡¿¼ »«ñ¼Ñ¡ε ¿ ¬«¼á¡ñδ ó¼ÑßΓÑ ß« ßΓ᫬«⌐ ß«ßΓ«∩¡¿∩, ÑÑ ΓѬßΓ«¼ ¿
¬«¼á¡ñἿ.
ä«ßΓáΓ«τ¡« ¿¡ΓÑαÑß¡« ¿ß»«½∞º«óáΓ∞ ¿¡ΓÑúα¿α«óá¡¡δ⌐ «Γ½áñτ¿¬,
τΓ«íδ óδ»«½¡¿Γ∞ HELLO.EXE ó »«Φáú«ó«¼ αѪ¿¼Ñ ¿ »«ß¼«ΓαÑΓ∞, τΓ«
»«½πτ¿Γß∩ ¡á ñ¿ß»½ÑÑ. Å«ß½Ñ ó맮óá ¬«¡ßΓαπ¬Γ«αá αáí«τá∩ «í½áßΓ∞,
ßΓ᫬«ó«Ñ ¼Ñ¡ε ¿ ßΓ᫬á ß«ßΓ«∩¡¿∩ íπñπΓ »«½¡«ßΓ∞ε »αÑñßΓáó½Ñ¡δ ¡á
φ¬αá¡Ñ ¿ ú«Γ«óδ ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó ¼ÑΓ«ñÑ helloWorld.run.
îÑΓ«ñ run
Å«τΓ¿ óß∩ "Γá¿¡ßΓóÑ¡¡«ßΓ∞" »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¡á»¿ßá¡¡«⌐
ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision, ºá¬½ετáÑΓß∩ ó ¼ÑΓ«ñÑ run ú½áó¡«⌐
»α«úαá¼¼δ. Æá¿¡ßΓóÑ¡¡«ßΓ∞ ¡áτ¿¡áÑΓß∩ ß ¼«¼Ñ¡Γá, ¬«úñá óδ ºáú½∩¡Ñ-
ΓÑ ó THelloAαα ó »«¿ß¬áσ «»αÑñѽѡ¿∩ run. àú« ºñÑß∞ ¡ÑΓ, »«Γ«¼π
τΓ« ¼ÑΓ«ñ run µÑ½¿¬«¼ π¡áß½Ññ«óá¡ ¿º íẫó«ú« ¬½áßßá THelloAαα -
TAααlication, τÑαѺ Ñú« íẫóδ⌐ ¬½áßß - TProgram. TProgram::run
óδºδóáÑΓ ¼ÑΓ«ñ execute, ¬«Γ«αá∩ ¡áσ«ñ¿Γß∩ Γá¼, úñÑ í«½∞Φπε τáßΓ∞
óαѼѡ¿ íπñÑΓ ¡áσ«ñ¿Γ∞ß∩ »α«úαá¼¼á. ¥Γ«Γ ¼ÑΓ«ñ ß«ßΓ«¿Γ ¿º ñó«⌐¡«-
ú« µ¿¬½á do..while, ó π»α«ΘÑ¡¡«¼ ó¿ñÑ »«¬áºá¡« ¡¿ªÑ:
ushort TGouα::execute()
{
do {
endState = 0;
do {
TEvent event;
getEvent ( event );
handleEvent ( event );
} while ( endState == 0 );
} while ( !valid(endState ) );
return endState;
}
ìÑ óñáóá∩ß∞ ó ñÑΓ὿, óδ ¼«ªÑΓÑ ó¿ñÑΓ∞, τΓ« »α¿¬½áñ¡á∩ »α«ú-
αá¼¼á, ß«ºñá¡¡á∩ ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision, µ¿¬½¿τÑ߬¿ »α«σ«-
ñ¿Γ τÑαѺ ñóÑ ºáñáτ¿: »«½πτÑ¡¿Ñ ß«íδΓ¿∩ τÑαѺ ¼ÑΓ«ñ getEvent
(Ñß½¿ φΓ« ß«íδΓ¿Ñ ñÑ⌐ßΓó¿Γѽ∞¡« »αÑñßΓáó½∩ÑΓ ¬á¬«Ñ-½¿í« ñÑ⌐ßΓó¿Ñ)
¿ «íß½πª¿óá¡¿Ñ φΓ«ú« ß«íδΓ¿∩ τÑαѺ ¼ÑΓ«ñ handleEvent. é ¬á¬«⌐-Γ«
¼«¼Ñ¡Γ «ñ¡« ¿º φΓ¿σ ß«íδΓ¿⌐ αáºαÑΦáÑΓ ¬«¼á¡ñπ óδσ«ñá, ¿ µ¿¬½ ºá-
óÑαΦáÑΓß∩.
Åα¿¼Ñτá¡¿Ñ: Å«ñα«í¡ÑÑ «í «íαáí«Γ¬Ñ ß«íδΓ¿⌐ ß¼. ó ú½áóÑ 5.
äÑßΓαπ¬Γ«α »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
ƒó¡«ú« ñÑßΓαπ¬Γ«αá, «»αÑñѽѡ¡«ú« ó HELLO.CPP, ¡Ñ ßπΘÑßΓóπ-
ÑΓ. è«úñá »α«úαá¼¼á ºáóÑαΦáÑΓß∩, «íΩÑ¬Γ helloAαα ¿ ßó∩ºá¡¡δÑ ß
¡¿¼ «Γ«íαáªáѼδÑ «íΩѬΓδ (ßΓα«¬á ¼Ñ¡ε, ßΓ᫬á ß«ßΓ«∩¡¿∩ ¿ αáí«τá∩
Turbo Vision ñ½∩ æ++ = 32 =
«í½áßΓ∞) π¡¿τΓ«ªáεΓß∩ («ßó«í«ªñáÑΓß∩, óδñѽѡ¡á∩ »«ñ ¡¿σ »á¼∩Γ∞)
»πΓѼ áóΓ«¼áΓ¿τÑ߬¿σ ó맮ó«ó ñÑßΓαπ¬Γ«α«ó íẫóδσ ¬½áßß«ó ó »«-
α∩ñ¬Ñ, «íαáΓ¡«¼ Γ«¼π, ¬«Γ«αδ⌐ ¿ß»«½∞º«óá½ß∩ »α¿ ó맮óÑ ¬«¡ßΓαπ¬-
Γ«α«ó. ìᬫ¡Ñµ, «Γ¬½ετáεΓß∩ «íαáí«Γτ¿¬ «Φ¿í«¬ ¿ ñαá⌐óÑαδ Turbo
Vision. é µÑ½«¼, «Γ óáß ¡Ñ ΓαÑíπÑΓß∩ ߻ѵ¿á½∞¡«ú« ºáóÑαΦÑ¡¿∩ αá-
í«Γδ ß «íΩѬΓἿ Turbo Vision.
ÉѺε¼Ñ
-----------------------------------------------------------------
é ñá¡¡«⌐ ú½áóÑ óδ, ó »Ñαó«¼ »α¿í½¿ªÑ¡¿¿, í뫨 «º¡á¬«¼½Ñ¡δ
(¼δ ¡áñÑѼß∩, ¿ ºá¿¡Γα¿ú«óá¡δ) ß »α«úαá¼¼¡δ¼ ßαÑñßΓó«¼ Turbo
Vision. éδ πº¡á½¿ « óºá¿¼«ñÑ⌐ßΓó¿¿ «íΩÑ¬Γ«ó ó ßΓαπ¬ΓπαÑ, π»αáó½∩-
Ѽ«⌐ ß«íδΓ¿∩¼¿, ¿ »«½πτ¿½¿ »αÑñßΓáó½Ñ¡¿Ñ « ßαÑñßΓóáσ, »αÑñ«ßΓáó-
½∩Ѽδσ Turbo Vision.
ÆÑ»Ñα∞ óδ ¼«ªÑΓÑ ß ñ«ßΓáΓ«τ¡«⌐ πóÑαÑ¡¡«ßΓ∞ε »«»δΓáΓ∞ß∩ ¼«ñ¿-
Σ¿µ¿α«óáΓ∞ »α«úαá¼¼π HELLO.CPP, τΓ«íδ «¡á ¼«ú½á óδ»«½¡∩Γ∞ ¿ ñαπ-
ú¿Ñ Σπ¡¬µ¿¿. éδ ¼«ªÑΓÑ φΓ« ½Ñú¬« ßñѽáΓ∞. Turbo Vision »αÑñ«ßΓáó-
½∩ÑΓ ó«º¼«ª¡«ßΓ∞ ßó«í«ñ¡«ú« ¿º¼Ñ¡Ñ¡¿∩ »α«úαá¼¼ ß ¼¿¡¿¼á½∞¡δ¼¿
πß¿½¿∩¼¿ ß óáΦÑ⌐ ßΓ«α«¡δ.
é ß½ÑñπεΘÑ⌐ ú½áóÑ óδ «º¡á¬«¼¿ΓÑß∞ ß φΓá»á¼¿ ß«ºñá¡¿∩ »α«ú-
αá¼¼δ, ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision, ¡á «ß¡«óÑ »αÑñ½áúáѼ«ú« ¡á-
¼¿ "߬ѽÑΓá" »α«úαá¼¼δ.
Turbo Vision ñ½∩ æ++ = 33 =
âïÇéÇ 2. ÉÇçÉÇüÄÆèÇ ÅÉêèïÇäì¢ò ÅÉÄâÉÇîî
æ êæÅÄï£çÄéÇìêàî TURBO VISION
-----------------------------------------------------------------
ÆÑ»Ñα∞, ¬«úñá óδ »«½πτ¿½¿ ¬αáΓ¬«Ñ »αÑñßΓáó½Ñ¡¿Ñ « 󫺼«ª-
¡«ßΓ∩σ »α¿¬½áñ¡δσ »α«úαá¼¼, ß«ºñá¡¡δσ ß ¿ß»«½∞º«ó᡿Ѽ Turbo
Vision, óá¼, ¡áóÑα¡«Ñ, ¡Ñ ΓÑα»¿Γß∩ »«»δΓáΓ∞ß∩ ßἫ¼π αáºαáí«ΓáΓ∞
Γá¬πε »α«úαá¼¼π. é φΓ«⌐ ú½áóÑ óδ ß¼«ªÑΓÑ ßñѽáΓ∞ φΓ«, ¡áτ¿¡áó ß«
"߬ѽÑΓá" »α«ßΓ«⌐ »α«úαá¼¼δ ¿ ñ«íáó½∩∩ ¬ ¡Ñ¼π ¬áªñ«¼ φΓá»Ñ ¡Ñ-
í«½∞Φ¿Ñ Σαáú¼Ñ¡Γδ, τÑΓ¬« »αÑñßΓáó½∩∩ ßÑíÑ »α¿ φΓ«¼, τΓ« ¬áªñδ⌐ ¿º
¡¿σ ñѽáÑΓ.
ô óáß ¼«ªÑΓ ó«º¡¿¬¡πΓ∞ ºñÑß∞ α∩ñ ó«»α«ß«ó. èᬠ¬«¡¬αÑΓ¡«
Σπ¡¬µ¿«¡¿απεΓ «Γ«íαáªáѼδÑ «íΩѬΓδ? èᬠúαπ»»á π»αáó½∩ÑΓ »«ñ«íΩ-
ѬΓἿ? ùΓ« ∩ ¼«úπ ß ¡¿¼¿ ñѽáΓ∞? èᬠ∩ ¼«úπ ¿σ ¿ß»«½∞º«óáΓ∞ ó
ßó«Ñ⌐ »α«úαá¼¼Ñ? àß½¿ íδ Turbo Vision ∩ó½∩½áß∞ Γαáñ¿µ¿«¡¡«⌐ í¿í-
½¿«ΓѬ«⌐, Γ« «ΓóÑΓδ ¡á φΓ¿ ó«»α«ßδ óδ íδ, óÑα«∩Γ¡«, ¿ß¬á½¿ ó ÑÑ
¿ßσ«ñ¡δσ ΓѬßΓáσ.
Turbo Vision ∩ó½∩ÑΓß∩, «ñ¡á¬«, πªÑ αáí«τÑ⌐ »α«úαá¼¼«⌐. Å«φ-
Γ«¼π ½πτΦ¿¼ »πΓѼ ñ½∩ »«¿ß¬á «ΓóÑΓá íπñÑΓ, »«-ó¿ñ¿¼«¼π, »«»δΓ¬á
ñÑ⌐ßΓó¿Γѽ∞¡« »«αáí«ΓáΓ∞ ß «Γ«íαáªáÑ¼δ¼¿ «íΩѬΓἿ Turbo Vision.
ÆѼ í«½ÑÑ, τΓ«, ¬á¬ óδ πó¿ñ¿ΓÑ, ¿¡¿µ¿á½¿ºáµ¿∩ φΓ¿σ «íΩÑ¬Γ«ó ¼«ªÑΓ
íδΓ∞ óδ»«½¡Ñ¡á ß »«¼«Θ∞ε »α«úαá¼¼δ ¼¿¡¿¼á½∞¡«ú« «íΩѼá.
éáΦá »Ñαóá∩ »α«úαá¼¼á ¡á Turbo Vision
-----------------------------------------------------------------
Åα«úαá¼¼á, ¡á»¿ßá¡¡á∩ ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision, óßÑúñá
¡áτ¿¡áÑΓß∩ ß ¿¡¿µ¿á½¿ºáµ¿¿ ¬½áßßá, »«α«ªñÑ¡¡«ú« ¿º ¬½áßßá
TApplication. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ óδ ß«ºñáñ¿ΓÑ »«α«ªñÑ¡¡δ⌐
¿º TApplication ¬½áßß TMyApp. é φΓ«¼ ¬½áßßÑ óδ ß¼«ªÑΓÑ »ÑαÑ«»αÑ-
ñѽ¿Γ∞ ¼ÑΓ«ñδ ¬½áßßá TApplication ¿/¿½¿ ñ«íáó¿Γ∞ ¬ ¡Ñ¼π ¡«óδÑ ¼Ñ-
Γ«ñδ. Å«ß½Ñ φΓ«ú« óδ «íΩ∩ó¿ΓÑ φ¬ºÑ¼»½∩α ¬½áßßá TMyApp ß ¿¼Ñ¡Ñ¼
myApp. ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« myApp - φΓ« «ß«íá∩ αạ«ó¿ñ¡«ßΓ∞ «Γ«í-
αáªáѼ«ú« «íΩѬΓá, ¡áºóá¡¡«ú« ¡á¼¿ úαπ»»«⌐, »α«ß½Ñª¿óáεΘÑú« ßó«Ñ
»α«¿ßσ«ªñÑ¡¿Ñ ¿Ñαáασ¿τÑ߬¿ ßóÑασπ «Γ TApplication, TGrouα,
TProgram ¿ TView. ÄΓ ¬áªñ«ú« ¿º φΓ¿σ ¬½áßß«ó myApp ¡áß½ÑñπÑΓ
¡Ñ߬«½∞¬« ßó«⌐ßΓó ¿ ó«º¼«ª¡«ßΓÑ⌐, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ
óἿ íѺ ∩ó¡«ú« π»«¼¿¡á¡¿∩ ¿σ ó »α«úαá¼¼Ñ. Åα¿ »α«úαá¼¼¿α«óá¡¿¿ ß
¿ß»«½∞º«ó᡿Ѽ Turbo Vision ¡πª¡« »«ßΓ«∩¡¡« ß½Ññ¿Γ∞ ºá ΓѼ, τΓ«
"π¼á½τ¿óáѼ«ú«" ó¡«ß¿Γ ¬áªñδ⌐ ¬½áßß ó »«óÑñÑ¡¿Ñ óáΦÑ⌐ »α«úαá¼¼δ.
é τáßΓ¡«ßΓ¿, óδ πó¿ñ¿ΓÑ ó φΓ«⌐ ú½áóÑ, ¬á¬ ó᪡δ úαπ»»«óδÑ
ßó«⌐ßΓóá ñ½∩ myApp. é ñá½∞¡Ñ⌐ΦѼ, úαπ»»á óáΦÑ⌐ »α«úαá¼¼δ íπñÑΓ
ó½áñѽ∞µÑ¼ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó (ó Γ«¼ τ¿ß½Ñ
ñαπú¿σ úαπ»», ó¬½ετáεΘ¿σ »«ñ«íΩѬΓδ), ¬«Γ«αδÑ ñ«½ª¡δ αÑáú¿α«óáΓ∞
¡á ß«íδΓ¿∩.
é φΓ«⌐ ú½áóÑ ¼δ íπñѼ τáßΓ« «íαáΘáΓ∞ß∩ ¬ ¬½áßßπ myApp. Å«ñ
¡¿¼ ¼δ íπñѼ »«ñαáºπ¼ÑóáΓ∞ óáΦπ »α«úαá¼¼π, Γ.Ñ. φ¬ºÑ¼»½∩α
¬½áßßá, »«α«ªñÑ¡¡«ú« ¿º ¬½áßßá TApplication. éáΦ¿ ß«íßΓóÑ¡-
¡δÑ »α«úαá¼¼δ, ¡á»¿ßá¡¡δÑ ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision, óδ
Turbo Vision ñ½∩ æ++ = 34 =
¼«ªÑΓÑ ¡áºδóáΓ∞ ¬á¬-¡¿íπñ∞ ¿¡áτÑ, ó ºáó¿ß¿¼«ßΓ¿ «Γ ßó«¿σ
ó¬πß«ó. îδ ªÑ ¿ß»«½∞º«ó὿ ¡áºóá¡¿Ñ myApp, ¬á¬ ß«¬αáΘÑ¡¿Ñ «Γ
φ¬ºÑ¼»½∩αá ¬½áßßá, »«α«ªñÑ¡¡«ú« ¿º ¬½áßßá TApplication.
Åα¿¼Ñτá¡¿Ñ: ó »α«úαá¼¼Ñ ¿¼ÑÑΓß∩ Γ«½∞¬« «ñ¿¡ «íΩÑ¬Γ ¬½áßßá
TApplication.
Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ∩ó½∩ÑΓß∩ ¡áτὫ¼ »α«ú-
αá¼¼δ-»α¿¼Ñαá, ¬«Γ«απε ¼δ íπñѼ αáºαáíáΓδóáΓ∞. ùΓ«íδ ¡Ñ »α¿ó«ñ¿Γ∞
¬áªñδ⌐ αẠ»«½¡δ⌐ ½¿ßΓ¿¡ú φΓ«⌐ »α«úαá¼¼δ, ¼δ íπñѼ »«¬áºδóáΓ∞
Γ«½∞¬« ÑÑ ñ«íáó½∩ѼδÑ ¿½¿ ¿º¼Ñ¡∩ѼδÑ τáßΓ¿. àß½¿ óδ íπñÑΓÑ ó¡¿¼á-
Γѽ∞¡« ¿ºπτáΓ∞ »α¿¼Ñα ¿ »α«¿ºó«ñ¿Γ∞ óßÑ π¬áºá¡¡δÑ ¿º¼Ñ¡Ñ¡¿∩, Γ«
πó¿ñ¿ΓÑ, τÑú« ßΓ«¿Γ ñ«íáó½Ñ¡¿Ñ ó »α«úαá¼¼π ñ«»«½¡¿Γѽ∞¡δσ Σπ¡¬µ¿-
«¡á½∞¡δσ 󫺼«ª¡«ßΓÑ⌐. ìáßΓ«∩Γѽ∞¡« αѬ«¼Ñ¡ñπѼ »«»δΓáΓ∞ß∩ ¼«ñ¿-
Σ¿µ¿α«óáΓ∞ φΓ¿ »α¿¼Ñαδ. Æá¬ªÑ ¼δ ß«óÑΓπѼ ¿ºπτ¿Γ∞ αẽ¿τ¡δÑ ºáú«-
½«ó«τ¡δÑ Σá⌐½δ *.H, ¿¼ÑεΘ¿Ñß∩ ¡á ñ¿ßΓα¿íπΓ¿ó¡δσ ñ¿ß¬áσ. é ¡¿σ ¡á-
σ«ñ∩Γß∩ «íΩ∩ó½Ñ¡¿∩ ¬½áßß«ó, »α«Γ«Γ¿»δ ¼ÑΓ«ñ«ó φΓ¿σ ¬½áßß«ó,
«»¿ßá¡¿∩ ß««ΓóÑΓßΓóπεΘ¿σ ñá¡¡δσ, αẽ¿τ¡δÑ ¬«¡ßΓá¡Γδ ¿ ¼á¬α«ßδ. é
ú½áóÑ 12 »αÑñßΓáó½Ñ¡ »«½Ñº¡δ⌐ ß»αáó«τ¡¿¬ »ÑαѬαÑßΓ¡δσ ßß佫¬ ñ½∩
ºáú«½«ó«τ¡δσ Σá⌐½«ó.
Åα¿¼Ñτá¡¿Ñ: ¡Ñ¬«Γ«αδÑ τáßΓ¿ Σαáú¼Ñ¡Γ«ó »α«úαá¼¼δ-»α¿¼Ñαá ¿¼ÑεΓß∩
¡á óáΦ¿σ ñ¿ßΓα¿íπΓ¿ó¡δσ ñ¿ß¬áσ. ê¼Ñ¡á ß««ΓóÑΓßΓóπεΘ¿σ
Σá⌐½«ó π¬áºá¡δ »«ß½Ñ φΓ¿σ Σαáú¼Ñ¡Γ«ó.
â½áó¡δ⌐ í½«¬ »α«úαá¼¼δ TVGUID01 (ΓᬠªÑ, ¬á¬ ¿ óßÑσ »α«ú-
αá¼¼, ¡á»¿ßá¡¡δσ ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision) óδú½∩ñ¿Γ ß½Ññπε-
Θ¿¼ «íαẫ¼:
// TVGUID01.CPP
#define Uses_TApplication
#include <tv.h>
class TMyApp : αublic TApplication
{
αublic:
TMyApp();
};
TMyApp::TMyApp() :
TProgInit( &TMyApp::initStatusLine,
&TMyApp::initMenuBar,
&TMyApp::initDeskToα
)
{
}
int main()
{
TMyApp myApp;
Turbo Vision ñ½∩ æ++ = 35 =
myApp.run();
return 0;
}
Åα¿¼Ñτá¡¿Ñ: ¥Γá »α«úαá¼¼á ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ TVGUID01.CPP, ¬«Γ«αδ⌐
ó¼ÑßΓÑ ß ñѼ«¡ßΓαᵿ«¡¡δ¼¿ »α«úαἼἿ ¿¼ÑÑΓß∩ ¡á
ñ¿ßΓα¿íπΓ¿ó¡δσ ñ¿ß¬áσ.
Turbo Vision ñ½∩ æ++ = 36 =
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« óδ ¡Ñ ñ«íá󿽿 (»«¬á) ¡¿¬á¬«⌐ ¡«ó«⌐
Σπ¡¬µ¿«¡á½∞¡«⌐ 󫺼«ª¡«ßΓ¿ ¬ ¬½áßßπ TMyApp. Äíδτ¡« »«α«ªñÑ¡¡δ⌐
¬½áßß ¡¿¬«úñá ¡Ñ «íΩ∩ó½∩ÑΓß∩ íѺ ó¬½ετÑ¡¿∩ ó ¡Ñú« ¡«óδσ ¼ÑΓ«ñ«ó,
»«½Ñ⌐ ¿½¿ íѺ »ÑαÑ«»αÑñѽѡ¿∩ ó ¡Ñ¼ ¡áß½ÑñπѼδσ τ½Ñ¡«ó ¬½áßßá.
àß½¿ ªÑ óδ σ«Γѽ¿ ¿¼Ñ¡¡« φΓ«ú«, Γ« óá¼ ß½Ññ«óὫ íδ »α«ßΓ« «íΩ-
∩ó¿Γ∞ »ÑαѼѡ¡πε myApp ¬á¬ φ¬ºÑ¼»½∩α ¬½áßßá TApplication. ì«,
Γ.¬. »«ºñ¡ÑÑ óδ íπñÑΓÑ ñѽáΓ∞ αẽ¿τ¡δÑ ñ«íáó½Ñ¡¿∩ ¬ ¬½áßßπ myApp
(Γá¬ªÑ ¬á¬ ¿ »α¿ ¡á»¿ßá¡¿¿ ñαπú¿σ »α«úαá¼¼ ¡á Turbo Vision), Γ«
ßÑ⌐τáß óδ ¼«ªÑΓÑ óºú½∩¡πΓ∞ ¡á TMyApp, ¬á¬ ¡á ßΓáαΓ«óπε »½«Θáñ¬π
ñ½∩ íπñπΘ¿σ ñÑ⌐ßΓó¿⌐. é ñá¡¡«¼ ªÑ ß½πτáÑ «¡ íπñÑΓ óÑßΓ¿ ßÑí∩ ¬á¬
«íδτ¡δ⌐ ¬½áßß TApplication. ÄíΩѬΓδ TApplication »« π¼«½τá¡¿ε «»-
αÑñѽ∩εΓ φ¬αá¡, »«¬áºá¡¡δ⌐ ¡á α¿ßπ¡¬Ñ 2.1.
┌──────────────────────────────────────┐
│ │
├──────────────────────────────────────┤
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
├──────────────────────────────────────┤
│ Alt-X Exit │
└──────────────────────────────────────┘
É¿ßπ¡«¬ 2.1. ¥¬αá¡, «»αÑñѽ∩Ѽδ⌐ ¬½áßß«¼ TApplication
»« π¼«½τá¡¿ε
äá¡¡á∩ »α«úαá¼¼á óδ»«½¡∩ÑΓ ½¿Φ∞ «ñ¡π «»Ñαᵿε: αÑáú¿απÑΓ ¡á
¡áªáΓ¿Ñ ¬½áó¿Φ¿ Alt-X ñ½∩ ºáóÑαΦÑ¡¿∩ »α«úαá¼¼δ. ùΓ«íδ »α«úαá¼¼á
óδ»«½¡∩½á ¿ ñαπú¿Ñ Σπ¡¬µ¿¿, ß½ÑñπÑΓ ñ«íáó¿Γ∞ ΓѬßΓδ ¬«¼á¡ñδ ó
ßΓ᫬π ß«ßΓ«∩¡¿∩ ¿½¿ ó ßΓ᫬π ¼Ñ¡ε. é ß½ÑñπεΘѼ αáºñÑ½Ñ óδ ß¼«ªÑ-
ΓÑ óδ»«½¡¿Γ∞ «íÑ φΓ¿ «»Ñαᵿ¿.
Turbo Vision ñ½∩ æ++ = 37 =
Éáí«τá∩ «í½áßΓ∞, ßΓα«¬á ¼Ñ¡ε ¿ ßΓ᫬á ß«ßΓ«∩¡¿∩
-----------------------------------------------------------------
Åα¿¼Ñτá¡¿Ñ:
êß»«½∞ºπѼδÑ ¬½áßßδ:
TView, TGrouα, TMenuBar, TMenuBox, TStatusLine, TProgInit,
TProgram, TApplication, TDeskToα.
é »α«úαá¼¼Ñ TVGUID01.CPP Γѽ« ¬«¡ßΓαπ¬Γ«αá TMyApp »πßΓ«.
è«¡ßΓαπ¬Γ«α TMyApp óδºδóáÑΓ ¬«¡ßΓαπ¬Γ«α ßó«Ñú« íẫó«ú« ¬½áßßá
ProgInit. TProgInit - φΓ« ó¿αΓπá½∞¡á∩ «ß¡«óá ñ½∩ TProgram.
è«¡ßΓαπ¬Γ«α TProgram óδºδóáÑΓ ¬«¡ßΓαπ¬Γ«α TGrouα:
TProgram::TProgram() : TGrouα( /* áαúπ¼Ñ¡Γδ ñ½∩ «»αÑñѽѡ¿∩
úαá¡¿µ «Γ«íαáªáѼ«ú« «íΩѬΓá */ )
// è«¡ßΓαπ¬Γ«α ¬½áßßá TGouα ß«ºñáÑΓ »«½¡«φ¬αá¡¡δ⌐
// «Γ«íαáªáѼδ⌐ «íΩѬΓ
{
...
if createStatusLine != 0 &&
statusLine = createStatusLine ( getExtent () ) != 0 )
insert( statusLine );
...
// ¡á ßἫ¼ ñÑ½Ñ ¼ÑΓ«ñ createStatusLine óδºδóáÑΓ initStatusLine,
// «»αÑñѽѡ¡δ⌐ ¿½¿ ó TProgram, ¿½¿, Ñß½¿ »ÑαÑ«»αÑñѽѡ,
// ó «ñ¡«¼ ¿º »«α«ªñÑ¡¡δσ ¿º TProgramm ¬½áßß«ó.
// 漫Γα¿ΓÑ «»¿ßá¡¿Ñ ¬«¡ßΓαπ¬Γ«αá TProgInit ó ú½áóÑ 13.
// statusLine ∩ó½∩ÑΓß∩ ßΓáΓ¿τÑ߬¿¼ »«½Ñ¼,
// ¬«Γ«α«Ñ π¬áºδóáÑΓ ¡á Γ«½∞¬« τΓ« ß«ºñá¡¡δ⌐ «íΩÑ¬Γ ßΓ᫬¿
// ß«ßΓ«∩¡¿∩. insert() óßΓáó½∩ÑΓ ßΓ᫬π ß«ßΓ«∩¡¿∩ ó úαπ»»π
// óáΦÑú« »α¿½«ªÑ¡¿∩ ¿ «Γ«íαáªáÑΓ ÑÑ ¡á φ¬αá¡Ñ.
// getExtent() ó«ºóαáΘáÑΓ αẼÑα »α∩¼«πú«½∞¡«⌐
// «í½áßΓ¿, ºá¡¿¼áѼ«⌐ óδºδóáÑ¼δ¼ «íΩÑ¬Γ«¼
...
// á¡á½«ú¿τ¡δ⌐ ¬«ñ ñ½∩ createMenuBar ¿ createDeskToα
...
}
ÆαѼ π¬áºáΓѽ∩¼ ¡á ¼ÑΓ«ñδ createXXX »α¿ßóá¿óáεΓß∩ áñαÑßá
ß««ΓóÑΓßΓóπεΘ¿σ ¿¼ ¼ÑΓ«ñ«ó initXXX. ü«½ÑÑ »«ñα«í¡δÑ «íΩ∩ß¡Ñ¡¿∩
íπñπΓ ñá¡δ ó »α«úαá¼¼Ñ TVGUID02 ¿ ó αáºñÑ½Ñ ú½áóδ 13, «»¿ßδóáεΘѼ
¬«¡ßΓαπ¬Γ«αδ TMyApp ¿ TProgInit.
Éáí«τá∩ «í½áßΓ∞, ßΓα«¬á ¼Ñ¡ε ¿ ßΓ᫬á ß«ßΓ«∩¡¿∩ »α«úαá¼¼δ
TVGUID01.CPP ß«ºñáεΓß∩ ¿ óßΓáó½∩εΓß∩ ó úαπ»»π myApp, ¬«úñá
¬«¡ßΓαπ¬Γ«α TProgram óδºδóáÑΓ Γα¿ ¼ÑΓ«ñá - initDeskToα,
initMenuBar ¿ initStatusLine. TApplication ¡áß½ÑñπÑΓ φΓ¿ Γα¿ ¼Ñ-
Γ«ñá íѺ ¬á¬¿σ-½¿í« ¿º¼Ñ¡Ñ¡¿⌐ «Γ ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« »αÑñΦÑßΓóÑ¡¡¿-
Turbo Vision ñ½∩ æ++ = 38 =
¬á TProgram. é ßó«ε «τÑαÑñ∞, ¿ TMyApp ¡áß½ÑñπÑΓ ¿σ íѺ ¿º¼Ñ¡Ñ¡¿⌐
¿º TApplication. Å« «»αÑñѽѡ¿ε, ñá¡¡«¼π ó TProgram, Γα¿ ¼ÑΓ«ñá
initXXX ß«ºñáεΓ ¼¿¡¿¼á½∞¡δ⌐ ¡áí«α «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó, »«¬áºá¡-
¡δ⌐ ¡á α¿ß. 2.1. é Γ«¼ ¼á½«óÑα«∩Γ¡«¼ ß½πτáÑ, Ñß½¿ óáß πñ«ó½ÑΓó«-
α¿Γ ßΓ«½∞ ߬πñ¡δ⌐ ¿¡ΓÑαΣÑ⌐ß, Γ« óδ ¼«ªÑΓÑ »α«ßΓ« »«ºó«½¿Γ∞
π¡áß½Ññ«óá¡¡δ¼ Σπ¡¬µ¿∩¼ init óδ»«½¡¿Γ∞ ¿σ αáí«Γπ. öá¬Γ¿τÑ߬¿ αá-
í«τá∩ «í½áßΓ∞ »« π¼«½τá¡¿ε »«½¡«ßΓ∞ε »«ñσ«ñ¿Γ ñ½∩ í«½∞Φ¿¡ßΓóá µÑ-
½Ñ⌐, »«φΓ«¼π ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ »ÑαÑ»¿ßδóáΓ∞ ¼ÑΓ«ñ initDeskToα.
ìá«í«α«Γ, ½¿¡Ñ⌐¡«Ñ ¼Ñ¡ε ¿ ßΓ᫬á ß«ßΓ«∩¡¿∩ ¡πªñáεΓß∩ ó ¬«ααѬµ¿¿
ó ¬áªñ«¼ ¬«¡¬αÑΓ¡«¼ ß½πτáÑ, á »«φΓ«¼π óá¼ »α¿ñÑΓß∩ »ÑαÑ«»αÑñѽ∩Γ∞
initMenuBar ¿ initStatusLine ¬áªñδ⌐ αáº. èᬠφΓ« ñѽáÑΓß∩, óδ
πó¿ñ¿ΓÑ ó φΓ«⌐ ú½áóÑ.
éδαáªÑ¡¿Ñ #define Uses_TApplication ¿ #include<tv.h>, ¿ß-
»«½∞ºπεΓß∩ ñ½∩ Γ«ú«, τΓ«íδ «íΩ∩ó¿Γ∞ ¡Ñ«íσ«ñ¿¼δÑ ¬½áßßδ ¿º Σá⌐½á
APP.H, ó ¬«Γ«α«¼ ß«ñÑαªáΓß∩ «íΩ∩ó½Ñ¡¿∩ ¬½áßß«ó TProgram,
TProgInit ¿ TApplication. èᬠó »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ, óδ »α«ßΓ«
ñ«íáó½∩ÑΓÑ óδαáªÑ¡¿Ñ
#define Uses_<¿¼∩_¬½áßßá>
ñ½∩ ¬áªñ«ú« ßΓá¡ñáαΓ¡«ú« ¬½áßßá, ¬«Γ«αδ⌐ ºáσ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞,
óδ ¼«ªÑΓÑ íδΓ∞ πóÑαÑ¡¡δ¼¿, τΓ« TV.H ó¬½ετ¿Γ óßÑ ¡πª¡δÑ Σá⌐½δ .H
(íѺ ñπí½¿α«óá¡¿∩) ¡Ñ Γ«½∞¬« ñ½∩ ßἫú« T<¿¼∩_¬½áßßá>, ¡« ¿ óßÑσ
Ñú« íẫóδσ ¬½áßß«ó.
TProgram ¿ß»«½∞ºπÑΓ ¼ÑΓ«ñ initDeskToα, initMenuBar ¿
initStatus- Line, τΓ«íδ ºáñáΓ∞ ßΓáΓ¿τÑ߬¿¼ π¬áºáΓѽ∩¼ deskToα,
menuBar ¿ statusLine ¬½áßßá TProgram áñαÑßá ß««ΓóÑΓßΓóπεΘ¿σ ¿¼
«íΩÑ¬Γ«ó. ¥Γ« «º¡áτáÑΓ, τΓ« ó ¬áªñδ⌐ ¬«¡¬αÑΓ¡δ⌐ ¼«¼Ñ¡Γ óαѼѡ¿
ßπΘÑßΓóπÑΓ Γ«½∞¬« »« «ñ¡«¼π «íΩѬΓπ αáí«τÑ⌐ «í½áßΓ¿, ½¿¡Ñ⌐¡«ú«
¼Ñ¡ε ¿ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ ñ½∩ ñá¡¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Éáßß¼«Γ-
α¿¼, »« «τÑαÑñ¿, ¬áªñδ⌐ ¿º φΓ¿σ «íΩÑ¬Γ«ó.
Éáí«τá∩ «í½áßΓ∞ (DeskToα)
îÑΓ«ñ initDeskToα ß«ºñáÑΓ «íΩÑ¬Γ TDeskToα ¿ ó«ºóαáΘáÑΓ π¬á-
ºáΓѽ∞ ¡á ¡Ñú«, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
TDeskToα *TProgram::initDeskToα (TRect r )
{
r.a.y++; // ߬«ααÑ¬Γ¿α«óáΓ∞ ¬««αñ¿¡áΓπ ½Ñó«ú« óÑασ¡Ñú« πú½á
r.b.y--; // ߬«ααÑ¬Γ¿α«óáΓ∞ ¬««αñ¿¡áΓπ »αáó«ú« ¡¿ª¡Ñú« πú½á
// »«½πτ¿½ß∩ »«½¡δ⌐ φ¬αá¡ ¬α«¼Ñ ßΓ᫬¿
// ß«ßΓ«∩¡¿∩ ¿ ½¿¡Ñ⌐¡«ú« ¼Ñ¡ε
return new TReskToα (r ); // ß«ºñá¡¿Ñ αáí«τÑ⌐ «í½áßΓ¿
// »« π¼«½τá¡¿ε
}
ô¬áºáΓѽ∞ ¡á αáí«τπε «í½áßΓ∞, deskToα, - φΓ« ßΓáΓ¿τÑ߬«Ñ
»«½Ñ ¬½áßßá TProgram, Γ.¬. ñ½∩ ¬áªñ«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ßπ-
Turbo Vision ñ½∩ æ++ = 39 =
ΘÑßΓóπÑΓ Γ«½∞¬« «ñ¡á αáí«τá∩ «í½áßΓ∞. è«¡ßΓαπ¬Γ«α TProgram óßΓáó-
½∩ÑΓ αáí«τπε «í½áßΓ∞ ó úαπ»»π »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. æÑ⌐τáß úαπ»»á
myApp ∩ó½∩ÑΓß∩ ó½áñѽ∞µÑ¼ «íΩѬΓá DeskTop (Éáí«τá∩ «í½áßΓ∞). ì«
αáí«τá∩ «í½áßΓ∞ Γá¬ªÑ ∩ó½∩ÑΓß∩ úαπ»»«⌐. ò«Γ∩ Ñ⌐ "ó½áñÑÑΓ" myApp,
αáí«τá∩ «í½áßΓ∞ ¼«ªÑΓ ¿¼ÑΓ∞ ó ßó«Ñ¼ αáß»«α∩ªÑ¡¿¿ ß«íßΓóÑ¡¡δÑ
«Γ«íαáªáѼδÑ «íΩѬΓδ. öá¬Γ¿τÑ߬¿, αáí«τá∩ «í½áßΓ∞ (¬á¬ úαπ»»á)
¿úαáÑΓ ¬½ετÑóπε α«½∞ ó óáΦÑ⌐ »α«úαá¼¼Ñ, Γ.¬. «¡á π»αáó½∩ÑΓ óßѼ¿
«Γ«íαáªáÑ¼δ¼¿ «íΩѬΓἿ, »«∩ó½∩εΘ¿¼¿ß∩ ó αáí«τÑ⌐ «í½áßΓ¿. ìá»α¿-
¼Ñα, ¬«úñá »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ ¼Ñ¡ε, myApp óδºδóáÑΓ
ß««ΓóÑΓßΓóπεΘ¿⌐ «Γ«íαáªáѼδ⌐ »«ñ«íΩÑ¬Γ ¿ óßΓáó½∩ÑΓ Ñú« ó úαπ»»π
αáí«τÑ⌐ «í½áßΓ¿. Åα¿ φΓ«¼ αáí«τá∩ «í½áßΓ∞ π»αáó½∩ÑΓ φΓ¿¼ «Γ«íαá-
ªáÑ¼δ¼ »«ñ«íΩÑ¬Γ«¼ ¿ óßѼ¿ »«ñ»«ñ«íΩѬΓἿ, ¬«Γ«αδÑ »«ß½Ññ«óá-
Γѽ∞¡« ß«ºñáεΓß∩ ¿º ¡Ñú«. é φΓ«¼ ¬«¡ΓѬßΓÑ π»αáó½Ñ¡¿Ñ «º¡áτáÑΓ
Γá¬¿Ñ ñÑ⌐ßΓó¿∩, ¬á¬ «íαáí«Γ¬π ß«íδΓ¿⌐, ¿º«íαáªÑ¡¿Ñ «íΩÑ¬Γ«ó, »Ñ-
αÑñó¿ªÑ¡¿Ñ ¿ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑα«ó «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó, τΓ«, ó
ßó«ε «τÑαÑñ∞, ∩ó½∩ÑΓß∩ αÑᬵ¿Ñ⌐ ¡á »α«¿º«ΦÑñΦ¿Ñ ß«íδΓ¿∩.
æΓ᫬á ß«ßΓ«∩¡¿∩
è«¡ßΓαπ¬Γ«α ¬½áßßá TProgram óδºδóáÑΓ ¼ÑΓ«ñ TProgram::create-
StatusLine ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá TStatusLine ¿ ó«ºóαáΘáÑΓ π¬áºá-
Γѽ∞ ¡á statusLine. ìá ßἫ¼ ñÑ½Ñ ßΓ᫬á ß«ßΓ«∩¡¿∩ ß«ºñáÑΓß∩ ó
TProgram::initStatusLine, ¼ÑΓ«ñ«¼, ¬«Γ«αδ⌐ óδ »ÑαÑ«»αÑñѽ∩ÑΓÑ ß
µÑ½∞ε ß«ºñá¡¿∩ ßΓ᫬¿ ß«ßΓ«∩¡¿∩, ß««ΓóÑΓßΓóπεΘÑ⌐ óáΦÑ⌐ ¬«¡¬αÑΓ¡«⌐
»α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. æÑ⌐τáß óδ »«⌐¼ÑΓÑ, ¬á¬ φΓ« ñѽáÑΓß∩. éδ
»α«ßΓ« »ÑαÑñáÑΓÑ áñαÑß TMyApp::initStatusLine ó ¬«¡ßΓαπ¬Γ«α
ProgInit ¿ »αÑñ«ßΓáó½∩ÑΓÑ «ßΓá½∞¡«Ñ Turbo Vision.
èᬠ¿ ó ß½πτáÑ ß deskToα, statusLine ∩ó½∩ÑΓß∩ ßΓáΓ¿τÑ߬¿¼
»«½Ñ¼ ¬½áßßá TProgram, »α¿τѼ ßπΘÑßΓóπÑΓ Γ«½∞¬« «ñ¿¡ φ¬ºÑ¼»½∩α
φΓ«ú« »«½∩, ñ½∩ óßÑσ «íΩÑ¬Γ«ó ñá¡¡«ú« ¬½áßßá. Äß¡«ó¡«Ñ ¡áº¡áτÑ¡¿Ñ
ßΓ᫬¿ ß«ßΓ«∩¡¿∩ - φΓ« »«ñß¬áº¬á »« ¬«¼á¡ñá¼, ñ«ßΓπ»¡δ¼ ó ñá¡¡δ⌐
¼«¼Ñ¡Γ óαѼѡ¿ »« π»αáó½∩εΘ¿¼ ¬½áó¿Φá¼. ô»αáó½∩εΘ¿Ñ ¬½áó¿Φ¿ - φΓ«
¬«¼í¿¡áµ¿∩ ¡áªáΓ¿⌐ ¡á ¬½áó¿Φ¿, ó Γ«¼ τ¿ß½Ñ Shift, Control, Alt ¿
^KF, ¬«Γ«αδÑ ñÑ⌐ßΓóπεΓ ΓᬪÑ, ¬á¬ ¬«¼á¡ñδ ¼Ñ¡ε ¿½¿ φ½Ñ¼Ñ¡Γδ ßΓα«-
¬¿ ß«ßΓ«∩¡¿∩.)
æΓ᫬á ß«ßΓ«∩¡¿∩ «Γ«íαáªáÑΓß∩, ¡áτ¿¡á∩ ß ½Ñó«ú« ¬αá∩ φ¬αá¡á.
ïεíá∩ τáßΓ∞ ¡¿ª¡Ñ⌐ ßΓ᫬¿ φ¬αá¡á, ¬«Γ«αá∩ ¡Ñ ¡πª¡á φ½Ñ¼Ñ¡Γá¼
ßΓ᫬¿ ß«ßΓ«∩¡¿∩, ßó«í«ñ¡á ñ½∩ ñαπú¿σ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó.
*statusLine ßó∩ºδóáÑΓ ¬½áó¿Φ¿ π»αáó½Ñ¡¿∩ ß ¬«¼á¡ñἿ, ¬α«¼Ñ Γ«ú«,
φ½Ñ¼Ñ¡Γδ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ ¼«úπΓ íδΓ∞ óδíαá¡δ ß »«¼«Θ∞ε ½Ñó«⌐ ¬½á-
ó¿Φ¿ "¼δΦ¿". ùΓ«íδ ñáΓ∞ »αÑñßΓáó½Ñ¡¿Ñ «í initStatusLine, ñá½ÑÑ
»αÑñ½áúáÑΓß∩ ÑÑ óÑαß¿∩ (»«ñαáºπ¼ÑóáѼá∩ »« π¼«½τá¡¿ε), «»αÑñѽѡ-
¡á∩ ó TProgram, ¬«Γ«αá∩ ñáÑΓ ¼¿¡¿¼á½∞¡πε ßΓ᫬π ß«ßΓ«∩¡¿∩
"Alt-X", ¬á¬ φΓ« »«¬áºá¡« ¡á α¿ß. 2.1. èα«¼Ñ Γ«ú« π»αáó½∩εΘ¿Ñ
¬½áó¿Φ¿ F10, Alt-F3, F5 ¿ Ctrl-F5 ßó∩ºδóáεΓß∩ ß« ßΓá¡ñáαΓ¡δ¼¿ ¬«-
¼á¡ñἿ ¿¡ΓÑúα¿α«óá¡¡«⌐ ßαÑñδ: cmMenu, cmClose, cmZoom ¿ cmResize
ß««ΓóÑΓßΓóÑ¡¡«, σ«Γ∩ ¡á ñ¿ß»½ÑÑ »«∩ó½∩ÑΓß∩ Γ«½∞¬« ß««íΘÑ¡¿Ñ
"Alt-X Exit". ìá ñá¡¡«¼ φΓá»Ñ á¬Γ¿ó¡á (ñ«ßΓπ»¡á) Γ«½∞¬« ¬«¼á¡ñá
cmQuit .
Turbo Vision ñ½∩ æ++ = 40 =
TStatusLine *TProgram::initStatusLine( TRect r )
{
r.a.y = r.b.y - 1;
return new TStatusLine( r,
*new TStatusDef( 0, 0xFFFF ) +
*new TStatusItem( "~Alt-X~ Exit", kbAltX, cmQuit ) +
*new TStatusItem( 0, kbF10, cmMenu ) +
*new TStatusItem( 0, kbAltF3, cmClose )
*new TStatusItem( 0, kbF5, cmZoom ) +
*new TStatusItem( 0, kbCtrlF5, cmResize ) +
);
}
é ß½ÑñπεΘѼ »α¿¼ÑαÑ óδ »«º¡á¬«¼¿ΓÑß∞ ß ß¿¡Γá¬ß¿ß«¼
initStatusLine, ñ«íáó¿ó ó ßΓ᫬π ß«ßΓ«∩¡¿∩ φ½Ñ¼Ñ¡Γ-»«ñ߬Ậπ.
Åα«úαá¼¼á TVGUID02.CPP ß«ºñáÑΓ ¼«ñ¿Σ¿µ¿α«óá¡¡πε ßΓ᫬π ß«ßΓ«∩¡¿∩
»πΓѼ »ÑαÑ«»αÑñѽѡ¿∩ ¼ÑΓ«ñá TApplication::initStatusLine. Äíαá-
Γ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á ñ«»«½¡¿Γѽ∞¡δÑ ßΓ᫬¿ - #define
Uses_T<¿¼∩_¬½áßßá>, ó ¡áτá½Ñ TVGUID02.CPP, »« «ñ¡«⌐ ñ½∩ ¬áªñ«ú«
¡«ó«ú« ¬½áßßá. Æá¬, ¡á»α¿¼Ñα, Uses_TKeys »«ñΓóÑαªñáÑΓ, τΓ« ¼«ª¡«
»«½∞º«óáΓ∞ß∩ αẽ¿τ¡δ¼¿ ¿¼Ñ¡«óá¡¿∩¼¿ ¬½áó¿Φ, Γᬫ⌐, ¬á¬ kbF5 ¿
kbAltF3.
Åα¿¼Ñτá¡¿Ñ: ¡Ñ¬«Γ«αδÑ ¿º #define Uses_<¿¼∩_¬½áßßá> ¿ºíδΓ«τ¡δ, ¡«
½πτΦÑ »ÑαÑßΓαáσ«óáΓ∞ß∩, τѼ »«»áßΓ∞ ó ¡Ñ»α¿∩Γ¡πε ß¿-
Γπᵿε.
äá½ÑÑ, ñ«íáó∞ΓÑ «íΩ∩ó½Ñ¡¿Ñ initStatusLine ó TMyApp, á ΓᬪÑ
ß½ÑñπεΘÑÑ «»αÑñѽѡ¿Ñ:
static TStatusLine *TMyApp::initStatusLine(TRect r)
{
r.a.y = r.b.y - 1; // óÑασ¡∩∩ úαá¡¿µá ¡á 1 óδΦÑ ¡¿ª¡Ñ⌐
return new TStatusLine( r,
*new TStatusDef( 0, 0xFFFF ) +
// «»αÑñѽѡ¿Ñ ¡áí«αá ¬«¡ΓѬßΓ«ó »«¼«Θ¿
*new TStatusItem( "~Alt-X~ Exit", kbAltX, cmQuit ) +
// «»αÑñѽѡ¿Ñ φ½Ñ¼Ñ¡Γá
*new TStatusItem( "~Alt-F3~ Close", kbAltF3, cmClose )
// ¿ ÑΘÑ «ñ¡«ú«
);
}
Åα¿¼Ñτá¡¿Ñ: φΓ« τáßΓ¿ Σá⌐½á TVGUID02.CPP. ìÑ ºáíπñ∞ΓÑ ñ«íáó¿Γ∞.
static TStatusLine *initStatusLine(TRect r);
ó Γѽ« «íΩ∩ó½Ñ¡¿∩ ó TMyApp.
ê¡¿µ¿á½¿ºáµ¿∩ - φΓ« »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ 󽫪ѡ¡δσ ó맮ó«ó
¬«¡ßΓαπ¬Γ«α«ó TStatusDef ¿ TStatusItem (»«ñα«í¡ÑÑ « ¡¿σ ß¼. ó
ú½áóÑ 13). ÅÑαÑ«»αÑñѽѡ¡δ⌐ «»ÑαáΓ«α + ¿ß»«½∞ºπÑΓß∩ ñ½∩ ß«ºñá¡¿∩
ßó∩ºá¡¡«ú« ß»¿ß¬á «íΩÑ¬Γ«ó TStatusDef ¿ TStatusItem ¿ ñ½∩ »ÑαÑñá-
Turbo Vision ñ½∩ æ++ = 41 =
τ¿ φΓ«ú« ß»¿ß¬á ó »«½Ñ items ¬½áßßá TStatusLine:
TStatusDef& oαerator + (TStatusDef& s1, TSatusItem s2);
Åα«Γ«Γ¿» ¬«¡ßΓαπ¬Γ«αá TStatusItem »«¼«ªÑΓ »«¡∩Γ∞ ñá¡¡δ⌐
ß¿¡Γá¬ß¿ß:
TStatusItem::TStatusItem(const char *aText, ushort key,
ushort cmd, TStatusItem *aNext = 0);
èᬠóδ ó¿ñ¿ΓÑ, ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ «»αÑñѽ∩ÑΓ
ßΓ᫬π ΓѬßΓá (πßΓá¡«ó½Ñ¡¡πε ó ¡«½∞, Ñß½¿ ¡Ñ ΓαÑíπÑΓß∩ ¡¿¬á¬«ú«
ΓѬßΓá), ¬«ñ ¬½áó¿Φ¿, ¬«ñ ¬«¼á¡ñδ ¿ π¬áºáΓѽ∞ ¡á ß½ÑñπεΘ¿⌐ φ½Ñ-
¼Ñ¡Γ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ (¡π½Ñó«⌐ π¬áºáΓѽ∞ «º¡áτáÑΓ, τΓ« ñαπú¿σ
φ½Ñ¼Ñ¡Γ«ó í«½∞ΦÑ ¡ÑΓ).
ÄíΩÑ¬Γ TStatusDef ó »α«úαá¼¼Ñ TVGUID02 «»αÑñѽ∩ÑΓ ßΓ᫬π
ß«ßΓ«∩¡¿∩, ¬«Γ«αá∩ ñ«½ª¡á íδΓ∞ óδóÑñÑ¡á ¡á φ¬αá¡ ó ºáó¿ß¿¼«ßΓ¿ «Γ
¬«¡ΓѬßΓá ß»αáó«τ¡«⌐ ß¿ßΓѼδ ó ñ¿á»áº«¡Ñ «Γ 0 ñ« 0xFFFF. Ä¡ ΓᬪÑ
ßó∩ºδóáÑΓ ßΓá¡ñáαΓ¡δÑ ¬«¼á¡ñδ Turbo Vision cmQuit ¿ cmClose ß
¬½áó¿ΦἿ Alt-X ¿ Alt-F3.
Å«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ «»αÑñѽ∩ÑΓ ΓѬßΓ«óδ⌐ áα-
úπ¼Ñ¡Γ "~Alt-F3~Close". ùáßΓ∞ ßΓ᫬¿, ºá¬½ετÑ¡¡á∩ ¼Ñªñπ ß¿¼ó«½á¼¿
Γ¿½∞ñδ (~), ¡á φ¬αá¡Ñ íπñÑΓ óδñѽѡá ß««ΓóÑΓßΓóπεΘ¿¼ µóÑΓ«¼.
Å«½∞º«óáΓѽ∞ ¿¼ÑÑΓ ó«º¼«ª¡«ßΓ∞ á¬Γ¿ó¿º¿α«óáΓ∞ ½εíπε ¬«¼á¡ñπ ßΓα«-
¬¿ ß«ßΓ«∩¡¿∩ ¡áªáΓ¿Ñ¼ ½Ñó«⌐ ¬¡«»¬¿ "¼δΦ¿", ¬«úñá ÑÑ π¬áºáΓѽ∞ ¡á-
σ«ñ¿Γß∩ ó ¡πª¡«¼ ¼ÑßΓÑ ßΓ᫬¿.
è«úñá óδ ºá»πßΓ¿ΓÑ »α«úαá¼¼π TVGUID02, óδ ºá¼ÑΓ¿ΓÑ, τΓ« φ½Ñ-
¼Ñ¡Γ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ Alt-F3 ¡Ñ »«ñßóÑτÑ¡, ¿ óδí«α Ñú« "¼δΦ∞ε" ¡¿
¬ τѼπ ¡Ñ »α¿ó«ñ¿Γ. ¥Γ« »α«¿ßσ«ñ¿Γ »«Γ«¼π, τΓ« ¬«¼á¡ñá cmClose
¡Ññ«ßΓπ»¡á »« π¼«½τá¡¿ε, á φ½Ñ¼Ñ¡Γδ ßΓ᫬¿ ß«ßΓ«∩¡¿∩, úÑ¡Ñα¿απÑ-
¼δÑ ¡Ññ«ßΓπ»¡«⌐ ¬«¼á¡ñ«⌐, Γ«ªÑ ¡Ññ«ßΓπ»¡δ. Æ«½∞¬« ¬«úñá óδ «Γ¬α«-
ÑΓÑ «¬¡«, ¿ß»«½∞ºπ∩ ¬«¼á¡ñπ ¼Ñ¡ε ¿½¿ ßΓ᫬π ß«ßΓ«∩¡¿∩, ¬«¼á¡ñá
cmClose ¿ ß««ΓóÑΓßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ßΓ᫬¿ ßΓá¡πΓ á¬Γ¿ó¡δ¼¿.
îδ πªÑ «»αÑñѽ¿½¿ ¬«¡ßΓαπ¬Γ«α TMyApp Γᬿ¼ «íαẫ¼, τΓ« íπ-
ñÑΓ óδºóá¡á óáΦ ß«íßΓóÑ¡¡δ⌐ ¼ÑΓ«ñ initStatusLine, á ¡Ñ »Ñαó«¡á-
τá½∞¡á∩, ¬«Γ«αá∩ «»αÑñѽѡá ó TProgram:
TMyApp::TMyApp() :
TProgInit( &TMyApp::initStatusLine,
&TMyApp::initMenuBar,
&TMyApp::initDeskToα
)
{
}
/* ÅÑαÑñá⌐ΓÑ áñαÑßá óáΦ¿σ ΓαÑσ ¼ÑΓ«ñ«ó initXXX ó ¬«¡ßΓαπ¬Γ«α
TProgInit. ¥Γ«Γ ¬«¡ßΓαπ¬Γ«α ¿¡¿µ¿á½¿º¿απÑΓ Γα¿ π¬áºáΓѽ∩ ¡á
¼ÑΓ«ñδ creatXXX (creatStatusLine ¿.Γ.ñ.) ¿ ¿ß»«½∞ºπÑΓ ¿σ ñ½∩
¿¡¿µ¿á½¿ºáµ¿¿ ßΓ᫬¿ ß«ßΓ«∩¡¿∩, ßΓα«¬á ¼Ñ¡ε ¿ αáí«τÑ⌐ «í½áßΓ¿
Turbo Vision ñ½∩ æ++ = 42 =
óáΦÑ⌐ »α«úαá¼¼δ.
*/
Ä»¿ßá¡¿Ñ ¬½áßßá TProgInit »α¿óÑñÑ¡« ó ú½áóÑ 13. çñÑß∞ ªÑ,
«Γ¼ÑΓ¿¼, τΓ« TProgram ¿¼ÑÑΓ ñóá íẫóδσ ¬½áßßá: TGrouα ¿
TProgInit. TProgInit ∩ó½∩ÑΓß∩ «íΘÑñ«ßΓπ»¡δ¼ (αublic) ó¿αΓπá½∞¡δ¼
íẫóδ¼ ¬½áßß«¼, ß«ñÑαªáΘ¿¼ π¬áºáΓѽ¿ ¡á ¼ÑΓ«ñδ createStatusLine,
createDeskToα ¿ createMenuBar. é¿αΓπá½∞¡δÑ íẫóδÑ ¬«¡ßΓαπ¬Γ«αδ
¿¼ÑεΓ ßó«¿ ß«íßΓóÑ¡¡δÑ «ß«íδÑ »αáó¿½á: «¡¿ óδºδóáεΓß∩ »ÑαÑñ
¬«¡ßΓαπ¬Γ«αἿ ½εíδσ »«α«ªñÑ¡¡δσ ¬½áßß«ó. Å«φΓ«¼π π¬áºáΓѽ∞ ¡á
¼ÑΓ«ñ createStatusLine πßΓá¡áó½¿óáÑΓß∩ ó &TMyApp::initStatusLine.
Æᬠ¬á¬ TMyApp ¡Ñ «»αÑñѽ∩ÑΓ initMenuBar ¿½¿ initDeskToα, ¼ÑΓ«ñδ
&TMyApp::initMenuBar ¿ &TMyApp::initDeskToα ß««ΓóÑΓßΓóπεΓ π¡áß½Ñ-
ñ«óá¡¡δ¼ óÑαß¿∩¼ φΓ¿σ ¼ÑΓ«ñ«ó.
Éáí«Γá ß« ßΓ᫬«⌐ ß«ßΓ«∩¡¿∩ ºá¬á¡τ¿óáÑΓß∩, ¬á¬ Γ«½∞¬« óδ
»α«¿¡¿µ¿á½¿º¿α«ó὿ statusLine. ū߬«½∞¬π óδ ¿ß»«½∞ºπÑΓÑ Γ«½∞¬«
»αÑñ«»αÑñѽѡ¡δÑ ¬«¼á¡ñδ (cmQuit ¿ cmClose), Γ« statusLine ¼«ªÑΓ
«íαáíáΓδóáΓ∞ »«½∞º«óáΓѽ∞߬¿⌐ óó«ñ íѺ óáΦÑú« ñá½∞¡Ñ⌐ΦÑú«
πτáßΓ¿∩. (çá¼ÑΓ∞ΓÑ, τΓ« »«ß¬«½∞¬π statusLine ∩ó½∩ÑΓß∩ ßΓáΓ¿τÑ߬¿¼
φ½Ñ¼Ñ¡Γ«¼ ñá¡¡δσ, Γ« ¬½áßßδ, ¡Ñ »«α«ªñÑ¡¡δÑ ¿º TProgram, ¼«úπΓ
ßßδ½áΓ∞ß∩ ¡á ¡Ñú« Γ«½∞¬« »« »«½¡«¼π ¿¼Ñ¡¿: TProgram::statusLine.)
Turbo Vision ñ½∩ æ++ = 43 =
櫺ñá¡¿Ñ ¡«óδσ ¬«¼á¡ñ
-----------------------------------------------------------------
ÄΓ¼ÑΓ¿¼, τΓ« ¬«¼á¡ñδ cmQuit ¿ cmClose, ¬«Γ«αδÑ óδ "ßó∩ºá½¿"
c φ½Ñ¼Ñ¡ΓἿ ßΓ᫬¿ ß«ßΓ«∩¡¿∩, ∩ó½∩εΓß∩ ßΓá¡ñáαΓ¡δ¼¿ ¬«¼á¡ñἿ
Turbo Vision, á »«φΓ«¼π «»αÑñѽ∩Γ∞ ¿σ ¡Ñ ΓαÑíπÑΓß∩. ä½∩ Γ«ú« ªÑ,
τΓ«íδ «»αÑñѽ¿Γ∞ ß«íßΓóÑ¡¡δÑ ¬«¼á¡ñδ, óδ ñ«½ª¡δ «íΩ∩ó¿Γ∞ ¿σ, ¬á¬
¬«¡ßΓá¡Γδ. ìá»α¿¼Ñα, óδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ ßó«ε ß«íßΓóÑ¡¡πε ¬«¼á¡-
ñπ ñ½∩ «Γ¬αδΓ¿∩ ¡«ó«ú« «¬¡á ß½ÑñπεΘ¿¼ «íαẫ¼:
const int cmNewWin = 199;
Åα¿¼Ñτá¡¿Ñ: Turbo Vision αѺÑαó¿απÑΓ α∩ñ ¬«¡ßΓá¡Γ ñ½∩ ßó«¿σ
ß«íßΓóÑ¡¡δσ ¬«¼á¡ñ. æ¼. ú½áóπ 5.
çáΓѼ óδ ¼«ªÑΓÑ "ßó∩ºáΓ∞" φΓ𠬫¼á¡ñπ c π»αáó½∩εΘÑ⌐ ¬½áó¿ΦÑ⌐
¿ φ½Ñ¼Ñ¡Γ«¼ ßΓ᫬¿ ß«ßΓ«∩¡¿∩:
return statusLine = new TStatusLine( r,
*new TStatusDef( 0, 0xFFFF ) +
*new TStatusItem( "~Alt-X~ Exit", kbAltX, cmQuit ) +
*new TStatusItem( "~F4~ New", kbF4, cmNewWin ) +
*new TStatusItem( "~Alt-F3~ Close", kbAltF3, cmClose )
);
èᬠ»α¿¼Ñ¡¿Γ∞ ¼ÑΓ«ñ, ß««ΓóÑΓßΓóπεΘ¿⌐ cmNewWin, íπñÑΓ »«¬áºá-
¡« ¡¿ªÑ, ¬«úñá ¼δ íπñѼ «íßπªñáΓ∞ «íαáí«Γ¬π ß«íδΓ¿⌐.
æ¿¡Γá¬ß¿ß ¿¡¿µ¿á½¿ºáµ¿¿ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ ∩ó½∩ÑΓß∩ σ«α«Φ¿¼
óóÑñÑ¡¿Ñ¼ ó ¿¡¿µ¿á½¿ºáµ¿ε ¼Ñ¡ε, τΓ« ∩ó½∩ÑΓß∩ í«½ÑÑ ß½«ª¡«⌐ «»Ñαá-
µ¿Ñ⌐.
æΓ᫬«ó«Ñ ¼Ñ¡ε
îÑΓ«ñ initMenuBar, óδºδóáѼδ⌐ »« π¼«½τá¡¿ε ¬«¡ßΓαπ¬Γ«α«¼
TProgram, ¿¡¿µ¿á½¿º¿απÑΓ «íΩÑ¬Γ TMenuBar ¿ πßΓá¡áó½¿óáÑΓ ßΓáΓ¿-
τÑ߬¿⌐ φ½Ñ¼Ñ¡Γ menuBar Γá¬, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
TMenuBar *TProgram::initMenuBar( TRect r )
{
r.b.y = r.a.y + 1;
// πßΓá¡«ó¿Γ∞ ¡¿ª¡εε úαá¡¿µπ «Γ«íαáªáѼ«ú« «íΩѬΓá
// ¡á 1 ¡¿ªÑ Ñú« óÑασ¡Ñ⌐ úαá¡¿µδ
return new TMenuBar( r, 0 );
}
èᬠóδ ó¿ñѽ¿ ¡á »α¿¼ÑαÑ TVGUID01, φëà ¼ÑΓ«ñ ñáÑΓ »πßΓπε
ßΓ᫬π ¼Ñ¡ε. ÅÑαóδ⌐ áαúπ¼Ñ¡Γ ñáÑΓ αẼÑα «Γ«íαáªáѼ«ú« «íΩѬΓá
(»α∩¼«πú«½∞¡á∩ »«½«ßá). ô¬áºáΓѽ∞ 0 ó« óΓ«α«¼ áαúπ¼Ñ¡ΓÑ ó맮óá
Turbo Vision ñ½∩ æ++ = 44 =
new TMenuBar »«¬áºδóáÑΓ, τΓ« ¡¿¬á¬¿σ φ½Ñ¼Ñ¡Γ«ó ¼Ñ¡ε ¿½¿ »«ñ߬ẫ¬
¡Ñ ßπΘÑßΓóπÑΓ. éδ ñ«½ª¡δ »ÑαÑ«»αÑñѽ¿Γ∞ ¼ÑΓ«ñ initMenuBar, τΓ«íδ
«íÑß»Ñτ¿Γ∞ ßó«ε ß«íßΓóÑ¡¡πε ¿Ñαáασ¿ε ¼Ñ¡ε. Å«½Ñ menuBar ¿¡¿µ¿á½¿-
º¿απÑΓß∩ »α¿ 󽫪ѡ¡δσ ó맮óáσ ¬«¡ßΓαπ¬Γ«α«ó TMenuItem ¿
TSubMenu, ¿ß»«½∞ºπεΘ¿σ »ÑαÑ«»αÑñѽѡ¡δ⌐ «»ÑαáΓ«α +. ê ΓᬠªÑ, ¬á¬
φΓ« ¿ í佫 ß« ßΓ᫬«⌐ ß«ßΓ«∩¡¿∩, óδ ñ«½ª¡δ ñ«íáó¿Γ∞ ó ¬½áßß
TMyApp ß½ÑñπεΘÑÑ «íΩ∩ó½Ñ¡¿Ñ :
static TMenuBar *initMenuBar ( TRect r );
îÑΓ«ñ newLine «íÑß»Ñτ¿óáÑΓ αáºñѽ¿Γѽ∞¡δÑ ½¿¡¿¿ ¼Ñªñπ »π¡¬-
ΓἿ ¼Ñ¡ε. Å«ß½Ñ ¿¡¿µ¿á½¿ºáµ¿¿ ¼Ñ¡ε, óáΦá αáí«Γá ß ¡¿¼ ºá¬«¡τÑ¡á,
Γ.¬. ½¿¡Ñ⌐¡«Ñ ¼Ñ¡ε ¼Ñ¡ε «íαáíáΓδóáÑΓ ñÑ⌐ßΓó¿∩ »«½∞º«óáΓѽ∩ íѺ
óáΦÑú« πτáßΓ¿∩.
Åα«¿¡¿µ¿á½¿º¿απ⌐ΓÑ »α«ßΓÑ⌐ΦÑÑ ½¿¡Ñ⌐¡«Ñ ¼Ñ¡ε, «ñ¡« ¼Ñ¡ε, ß«-
ñÑαªáΘÑÑ «ñ¡π ¬«¼á¡ñπ, ¡á»α¿¼Ñα, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
▒▒ File ▒▒▒▒▒▒▒▒▒▒▒▒▒
┌────────────────┐░░
│░░Oαen F3░░░░░░░│▒░
└────────────────┘▒░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░░░░░░░░░░░░░░░░░░░░░
const cmFileOαen = 200; // «»αÑñѽѡ¿Ñ ¡«ó«⌐ ¬«¼á¡ñδ
TMenuBar *TMyApp::initMenuBar( TRect r )
{
r.b.y = r.a.y + 1;
return new TMenuBar( r,
*new TSubMenu( "~F~ile", kbAltF )+
*new TMenuItem( "~O~αen", cmFileOαen,kbF3,hcNoContext,"F3")
);
}
àñ¿¡ßΓóÑ¡¡«Ñ 󽫪ѡ¡«Ñ ¼Ñ¡ε, óδñáóáѼ«Ñ ñá¡¡δ¼ Σαáú¼Ñ¡Γ«¼
»α«úαá¼¼δ, ¡áºδóáÑΓß∩ 'File', á Ñú« Ññ¿¡ßΓóÑ¡¡á∩ ¬«¼á¡ñá -
'Oαen'. æ »«¼«Θ∞ε ß¿¼ó«½«ó Γ¿½∞ñá (~) π¬áºδóáÑΓß∩, τΓ« íπ¬óá F
¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ π»α«ΘÑ¡¡«ú« ó맮óá ¼Ñ¡ε "File" (ß »«-
¼«Θ∞ε ¬«¼á¡ñδ Alt-F), á íπ¬óá "O" ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á ñ½∩
ó맮óá ¬«¼á¡ñδ φΓ«ú« ¼Ñ¡ε 'Oαen'. é Γ«ªÑ óαѼ∩ ¬½áó¿Φá F3 "ßó∩ºá-
¡á" c 'Oαen' ó ¬áτÑßΓóÑ π»αáó½∩εΘÑ⌐ ¬½áó¿Φ¿.
éßÑ «Γ«íαáªáѼδÑ «íΩѬΓδ Turbo Vision ¼«úπΓ ¿¼ÑΓ∞ ßó∩ºá¡¡δ⌐
ß ¡¿¼¿ ¡«¼Ñα ¬«¡ΓѬßΓá "ß»αáó¬¿". ¥Γ«Γ ¡«¼Ñα «í½ÑúτáÑΓ »α¿¼Ñ¡Ñ¡¿Ñ
ó óáΦÑ⌐ »α«úαá¼¼Ñ ß¿ßΓÑ¼δ ¬«¡ΓѬßΓ¡«-ºáó¿ß¿¼«⌐ »«¼«Θ¿. éßÑ «Γ«í-
αáªáѼδÑ «íΩѬΓδ ¿¼ÑεΓ, »« π¼«½τá¡¿ε, ¬«¡ΓѬßΓ hcNoContext, ¬«Γ«-
αδ⌐ ∩ó½∩ÑΓß∩ ߻ѵ¿á½∞¡δ¼ ß½πτáѼ ¬«¡ΓѬßΓá, ¡Ñ ¿º¼Ñ¡∩εΘ¿¼ ¡«¼Ñαá
ΓѬπΘÑú« ¬«¡ΓѬßΓá »«¼«Θ¿. àß½¿ ªÑ óδ ú«Γ«óδ ñ«íáó¿Γ∞ ßó«¿ ¬«¡-
ΓѬßΓδ »«¼«Θ¿ ó ßΓ᫬π ¼Ñ¡ε, óδ ¼«ªÑΓÑ »«ñßΓáó¿Γ∞ ßó«¿ ß«íßΓóÑ¡-
¡δÑ º¡áτÑ¡¿∩ ó¼ÑßΓ« hcNoContext »α¿ ¿¡¿µ¿á½¿ºáµ¿¿ ßΓ᫬¿ ¼Ñ¡ε.
Turbo Vision ñ½∩ æ++ = 45 =
ä½∩ Γ«ú«, τΓ«íδ ñ«íáó¿Γ∞ óΓ«α«⌐ »π¡¬Γ ó ¼Ñ¡ε 'File', óδ
»α«ßΓ« ñ«½ª¡δ «ßπΘÑßΓó¿Γ∞ ¡«óδ⌐ 󽫪ѡ¡δ⌐ ó맮ó ¼ÑΓ«ñá *new
TMenuItem Γá¬, ¬á¬ φΓ« ßñѽᡫ ¡¿ªÑ:
▒▒ File ▒▒▒▒▒▒▒▒▒▒▒▒▒
┌────────────────┐░░
│░░Oαen F3░░░░░░░│▒░
│ New F4 │▒░
└────────────────┘▒░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░░░░░░░░░░░░░░░░░░░░░
return new TMenuBar( r,
*new TSubMenu( "~F~ile", kbAltF )+
*new TMenuItem( "~O~αen", cmFileOαen, kbF3,hcNoContext,"F3")+
*new TMenuItem( "~N~ew", cmNewWin, kbF4,hcNoContext,"F4")+
);
ä½∩ Γ«ú« ªÑ, τΓ«íδ ñ«íáó¿Γ∞ óΓ«α«Ñ ¼Ñ¡ε, óδ ñ«½ª¡δ óΓ«α«⌐
αẠ(󽫪ѡ«) «íαáΓ¿Γ∞ß∩ ¬ ¼ÑΓ«ñπ *new TSubMenu Γá¬, ¬á¬ φΓ« »«-
¬áºá¡« ¡¿ªÑ:
▒▒ File Window▒▒▒▒▒▒▒▒▒▒▒
░░░░░░░░┌───────────────┐░░
░░░░░░░░│░░Next F6░░░░░░│▒░
░░░░░░░░│ Zoom F5 │▒░
░░░░░░░░└───────────────┘▒░
░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░░░░░░░░░░░░░░░░░░░░░░░░░░░
return new TMenuBar( r,
*new TSubMenu( "~F~ile", kbAltF )+
*new TMenuItem( "~O~αen", cmFileOαen, kbF3,hcNoContext,"F3")+
*new TMenuItem( "~N~ew", cmNewWin, kbF4,hcNoContext,"F4")+
*new TSubMenu( "~W~indow", kbAltW )+
*new TMenuItem( "~N~ext", cmNext, kbF6,hcNoContext,"F6")+
*new TMenuItem( "~Z~oom", cmZoom, kbF5,hcNoContext,"F5")
);
äá¡¡δ⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ßó∩ºá½ ÑΘÑ ñóÑ ßΓá¡ñáαΓ¡δσ ¬«¼á¡ñδ
Turbo Vision, cmNext ¿ cmZoom, ß ¬«¼á¡ñἿ ¼Ñ¡ε ¿ π»αáó½∩εΘ¿¼¿
¬½áó¿ΦἿ.
ùΓ«íδ »«¼ÑßΓ¿Γ∞ ú«α¿º«¡Γá½∞¡πε ½¿¡¿ε ¼Ñªñπ »π¡¬ΓἿ óÑαΓ¿-
¬á½∞¡«ú« ¼Ñ¡ε,»«¼ÑßΓ¿ΓÑ «íαáΘÑ¡¿Ñ ¬ ¼ÑΓ«ñπ newLine ¼Ñªñπ ó맮óἿ
¼ÑΓ«ñá *new TMenuItem ß½ÑñπεΘ¿¼ «íαẫ¼: (ß¼. TVGUID03.CPP)
Turbo Vision ñ½∩ æ++ = 46 =
▒▒ File Window▒▒▒▒▒▒
┌────────────────┐░░
│░░Oαen F3░░░░░░░│▒░
│ New F4 │▒░
└────────────────┘▒░
│ Exit Alt-X │▒░
└────────────────┘▒░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░░░░░░░░░░░░░░░░░░░░░
return new TMenuBar( r,
*new TSubMenu( "~F~ile", kbAltF )+
*new TMenuItem( "~O~αen", cmFileOαen, kbF3,hcNoContext,"F3")+
*new TMenuItem( "~N~ew", cmNewWin, kbF4,hcNoContext,"F4")+
newLine()+
*new TMenuItem( "E~x~it", cmQuit,cmQuit,hcNoContext,"Alt-X")+
*new TSubMenu( "~W~indow", kbAltW )+
*new TMenuItem( "~N~ext", cmNext, kbF6,hcNoContext,"F6")+
*new TMenuItem( "~Z~oom", cmZoom, kbF5,hcNoContext,"F5")
);
èᬠóδ ¼«ªÑΓÑ ºá¼ÑΓ¿Γ∞, óÑαß¿∩ »α«úαá¼¼δ TVGUID03.CPP, ¿¼Ñε-
Θá∩ß∩ ¡á óáΦѼ ñ¿ß¬Ñ, »«¼¿¼« »α«τÑú« ñ«íáó½∩ÑΓ ßΓáΓπß¡πε ¬½áó¿Φπ
ó ßΓ᫬π ß«ßΓ«∩¡¿∩, ßó∩ºδóá∩ ¬½áó¿Φπ F10 ß ¬«¼á¡ñ«⌐ cmMenu. è«-
¼á¡ñá cmMenu ∩ó½∩ÑΓß∩ «ñ¡«⌐ ¿º ßΓá¡ñáαΓ¡δσ ¬«¼á¡ñ Turbo Vision,
¬«Γ«αá∩ »«¼«úáÑΓ »«½∞º«óáΓѽ∩¼, ¡Ñ ¿¼ÑεΘ¿¼ "¼δΦ¿", ¿ß»«½∞º«óáΓ∞
ßΓ᫬π ¼Ñ¡ε. é ñá¡¡«¼ ß½πτáÑ, ¡áªáΓ¿Ñ ¬½áó¿Φ¿ F10 óδºδóáÑΓ á¬Γ¿-
ó¿ºáµ¿ε ßΓ᫬¿ ¼Ñ¡ε, ΓѼ ßá¼δ¼ «íÑß»Ñτ¿óá∩ 󫺼«ª¡«ßΓ∞ óδí«αá
ΓαÑíπѼ«ú« óÑαΓ¿¬á½∞¡«ú« ¼Ñ¡ε (¿ Ñú« ß««ΓóÑΓßΓóπεΘ¿σ ¬«¼á¡ñ) ß
»«¼«Θ∞ε ¬½áó¿Φ π»αáó½Ñ¡¿∩ ¬παß«α«¼. ì¿¬á¬¿σ ¿º¼Ñ¡Ñ¡¿⌐ ó ¼ÑΓ«ñÑ
handleEvent ¡Ñ ΓαÑíπÑΓß∩.
æ½ÑñπÑΓ Γá¬ªÑ «Γ¼ÑΓ¿Γ∞, τΓ« φ½Ñ¼Ñ¡Γ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ F10 ß«-
ñÑαª¿Γ ó ¬áτÑßΓóÑ ΓѬßΓá ¡π½Ñóπε ßΓ᫬π, »«φΓ«¼π ¡á φ¬αá¡Ñ ¡¿τÑú«
¡Ñ »«∩ó½∩ÑΓß∩. é««íΘÑ-Γ«, í佫 íδ σ«α«Φ« »«ñú«Γ«ó¿Γ∞ »«½∞º«óáΓÑ-
½Ñ⌐ ¬ Γ«¼π, τΓ« ¬½áó¿Φá F10 íπñÑΓ á¬Γ¿ó¿º¿α«óáΓ∞ ½¿¡Ñ⌐¡«Ñ ¼Ñ¡ε.
Äñ¡á¬«, «íδτ¡«, ¿¼ÑΓ∞ ߻ѵ¿á½∞¡δ⌐ φ½Ñ¼Ñ¡Γ ßΓ᫬¿ ß«ßΓ«∩¡¿∩, ¬«Γ«-
αδ⌐ »α¿ Ñú« óδí«αÑ (ß »«¼«Θ∞ε "¼δΦ¿") ¡áªáΓ¿¿ íπñÑΓ óδ»«½¡∩Γ∞ φΓ«
ñÑ⌐ßΓó¿Ñ, ñ«ßΓáΓ«τ¡« íÑß»«½Ñº¡«. â«αáºñ« αáºπ¼¡ÑÑ αáí«ΓáΓ∞ ¡Ñ-
»«ßαÑñßΓóÑ¡¡« ß« ßΓ᫬«⌐ ¼Ñ¡ε.
çá¼Ñτá¡¿Ñ »« ßΓαπ¬ΓπαÑ
ìá ñá¡¡δ⌐ ¼«¼Ñ¡Γ α∩ñ ¬«¼á¡ñ ñ«ßΓπ»Ñ¡, ¡« í«½∞Φ¿¡ßΓó« ¿º ¡¿σ
ºáí½«¬¿α«óá¡«, á ¬«¼á¡ñδ cmNewWin ¿ cmFileOαen ¡Ñ óδ»«½¡∩εΓ ÑΘÑ
¡¿¬á¬¿σ ñÑ⌐ßΓó¿⌐.
Äñ¡á¬«, óδ ¡Ñ ñ«½ª¡δ αẫτáα«óδóáΓ∞ß∩. éδ ¿ Γᬠóδ»«½¡¿½¿
í«½∞Φπε αáí«Γπ. éδ »«º¡á¬«¼¿½¿ß∞ ß «ñ¡¿¼ ¿º »αÑ¿¼πΘÑßΓó »α«úαá¼-
¼¿α«óá¡¿∩, π»αáó½∩Ѽ«ú« ß«íδΓ¿∩¼¿ - «Γñѽѡ¿Ñ Σπ¡¬µ¿¿ »«½πτÑ¡¿∩
ß«íδΓ¿⌐ «Γ Σπ¡¬µ¿¿ αÑᬵ¿¿ ¡á φΓ¿ ß«íδΓ¿∩.
Åα¿ αáí«ΓÑ ó Γαáñ¿µ¿«¡¡«¼ ßΓ¿½Ñ »α«úαá¼¼¿α«óá¡¿∩ óá¼ »α¿Φ-
½«ß∞ íδ óÑα¡πΓ∞ß∩ ¬ Γ«½∞¬« τΓ« ¡á»¿ßá¡¡«¼π Σαáú¼Ñ¡Γπ »α«úαá¼¼δ ¿
ñ«íáó½∩Γ∞ ¡«óδÑ Σαáú¼Ñ¡Γδ ñ½∩ «Γ¬αδΓ¿∩ «¬«¡ ¿ Γ.». Äñ¡á¬«, óá¼ ¡Ñ
Turbo Vision ñ½∩ æ++ = 47 =
»α¿ñÑΓß∩ ñѽáΓ∞ φΓ«ú«: óδ »«½πτ¿½¿ ¼Ñσá¡¿º¼, ß»«ß«í¡δ⌐ »«ßδ½áΓ∞
¬«¼á¡ñδ. éá¼ «ßΓáÑΓß∩ ½¿Φ∞ ¡á»¿ßáΓ∞ α∩ñ »«ñ»α«úαá¼¼, αÑáú¿απεΘ¿σ
¡á φΓ¿ ¬«¼á¡ñδ. ¥Γ¿¼ óδ ¿ ºá⌐¼ÑΓÑß∞ ó ß½ÑñπεΘѼ αáºñѽÑ.
æΓαπ¬Γπαá »α«úαá¼¼ ¡á Turbo Vision »α«ñó¿úáÑΓ óáß ¡á Φáú
ó»ÑαÑñ »« «Γ¡«ΦÑ¡¿ε ¬ Γαáñ¿µ¿«¡¡«¼π ¼«ñπ½∞¡«¼π »α«úαá¼¼¿α«óá¡¿ε.
éδ ¼«ªÑΓÑ ¡Ñ Γ«½∞¬« αáºí¿óáΓ∞ ßó«ε »α«úαá¼¼π ¡á Σπ¡¬µ¿«¡á½∞¡«-ßá-
¼«ßΓ«∩Γѽ∞¡δÑ, »«óΓ«α¡« ¿ß»«½∞ºπѼδÑ í½«¬¿, ¡« φΓ¿ í½«¬¿ ¼«úπΓ
íδΓ∞ º¡áτ¿Γѽ∞¡« ¼Ñ¡∞ΦÑú« «íΩѼá, í«½ÑÑ ¡Ñºáó¿ß¿¼δÑ ñαπú «Γ ñαπúá
¿ óºá¿¼«ºá¼Ñ¡∩ѼδÑ.
ÆÑ»Ñα∞ óáΦá »α«úαá¼¼á αáß»«½áúáÑΓ ¡Ñ߬«½∞¬¿¼¿ ß»«ß«íἿ ñ½∩
»«ß佬¿ ¬«¼á¡ñδ, «Γ¬αδóáεΘÑ⌐ ¡«ó«Ñ «¬¡« (cmNewWin): φ½Ñ¼Ñ¡Γ ßΓα«-
¬¿ ß«ßΓ«∩¡¿∩, »π¡¬Γ ¼Ñ¡ε ¿ π»αáó½∩εΘá∩ ¬½áó¿Φá. æÑ⌐τáß ªÑ óδ πíÑ-
ñ¿ΓÑß∞, ¡á߬«½∞¬« »α«ßΓ« ¼«ª¡« ß««íΘ¿Γ∞ óáΦÑ⌐ »α«úαá¼¼Ñ « ¡Ñ«íσ«-
ñ¿¼«ßΓ¿ «Γ¬αδΓ∞ ¡«ó«Ñ «¬¡« »α¿ »«¼«Θ¿ φΓ«⌐ ¬«¼á¡ñδ. æπΘÑßΓóÑ¡¡«
Γ«, τΓ« ñ½∩ »α«úαá¼¼δ ¡Ñ ó᪡«, ¬á¬¿¼ «íαẫ¼ αáí«ΓáÑΓ ñá¡¡á∩ ¬«-
¼á¡ñá, ¿ ¬á¬ íπñÑΓ "»«ßΓα«Ñ¡«" «¬¡«. éßÑ φΓ¿ Σπ¡¬µ¿«¡á½∞¡δÑ ó«º-
¼«ª¡«ßΓ¿ ∩ó½∩εΓß∩ ¡Ñºáó¿ß¿¼δ¼¿.
àß½¿ »«ºñ¡ÑÑ óδ ºáσ«Γ¿ΓÑ ¿º¼Ñ¡¿Γ∞ "»α¿ó∩º¬π" ñá¡¡«⌐ ¬«¼á¡ñδ
- ßó∩ºáΓ∞ ÑÑ ß ñαπú¿¼ »π¡¬Γ«¼ ¼Ñ¡ε, ß ñαπú«⌐ π»αáó½∩εΘÑ⌐ ¬½áó¿ΦÑ⌐
¿ Γ.ñ. - Γ« óá¼ ¡Ñ »α¿ñÑΓß∩ íÑß»«¬«¿Γ∞ß∩ « Γ«¼, ¬á¬ φΓ« »«ó½¿∩ÑΓ
¡á ñαπú¿Ñ τáßΓ¿ óáΦÑ⌐ »α«úαá¼¼δ. ¥Γ¿¼ ¿ »«ñ¬π»áÑΓ »α«úαá¼¼¿α«óá-
¡¿Ñ, π»αáó½∩Ѽ«Ñ ß«íδΓ¿∩¼¿: «¡« «Γñѽ∩ÑΓ αáºαáí«Γ¬π »«½∞º«óá-
Γѽ∞߬«ú« ¿¡ΓÑαΣÑ⌐ßá «Γ ß«íßΓóÑ¡¡« αáí«Γδ »α«úαá¼¼δ, á φΓ« ¬á¬ óδ
»«¡¿¼áÑΓÑ, »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« «Γñѽ∞¡δÑ τáßΓ¿ óáΦÑ⌐ »α«úαá¼¼δ
αáí«ΓáεΓ ß«óÑαΦÑ¡¡« ¡Ñºáó¿ß¿¼« ñαπú «Γ ñαπúá.
Turbo Vision ñ½∩ æ++ = 48 =
Éáí«Γá ß «¬¡á¼¿
-----------------------------------------------------------------
Ĭ¡« ó Turbo Vision ∩ó½∩ÑΓß∩ «íΩÑ¬Γ«¼, á Ñú« ¿ß»«½∞º«óá¡¿Ñ
»αÑñ«ßΓáó½∩ÑΓ ó«º¼«ª¡«ßΓ∞ «íαáíáΓδóáΓ∞ í«½∞Φπε τáßΓ∞ ¬«¼á¡ñ »«½∞-
º«óáΓѽ∩, ¡Ñ ß«ºñáóá∩ ¡¿ Ññ¿¡«⌐ ßΓ᫬¿ »α«úαá¼¼δ. Ĭ¡« ó Turbo
Vision πªÑ "º¡áÑΓ" ºáαá¡ÑÑ, ¬á¬ ßÑí∩ «Γ¬αδΓ∞, ¿º¼Ñ¡¿Γ∞ αẼÑαδ,
»ÑαѼÑßΓ¿Γ∞ ¿ ºá¬αδΓ∞ ó «ΓóÑΓ ¡á ¬á¬¿Ñ-Γ« ó¡ÑΦ¡¿Ñ ß«íδΓ¿∩. éδ,
«ñ¡á¬«, ¡Ñ »¿ΦÑΓÑ »α∩¼« ó «í½áßΓ∞ «¬¡á Turbo Vision. Ĭ¡« ó Turbo
Vision ∩ó½∩ÑΓß∩ úαπ»»«⌐, ¬«Γ«αá∩ ó½áñÑÑΓ ¿ π»αáó½∩ÑΓ ñαπú¿¼¿ «íΩ-
ѬΓἿ, ¡« ¡Ñ «Γ«íαáªáÑΓ ¿σ ¡á φ¬αá¡Ñ. Ĭ¡« π»αáó½∩ÑΓ «Γ«íαáªáÑ-
¼δ¼¿ «íΩѬΓἿ, á ¿¼Ñ¡¡« ó ¡¿σ ºá¬½ετáεΓß∩ π¡¿¬á½∞¡δÑ Σπ¡¬µ¿«-
¡á½∞¡δÑ ó«º¼«ª¡«ßΓ¿ óáΦÑ⌐ »α«úαá¼¼δ. 櫺ñáóáѼδÑ óἿ «Γ«íαáªáÑ-
¼δÑ «íΩѬΓδ ß«σαá¡∩εΓ í«½∞Φπε ú¿í¬«ßΓ∞ ó «Γ¡«ΦÑ¡¿¿ Γ«ú«, úñÑ ¿
¬á¬¿¼ «íαẫ¼ «¡¿ »«∩ó½∩εΓß∩.
èᬿ¼ ªÑ «íαẫ¼ ¼«ª¡« «íΩÑñ¿¡¿Γ∞ ßΓá¡ñáαΓ¡δÑ ßαÑñßΓóá «αúá-
¡¿ºáµ¿¿ ¿ «íαáí«Γ¬¿ «¬«¡ ß Γ«⌐ "Σπ¡¬µ¿«¡á½∞¡«ßΓ∞ε", ¬«Γ«απε óδ
σ«Γ¿ΓÑ ó ¡¿σ »«¼ÑßΓ¿Γ∞? éδ ¡áτ὿ ß «αúá¡¿ºáµ¿¿ ßΓá¡ñáαΓ¡«ú« «¬-
¡á, ΓÑ»Ñα∞ óδ ¼«ªÑΓÑ ñ«íáó¿Γ∞ ¬ ¡Ñ¼π ªÑ½áѼδÑ ßó«⌐ßΓóá. êº ß½Ññπ-
εΘ¿σ »α¿¼Ñα«ó óδ πó¿ñ¿ΓÑ, ¡á߬«½∞¬« »α«ßΓ« φΓ« ßñѽáΓ∞, Ñß½¿
¿ß»«½∞º«óáΓ∞ ߬ѽÑΓ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ Turbo Vision.
é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ óδ»«½¡∩ÑΓß∩ ¿¡¿µ¿á½¿ºáµ¿∩
«¬¡á ¿ Ñú« ó¬½ετÑ¡¿Ñ ¬ αáí«τÑ⌐ «í½áßΓ¿. ìÑ ºáíπñ∞ΓÑ ñ«íáó¿Γ∞ ¡«-
óδÑ ¼ÑΓ«ñδ ¬ «íΩ∩ó½Ñ¡¿ε ¬½áßßá TMyApp. ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« óδ ß¡«-
óá «»αÑñѽ∩ÑΓÑ ¡«óδ⌐ ¬½áßß (TDemoWindow), ¡Ñ ñ«íáó½∩∩ ¡«óδσ ¼ÑΓ«-
ñ«ó ¬½áßßá ¬ ΓѼ, ¬«Γ«αδÑ πªÑ π¡áß½Ññ«óá¡δ «Γ ¬½áßßá TWindow, Ñú«
íẫó«ú« ¬½áßßá. èᬠ¿ αá¡∞ΦÑ, óδ φΓ« ñѽáÑΓÑ, τΓ«íδ «íÑß»Ñτ¿Γ∞
ßÑíÑ «ß¡«óπ ñ½∩ ñá½∞¡Ñ⌐ΦÑú« »«ßΓα«Ñ¡¿∩ ßó«Ñ⌐ »α«úαá¼¼δ. Å«ßΓѻѡ-
¡« óδ íπñÑΓÑ ñ«íáó½∩Γ∞ ó ¡Ñú« óßÑ ¡«óδÑ ¿ ¡«óδÑ ¼ÑΓ«ñδ.
static short winNumber = 0; // «»αÑñѽ¿¼ ¡«¼Ñα «¬¡á
void TMyApp::handleEvent(TEvent& event)
{
TApplication::handleEvent(event); // αáí«ΓáÑΓ ¬á¬ íẫóδ⌐
// ¼ÑΓ«ñ
if( event.what == evCommand )
{
switch( event.message.command )
{
case cmMyNewWin: //¡« αÑáú¿απÑΓ ¿ ¡á ñ«»«½¡¿Γѽ∞¡δÑ ¬«¼á¡ñδ
myNewWindow(); // ñÑ⌐ßΓó¿Ñ »« π¼«½τá¡¿ε ñ½∩ cmMyNewWin
break;
default:
return;
}
clearEvent( event ); // «τ¿ßΓ¿Γ∞ «τÑαÑñ∞ ß«íδΓ¿⌐
// »«ß½Ñ «íαáí«Γ¬¿
}
}
Turbo Vision ñ½∩ æ++ = 49 =
TDemoWindow::TDemoWindow(
const TRect& r, const char *aTitle, short aNumber):
TWindow( r, aTitle, aNumber),
TWindowInit( &TDemoWindow::initFrame
)
{
}
void TMyApp::myNewWindow()
{
TRect r( 0, 0, 26, 7 ); // πßΓá¡«ó¬á ¡áτá½∞¡«ú«
// αẼÑαá ¿ αáß»«½«ªÑ¡¿∩
r.move( random(53), random(16) ); // ß½πτá⌐¡«Ñ »ÑαѼÑΘÑ¡¿Ñ
// »« φ¬αá¡π
TDemoWindow *window = new TDemoWindow (
r, "Demo Window", ++winNumber);
deskToα->insert(window); // ó¬½ετ¿Γ∞ «¬¡« ó αáí«τπε «í½áßΓ∞
// ¿ ¿º«íαếΓ∞ Ñú«
}
Åα¿¼Ñτá¡¿Ñ: φΓ« »α¿¼Ñα ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ TVGUID04.CPP.
ä½∩ Γ«ú«, τΓ«íδ ¿ß»«½∞º«óáΓ∞ ñá¡¡«Ñ «¬¡« ó óáΦÑ⌐ »α«úαá¼¼Ñ,
"ßó∩ª¿ΓÑ" ¬«¼á¡ñπ cmMyNewWin ß »π¡¬Γ«¼ ¼Ñ¡ε, ßΓ᫬¿ ß«ßΓ«∩¡¿∩ ¿½¿
π»αáó½∩εΘÑ⌐ ¬½áó¿ΦÑ⌐, ¬á¬ óδ φΓ« ñѽ὿ αá¡∞ΦÑ. ÉѺπ½∞ΓáΓ«¼ φΓ«ú«
íπñÑΓ Γ«, τΓ« ¬«úñá »«½∞º«óáΓѽ∞ «íαáΓ¿Γß∩ ¬ cmMyNewWin, Turbo
Vision ó맮óÑΓ ¼ÑΓ«ñ TMyApp::handleEvent, ¬«Γ«αá∩, ó ßó«ε «τÑ-
αÑñ∞, «íαáΓ¿Γß∩ ¬ ¼ÑΓ«ñπ TMyApp::myNewWindow.
Å«ßΓα«Ñ¡¿Ñ «¬«¡
ä½∩ ¿¡¿µ¿á½¿ºáµ¿¿ «¬¡á ¡Ñ«íσ«ñ¿¼« ºáñáΓ∞ ¬«¡ßΓαπ¬Γ«απ
TWindow Γα¿ »áαá¼ÑΓαá: αẼÑα «¬¡á ¿ »«½«ªÑ¡¿Ñ ¡á φ¬αá¡Ñ, ºáú«½«-
ó«¬ ¿ ¡«¼Ñα «¬¡á.
ÅÑαóδ¼ »áαá¼ÑΓα«¼, «»αÑñѽ∩εΘ¿¼ αẼÑα ¿ »«½«ªÑ¡¿Ñ «¬¡á ∩ó-
½∩ÑΓß∩ TRect, ¬½áßß - »α∩¼«πú«½∞¡¿¬ ó ΓÑନ¡áσ Turbo Vision.
TRect «τÑ¡∞ »α«ßΓ«⌐ ¬½áßß. àú« ¬«¡ßΓαπ¬Γ«α ºáñáÑΓ Ñ¼π αẼÑα ¿
αáß»«½«ªÑ¡¿Ñ, «ß¡«óδóá∩ß∞ ¡á ¬««αñ¿¡áΓáσ Ñú« óÑασ¡Ñú« ½Ñó«ú« ¿
¡¿ª¡Ñú« »αáó«ú« πú½áσ (ß««ΓóÑΓßΓóπεΘ¿Ñ óδαáªÑ¡¿∩ ¼«úπΓ ºáñáóáΓ∞ß∩
½¿í« ó ó¿ñÑ τÑΓδαÑσ µÑ½δσ τ¿ßѽ, ½¿í« ¬á¬ ñóá φ¬ºÑ¼»½∩αá ¬½áßßá
TPoint). ê¼ÑÑΓß∩ α∩ñ Σπ¡¬µ¿⌐ ¬½áßßá ¿ ¡Ñ߬«½∞¬« »ÑαÑ«»αÑñѽѡ¡δσ
«»ÑαáΓ«α«ó ñ½∩ ¼á¡¿»π½¿α«óá¡¿∩ ¿ ßαáó¡Ñ¡¿∩ «íΩÑ¬Γ«ó ¬½áßßá TRect.
Å«½¡«Ñ ¿σ «»¿ßá¡¿Ñ óδ ß¼«ªÑΓÑ ¡á⌐Γ¿ ó ú½áóÑ 12.
Åα¿¼Ñτá¡¿Ñ: äÑΓá½∞¡á∩ ¿¡Σ«α¼áµ¿∩ « ¬½áßßÑ TRect ß«ñÑনΓß∩ ó ú½á-
óÑ 4, "ÄΓ«íαáªáѼδÑ «íΩѬΓδ".
é »α«úαá¼¼Ñ TVGUID04 »α∩¼«πú«½∞¡¿¬ r ß«ºñáÑΓß∩ ó ¡áτá½Ñ αá-
í«τÑ⌐ «í½áßΓ¿, á ºáΓѼ »ÑαѼÑΘáÑΓß∩ ó¡πΓα¿ ÑÑ ¡á ß½πτá⌐¡«Ñ
αáßßΓ«∩¡¿Ñ. é "¡«α¼á½∞¡δσ" »α«úαá¼¼áσ óδ «íδτ¡« ¡Ñ ¿ß»«½∞ºπÑΓÑ
Γá¬«Ñ ß½πτá⌐¡«Ñ »ÑαѼÑΘÑ¡¿Ñ, á ¡á¼ «¡« »«¡áñ«í¿½«ß∞, τΓ«íδ «Γ¬-
Turbo Vision ñ½∩ æ++ = 50 =
αδΓ∞ ¼¡«ªÑßΓó« «¬«¡ ó αạδσ ¼ÑßΓáσ φ¬αá¡á.
éΓ«αδ¼ »áαá¼ÑΓα«¼ ¬«¡ßΓαπ¬Γ«αá TWindow ∩ó½∩ÑΓß∩ ßΓ᫬á,
«»αÑñѽ∩εΘá∩ ºáú«½«ó«¬ «¬¡á.
ê, ¡á¬«¡Ñµ, »«ß½Ññ¡¿⌐ »áαá¼ÑΓα ¬«¡ßΓαπ¬Γ«αá ºáñáÑΓ ¡«¼Ñα
ß«ºñáóáѼ«ú« «¬¡á. àß½¿ φëà ¡«¼Ñα ¡áσ«ñ¿Γß∩ ¼Ñªñπ 1 ¿ 9, Γ« «¡
íπñÑΓ ¿º«íαáªáΓ∞ß∩ ó αá¼¬Ñ «¬¡á, ¿ »«½∞º«óáΓѽ∞ ß¼«ªÑΓ óδíαáΓ∞
»α«¡π¼Ñα«óá¡¡«Ñ Γᬿ¼ «íαẫ¼ «¬¡« ¡áªáΓ¿Ñ¼ ¬½áó¿Φ «Γ Alt-1 ñ«
Alt-9.
àß½¿ óá¼ ¡Ñ ΓαÑíπÑΓß∩ »α¿ßóá¿óáΓ∞ «¬¡π ¡«¼Ñα, »ÑαÑñá⌐ΓÑ
ó¼ÑßΓ« ¡Ñú« ¬«¡ßΓá¡Γπ wnNoNumber, «»αÑñѽѡ¡πε ó Turbo Vision.
è«¡ßΓαπ¬Γ«α TDemoWindow óδºδóáÑΓ ¬«¡ßΓαπ¬Γ«αδ TWindow ¿
TWindowInit. Å«ß½Ññ¡¿⌐ ¿¼ÑÑΓ áαúπ¼Ñ¡Γ &initFrame, ¬á¬ óδ ó¿ñѽ¿ ó
ß½πτáÑ ß TProgInit ¿ initStatusLine. îδ ¡Ñ ñ«½ª¡δ »ÑαÑ«»αÑñѽ∩Γ∞
¼ÑΓ«ñ TWindow::initFrame, Γ.¬. ¼δ σ«Γ¿¼ »«½πτ¿Γ∞ ßΓá¡ñáαΓ¡πε αá¼-
¬π. ¥Γ« í«½ÑÑ τѼ ñ«ßΓáΓ«τ¡« ñ½∩ í«½∞Φ¿¡ßΓóá »α«úαá¼¼, σ«Γ∩ óδ
¼«ªÑΓÑ »ÑαÑ«»αÑñѽ¿Γ∞ initFrame ñ½∩ ß«ºñá¡¿∩ «ß«íδσ φΣΣÑ¬Γ«ó.
öπ¡¬µ¿∩ insert
鬽ετÑ¡¿Ñ «¬¡á ó αáí«τπε «í½áßΓ∞ óδºδóáÑΓ Ñú« áóΓ«¼áΓ¿τÑ߬«Ñ
»«∩ó½Ñ¡¿Ñ ¡á φ¬αá¡Ñ. öπ¡¬µ¿∩ insert ¿ß»«½∞ºπÑΓß∩ ñ½∩ «íÑß»ÑτÑ¡¿∩
π»αáó½Ñ¡¿∩ «ñ¡«ú« «Γ«íαáªáѼ«ú« «íΩѬΓá ñαπú¿¼ «Γ«íαáªáÑ¼δ¼ «íΩ-
Ñ¬Γ«¼. ÉѺπ½∞ΓáΓ«¼ óδ»«½¡Ñ¡¿∩ óδαáªÑ¡¿∩
desktoα->insert(window);
∩ó½∩ÑΓß∩ ó¬½ετÑ¡¿Ñ window ó αáí«τπε «í½áßΓ∞. éδ ¼«ªÑΓÑ óßΓáó¿Γ∞
½εí«Ñ ¬«½¿τÑßΓó« «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó ó úαπ»»«ó«⌐ ¬½áßß »«ñ«í¡δ⌐
αáí«τÑ⌐ «í½áßΓ¿. âαπ»»á, ó ¬«Γ«απε óδ ó¬½ετ¿Γ∞ «Γ«íαáªáѼδ⌐ «íΩ-
ѬΓ, ¡áºδóáÑΓß∩ ó½áñѽ∞µÑ¼ «Γ«íαáªáѼ«ú« «íΩѬΓá, á ßá¼ óßΓáó½∩Ñ-
¼δ⌐ «Γ«íαáªáѼδ⌐ «íΩѬΓ, ¡áºδóáÑΓß∩ «Γ«íαáªáÑ¼δ¼ »«ñ«íΩÑ¬Γ«¼.
ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« «Γ«íαáªáѼδ⌐ »«ñ«íΩÑ¬Γ ó ßó«ε «τÑαÑñ∞ ¼«ªÑΓ
∩ó½∩Γ∞ß∩ úαπ»»«⌐ ¿ ¿¼ÑΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ «Γ«íαáªáѼδÑ »«ñ«íΩѬ-
Γδ. ìá»α¿¼Ñα, ¬«úñá óδ ó¬½ετáÑΓÑ «¬¡« ó αáí«τπε «í½áßΓ∞, «¬¡« ∩ó-
½∩ÑΓß∩ «Γ«íαáªáÑ¼δ¼ «íΩÑ¬Γ«¼, «ñ¡á¬« «¡« ßἫ ¼«ªÑΓ ¿¼ÑΓ∞ αἬπ,
ßΓ᫬¿ »α«¬απΓ¬¿ ¿ Γ.»., ¬«Γ«αδÑ ßἿ »« ßÑíÑ ∩ó½∩εΓß∩ «Γ«íαáªáÑ-
¼δ¼¿ »«ñ«íΩѬΓἿ.
Åα«µÑßß πßΓá¡«ó¬¿ ßó∩ºÑ⌐ ¼Ñªñπ «Γ«íαáªáÑ¼δ¼¿ «íΩѬΓἿ ß«º-
ñáÑΓ ñÑαÑó« «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó, ¡áºóá¡¡«Ñ Γᬠ»«Γ«¼π, τΓ« ¼¡«-
ªÑßΓó« ßó∩ºÑ⌐ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó ¿ »«ñ«íΩÑ¬Γ«ó «ΓóÑΓó½∩ÑΓß∩ «Γ
¬«α¡Ñó«ú« «Γ«íαáªáѼ«ú« «íΩѬΓá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, »«ñ«í¡« Γ«-
¼π, ¬á¬ óÑΓ¬¿ «Γσ«ñ∩Γ «Γ ßΓó«½á ñÑαÑóá.
Åα¿¼Ñτá¡¿Ñ: óßÑ φΓ¿ ßó∩º¿ ¼Ñªñπ «Γ«íαáªáÑ¼δ¼¿ «íΩѬΓἿ ¿º½«ªÑ¡δ
ó ú½áóÑ 4.
Turbo Vision ñ½∩ æ++ = 51 =
çá¬αδΓ¿Ñ «¬¡á
éδí«α ß »«¼«Θ∞ε "¼δΦ¿" ¬¡«»¬¿ ºá¬αδΓ¿∩ «¬¡á úÑ¡Ñα¿απÑΓ Γπ
ªÑ ¬«¼á¡ñπ cmClose, ¬«Γ«απε óδ "ßó∩ºá½¿" ß ¡áªáΓ¿Ñ¼ ¬½áó¿Φ¿
Alt-F3 ¿ ß««ΓóÑΓßΓóπεΘ¿¼ φ½Ñ¼Ñ¡Γ«¼ ßΓ᫬¿ ß«ßΓ«∩¡¿∩. Å« π¼«½τá-
¡¿ε, «Γ¬αδΓ¿Ñ «¬¡á (ß »«¼«Θ∞ε F4 ¿½¿ óδí«α«¼ ¬«¼á¡ñδ ¼Ñ¡ε
File│Oαen) áóΓ«¼áΓ¿τÑ߬¿ »αÑñ«ßΓáó½∩ÑΓ ó óáΦÑ αáß»«α∩ªÑ¡¿Ñ ¬«¼á¡-
ñπ cmClose ¿ «Γ«íαáªáѼδÑ «íΩѬΓδ, ¬«Γ«αδÑ ÑÑ óδºδóáεΓ (ΓᬠªÑ
¬á¬ ¿ ñαπú¿Ñ ¬«¼á¡ñδ, ßó∩ºá¡¡δÑ ß «¬¡á¼¿, Γá¬¿Ñ ¬á¬ cmZoom ¿
cmNext).
ä½∩ ºá¬αδΓ¿∩ «¬¡á óá¼ ¡Ñ ΓαÑíπÑΓß∩ ¡á»¿ßáΓ∞ ¡¿ ßΓα«τ¬¿.
Å«ß½Ñ Γ«ú«, ¬á¬ »«½∞º«óáΓѽ∞ á¬Γ¿ó¿º¿απÑΓ ¬¡«»¬π ºá¬αδΓ¿∩ ó αἬÑ
«¬¡á, ¿½¿ ¡áª¿¼áÑΓ ¬½áó¿Φπ Alt-F3, ¿½¿ óδí¿αáÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐
φ½Ñ¼Ñ¡Γ ßΓ᫬¿ ß«ßΓ«∩¡¿∩, Turbo Vision óδ»«½¡∩ÑΓ óßÑ «ßΓá½∞¡«Ñ
ßἫßΓ«∩Γѽ∞¡«. Å« π¼«½τá¡¿ε, «¬¡« αÑáú¿απÑΓ ¡á ¬«¼á¡ñπ cmClose
óδº«ó«¼ ñÑßΓαπ¬Γ«αá, ¬«Γ«αδ⌐ π¡¿τΓ«ªáÑΓ ñá¡¡δ⌐ «íΩÑ¬Γ ¿ Ñú« ßΓα«-
¬π ºáú«½«ó¬á. Å«¼¿¼« φΓ«ú«, ñÑßΓαπ¬Γ«α «¬¡á óδºδóáÑΓ ñÑßΓαπ¬Γ«αδ
óßÑσ ßó«¿σ «Γ«íαáªáѼδσ »«ñ«íΩÑ¬Γ«ó. àß½¿ ªÑ ó ßó«Ñ¼ ¬«¡ßΓαπ¬Γ«αÑ
«¬¡á óδ ºá»α«ß¿½¿ ñ«»«½¡¿Γѽ∞¡δÑ «íΩÑ¼δ »á¼∩Γ¿, Γ« óδ «í∩ºáΓѽ∞¡«
ñ«½ª¡δ Γᬠ¼«ñ¿Σ¿µ¿α«óáΓ∞ ß««ΓóÑΓßΓóπεΘ¿⌐ ñÑßΓαπ¬Γ«α, τΓ«íδ «¡
«ßó«í«ñ¿½ óδñѽ∩Ѽπε »á¼∩Γ∞.
Turbo Vision ñ½∩ æ++ = 52 =
"Å«óÑñÑ¡¿Ñ" «¬«¡
Å«ΓαáΓ∞ΓÑ ¡Ñ¼¡«ú« óαѼѡ¿, τΓ«íδ "»«¿úαáΓ∞" ß »α«úαá¼¼«⌐,
¬«Γ«απε óδ ¡á»¿ß὿. Ä¡á πªÑ αáß»«½áúáÑΓ í«½∞Φ¿¼¿ 󫺼«ª¡«ßΓ∩¼¿:
«¡á ¼«ªÑΓ «Γ¬αδóáΓ∞, ºá¬αδóáΓ∞, óδí¿αáΓ∞, »ÑαѼÑΘáΓ∞, ¿º¼Ñ¡∩Γ∞
αẼÑαδ ¿ "αáß»áσ¿óáΓ∞" ¼¡«ªÑßΓó« «¬«¡ ó óáΦÑ⌐ αáí«τÑ⌐ «í½áßΓ¿.
¥Γ« ß«óßѼ ¡Ñ»½«σ« ñ½∩ »α«úαá¼¼δ ¿º ¼Ñ¡ÑÑ τѼ 150 ßΓ᫬!
Å«ß½Ñ ¿¡¿µ¿á½¿ºáµ¿¿ «¬¡á, ¬½áßß TMyApp ó¬½ετáÑΓ Ñú« ó αáí«-
τπε «í½áßΓ∞. èᬠóδ »«¼¡¿ΓÑ, ¬½áßß TDeskToα (αáí«τá∩ «í½áßΓ∞) ∩ó-
½∩ÑΓß∩ úαπ»»«⌐, τΓ« «º¡áτáÑΓ τΓ« «¡ ó½áñÑÑΓ ¿ π»αáó½∩ÑΓ «Γ«íαáªá-
Ñ¼δ¼¿ »«ñ«íΩѬΓἿ, »«ñ«í¡δ¼¿ óáΦÑ¼π «¬¡π. àß½¿ óδ ߬«¼»¿½¿απÑΓÑ
»α«úαá¼¼π ¿ ºá»πßΓ¿ΓÑ ÑÑ ¡á óδ»«½¡Ñ¡¿Ñ, Γ« «í∩ºáΓѽ∞¡« ºá¼ÑΓ¿ΓÑ,
τΓ« óδ ¼«ªÑΓÑ ¿º¼Ñ¡∩Γ∞ αẼÑαδ, »ÑαѼÑΘáΓ∞ ¿ ºá¬αδóáΓ∞ ¡«ó«Ñ «¬-
¡«. äÑ⌐ßΓó¿∩ "¼δΦ¿", »αÑóαáΘáεΓß∩ ó »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß«íδΓ¿⌐,
»ÑαÑñáóáѼπε ¿º αáí«τÑ⌐ «í½áßΓ¿ ó ¡«ó«Ñ «¬¡«, ¬«Γ«α«Ñ Γ«τ¡« º¡á-
ÑΓ, τΓ« ß φΓ¿¼¿ ß«íδΓ¿∩¼¿ ñѽáΓ∞.
àß½¿ óδ íπñÑΓÑ ¼¡«ú«¬αáΓ¡« «íαáΘáΓ∞ß∩ ¬ ¬«¼á¡ñÑ cmNewWin, Γ«
ó αáí«τÑ⌐ «í½áßΓ¿ »«∩ó∩Γß∩ ¿ ñαπú¿Ñ «¬¡á, ¬áªñ«Ñ ¿º ¬«Γ«αδσ íπñÑΓ
¿¼ÑΓ∞ ßó«⌐ ¡«¼Ñα. ¡« Γá¬ªÑ ¿º¼Ñ¡∩Γ∞ αẼÑαδ φΓ¿σ «¬«¡, óδí¿-
αáΓ∞ ¿σ ¿ »«¼ÑΘáΓ∞ «ñ¡« ¡áñ ñαπú¿¼. ìá α¿ßπ¡¬Ñ 2.2 »«¬áºá¡á αáí«-
τá∩ «í½áßΓ∞ ß α∩ñ«¼ «Γ¬αδΓδσ «¬«¡.
┌───────────────────────────────────────────────────────────────┐
│ File Window │
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░┌── Demo Window 3────┐░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░│ ┌── Demo Window 7──┐░░░│
│░░░░░░░░░░░░░░░░░░░░░│ │ │░░░│
│░░░░░░░░░░░░░░░░░░░░░│ ┌── Demo Window 8──┐ │░░░│
│░░░░░░░░░░░░░░░░░░░░░│ │ │ │░░░│
│░░░░░░░░░░░░░░░░░░░░░└──│ │ │░░░│
│┌── Demo Window 1──┐░░ │ │───────────────┘░░░│
││ │░░ │ │ │░░░░░░░░░░░░░│
││ ┌── Demo Window 4──└──────────────────┘ │░░░░░░░░░░░░░│
││ │ │░░░░│ ┌── Demo Window 6──┐Window 2┐░│
││ │ │░░░░│ │ │ │░│
│└────│ │░░░░└──│ │ │░│
│░░░░░│ ╔═[■]═ Demo Window 9═[°]═╗ │ │░│
│░░░░░│ ║ ║ │ │░│
│░░░░░└──────────────────║ ║ │ │░│
│░░░░░░░░░░░░░░░░░░░░░░░░║ ║──┘────────┘░│
│░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░╚═══════════════════════─┘░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│ Alt-X Exit F4 New Alt-F3 Close │
└───────────────────────────────────────────────────────────────┘
É¿ßπ¡«¬ 2.2. Åα«úαá¼¼á TVGUID04 ß ¼¡«ªÑßΓó«¼ «Γ¬αδΓδσ «¬«¡.
ÄíΩÑ¬Γ TWindow ∩ó½∩ÑΓß∩ úαπ»»«⌐, ó ¬«Γ«α«⌐ »Ñαó«¡áτá½∞¡«
¿¼ÑÑΓß∩ «ñ¿¡ «Γ«íαáªáѼδ⌐ »«ñ«íΩÑ¬Γ - TFrame (αἬá). Å«½∞º«óá-
Turbo Vision ñ½∩ æ++ = 53 =
Γѽ∞ á¬Γ¿ó¿º¿απÑΓ ß »«¼«Θ∞ε ¼δΦ¿ "º¡á¬¿", αẼÑΘÑ¡¡δÑ ó αá¼¬Ñ «¬-
¡á, ß »«¼«Θ∞ε ¬«Γ«αδσ «¡ ¼«ªÑΓ »ÑαѼÑΘáΓ∞, ¿º¼Ñ¡∩Γ∞ αẼÑαδ ¿½¿
ºá¬αδΓ∞ φΓ« «¬¡«. é αá¼¬Ñ Γá¬ªÑ »«¼ÑΘáÑΓß∩ ºáú«½«ó«¬ «¬¡á, ¬«Γ«-
αδ⌐ «¡« »«½πτáÑΓ »α¿ ¿¡¿µ¿á½¿ºáµ¿¿, á ¬α«¼Ñ Γ«ú« ñá¡¡δ⌐ »«ñ«íΩѬΓ
(TFrame) «Γ«íαáªáÑΓ Σ«¡ «¬¡á Γᬿ¼ ªÑ «íαẫ¼, ¬á¬ TBackGround
ñѽáÑΓ φΓ« ñ½∩ αáí«τÑ⌐ «í½áßΓ¿. Åα¿τѼ óßÑ φΓ« (¬á¬ óδ ßἿ ó¿ñÑ-
½¿) óδ»«½¡∩ÑΓß∩ íѺ óáΦÑú« πτáßΓ¿∩.
çáú½∩¡Ñ¼ ó «¬¡«
àß½¿ íδ αÑτ∞ ºñÑß∞ Φ½á « Γαáñ¿µ¿«¡¡«¼ «¬¡Ñ, Γ« ß½ÑñπεΘ¿¼
φΓừ¼ í佫 íδ ºá¡ÑßÑ¡¿Ñ ó ¡Ñú« ¬á¬«⌐-¡¿íπñ∞ ¿¡Σ«α¼áµ¿¿. Äñ¡á¬«
TWindow - φΓ« ¡Ñ »πßΓá∩ úα¿Σѽ∞¡á∩ ñ«ß¬á ñ½∩ ºá»¿ß¿: φΓ« úαπ»»á
¬½áßßá TGrouα, ¿ ÑÑ »αÑñßΓáó½Ñ¡¿Ñ ¡á φ¬αá¡Ñ ¡Ñ óδσ«ñ¿Γ ºá »αÑñѽδ
αἬ¿ «Γ«íαáªáѼ«ú« «íΩѬΓá. ä½∩ Γ«ú«, τΓ«íδ »«¼ÑßΓ¿Γ∞ τΓ«-½¿í« ó
«¬¡«, óá¼ »«ΓαÑíπÑΓß∩ ßñѽáΓ∞ ÑΘÑ «ñ¿¡ ñ«»«½¡¿Γѽ∞¡δ⌐ Φáú, ¬«Γ«-
αδ⌐ »αÑñ«ßΓáó¿Γ óá¼ ñ«»«½¡¿Γѽ∞¡δÑ ó«º¼«ª¡«ßΓ¿.
ä½∩ Γ«ú«, τΓ«íδ »«½πτ¿Γ∞ ¿º«íαáªÑ¡¿Ñ ó «¬¡Ñ, óδ, ó¡áτá½Ñ,
ß«ºñáÑΓÑ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ (¬«Γ«αδ⌐ ß»«ß«íÑ¡ ßá¼ ßÑí∩ «Γ«íαá-
ªáΓ∞) ¿ ó¬½ετáÑΓÑ Ñú« ó ñá¡¡«Ñ «¬¡«. Æᬫ⌐ «Γ«íαáªáѼδ⌐ «íΩѬΓ
¡áºδóáÑΓß∩ ó¡πΓαÑ¡¡¿¼.
ÅÑαóδ⌐ ó¡πΓαÑ¡¡¿⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ »«½¡«ßΓ∞ε ºá»«½¡¿Γ «¬-
¡«, ¡« »«ºªÑ óδ ß¼«ªÑΓÑ ½Ñú¬« π¼Ñ¡∞Φ¿Γ∞ Ñú« αẼÑα, «ßó«í«ñ¿ó
¼ÑßΓ« ñ½∩ ñαπú¿σ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó. Ĭ¡« ¼«ªÑΓ ó¬½ετáΓ∞ ¼¡«ú«
ó¡πΓαÑ¡¡¿σ «íΩÑ¬Γ«ó ¿ ½εí«Ñ ¬«½¿τÑßΓó« ñαπú¿σ »«½Ñº¡δσ «Γ«íαáªáÑ-
¼δσ «íΩÑ¬Γ«ó - ßΓ᫬¿, ¿¼Ñ¡á, ¬¡«»¬¿ ¿½¿ ¬¡«»¬¿ ß Σ¿¬ßᵿÑ⌐. éδ
Γá¬ªÑ πíÑñ¿ΓÑß∞, ¬á¬ ½Ñú¬« »«¼ÑßΓ¿Γ∞ »«½«ßδ »α«¬απΓ¬¿ ¡á αἬπ
«¬¡á.
é¡πΓα¿ úαπ»»δ óδ ¼«ªÑΓÑ αáß»«½áúáΓ∞ «íΩѬΓδ ó "¼«ºá¿τ¡«¼",
"¬á߬áñ¡«¼" ¿½¿ "»ÑαѬαδóáεΘѼß∩" »«α∩ñ¬Ñ - ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«-
ú«, ¬á¬ óδ ß ¡¿¼¿ αáí«ΓáÑΓÑ. TDeskToα αáß»«½áúáÑΓ Σπ¡¬µ¿∩¼¿ tile
¿ cascade, ¬«Γ«αδÑ ¼«úπΓ ¼«ºá¿τ¡« ¿½¿ ¬á߬áñ¡« αáß»«½áúáΓ∞ «Γ«í-
αáªáѼδÑ »«ñ«íΩѬΓδ ó αáí«τÑ⌐ «í½áßΓ¿ »«ß½Ñ Γ«ú«, ¬á¬ φΓ¿ »«ñ«íΩ-
ѬΓδ í뫨 »α«¿¡¿µ¿á½¿º¿α«óá¡δ, «ñ¡á¬« ñá¡¡δÑ Σπ¡¬µ¿¿ ñ«ßΓπ»¡δ
Γ«½∞¬« ñ½∩ ßἫ⌐ αáí«τÑ⌐ «í½áßΓ¿.
Åα¿¼Ñα ß«ºñá¡¿∩ ó¡πΓαÑ¡¡Ñú« «Γ«íαáªáѼ«ú« «íΩѬΓá, »α¿ó«ñ¿-
¼δ⌐ ¡¿ªÑ, »αÑñßΓáó½∩ÑΓ ß«í«⌐ »α«ßΓ«⌐ ¬½áßß, »«α«ªñÑ¡¡δ⌐ ¿º TView.
ïεí«⌐ «íΩÑ¬Γ TView ¼«ªÑΓ ¿¼ÑΓ∞ αἬπ, ¬«Γ«αá∩ Σπ¡¬µ¿«¡¿απÑΓ ¬á¬
«íδτ¡á∩ - ßΓáΓ¿τÑ߬á∩ αá¼¬á «¬¡á. (çñÑß∞, »«ñ »«¡∩Γ¿Ñ¼ "ßΓáΓ¿-
τÑ߬¿⌐" ¿¼ÑÑΓß∩ ó ó¿ñπ óßÑ Γ«, τΓ« ¡Ñ αÑáú¿απÑΓ ¡á ó«ºñÑ⌐ßΓó¿Ñ
"¼δΦ¿". Æᬿ¼ «íαẫ¼, αἬ¿ «íΩÑ¬Γ«ó TView - φΓ« »α«ßΓ« ½¿¡¿¿,
«íαá¼½∩εΘ¿Ñ φΓ¿ «íΩѬΓδ.)
àß½¿ óáΦ ó¡πΓαÑ¡¡¿⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ TView »«½¡«ßΓ∞ε ºá-
»«½¡∩ÑΓ ß««ΓóÑΓßΓóπεΘÑÑ «¬¡«-ó½áñѽѵ, Γ« «ΓßπΓßΓó¿Ñ ¿½¿ ¡á½¿τ¿Ñ
π ¡Ñú« αἬ¿ ¡Ñ ¿¼ÑÑΓ º¡áτÑ¡¿∩ - αá¼¬á «¬¡á »«¬αδóáÑΓ αἬπ ó¡πΓ-
αÑ¡¡Ñú« «Γ«íαáªáѼ«ú« «íΩѬΓá. àß½¿ αẼÑαδ ó¡πΓαÑ¡¡Ñú« «Γ«íαáªá-
Ѽ«ú« «íΩѬΓá ¼Ñ¡∞ΦÑ αẼÑα«ó «¬¡á, Γ« Ñú« αἬá íπñÑΓ ó¿ñ¡á. ü«-
Turbo Vision ñ½∩ æ++ = 54 =
½ÑÑ Γ«ú«, ¡Ñ߬«½∞¬« ó¡πΓαÑ¡¡¿σ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó ó¡πΓα¿ «¬¡á
¼«ªÑΓ íδΓ∞ «τÑατÑ¡« «íΘÑ⌐ αἬ«⌐, τΓ« óδ ß¼«ªÑΓÑ πó¿ñÑΓ∞ ó »α¿ó«-
ñ¿¼«¼ ¡¿ªÑ »α¿¼ÑαÑ.
æ½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ óδó«ñ¿Γ "Hello, World!" ó ñÑ-
¼«¡ßΓαᵿ«¡¡«Ñ «¬¡«, ¬á¬ φΓ« »«¬áºá¡« ¡á α¿ßπ¡¬Ñ 2.3.
#include <stdlib.h> // ñ½∩ »α«Γ«Γ¿»á random()
class TInterior : αublic TView
{
αublic:
TInterior( const TRect& bounds ); // constructor
virtual void draw(); // »ÑαѬαδóáÑΓ TView::draw
};
TInterior::TInterior( const TRect& bounds ) : TView( bounds )
{
growMode = gfGrowHiX | gfGrowHiY; // αẼÑαδ íπñπΓ
// ß««ΓóÑΓßΓó«óáΓ∞ αẼÑαá¼ «¬¡á
oαtions = oαtions | ofFramed;
}
void TInterior::draw()
{
char *hstr = "Hello World!";
ushort color = getColor(0x0301);
TView::draw();
TDrawBuffer b;
b.moveStr( 0, hstr, color );
writeLine( 4, 2, 12, 1, b);
}
TDemoWindow::TDemoWindow(const TRect& bounds,const char *aTitle,
short aNumber) :
TWindow( bounds, aTitle, aNumber),
TWindowInit( &TDemoWindow::initFrame )
{
TRect r = getCliαRect(); // »«½πτ¿Γ∞ «í½áßΓ∞ »α«α¿ß«ó¬¿
r.grow(-1, -1); // τΓ«íδ "π¼ÑßΓ¿Γ∞" »«ñ«íΩÑ¬Γ ó αá¼¬π «¬¡á
insert( new TInterior(r) ); // óßΓáó¿Γ∞ »«ñ«íΩÑ¬Γ ó «¬¡«
}
Åα¿¼Ñτá¡¿Ñ: ¥Γ«Γ Σαáú¼Ñ¡Γ ß«ßΓáó½∩ÑΓ »α¿¼Ñα TVGUID05.CPP.
Turbo Vision ñ½∩ æ++ = 55 =
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, ¡á ¡Ñ«íσ«ñ¿¼«ßΓ∞ ñ«íáó¿Γ∞ ßΓ᫬π #include
<strstrea.h>, Ñß½¿ óδ ºáσ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ »«Γ«¬«óδÑ ßΓ᫬«óδÑ
«»Ñαᵿ¿.
┌───────────────────────────────────────────────────────────────┐
│ File Window │
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│╔═[■]Demo Window 1 [ ]═╗░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│║ Hello, World! ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│╚═════════════════════─┘░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│ Alt-X Exit F4 New Alt-F3 Close │
└───────────────────────────────────────────────────────────────┘
É¿ßπ¡«¬ 2.3. Åα«úαá¼¼á TVGUID05 ß «Γ¬αδΓδ¼ «¬¡«¼.
ùΓ« óδ ó¿ñ¿ΓÑ?
éßÑ «Γ«íαáªáѼδÑ «íΩѬΓδ Turbo Vision "º¡áεΓ" ß»«ß«íδ ßó«Ñú«
«Γ«íαáªÑ¡¿∩. ¥Γ« ºá½«ªÑ¡« ó Σπ¡¬µ¿ε draw. àß½¿ ªÑ óδ ß«ºñáÑΓÑ »«-
᫪ñÑ¡¡δ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ß ¡«óδ¼ »αÑñßΓáó½Ñ¡¿Ñ¼ ¡á φ¬αá¡Ñ,
Γ« óá¼ ¡πª¡« »ÑαÑ«»αÑñѽ¿Γ∞ Σπ¡¬µ¿ε draw ¿º íẫó«ú« ¬½áßßá ¿
«íπτ¿Γ∞ ¡«óδ⌐ ¬½áßß Γ«¼π, ¬á¬ «¡ ñ«½ªÑ¡ «Γ«íαáªáΓ∞ ßÑí∩ ¡á φ¬αá-
¡Ñ. è½áßß TInterior »«α«ªñÑ¡ ¿º ¬½áßßá TView, ¿, »«φΓ«¼π, «¡ ΓαÑ-
íπÑΓ αáºαáí«Γ¬¿ ¡«ó«⌐ Σπ¡¬µ¿¿ draw.
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« ¡«óá∩ Σπ¡¬µ¿∩ TInterior::draw ó »Ñα-
óπε «τÑαÑñ∞ óδºδóáÑΓ Σπ¡¬µ¿ε draw ßó«Ñú« íẫó«ú« ¬½áßßá TView,
¬«Γ«αδ⌐ ó ñá¡¡«¼ ß½πτáÑ »α«ßΓ« «τ¿ΘáÑΓ »α∩¼«πú«½∞¡πε «í½áßΓ∞ φ¬-
αá¡á, ºá¡¿¼áѼπε «¬¡«¼. Äíδτ¡«, óá¼ ¡Ñ ß½ÑñπÑΓ φΓ«ú« ñѽáΓ∞:
Σπ¡¬µ¿∩ draw óáΦÑú« ó¡πΓαÑ¡¡Ñú« «Γ«íαáªáѼ«ú« «íΩѬΓá ñ«½ª¡á »«-
ºáí«Γ¿Γ∞ß∩ « óßÑ⌐ Ñú« «í½áßΓ¿ ¡á φ¬αá¡Ñ, ñѽá∩ ó맮ó TView::draw
¿º½¿Φ¡¿¼.
ü«½ÑÑ Γ«ú«, Ñß½¿ óá¼ ñÑ⌐ßΓó¿Γѽ∞¡« ΓαÑíπÑΓß∩ »«¼ÑßΓ¿Γ∞
τΓ«-½¿í« "ó¡πΓα∞" óáΦÑú« ó¡πΓαÑ¡¡Ñú« «íΩѬΓá, Γ« óδ ó««íΘÑ ¡Ñ ºá-
σ«Γ¿ΓÑ óδºδóáΓ∞ ¡áß½ÑñπѼπε Σπ¡¬µ¿ε draw, Γ.¬. «íαáΘÑ¡¿Ñ ¬
TView::draw ¼«ªÑΓ óδºóáΓ∞ ¼Ñαµá¡¿Ñ ¿º-ºá Γ«ú«, τΓ« τáßΓ¿ ó¡πΓαÑ¡-
¡Ñú« «Γ«íαáªáѼ«ú« «íΩѬΓá α¿ßπεΓß∩ ¡Ñ«ñ¡«¬αáΓ¡«.
é ¬áτÑßΓóÑ π»α᪡ѡ¿∩ óδ ¼«ªÑΓÑ »«»δΓáΓ∞ß∩ »ÑαѬ«¼»¿½¿α«óáΓ∞
Σá⌐½ TVGUID05.CPP, ºá¬«¼¼Ñ¡Γ¿α«óáó ó맮ó TView::draw. çáΓѼ »ÑαÑ-
Turbo Vision ñ½∩ æ++ = 56 =
¼ÑßΓ¿ΓÑ «¬¡« ¿ ¿º¼Ñ¡¿ΓÑ Ñú« αẼÑαδ. ¥Γ« ∩ß¡« »«¬áªÑΓ, »«τѼπ
«Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ñ«½ªÑ¡ íδΓ∞ ó «ΓóÑΓÑ ºá óßε »«¬αδóáѼπε ¿¼
«í½áßΓ∞!
Turbo Vision óδ»«½¡∩ÑΓ ó맮ó Σπ¡¬µ¿¿ «Γ«íαáªáѼ«ú« «íΩѬΓá
draw óßÑúñá, ¬«úñá »«½∞º«óáΓѽ∞ «Γ¬αδóáÑΓ, ºá¬αδóáÑΓ, »ÑαÑ-
¼ÑΘáÑΓ ¿½¿ ¿º¼Ñ¡∩ÑΓ αẼÑαδ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó. àß½¿ ªÑ
óá¼ »«ΓαÑíπÑΓß∩, τΓ«íδ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿º¼Ñ¡¿½ ßó«Ñ
¿º«íαáªÑ¡¿Ñ, ó맮ó¿ΓÑ Σπ¡¬µ¿ε drawView ó¼ÑßΓ« Σπ¡¬µ¿¿ draw.
öπ¡¬µ¿∩ drawView α¿ßπÑΓ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ Γ«½∞¬« ó Γ«¼
ß½πτáÑ, Ñß½¿ «¡ »«ñóÑαúáÑΓß∩ ¬á¬«¼π-½¿í« ó«ºñÑ⌐ßΓó¿ε. ¥Γ«
«τÑ¡∞ ó᪡δ⌐ ¼«¼Ñ¡Γ: óδ »ÑαÑ«»αÑñѽ∩ÑΓÑ Σπ¡¬µ¿ε draw, ¡« ¡¿-
¬«úñá ¡Ñ óδºδóáÑΓÑ ÑÑ ¡á»α∩¼πε; óδ óδºδóáÑΓÑ Σπ¡¬µ¿ε
drawView, ¡« ¡¿¬«úñá ÑÑ ¡Ñ »ÑαÑ«»αÑñѽ∩ÑΓÑ!
èᬠ½πτΦÑ óδó«ñ¿Γ∞ ¡á φ¬αá¡
ò«Γ∩ óδ ¼«ªÑΓÑ ºáßΓáó¿Γ∞ Σπ¡¬µ¿¿ αrintf, αuts ¿ ßΓá¡ñáαΓ¡δÑ
ßαÑñßΓóá »«Γ«¬«ó«ú« óδó«ñá ∩ºδ¬á C++ αáí«ΓáΓ∞ ó Turbo Vision, «ñ-
¡á¬« φΓ« ¡Ñ»αáó¿½∞¡δ⌐ »πΓ∞. é«-»Ñαóδσ, Ñß½¿ óδ »α«ßΓ« τΓ«-½¿í«
óδó«ñ¿ΓÑ, Γ« ¡Ñ ¼«ªÑΓÑ »αÑñ«ΓóαáΓ¿Γ∞ ßó«¿ «¬¡á ¿½¿ ñαπú¿Ñ «Γ«íαá-
ªáѼδÑ «íΩѬΓδ «Γ ¿σ "ºáΓ¿αá¡¿∩" φΓ¿¼ óδó«ñ«¼. é«-óΓ«αδσ, óá¼
ΓαÑíπÑΓß∩ ñѽáΓ∞ ºá»¿ß∞ ó ½«¬á½∞¡δσ ¬««αñ¿¡áΓáσ ΓѬπΘÑú« «Γ«íαá-
ªáѼ«ú« «íΩѬΓá ¿ «ΓßѬáΓ∞ ÑÑ »« úαá¡¿µÑ «íΩѬΓá. é-ΓαÑΓ∞¿σ,
óßΓáÑΓ ó«»α«ß « µóÑΓÑ ñ½∩ ºá»¿ß¿. Å«¼¿¼« óßÑú« »α«τÑú«, ¬½áßß
TView ß«ñÑαª¿Γ ¡Ñ߬«½∞¬« ߻ѵ¿á½∞¡δσ ßαÑñßΓó ñ½∩ Σ«α¼¿α«óá¡¿∩
¿º«íαáªÑ¡¿⌐ Γᬿσ, ¬á¬ writeLine, ¬«Γ«αá∩ ¿ß»«½∞º«óá½áß∞ ó
»α«úαá¼¼Ñ TVGUDE05. Åα¿ φΓ«¼ óδó«ñ¿Γ∞ ¼«ª¡« ½¿í« ß »«¼«Θ∞ε «íΩѬ-
Γá TDrawBuffer, ½¿í« ¡Ñ»«ßαÑñßΓóÑ¡¡« »«½∞ºπ∩ß∞ ß¿¼ó«½∞¡δ¼¿ áαúπ-
¼Ñ¡ΓἿ. üπΣÑਧ«óá¡¡δ⌐ óδó«ñ ß »«¼«Θ∞ε TDrawBuffer »«∩ß¡∩ÑΓß∩ ó
»α«úαá¼¼Ñ TVGUDE06.
Turbo Vision ñ½∩ æ++ = 57 =
îÑΓ«ñ TView::writeStr ß»«ß«íÑ¡ ¡Ñ Γ«½∞¬« óδó«ñ¿Γ∞ ¿¡Σ«α¼áµ¿ε
ó ½«¬á½∞¡δσ ¬««αñ¿¡áΓáσ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó ¿ «úαá¡¿τ¿óáΓ∞ φΓ«Γ
óδó«ñ ß««ΓóÑΓßΓóπεΘ¿¼¿ úαá¡¿µá¼¿, ¡« ¿ ¿ß»«½∞º«óáΓ∞ µóÑΓ«óπε »á-
½¿Γαπ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó. é ¬áτÑßΓóÑ ßó«¿σ »áαá¼ÑΓα«ó φΓ«¼ ¼Ñ-
Γ«ñ »α¿¡¿¼áÑΓ ¬««αñ¿¡áΓδ x ¿ y, ßΓ᫬π, »αÑñ¡áº¡áτÑ¡¡πε ñ½∩ óδó«-
ñá, ¿ ¿¡ñÑ¬ß µóÑΓá ó »á½¿ΓαÑ.
void writeStr( short x, short y,const char *str, uchar color);
îÑΓ«ñ TView::writeChar »«ñ«íÑ¡ ¼ÑΓ«ñπ writeStr ¿ «»αÑñѽѡá
ß½ÑñπεΘ¿¼ «íαẫ¼:
void writeChar(short x,short y,char ch,uchar color,short count);
èᬠ¿ ¼ÑΓ«ñ writeStr, ¼ÑΓ«ñ writeChar αáß»«½áúáÑΓ óδσ«ñ¡πε
¿¡Σ«α¼áµ¿ε ó ¬««αñ¿¡áΓáσ x ¿ y ó¡πΓα¿ «Γ«íαáªáѼ«ú« «íΩѬΓá, ¡«
óδó«ñ¿Γ »« φΓ¿¼ ¬««αñ¿¡áΓá¼ count ¬«»¿⌐ ß¿¼ó«½á ch. Äíá ¼ÑΓ«ñá
óδó«ñ∩Γ ó µóÑΓÑ, π¬áºá¡¡«¼ ¿¡ñѬ߫¼ color ó »á½¿ΓαÑ ñá¡¡«ú« «Γ«í-
αáªáѼ«ú« «íΩѬΓá.
éßÑ ¼ÑΓ«ñδ writeXXX ñ«½ª¡δ óδºδóáΓ∞ß∩ Γ«½∞¬« ¿º ¼ÑΓ«ñ«ó
«Γ«íαáªáѼδσ «íΩÑ¬Γ«ó. ¥Γ« Ññ¿¡ßΓóÑ¡¡«Ñ ¼ÑßΓ«, ó ¬«Γ«α«¼ óá¼ ¼«-
ªÑΓ »«ΓαÑí«óáΓ∞ß∩ óδóÑßΓ¿ τΓ«-½¿í« ó Turbo Vision.
Turbo Vision ñ½∩ æ++ = 58 =
Åα«ßΓá∩ »α«úαá¼¼á ñ½∩ »α«ß¼«Γαá Σá⌐½«ó
é ñá¡¡«¼ αáºñÑ½Ñ óδ πº¡áÑΓÑ « ¡«óδσ Σπ¡¬µ¿«¡á½∞¡δσ 󫺼«ª-
¡«ßΓ∩σ óáΦÑú« «¬¡á ¿ »«»α«íπÑΓÑ »«¼ÑßΓ¿Γ∞ τΓ«-½¿í« αÑá½∞¡«Ñ ó Ñú«
ó¡πΓαÑ¡¡¿⌐ «Γ«íαáªáѼδ⌐ «íΩѬΓ. éδ Γá¬ªÑ ñ«íáó¿ΓÑ Σπ¡¬µ¿¿, ¬«Γ«-
αδÑ τ¿ΓáεΓ ΓѬßΓ«óδ⌐ Σá⌐½ ß ñ¿ß¬á ¿ «Γ«íαáªáεΓ Ñú« ó« ó¡πΓαÑ¡¡Ñ¼
«Γ«íαáªáѼ«¼ «íΩѬΓÑ.
é¡¿¼á¡¿Ñ! ¥Γá »α«úαá¼¼á "ºáß«α∩ÑΓ" ¡á φ¬αá¡Ñ (»«¬áºδóáÑΓ ½¿Φ¡¿Ñ
ß¿¼ó«½δ). ìÑ íÑß»«¬«⌐ΓÑß∞, φΓ« ßñѽᡫ ߻ѵ¿á½∞¡«.
const char *fileToRead = "tvguid06.cpp";
const int maxLineLength = maxViewWidth+1;
const int maxLines = 100;
char *lines[maxLines];
int lineCount = 0;
void readFile( const char *fileName )
{
....
// »α«τ¿ΓáΓ∞ Σá⌐½ fileName ó ¼áßß¿ó ßΓ᫬ lines
...
}
void TInterior::draw()
{
for( int i = 0; i < size.y; i++ )
writeStr( 0, i, lines[i], 1 );
}
int main()
{
readFile( fileToRead );
TMyApp myApp;
myApp.run();
deleteFile(); // πñ὿Γ∞ ¼áßß¿ó ßΓ᫬
return 0;
}
Åα¿¼Ñτá¡¿Ñ: φëà »α¿¼Ñα ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ TVGUID06.CPP.
ùΓÑ¡¿Ñ ΓѬßΓ«ó«ú« Σá⌐½á
éáΦÑ⌐ »α«úαá¼¼Ñ ¡Ñ«íσ«ñ¿¼« óδºóáΓ∞ readFile ñ½∩ ºáúαπº¬¿
ΓѬßΓ«ó«ú« Σá⌐½á ó ¼áßß¿ó lines.
üπΣÑα¿ºáµ¿∩ ¿º«íαáªÑ¡¿∩
éδ ¼«ªÑΓÑ ºá¼ÑΓ¿Γ∞, τΓ« »α¿ óδ»«½¡Ñ¡¿¿ ñá¡¡«⌐ »α«úαá¼¼δ ó
ΓÑσ ¼ÑßΓáσ φ¬αá¡á, úñÑ ñ«½ª¡δ íδΓ∞ »πßΓδÑ ßΓ᫬¿, ¿º«íαáªáεΓß∩
"¡Ñ¡πª¡δÑ" ß¿¼ó«½δ. ¥Γ« »α«¿ßσ«ñ¿Γ óß½ÑñßΓó¿Ñ ¡Ñß«óÑαΦÑ¡ßΓóá
Turbo Vision ñ½∩ æ++ = 59 =
Σπ¡¬µ¿¿ draw. ìáαπΦáÑΓß∩ »α¿¡µ¿», ó ß««ΓóÑΓßΓó¿¿ ß ¬«Γ«αδ¼ ß½Ññπ-
ÑΓ, τΓ« Σπ¡¬µ¿∩ draw ñ«½ª¡á ñÑ⌐ßΓó«óáΓ∞ ó« óßÑ⌐ «í½áßΓ¿, ºá ¬«Γ«-
απε "«ΓóÑτáÑΓ" «Γ«íαáªáѼδ⌐ «íΩѬΓ.
èα«¼Ñ Γ«ú«, ΓѬßΓ«óδ⌐ ¼áßß¿ó lines óδó«ñ¿Γß∩ ó Σ«α¼Ñ, ¬«Γ«-
αá∩ ¡Ñ ß««ΓóÑΓßΓóπÑΓ Γ«¼π, τΓ« ¼δ σ«Γѽ¿ íδ ¿¼ÑΓ∞ ñ½∩ ñá¡¡«ú« ó¿-
ñ¿¼«ú« «íΩѬΓá. ÆѬßΓ «íδτ¡« ß«ßΓ«¿Γ ¿º ßΓ᫬ »ÑαѼѡ¡«⌐ ñ½¿¡δ,
¼¡«ú¿Ñ ¿º ¬«Γ«αδσ ¿¼ÑεΓ ¡π½Ñóπε ñ½¿¡π, ¿, óß½ÑñßΓó¿Ñ Γ«ú«, τΓ«
Σπ¡¬µ¿∩ draw ñ«½ª¡á «σóáΓδóáΓ∞ óßε «í½áßΓ∞ ó¡πΓαÑ¡¡Ñú« «Γ«íαáªáÑ-
¼«ú« «íΩѬΓá, ΓѬßΓ«óδÑ ßΓ᫬¿ ¡Ñ«íσ«ñ¿¼« ñ«»«½¡∩Γ∞ ¡á óßε Φ¿α¿¡π
φΓ«ú« «íΩѬΓá.
üπΣÑα α¿ß«óá¡¿∩ draw
ä½∩ αÑΦÑ¡¿∩ ºáñáτ, «»¿ßá¡¡δσ óδΦÑ, ß«ºñáñ¿¼ ¡«óπε Σπ¡¬µ¿ε
draw, ¬«Γ«αá∩ »ÑαÑñ ºá»¿ß∞ε ßΓ᫬¿ ó «¬¡« »«¼ÑΘáÑΓ ÑÑ ó ߻ѵ¿á½∞-
¡δ⌐ íπΣÑα draw. è½áßß TDrawBuffer »αÑñ½áúáÑΓ αạ««íαạδÑ ¼ÑΓ«ñδ
moveXXX ¿ putXXX, «íÑß»Ñτ¿óáεΘ¿Ñ αáí«Γπ ß φΓ¿¼ íπΣÑα«¼. TView ß«-
ñÑαª¿Γ ß««ΓóÑΓßΓóπεΘ¿Ñ ¼ÑΓ«ñδ writeXXX ñ½∩ «Γ«íαáªÑ¡¿∩ ß«ñÑন¼«-
ú« φΓ«ú« íπΣÑαá ¡á φ¬αá¡Ñ.
ÄíΩѬΓδ ¬½áßßá TDrawBuffer σαá¡∩Γ τÑαÑñπεΘ¿Ñß∩ íá⌐Γδ áΓα¿íπ-
Γ«ó ¿ ß¿¼ó«½«ó, ñ½∩ óδó«ñá ¬«Γ«αδσ ¡á φ¬αá¡ ¼«ª¡« ó«ß»«½∞º«óáΓ∞ß∩
¼ÑΓ«ñ«¼ TView:writeBuf, «»αÑñѽѡ¡δ¼ ß½ÑñπεΘ¿¼ «íαẫ¼ ó Σá⌐½Ñ
VIEWS.H:
void writeBuf( short x, short y, short h, const void far *b);
void writeBuf( short x, short y, short h, const TDrawBuffer& b);
¥Γ¿ ñóá ¼ÑΓ«ñá óδó«ñ∩Γ íπΣÑα, π¬áºá¡¡δ⌐ »áαá¼ÑΓα«¼ b ¡á φ¬-
αá¡, ¡áτ¿¡á∩ ß ¬««αñ¿¡áΓ (x,y), ¿ ºá»«½¡∩∩ ß««ΓóÑΓßΓóπεΘπε «í-
½áßΓ∞ φ¬αá¡á Φ¿α¿¡«⌐ w ¿ óδß«Γ«⌐ h. Åα¿ φΓ«¼ »Ñαóδ⌐ óáα¿á¡Γ ñá¡-
¡«ú« ¼ÑΓ«ñá ¿ß»«½∞ºπÑΓ ß¿¼ó«½∞¡«-áΓα¿íπΓ¡δ⌐ ¼áßß¿ó ß½«ó (ß¿¼ó«½ ó
¼½áñΦѼ íá⌐ΓÑ, áΓα¿íπΓ ó ßΓáαΦѼ), á óΓ«α«⌐ - «»Ñα¿απÑΓ ß φ¬ºÑ¼»-
½∩α«¼ ¬½áßßá TDrawBuffer. ÄΓ¼ÑΓ¿¼, τΓ« óδºδóáΓ∞ ¼ÑΓ«ñ writeBuf
¼«ª¡« Γ«½∞¬« ¿º Σπ¡¬µ¿⌐ draw.
ÆÑ»Ñα∞ ¼ÑΓ«ñ TInterior::draw óδú½∩ñ¿Γ ß½ÑñπεΘ¿¼ «íαẫ¼:
void TInterior::draw()
{
ushort color = getColor(0x0301);
for( int i = 0; i < size.y; i++ )
{
TDrawBuffer b;
b.moveChar( 0, ' ', color, size.x );
// ºá»«½¡¿Γ∞ íπΣÑα line »α«íѽἿ
if( lines[i] )
{
char s[maxLineLength];
strncαy( s, lines[i], size.x );
Turbo Vision ñ½∩ æ++ = 60 =
s[size.x] = EOS;
b.moveStr( 0, s, color );
}
writeLine( 0, i, size.x, 1, b);
}
}
Åα¿¼Ñτá¡¿Ñ: ñá¡¡δ⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ σαá¡¿Γß∩ ó Σá⌐½Ñ
TVGUID07.CPP.
ìá α¿ßπ¡¬Ñ 2.4 »«¬áºá¡á »α«úαá¼¼á TVGUID07 ß ¡Ñ߬«½∞¬¿¼¿ «Γ-
¬αδΓ묨 «¬¡á¼¿.
┌───────────────────────────────────────────────────────────────┐
│ File Window │
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░┌─── Demo Window 3 ───────┐░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░│/********************* │░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░│* │░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░│* Turbo Vision 1.0 │░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░│* TVGUDE07 Demo αrogram │░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░│ │░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░└─────────────────────────┘░░░░░░░░░░░░░░░░░░░░░░░░░│
│┌─── Demo Window 3 ───────┐░░╔═[■]Demo Window 5 [°]═══╗░░░░░░░░│
││/********************* │░░║/********************* ║░░░░░░░░│
││* │░░║* ║░░░░░░░░│
││* Turbo Vision 1.0 │░░║* Turbo Vision 1.0 ║4 ────┐░│
││* TVGUDE07 Demo αrogram │░░║* TVGUDE07 Demo αrogram║******│┐│
││ │░░║ ║ │││
│└─────────────────────────┘░░╚═══════════════════════─┘ 1.0 │││
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│TVGUDE07 Demo αrogram│ ogram │││
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ │ │││
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░└─────────────────────┘───────┘││
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░└──────────────────┘│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│ Alt-X Exit F4 New Alt-F3 Close │
└───────────────────────────────────────────────────────────────┘
É¿ßπ¡«¬ 2.4. Åα«ß¼«Γα ß«ñÑন¼«ú« Σá⌐½á ó ¡Ñ߬«½∞¬¿σ «¬¡áσ.
öπ¡¬µ¿∩ draw ß¡áτá½á óδºδóáÑΓ ¼ÑΓ«ñ TDrawBuf::moveChar, ß
»«¼«Θ∞ ¬«Γ«α«⌐ size.x »α«íѽ«ó (τΓ« ß««ΓóÑΓßΓóπÑΓ Φ¿α¿¡Ñ óáΦÑú«
ó¡πΓαÑ¡¡Ñú« «Γ«íαáªáѼ«ú« «íΩѬΓá) ¡πª¡«ú« µóÑΓá ºá¡«ß¿Γß∩ ó íπ-
ΣÑα b, ¬«Γ«αδ⌐ »αÑñßΓáó½∩ÑΓ ß«í«⌐ «íΩÑ¬Γ ¬½áßßá TDrawBuffer. (ÄΓ-
¡δ¡Ñ, ¬áªñá∩ ºá»¿ßδóáѼá∩ ó ñá¡¡δ⌐ íπΣÑα ßΓ᫬á íπñÑΓ ñ«»«½¡Ñ¡á
»α«íѽἿ ñ« Φ¿α¿¡δ ó¡πΓαÑ¡¡Ñú« «Γ«íαáªáѼ«ú« «íΩѬΓá.) Å«ß½Ñ
φΓ«ú« ¿ß»«½∞ºπ∩ ¼ÑΓ«ñ b.moveStr, ¼ÑΓ«ñ draw ¬«»¿απÑΓ ßΓ᫬π
ΓѬßΓá ó íπΣÑα b ¿ ½¿Φ∞ ºáΓѼ óδó«ñ¿Γ ÑÑ ¡á φ¬αá¡ ß »«¼«Θ∞ε ¼ÑΓ«-
ñá writeLine.
çá¡ÑßÑ¡¿Ñ ΓѬßΓá ó íπΣÑα
Turbo Vision ñ½∩ æ++ = 61 =
è½áßß TDrawBuffer ¿¼ÑÑΓ τÑΓδαÑ ¼ÑΓ«ñá, ¿ß»«½∞ºπѼδÑ ñ½∩ ºá-
¡ÑßÑ¡¿∩ ΓѬßΓá ó «íΩѬΓδ φΓ«ú« ¬½áßßá: moveStr, moveChar,
moveCStr ¿ moveBuf. ¥Γ¿ ¼ÑΓ«ñδ ºá¡«ß∩Γ (ß««ΓóÑΓßΓóÑ¡¡«) ß¿¼ó«½δ,
ßΓ᫬¿ π»αáó½Ñ¡¿∩ (ßΓ᫬¿ ß ß¿¼ó«½á¼¿ Γ¿½∞ñá (~) ñ½∩ »π¡¬Γ«ó ¼Ñ¡ε
¿ ßΓ᫬¿ ß«ßΓ«∩¡¿∩) ¿ ñαπú¿Ñ φ½Ñ¼Ñ¡Γδ ó π¬áºá¡¡δ⌐ íπΣÑα.
Å«ñα«í¡ÑÑ «í φΓ¿σ ¼ÑΓ«ñáσ ß¼. ó ú½áóÑ 13.
çỿß∞ ß«ñÑন¼«ú« íπΣÑαá
è½áßß TView ¿¼ÑÑΓ »∩Γ∞ ¼ÑΓ«ñ«ó, «íÑß»Ñτ¿óáεΘ¿σ óδó«ñ ¬«¡¬-
αÑΓ¡δσ ßΓ᫬ ¿½¿ ß«ñÑন¼«ú« ºáñá¡¡«ú« íπΣÑαá ó «Γ«íαáªáѼδ⌐ «íΩ-
ѬΓ. äóá ¿º ¡¿σ - writeBuf ¿ writeLine - ΓαÑíπεΓ »áαá¼ÑΓαá Γ¿»á
TDrawBuffer («ßΓá½∞¡δÑ Γα¿ - φΓ« writeChar, writeStr ¿
writeCStr). éßÑ »∩Γ∞ ¼ÑΓ«ñ«ó ¡ÑíπΣÑਧ¿α«óá¡δ, ¿ ¿ß»«½∞ºπεΓß∩
Γ«½∞¬« ó ¼ÑΓ«ñáσ draw. éδ πªÑ º¡á¬«¼δ ß ¼ÑΓ«ñἿ writeBuf,
writeChar, ¿ writeStr. ì¿ªÑ »αÑñßΓáó½Ñ¡δ »α«Γ«Γ¿»δ ¼ÑΓ«ñ«ó
writeLine ¿ writeCStr:
void writeLine(short x,short y,short w,short h,
const void far *b);
void writeLine(short x,short y,short w,short h,
const TDrawBuffer& b);
void writeCStr(short x,short y,char far *str, uchar color);
é ¼ÑΓ«ñÑ TInterior::draw ¼ÑΓ«ñ writeLine óδó«ñ¿Γ ß«ñÑন¼«Ñ
«íΩѬΓá TDrawBuffer ó «ñ¡π ßΓ᫬π. àß½¿ ªÑ τÑΓóÑαΓδ⌐ »áαá¼ÑΓα
φΓ«ú« ¼ÑΓ«ñá h (óδß«Γá) í«½∞ΦÑ 1, Γ« «¡á óδ»«½¡∩ÑΓ óδó«ñ ß«ñÑন-
¼«ú« íπΣÑαá ¡á »«ß½ÑñπεΘ¿σ ßΓ᫬áσ. Æᬿ¼ «íαẫ¼, Ñß½¿ ó íπΣÑαÑ
buf σαá¡¿Γß∩ Σαáºá "Hello, World!", Γ« ¼ÑΓ«ñ writeLine (0, 0, 13,
4, buf) óδó«ñ¿Γ Ñú« ß«ñÑন¼«Ñ ß½ÑñπεΘ¿¼ «íαẫ¼:
Hello, World!
Hello, World!
Hello, World!
Hello, World!
äαπú«⌐ ¼ÑΓ«ñ writeBuf(x, y, w, h, buf) Σ«α¼¿απÑΓ ßó«⌐ óδó«ñ
¡á φ¬αá¡Ñ ºá»¿ß¿ ó ó¿ñÑ »α∩¼«πú«½∞¡¿¬á. Åáαá¼ÑΓαδ w ¿ h φΓ«ú« ¼Ñ-
Γ«ñá ºáñáεΓ Φ¿α¿¡π ¿ óδß«Γπ íπΣÑαá. Æᬿ¼ «íαẫ¼, Ñß½¿ ó íπΣÑαÑ
buf σαá¡¿Γß∩ ßΓ᫬á "ABCDEFGHIJKLMNOP", Γ« ¼ÑΓ«ñ writeBuf(0, 0,
4, 4, buf) «Γ«íαáº¿Γ ÑÑ ß½ÑñπεΘ¿¼ «íαẫ¼:
ABCD
EFGH
IJKL
MNOP
é «Γ½¿τ¿Ñ «Γ ¼ÑΓ«ñ«ó writeStr, writeCStr ¿ writeChar, ñ½∩
Turbo Vision ñ½∩ æ++ = 62 =
¼ÑΓ«ñ«ó writeLine ¿ writeBuf ¡Ñ ºáñáÑΓß∩ »áαá¼ÑΓα µóÑΓá. ¥Γ« ßó∩-
ºá¡« ß ΓѼ, τΓ« ΓαÑíπѼδÑ µóÑΓá ºáñáεΓß∩ ó ¼«¼Ñ¡Γ ºá¡ÑßÑ¡¿∩
ΓѬßΓá ó íπΣÑα, τΓ« ¿ «º¡áτáÑΓ ó«º¼«ª¡«ßΓ∞ ¡á½¿τ¿∩ ó «ñ¡«¼ íπΣÑαÑ
Σαáú¼Ñ¡Γ«ó ΓѬßΓá ß αáº¡δ¼¿ áΓα¿íπΓἿ. Ç ¬α«¼Ñ Γ«ú«, ß »«¼«Θ∞ε
¼ÑΓ«ñá writeCStr ó íπΣÑαÑ ¼«úπΓ óδñѽ∩Γ∞ß∩ (áΓα¿íπΓ«¼) ß¿¼ó«½δ,
«íαἽѡ¡δÑ Γ¿½∞ñἿ (~).
Ä»αÑñѽѡ¿Ñ «íΩѼá óδó«ñá
ÄΓ¼ÑΓ¿¼, τΓ« ¼ÑΓ«ñ TInterior::draw óδó«ñ¿Γ Γ«½∞¬« ëà «íΩѼ
Σá⌐½á, ¬«Γ«αδ⌐ ¡Ñ«íσ«ñ¿¼ ñ½∩ ºá»«½¡Ñ¡¿∩ "»½«Θáñ¿" ó¡πΓαÑ¡¡Ñú«
«Γ«íαáªáѼ«ú« «íΩѬΓá. é »α«Γ¿ó¡«¼ ß½πτáÑ φëà ¼ÑΓ«ñ draw »«Γαá-
Γ¿½ íδ º¡áτ¿Γѽ∞¡πε τáßΓ∞ óαѼѡ¿ ¡á ºá»¿ß∞ ΓÑσ τáßΓÑ⌐ Σá⌐½á, ¬«-
Γ«αδÑ ó ñá½∞¡Ñ⌐ΦѼ óßÑ αáó¡« í뫨 íδ «ΓßÑτÑ¡δ úαá¡¿µá¼¿ ñá¡¡«ú«
«Γ«íαáªáѼ«ú« «íΩѬΓá TInterior.
àß½¿ «Γ«íαáªáѼ«¼π «íΩѬΓπ ΓαÑíπÑΓß∩ ¼¡«ú« óαѼѡ¿ ñ½∩ »«½π-
τÑ¡¿∩ ßó«Ñú« ¿º«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ, Γ« óδ ¼«ªÑΓÑ ó¡áτá½Ñ óδºóáΓ∞
¼ÑΓ«ñ getCliαRect, ¬«Γ«αδ⌐ «»¿ßá¡ ß½ÑñπεΘ¿¼ «íαẫ¼:
TRect TView::getCliαRect();
getCliαRect ó«ºóαáΘáÑΓ »α∩¼«πú«½∞¡¿¬, ¬«Γ«αδ⌐ «Γ«íαáªáÑΓß∩ ó «íΩ-
ѬΓÑ-ó½áñѽ∞µÑ, »«φΓ«¼π óá¼ ΓαÑíπÑΓß∩ ½¿Φ∞ ¿º«íαếΓ∞ Γπ τáßΓ∞
«Γ«íαáªáѼ«ú« «íΩѬΓá, ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ ó¿ñ¿¼«⌐. ìá»α¿¼Ñα, Ñß½¿
»«½∞º«óáΓѽ∞ »ÑαÑñó¿úáÑΓ ß½«ª¡πε »á¡Ñ½∞ ñ¿á½«úá ñ½∩ Γ«ú«, τΓ«íδ
πó¿ñÑΓ∞ Γ«, τΓ« ¡áσ«ñ¿Γß∩ ºá ¡Ñ⌐, ó맮ó getCliαRect »ÑαÑñ «Γ«íαá-
ªÑ¡¿Ñ¼ ñá¡¡«⌐ »á¡Ñ½¿ ¿ºíáó¿Γ óáß «Γ ¡Ñ«íσ«ñ¿¼«ßΓ¿ »ÑαÑα¿ß«ó¬¿ ΓÑσ
τáßΓÑ⌐ »á¡Ñ½¿ ñ¿á½«úá, ¬«Γ«αδÑ óαѼѡ¡« ¿ßτѺáεΓ ß φ¬αá¡á. ìÑ
ß»πΓá⌐ΓÑ getCliαRect c getExtent. getExtent ó«ºóαáΘáÑΓ ΓѬπΘ¿Ñ
αẼÑαδ ó¿ñ¿¼«ú« «íΩѬΓá, ó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, ¬á¬á∩ Ñú«
τáßΓ∞ ¡áσ«ñ¿Γß∩ ¡á φ¬αá¡Ñ.
Å᫬απΓ¬á óóÑασ ¿ ó¡¿º
ÄτÑó¿ñ¡«, τΓ« »α«úαá¼¼á »α«ß¼«Γαá ß«ñÑন¼«ú« Σá⌐½á ¡Ñ ¼«ªÑΓ
¼¡«ú« ¿ß»«½∞º«óáΓ∞ß∩, Ñß½¿ óδ ¼«ªÑΓÑ »α«ß¼áΓα¿óáΓ∞ Γ«½∞¬«
¡Ñ߬«½∞¬« »Ñαóδσ ßΓ᫬ φΓ«ú« Σá⌐½á. Å«φΓ«¼π óδ ñ«½ª¡δ ßñѽáΓ∞
ó¡πΓαÑ¡¡¿⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ »α«¬απτ¿óáÑ¼δ¼ ¿ ñ«íáó¿Γ∞ ó ¡Ñú«
ßΓ᫬¿ »α«¬απΓ¬¿. é αѺπ½∞ΓáΓÑ, «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ TInterior
ßΓá¡ÑΓ »α«¬απτ¿óáÑ¼δ¼ «¬¡«¼ ñ½∩ ΓѬßΓ«ó«ú« Σá⌐½á. èα«¼Ñ φΓ«ú«, óδ
ñ«½ª¡δ íπñÑΓÑ ¿º¼Ñ¡¿Γ∞ ¬½áßß TDemoWindow, ñ«íáó¿ó ó ¡Ñú« ¼ÑΓ«ñ
makeInterior, ¬«Γ«αδ⌐ íπñÑΓ «Γñѽѡ «Γ ¼Ñσá¡¿º¼á «Γ¬αδΓ¿∩ «¬¡á.
class TDemoWindow : αublic TWindow // «»αÑñѽѡ¿Ñ ¡«ó«ú«
// «¬«¡¡«ú« ¬½áßßá
{
αublic:
TDemoWindow( const TRect& bounds, const char *aTitle,
Turbo Vision ñ½∩ æ++ = 63 =
short aNumber );
void makeInterior();
};
class TInterior : αublic TScroller
{
αublic:
TInterior( const TRect& bounds, TScrollBar *aHScrollBar,
TScrollBar *aVScrollBar ); // ¬«¡ßΓαπ¬Γ«α ¬½áßßá
virtual void draw(); // »ÑαÑ«»αÑñѽѡ¿Ñ TView::draw
};
// Ä»¿ßá¡¿Ñ TInterior
TInterior::TInterior( const TRect& bounds,
TScrollBar *aHScrollBar,
TScrollBar *aVScrollBar ) :
TScroller( bounds, aHScrollBar, aVScrollBar )
{
growMode = gfGrowHiX | gfGrowHiY;
oαtions = oαtions | ofFramed;
setLimit( maxLineLength, maxLines );
}
void TInterior::draw() // ¬«ααѬµ¿∩ ñ½∩ φ½Ñ¼Ñ¡Γá »α«¬απΓ¬¿
{
ushort color = getColor(0x0301);
for( int i = 0; i < size.y; i++ )
// ñ½∩ ¬áªñ«⌐ ßΓ᫬¿
{
TDrawBuffer b;
b.moveChar( 0, ' ', color, size.x );
// ºá»«½¡¿Γ∞ íπΣÑα ßΓ᫬¿ »α«íѽἿ
int j = delta.y + i;
// delta - φΓ« ß¼ÑΘÑ¡¿Ñ ßΓ᫬ φ½Ñ¼Ñ¡Γá »α«¬απΓ¬¿
if( lines[j] )
{
char s[maxLineLength];
if( delta.x > strlen(lines[j] ) )
s[0] = EOS;
else
{
strncαy( s, lines[j]+delta.x, size.x );
s[size.x] = EOS;
}
b.moveStr( 0, s, color );
}
writeLine( 0, i, size.x, 1, b);
}
}
// Ä»¿ßá¡¿Ñ TDemoWindow
Turbo Vision ñ½∩ æ++ = 64 =
void TDemoWindow::makeInterior()
{
TScrollBar *vScrollBar =
standardScrollBar( sbVertical | sbHandleKeyboard );
TScrollBar *hScrollBar =
standardScrollBar( sbHorizontal | sbHandleKeyboard );
TRect r = getCliαRect();// »«½πτ¿Γ∞ úαá¡¿µδ ó¿ñ¿¼«ú« «íΩѬΓá
r.grow( -1, -1 ); // ߬«ααÑ¬Γ¿α«óáΓ∞ ¿σ, τΓ«íδ
// ó¼ÑßΓ¿Γ∞ß∩ ó «¬¡«
insert( new TInterior( r, hScrollBar, vScrollBar ));
}
TDemoWindow::TDemoWindow(const TRect& bounds, const char *aTitle,
short aNumber) :
TWindow( bounds, aTitle, aNumber),
TWindowInit( &TDemoWindow::initFrame )
{
makeInterior();
// ß«ºñáÑΓ »α«¬απτ¿óáѼδ⌐ ó¡πΓαÑ¡¡¿⌐ «íΩÑ¬Γ ¿
// ó¬½ετáÑΓ Ñú« ó «¬¡«
}
Åα¿¼Ñτá¡¿Ñ: φëà »α¿¼Ñα ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ TVGUID08.CPP.
Turbo Vision ñ½∩ æ++ = 65 =
Åα¿¼Ñτá¡¿Ñ: ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« óδ ¿º¼Ñ¡¿½¿ íẫóδ⌐ ¬½áßß ¬½áßßá
TInterior!
┌───────────────────────────────────────────────────────────────┐
│ File Window │
│┌───────────── Demo Window 1 ──────────────┐░░░░░░░░░░░░░░░░░░░│
││class TMyApp : αublic TApplication │░░░░░░░░░░░░░░░░░░░│
││{ │░░░░░░░░░░░░░░░░░░░│
││αublic: │░░░░░░░░░░░░░░░░░░░│
││ TMyApp(); │░░░░░░░░░░░░░░░░░░░│
││ static TStatusLine *initStatusLine( TR│░░░░░░░░░░░░░░░░░░░│
││ static TMenuBar *initMenuBar( TRect r │░░░░░░░░░░░░░░░░░░░│
││ virtual void handleEvent( TEvent& even│░░░░░░░░░░░░░░░░░░░│
││ void newWindow(); │░░░░░░░░░░░░░░░░░░░│
││}; │░░░░░░░░░░░░░░░░░░░│
││ ╔════════ Demo Window 2 ════════╗░░░░░░░░░░░│
││ ║void TMyApp::newWindow() ║░░░░░░░░░░░│
││ ║{ ║░░░░░░░░░░░│
│└──────────────────║ TRect r( 0, 0, 45, 13 ); ║░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░║ r.move( random(34), random(║░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░║ TDemoWindow *window = new T║░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░║ deskToα->insert(window); ║░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░║} ║░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░╚═<■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─════╝░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│ Alt-X Exit F4 New Alt-F3 Close │
└───────────────────────────────────────────────────────────────┘
É¿ßπ¡«¬ 2.5. Åα«ß¼«Γα Σá⌐½á ß ó«º¼«ª¡«ßΓ∞ε »α«¬απΓ¬¿.
â«α¿º«¡Γá½∞¡δÑ ¿ óÑαΓ¿¬á½∞¡δÑ ßΓ᫬¿ »α«¬απΓ¬¿ ¿¡¿µ¿á½¿º¿απ-
εΓß∩ ¿ »«¼ÑΘáεΓß∩ ó úαπ»»π, á ºáΓѼ »ÑαÑñáεΓß∩ ¬½áßßπ TScroller
»α¿ Ñú« ¿¡¿µ¿á½¿ºáµ¿¿.
¥½Ñ¼Ñ¡Γ »α«¬απΓ¬¿ - φΓ« «Γ«íαáªáѼδ⌐ «íΩѬΓ, ß«ºñá¡¡δ⌐ ñ½∩
¿º«íαáªÑ¡¿∩ τáßΓ¿ í«½ÑÑ ¬απ»¡«ú« ó¿αΓπá½∞¡«ú« «Γ«íαáªáѼ«ú« «íΩ-
ѬΓá. é¼ÑßΓÑ ß« ßΓα«¬á¼¿ »α«¬απΓ¬¿ «¡ ß«ºñáÑΓ »α«¬απτ¿óáѼδ⌐
«Γ«íαáªáѼδ⌐ «íΩÑ¬Γ »«τΓ¿ íѺ óáΦÑú« πτáßΓ¿∩. éßÑ τΓ« «Γ óáß ΓαÑ-
íπÑΓß∩ ½¿Φ∞ «íÑß»Ñτ¿Γ∞ ñ½∩ «íΩѬΓá »α«¬απΓ¬¿ Γá¬πε αáí«Γπ ¼ÑΓ«ñπ
draw, τΓ«íδ «¡ »αáó¿½∞¡« ¿º«íαáªá½ ¡πª¡πε τáßΓ∞ ó¿αΓπá½∞¡«ú«
«Γ«íαáªáѼ«ú« «íΩѬΓá. æΓ᫬¿ »α«¬απΓ¬¿ áóΓ«¼áΓ¿τÑ߬¿ π»αáó½∩εΓ
º¡áτÑ¡¿∩¼¿ «íΩѬΓá »α«¬απΓ¬¿ delta.X (»Ñαóδ⌐ ¿º«íαáªáѼδ⌐ ßΓ«½-
íѵ) ¿ delta.Y (»Ñαóá∩ ¿º«íαáªáѼá∩ ßΓ᫬á).
ä½∩ »«½πτÑ¡¿∩ πñ«í¡«ú« «íΩѬΓá »α«¬απΓ¬¿ óδ ñ«½ª¡δ »ÑαÑ«»αÑ-
ñѽ¿Γ∞ ¼ÑΓ«ñ draw ¬½áßßá TScroller. ç¡áτÑ¡¿∩ delta íπñπΓ ¿º¼Ñ-
¡∩Γ∞ß∩ ó ß««ΓóÑΓßΓó¿¿ ß π¬áºá¡¿∩¼¿ ßΓ᫬ »α«¬απΓ¬¿, ¡« ßἿ «¡¿
¡Ñ ¼«úπΓ σ«Γ∞ τΓ«-¡¿íπñ∞ ¿º«íαếΓ∞. îÑΓ«ñ draw íπñÑΓ óδºδóáΓ∞ß∩
»α¿ ¬áªñ«¼ ¿º¼Ñ¡Ñ¡¿¿ delta, »«φΓ«¼π ¿¼Ñ¡¡« ó ¡Ñ¼ ß½ÑñπÑΓ «»¿ßáΓ∞
«ΓóÑΓ¡δÑ ñÑ⌐ßΓó¿∩ ¡á ¿º¼Ñ¡Ñ¡¿∩ delta.
Turbo Vision ñ½∩ æ++ = 66 =
î¡«ªÑßΓóÑ¡¡δÑ «Γ«íαáªáѼδÑ «íΩѬΓδ ó «¬¡Ñ
é ß½ÑñπεΘѼ π»α᪡ѡ¿¿ óδ »α«ñπí½¿απ⌐ΓÑ ó¡πΓαÑ¡¡¿⌐ «Γ«íαáªá-
Ѽδ⌐ «íΩÑ¬Γ ¿ ß«ºñáñ¿ΓÑ «¬¡« ß ñóπ¼∩ »α«¬απτ¿óáÑ¼δ¼¿ «Γ«íαáªáѼδ-
¼¿ «íΩѬΓἿ ñ½∩ ΓѬßΓ«ó«ú« Σá⌐½á. æ »«¼«Θ∞ε "¼δΦ¿" ¿½¿ ¬½áó¿Φ¿
Γáíπ½∩µ¿¿ ¼«ª¡« óδíαáΓ∞ «ñ¡¿¼ ¿º φΓ¿σ ñóπσ ó¡πΓαÑ¡¡¿σ «Γ«íαáªáÑ-
¼δσ «íΩÑ¬Γ«ó. èáªñδ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ »α«¬απτ¿óáÑΓß∩ ¡Ñºáó¿ß¿-
¼« «Γ óΓ«α«ú« ¿ ¿¼ÑÑΓ ß«íßΓóÑ¡¡πε »«º¿µ¿ε ¬παß«αá.
ùΓ«íδ ßñѽáΓ∞ óßÑ φΓ«, óδ ñ«½ª¡δ ñ«íáó¿Γ∞ ¬ ¼ÑΓ«ñπ
makeInterior ¡Ñí«½∞Φ«⌐ Σαáú¼Ñ¡Γ, »«ºó«½∩εΘ¿⌐ πº¡áΓ∞, ¡á ¬á¬«⌐
ßΓ«α«¡Ñ «¬¡á ¡áσ«ñ¿Γß∩ ó¡πΓαÑ¡¡¿⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ (Γ.¬. αáº-
¡δÑ Ñú« ßΓ«α«¡δ ¿¼ÑεΓ ¡Ñ¬«Γ«αδÑ αẽ¿τ¿∩ ó »«óÑñÑ¡¿¿), ¿, ¬α«¼Ñ
Γ«ú«, ó ¬«¡ßΓαπ¬Γ«αÑ ¬½áßßá TDemoWindow óδ óδ»«½¡¿ΓÑ ñóá ó맮óá
¼ÑΓ«ñá makeInterior.
Åα¿¼Ñτá¡¿Ñ: ìÑ ºáíπñ∞ΓÑ ¿º¼Ñ¡¿Γ∞ «íΩ∩ó½Ñ¡¿Ñ ¼ÑΓ«ñá makeInterior!
// ì«óδ⌐ ¬«¡ßΓαπ¬Γ«α TDemoWindow
TDemoWindow::TDemoWindow( const TRect& bounds, const char *aTitle,
short aNumber) :
TWindow( bounds, aTitle, aNumber),
TWindowInit( &TDemoWindow::initFrame )
{
TRect lbounds = getExtent();
TRect r( lbounds.a.x,lbounds.a.y,lbounds.b.x/2+1,lbounds.b.y );
TInterior *lInterior = makeInterior( r, True );
lInterior->growMode = gfGrowHiY;
insert( lInterior );
// ß«ºñáÑΓ ½Ñóδ⌐ »α«¬απτ¿óáѼδ⌐ ¿¡ΓÑα∞Ñα ¿ óßΓáó½∩ÑΓ Ñú« ó «¬¡«
r = TRect( lbounds.b.x/2,lbounds.a.y,lbounds.b.x,lbounds.b.y );
TInterior *rInterior = makeInterior( r, False );
rInterior->growMode = gfGrowHiX | gfGrowHiY;
insert( rInterior );
// Γ«ªÑ ñ½∩ »αáó«ú« ¿¡ΓÑα∞Ñαá
}
// 꺼ѡѡ¡δ⌐ ¼ÑΓ«ñ makeInterior
TInterior *TDemoWindow::makeInterior( const TRect& bounds,
Boolean left )
{
TRect r = TRect( bounds.b.x-1, bounds.a.y+1, bounds.b.x,
bounds.b.y-1 );
TScrollBar *vScrollBar = new TScrollBar( r );
if( vScrollBar == 0 )
{
cout << "vScrollbar init error" << endl;
exit(1);
}
// αroduction code would disαlay error dialog box
Turbo Vision ñ½∩ æ++ = 67 =
vScrollBar->oαtions |= ofPostProcess;
if( left )
vScrollBar->growMode = gfGrowHiY;
insert( vScrollBar );
r = TRect(bounds.a.x+2,bounds.b.y-1,bounds.b.x-2,bounds.b.y);
TScrollBar *hScrollBar = new TScrollBar( r );
if( hScrollBar == 0 )
{
cout << "hScrollbar init error" << endl;
exit(1);
}
hScrollBar->oαtions |= ofPostProcess;
if( left )
hScrollBar->growMode = (gfGrowHiY | gfGrowLoY);
insert( hScrollBar );
r = bounds;
r.grow( -1, -1 );
return new TInterior( r, hScrollBar, vScrollBar );
}
Åα¿¼Ñτá¡¿Ñ: ¥Γ« »α¿¼Ñα TVGUID09.CPP.
┌───────────────────────────────────────────────────────────┐
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░╔═[■]════════════════ Demo Window 1 ════════════════[°]═╗░│
│░║class TInterior : αublic TS │tatusLine *TMyApp::initSta°░│
│░║{ │ ▒░│
│░║ │ r.a.y = r.b.y - 1; /▒░│
│░║αublic: │ return new TStatusLine( ▒░│
│░║ │ *new TStatusDef( 0, ▒░│
│░║ TInterior( const TRect& │ // set range of helα▒░│
│░║ TScrollBar *aVScr│ *new TStatusItem▒░│
│░║ virtual void draw(); │ // define an ite▒░│
│░║}; │ *new TStatusItem■░│
│░║ │ // and another o▒░│
│░║class TDemoWindow : αublic T│ *new TStatusItem▒░│
│░║{ │ // and another o▒░│
│░║ │ ); ∙░│
│░╚════════════════════════════╧═<■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
└───────────────────────────────────────────────────────────┘
É¿ßπ¡«¬ 2.6. Ĭ¡« ß ¡Ñ߬«½∞¬¿¼¿ »á¡Ñ½∩¼¿.
àß½¿ óδ "ß«ª¼ÑΓÑ" «¬¡á ó »α«úαá¼¼Ñ TVGUID09.CPP, Γ« óδ πó¿-
ñ¿ΓÑ, τΓ« óÑαΓ¿¬á½∞¡á∩ »«½«ßá »α«¬απΓ¬¿ íπñÑΓ ºáΓÑαΓá ½Ñóδ¼ ó¡πΓ-
αÑ¡¡¿¼ «Γ«íαáªáÑ¼δ¼ «íΩÑ¬Γ«¼, Ñß½¿ óδ »«¼ÑßΓ¿ΓÑ »αáóπε ßΓ«α«¡π
«¬¡á ß½¿Φ¬«¼ í½¿º¬« ¬ ½Ñó«⌐. ùΓ«íδ ¿ºíѪáΓ∞ φΓ«ú«, óδ ¼«ªÑΓÑ ºá-
ñáΓ∞, ¬á¬¿Ñ ¼¿¡¿¼á½∞¡δÑ »αÑñѽ∞¡δÑ αẼÑαδ «¬«¡ óδ ñ«»π߬áÑΓÑ.
æñѽáΓ∞ φΓ« óδ ß¼«ªÑΓÑ »ÑαÑ«»αÑñѽ¿ó ó¿αΓπá½∞¡δ⌐ ¼ÑΓ«ñ sizeLimits
¬½áßßá TWindow.
Turbo Vision ñ½∩ æ++ = 68 =
void TDemoWindow::sizeLimits(TPoint& minP, TPoint& maxP)
{
TWindow::sizeLimits( minP, maxP );
minP.x = lInterior->size.x+9;
}
Åα¿¼Ñτá¡¿Ñ: ìÑ ºáíπñ∞ΓÑ ñ«íáó¿Γ∞ «»¿ßá¡¿Ñ sizeLimits ó
TDemoWindow. ¥Γ« Σαáú¼Ñ¡Γ ¿º TVGUID10.CPP.
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á Γ«, τΓ« óá¼ ¡Ñ ΓαÑíπÑΓß∩ ∩ó¡« «íαá-
ΘáΓ∞ß∩ ¬ ¼ÑΓ«ñπ sizeLimits. éδ Ñú« »α«ßΓ« »ÑαÑ«»αÑñѽ∩ÑΓÑ, á «¡
íπñÑΓ óδºδóáΓ∞ß∩ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿. Æᬿ¼ «íαẫ¼ óδ »«ßΓπ»á½¿ ß
¼ÑΓ«ñ«¼ draw: óδ ß««íΘ὿ «Γ«íαáªáѼ«¼π «íΩѬΓπ ¬á¬ ßÑí∩ «Γ«íαá-
º¿Γ∞, ¡« ¡Ñ ¬«úñá φΓ« ñѽáΓ∞. Turbo Vision ßá¼á º¡áÑΓ, ¬«úñá óδº-
óáΓ∞ draw. Æᬫ⌐ »«α∩ñ«¬ »α¿¼Ñ¡¿¼ ¿ ¬ ¼ÑΓ«ñπ sizeLimits: óδ πßΓá-
¡áó½¿óáÑΓÑ »αÑñѽδ, á «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ßἫßΓ«∩Γѽ∞¡« «»αÑñÑ-
½∩ÑΓ, ¬«úñá óδ»«½¡¿Γ∞ ¿σ »α«óÑα¬π. Æ.¬. sizeLimits ∩ó½∩ÑΓß∩ ó¿α-
Γπá½∞¡δ¼ ¼ÑΓ«ñ«¼, Γ« ñ½∩ ¬áªñ«ú« «Γ«íαáªáѼ«ú« «íΩѬΓá óßÑúñá íπ-
ñÑΓ óδºδóáΓ∞ß∩ ¬«ααÑ¬Γ¡á∩ óÑαß¿∩ φΓ«ú« ¼ÑΓ«ñá.
èπñá »«¼ÑßΓ¿Γ∞ Σπ¡¬µ¿«¡á½∞¡«ßΓ∞
éδ «αúá¡¿º«ó὿ «¬¡« ß α∩ñ«¼ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó: αá¼¬á ¿
ñóá »α«¬απτ¿óáѼδσ ó¡πΓαÑ¡¡¿σ «Γ«íαáªáѼδσ «íΩѬΓá, ¿¼ÑεΘ¿σ »«
ñóÑ ßΓ᫬¿ »α«¬απΓ¬¿. ÆÑ»Ñα∞ óδ ¼«ªÑΓÑ »α¿ßΓπ»¿Γ∞ ¬ «αúá¡¿ºáµ¿¿
«¬¡á, ¬«Γ«α«Ñ íπñÑΓ αÑ὿º«óδóáΓ∞ ߻ѵ¿á½∞¡δÑ Σπ¡¬µ¿¿ »α¿¬½áñ¡«⌐
»α«úαá¼¼δ.
èᬿ¼ ªÑ «íαẫ¼ óδ ß¼«ªÑΓÑ φΓ« ßñѽáΓ∞? ÅαÑñ»«½«ª¿¼, óá¼
ΓαÑíπÑΓß∩ »αÑóαáΓ¿Γ∞ óáΦÑ «¬¡« ó »«½¡«µÑ¡¡δ⌐ αÑñá¬Γ«α ΓѬßΓá.
ū߬«½∞¬π «¬¡« ¿¼ÑÑΓ ñóá «Γ«íαáªáѼδσ «íΩѬΓá, óδ ¼«ªÑΓÑ ¿¼ÑΓ∞
¿ß¬πΦÑ¡¿Ñ »«¼ÑßΓ¿Γ∞ ¬á¬πε-½¿í« Σπ¡¬µ¿«¡á½∞¡πε 󫺼«ª¡«ßΓ∞ αÑñá¬-
Γ¿α«óá¡¿∩ ó úαπ»»π, á ºáΓѼ ßó∩ºáΓ∞ ÑÑ ß φΓ¿¼¿ ñóπ¼∩ «Γ«íαáªáѼδ-
¼¿ «íΩѬΓἿ. éÑñ∞ «Γ«íαáªáѼδÑ «íΩѬΓδ ñ«½ª¡δ π»αáó½∩Γ∞ß∩ úαπ»-
»á¼¿. Å«τѼπ íδ ¿σ ¡Ñ ¿ß»«½∞º«óáΓ∞ Γᬿ¼ «íαẫ¼?
Æ.¬. úαπ»»á, ¬á¬ ½εí«⌐ «Γ«íαáªáѼδ⌐ «íΩѬΓ, ¿¼ÑÑΓ ß»«ß«í-
¡«ßΓ∞ αáßΦ¿αÑ¡¿∩, ¿ óδ ¼«ªÑΓÑ αẼÑßΓ¿Γ∞ ó ¡Ñ⌐ ½εíπε Σπ¡¬µ¿«¡á½∞-
¡πε 󫺼«ª¡«ßΓ∞, óáΦ¿ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ¿ß»«½∞ºπѼδÑ Turbo
Vision, íπñπΓ í«½ÑÑ ¡áñѪ¡δ¼¿ ¿ ú¿í¬¿¼¿, Ñß½¿ óδ íπñÑΓÑ απ¬«-
ó«ñßΓó«óáΓ∞ß∩ ß½ÑñπεΘ¿¼¿ »α¿¡µ¿»á¼¿: ¬½áßßδ ñ«½ª¡δ íδΓ∞ ¼á¬ß¿-
¼á½∞¡« ¡Ñºáó¿ß¿¼δ¼¿; úαπ»»δ (Γá¬¿Ñ ¬á¬ «¬¡á) ñ«½ª¡δ íδΓ∞ ºá¼¬¡πΓδ
¿ »« 󫺼«ª¡«ßΓ¿ ¿ºíáó½Ñ¡δ «Γ ñ«»«½¡¿Γѽ∞¡δσ Σπ¡¬µ¿⌐.
Turbo Vision ñ½∩ æ++ = 69 =
Æᬿ¼ «íαẫ¼, óδ ¼«ªÑΓÑ ß«ºñáΓ∞ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α, »«-
¼ÑßΓ¿ó óßÑ Ñú« Σπ¡¬µ¿«¡á½∞¡δÑ ó«º¼«ª¡«ßΓ¿ ó« ó¡πΓαÑ¡¡¿⌐ «Γ«íαáªá-
Ѽδ⌐ «íΩѬΓ: ß«ºñá⌐ΓÑ ¡«óδ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ - ¬½áßß
TextEditor. ÄΓ«íαáªáѼδÑ «íΩѬΓδ ¼«ª¡« ó¡«ó∞ ½Ñú¬« ¿ß»«½∞º«óáΓ∞,
Ñß½¿ óδ ¿σ »αáó¿½∞¡« αáºαáí«Γ὿, á »ÑαѼÑΘÑ¡¿Ñ óáΦÑú« ΓѬßΓ«ó«ú«
αÑñá¬Γ«αá ó ñαπúπε ßαÑñπ íπñÑΓ ñ«ó«½∞¡« ß½«ª¡δ¼, Ñß½¿ Ñú« Σπ¡¬µ¿-
«¡á½∞¡δÑ ó«º¼«ª¡«ßΓ¿ ó «í½áßΓ¿ αÑñá¬Γ¿α«óá¡¿∩ í뫨 »«ñÑ½Ñ¡δ ¼Ñªñπ
úαπ»»«⌐ ¿ ¬á¬¿¼-½¿í« «Γ«íαáªáÑ¼δ¼ «íΩÑ¬Γ«¼.
Turbo Vision ñ½∩ æ++ = 70 =
櫺ñá¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá
-----------------------------------------------------------------
ä¿á½«ú«ó«Ñ «¬¡« (»á¡Ñ½∞ ñ¿á½«úá) - φΓ« ߻ѵ¿á½∞¡δ⌐ Γ¿» «¬¡á.
é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, ¬½áßß TDialog ∩ó½∩ÑΓß∩ »«α«ªñÑ¡¡δ¼ ¿º ¬½áßßá
TWindow, ¿ σ«Γ∩ Ñú« ¼«ª¡« αáßß¼áΓα¿óáΓ∞ ¬á¬ »α«ßΓ« ÑΘÑ «ñ¡« «¬¡«,
«íδτ¡« φΓ« ¡Ñ ß«óßѼ Γá¬.
Åα¿¼Ñτá¡¿Ñ: êß»«½∞ºπѼδÑ ¬½áßßδ: TWiew, TGrouα, TDialog, TClus-
ter, TCheckBoxes, TRadioButtons, TLabel, TInαutLine.
Åα¿ αáºαáí«Γ¬Ñ óáΦÑ⌐ ñѼ«¡ßΓαᵿ«¡¡«⌐ »α«úαá¼¼δ óδ ñ«½ª¡δ
ñ«íáó¿Γ∞ ó ¡ÑÑ ¡«óδ⌐ »π¡¬Γ ¼Ñ¡ε, ¬«Γ«αδ⌐ »«ßδ½áÑΓ ¬«¼á¡ñπ «Γ¬αδ-
Γ¿∩ »á¡Ñ½¿ ñ¿á½«úá, ñ«íáó¿ΓÑ ¼ÑΓ«ñ »« «íαáí«Γ¬Ñ φΓ«⌐ ¬«¼á¡ñδ, á
Γá¬ªÑ ñ«íáó¿ΓÑ ßΓ᫬π ó ¼ÑΓ«ñ handleEvent, τΓ«íδ ßó∩ºáΓ∞ φΓ𠬫-
¼á¡ñπ ß ß««ΓóÑΓßΓóπεΘ¿¼ ñÑ⌐ßΓó¿Ñ¼.
æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞, τΓ« óá¼ ¡Ñ »«ΓαÑíπÑΓß∩ »«α«ªñáΓ∞ ¡«óδ⌐
¬½áßß ¿º ¬½áßßá TDialog, ¬á¬ φΓ« í佫 ó ß½πτáÑ ß ¬½áßß«¼ TWindow
(τΓ«íδ »«½πτ¿Γ∞ ¬½áßß TDemoWindow). é¼ÑßΓ« ß«ºñá¡¿∩ ߻ѵ¿á½∞¡«ú«
¬½áßßá »á¡Ñ½¿ ñ¿á½«úá, »α¿ñá⌐ΓÑ ßó«Ñ⌐ »α«úαá¼¼Ñ »«í«½∞ΦÑ ¿¡Γѽ-
½Ñ¬Γá: ó¼ÑßΓ« Γ«ú«, τΓ«íδ ß«ºñáóáΓ∞ ¡«óδ⌐ ¬½áßß »á¡Ñ½¿ ñ¿á½«úá,
¬«Γ«αδ⌐ º¡áÑΓ, τΓ« «Γ ¡Ñú« ΓαÑíπÑΓß∩, ß«ºñá⌐ΓÑ ßΓá¡ñáαΓ¡«Ñ ñ¿á½«-
ú«ó«Ñ «¬¡« ¿ ß««íΘ¿ΓÑ Ñ¼π, τΓ« «Γ ¡Ñú« ΓαÑíπÑΓß∩.
éá¼ óα∩ñ ½¿ »«ΓαÑíπÑΓß∩ ß«ºñáóáΓ∞ ¬½áßß, »«α«ªñÑ¡¡δ¼ «Γ
¬½áßßá TDialog, Γ.¬. Ññ¿¡ßΓóÑ¡¡«Ñ αẽ¿τ¿Ñ ¼Ñªñπ ½εí묨 ñóπ¼∩ «¬-
¡á¼¿ ñ¿á½«úá, ß«ßΓ«¿Γ ó ¿σ ß«ñÑন¼«¼, á ¡Ñ ó Γ«¼, ¬á¬ «¡¿ Σπ¡¬-
µ¿«¡¿απεΓ.
// ¬«¡ßΓá¡Γá ñ½∩ ¡«ó«ú« »π¡¬Γá ¼Ñ¡ε
const int cmNewDialog = 202;
TMenuBar *TMyApp::initMenuBar( TRect r )
{
r.b.y = r.a.y + 1;
// πßΓá¡«ó¿¼ ¡¿ª¡εε ½¿¡¿ε ¡á 1 ¡¿ªÑ óÑασ¡Ñ⌐
return new TMenuBar( r,
*new TSubMenu( "~F~ile", kbAltF )+
*new TMenuItem( "~O~αen", cmMyFileOαen, kbF3,
hcNoContext, "F3" )+
*new TMenuItem( "~N~ew", cmMyNewWin, kbF4,
hcNoContext, "F4" )+
newLine()+
*new TMenuItem( "E~x~it", cmQuit, cmQuit, hcNoContext,
"Alt-X" )+
*new TSubMenu( "~W~indow", kbAltW )+
*new TMenuItem( "~N~ext", cmNext, kbF6, hcNoContext,
"F6" )+
*new TMenuItem( "~Z~oom", cmZoom, kbF5, hcNoContext,
"F5" )+
*new TMenuItem( "~D~ialog", cmNewDialog, kbF2, hcNoContext,
"F2" )
Turbo Vision ñ½∩ æ++ = 71 =
// ºñÑß∞ ¼δ ñ«íáó¿¼ ¡«óδ⌐ »π¡¬Γ ¼Ñ¡ε
);
}
// îÑΓ«ñ newDialog ñ½∩ ¬½áßßá TMyApp
void TMyApp::newDialog()
{
TRect r( 0, 0, 40, 13 );
r.move( random(39), random(10) );
deskToα->insert( new TDialog( r, "Demo Dialog" ));
}
// 꺼ѡ¿¼ Σπ¡¬µ¿ε handleEvent, τΓ«íδ «¡á ¼«ú½á αÑáú¿α«óáΓ∞ ¡á
// ¬«¼á¡ñπ cmNewDialog
void TMyApp::handleEvent(TEvent& event)
{
TApplication::handleEvent(event);
if( event.what == evCommand )
{
switch( event.message.command )
{
case cmMyNewWin:
newWindow();
break;
case cmNewDialog:
newDialog();
break;
default:
return;
}
clearEvent( event ); // «τ¿ßΓ¿Γ∞ «τÑαÑñ∞ »«ß½Ñ «íαáí«Γ¬¿
} // ß«íδΓ¿∩
}
Åα¿¼Ñτá¡¿Ñ: φΓ« Σαáú¼Ñ¡Γ »α«úαá¼¼ TVGUID11.CPP.
╔═ [■]═══ Demo Dialog Box ═════╗
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
╚══════════════════════════════╝
É¿ßπ¡«¬ 2.7. Åα«ßΓá∩ »á¡Ñ½∞ ñ¿á½«úá.
îѪñπ φΓ«⌐ »á¡Ñ½∞ε ñ¿á½«úá ¿ óáΦ¿¼¿ í«½ÑÑ αá¡¡¿¼¿ «¬¡á¼¿ ßπ-
ΘÑßΓóπÑΓ ¼á½« «Γ½¿τ¿⌐, ºá ¿ß¬½ετÑ¡¿Ñ¼ ß½ÑñπεΘ¿σ:
Turbo Vision ñ½∩ æ++ = 72 =
- µóÑΓ «¬¡á »« π¼«½τá¡¿ε ßÑαδ⌐, á ¡Ñ ú«½πí«⌐.
- αẼÑαδ »á¡Ñ½¿ ñ¿á½«úá ¿º¼Ñ¡∩Γ∞ ¡Ñ½∞º∩.
- »á¡Ñ½∞ ñ¿á½«úá ¡Ñ ¿¼ÑÑΓ ¡«¼Ñαá «¬¡á.
ç¡á⌐ΓÑ, τΓ« óδ ¼«ªÑΓÑ, ß »«¼«Θ∞ε "¼δΦ¿", ºá¬αδΓ∞ »á¡Ñ½∞ ñ¿á-
½«úá ½¿í« ¡áªáΓ¿Ñ¼ ¡á ¬¡«»¬π ºá¬αδΓ¿∩ ¡á »á¡Ñ½¿, ¿½¿ ¡á «íΩѬΓ
ßΓ᫬¿ ß«ßΓ«∩¡¿∩ Alt-F3, ½¿í« "«íδτ¡δ¼" ¡áªáΓ¿Ñ¼ ¡á ¬½áó¿Φπ Esc.
è½áó¿Φá Esc ºá¬αδóáÑΓ »á¡Ñ½∞ ñ¿á½«úá »« π¼«½τá¡¿ε.
îδ »α¿óѽ¿ ºñÑß∞ »α¿¼Ñα ¡Ñ¼«ñá½∞¡«⌐ (¿½¿ "íѺαѪ¿¼¡«⌐") »á-
¡Ñ½¿ ñ¿á½«úá. Äíδτ¡« »á¡Ñ½¿ ñ¿á½«úá ∩ó½∩εΓß∩ ¼«ñá½∞¡δ¼¿, τΓ« «º-
¡áτáÑΓ, τΓ« «¡¿ «»αÑñѽ∩εΓ αѪ¿¼ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿. Äíδτ¡«,
¬«úñá óδ «Γ¬αδóáÑΓÑ »á¡Ñ½∞ ñ¿á½«úá, «¡á ∩ó½∩ÑΓß∩ Ññ¿¡ßΓóÑ¡¡δ¼ á¬-
Γ¿ó¡δ¼ «íΩÑ¬Γ«¼: τΓ« ¿ «º¡áτáÑΓ »«¡∩Γ¿Ñ "¼«ñá½∞¡«ú« «Γ«íαáªáѼ«ú«
«íΩѬΓá". Å«¬á óδ íπñÑΓÑ ¡áσ«ñ¿Γ∞ß∩ ó αѪ¿¼Ñ »á¡Ñ½¿ ñ¿á½«úá, ¡¿-
¬á¬¿Ñ ó«ºñÑ⌐ßΓó¿∩ ¡á ñαπú¿Ñ «¬¡á ¿½¿ ¼Ñ¡ε ¡Ñ ñáñπΓ ¡¿¬á¬«ú« φΣ-
ΣѬΓá. ÄΓñѽ∞¡δÑ ß½πτá¿ »« ¿ß»«½∞º«óá¡¿ε ¡Ñ¼«ñá½∞¡δσ »á¡Ñ½Ñ⌐ ñ¿á-
½«úá ¼«úπΓ ¿¼ÑΓ∞ ¼ÑßΓ«, ¡« ó »«ñáó½∩εΘѼ í«½∞Φ¿¡ßΓóÑ ß½πτáÑó
»αÑñ»«τΓ¿Γѽ∞¡ÑÑ ¿ß»«½∞º«óáΓ∞ ¼«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá.
Åα¿¼Ñτá¡¿Ñ: î«ñá½∞¡δÑ «Γ«íαáªáѼδÑ «íΩѬΓδ αáßß¼áΓα¿óáεΓß∩ ó ú½á-
óÑ 4.
Éáí«Γá ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá
-----------------------------------------------------------------
èᬠßñѽáΓ∞ »á¡Ñ½∞ ñ¿á½«úá ¼«ñá½∞¡«⌐? ¥Γ« «τÑ¡∞ »α«ßΓ«.
é¼ÑßΓ« Γ«ú«, τΓ«íδ »«¼ÑßΓ¿Γ∞ ¬½áßß »á¡Ñ½¿ ñ¿á½«úá ó αáí«τπε «í-
½áßΓ∞, ºá»πßΓ¿ΓÑ «íΩÑ¬Γ ¡á óδ»«½¡Ñ¡¿Ñ ß »«¼«Θ∞ε ó맮óá ¼ÑΓ«ñá
deskToα->execView:
// «Γ½¿τ¿Ñ «Γ tvguid11: ΓÑ»Ñα∞ óδºδóáÑΓß∩ execView
void TMyApp::newDialog()
{
TRect r( 0, 0, 40, 13 );
r.move( random(39), random(10) );
deskToα->execView( new TDialog( r, "Demo Dialog" ));
}
Åα¿¼Ñτá¡¿Ñ: φΓ« Σαáú¼Ñ¡Γ »α«úαá¼¼δ TVGUID12.CPP.
è½áßß TDialog "º¡áÑΓ", ¬á¬ αÑáú¿α«óáΓ∞ ¡á ß«íδΓ¿Ñ, ßó∩ºá¡¡«Ñ
ß ¡áªáΓ¿Ñ¼ ¬½áó¿Φ¿ Esc (¬«Γ«α«Ñ «¡ »αÑ«íαáºπÑΓ ó ¬«¼á¡ñπ
cmCancel) ¿ ¡á ß«íδΓ¿Ñ, ßó∩ºá¡¡«Ñ ß ¡áªáΓ¿Ñ¼ ¬½áó¿Φ¿ Enter (¬«Γ«-
α«Ñ íπñÑΓ «íαáíáΓδóáΓ∞ß∩ φ¬ºÑ¼»½∩α«¼ ¬½áßßá TButton, ∩ó½∩εΘÑú«ß∩
óδíαá¡¡δ¼ »« π¼«½τá¡¿ε ó »á¡Ñ½¿ ñ¿á½«úá). é «ΓóÑΓ ¡á ¬«¼á¡ñπ
cmCancel »á¡Ñ½∞ ñ¿á½«úá óßÑúñá ºá¬αδóáÑΓß∩.
ÄíαáΘÑ¡¿Ñ ¬ ¼ÑΓ«ñπ execView »«¼ÑΘáÑΓ »á¡Ñ½∞ ñ¿á½«úá ó úαπ»»π
¿ ñѽáÑΓ Ñú« ¼«ñá½∞¡δ¼. ô»αáó½Ñ¡¿Ñ «ßΓáÑΓß∩ ó execView ñ« ºá¬αδ-
Turbo Vision ñ½∩ æ++ = 73 =
Γ¿∩ ¿½¿ ºá¬αδΓ¿∩ »á¡Ñ½¿ ñ¿á½«úá. çáΓѼ execView πñá½∩ÑΓ »á¡Ñ½∞
ñ¿á½«úá ¿º úαπ»»δ ¿ »αѬαáΘáÑΓ ßó«ε αáí«Γπ. é ñá¡¡δ⌐ ¼«¼Ñ¡Γ óδ ¡Ñ
ñ«½ª¡δ «íαáΘáΓ∞ ó¡¿¼á¡¿Ñ ¡á º¡áτÑ¡¿Ñ, ó«ºóαáΘáѼ«Ñ ¼ÑΓ«ñ«¼
execView ¿ ß«σαá¡∩Ѽ«Ñ ó control. éδ πó¿ñ¿ΓÑ, ¬á¬ ¿ß»«½∞º«óáΓ∞
φΓ« º¡áτÑ¡¿Ñ ó »α¿¼ÑαÑ TVGUID16.
ÉÑ὿ºáµ¿∩ π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá
ÅπßΓá∩ »á¡Ñ½∞ ñ¿á½«úá, ÑßΓÑßΓóÑ¡¡«, ¡Ñ »αÑñßΓáó½∩ÑΓ í«½∞Φ«ú«
¿¡ΓÑαÑßá. é ¡ÑÑ ΓαÑíπÑΓß∩ 󽫪¿Γ∞ π»αáó½∩εΘ¿Ñ «íΩѬΓδ. ô»αáó½∩ε-
Θ¿Ñ «íΩѬΓδ - φΓ« αẽ¿τ¡δÑ φ½Ñ¼Ñ¡Γδ ó¡πΓα¿ »á¡Ñ½¿ ñ¿á½«úá, ¬«Γ«-
αδÑ »«ºó«½∩εΓ óá¼ ¼á¡¿»π½¿α«óáΓ∞ ¿¡Σ«α¼áµ¿Ñ⌐. é᪡« »«¼¡¿Γ∞, τΓ«
ñÑ⌐ßΓó¿Ñ π»αáó½∩εΘ¿σ «íΩÑ¬Γ«ó αáß»α«ßΓαá¡∩ÑΓß∩ ½¿Φ∞ ¡á «íΩѬΓδ
ó¡πΓα¿ »á¡Ñ½¿ ñ¿á½«úá.
àñ¿¡ßΓóÑ¡¡δ¼ ¿ß¬½ετÑ¡¿Ñ¼ ¿º φΓ«ú« »αáó¿½á ∩ó½∩ÑΓß∩ ¬¡«»¬á ó
íѺαѪ¿¼¡«⌐ »á¡Ñ½¿ ñ¿á½«úá. Æ.¬. ¬¡«»¬¿ »«ßδ½áεΓ ¬«¼á¡ñδ, Γ« φΓ¿
¬«¼á¡ñδ íπñπΓ »ÑαÑñáóáΓ∞ß∩ ΓѬπΘÑ¼π ¼«ñá½∞¡«¼π «Γ«íαáªáѼ«¼π «íΩ-
ѬΓπ. àß½¿ ªÑ »á¡Ñ½∞ ñ¿á½«úá ¡Ñ ∩ó½∩ÑΓß∩ ¼«ñá½∞¡δ¼ «Γ«íαáªáѼδ¼
«íΩÑ¬Γ«¼, Γ« φΓ¿ ¬«¼á¡ñδ íπñπΓ »ÑαÑñáóáΓ∞ß∩ ºá »αÑñѽδ ñá¡¡«⌐ »á-
¡Ñ½¿ ñ¿á½«úá, τΓ« ¼«ªÑΓ ¿¼ÑΓ∞ ¡Ñ»αÑñó¿ñÑ¡¡δÑ »«ß½ÑñßΓó¿∩.
Åα¿¼Ñτá¡¿Ñ: «íαáí«Γ¬á ¬«¼á¡ñ ¿º½«ªÑ¡á »«ñα«í¡ÑÑ ó ú½áóÑ 5.
é µÑ½«¼, »α¿ ºáñá¡¿¿ π»αáó½∩εΘ¿σ «íΩÑ¬Γ«ó ó »á¡Ñ½¿ ñ¿á½«úá
óδ ¼«ªÑΓÑ «Γñѽ¿Γ∞ ó¿ºπá½∞¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ ñá¡¡δσ «Γ ¿σ «íαáí«Γ-
¬¿. ¥Γ« «º¡áτáÑΓ, τΓ« óδ ½Ñú¬« ¼«ªÑΓÑ ß«ºñáΓ∞ µÑ½πε »á¡Ñ½∞ ñ¿á½«-
úá íѺ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ß«ºñá¡¿∩ Σαáú¼Ñ¡Γá »α«úαá¼¼δ, ¬«Γ«αδ⌐
¿ß»«½∞ºπÑΓ φΓ¿ ñá¡¡δÑ Γ«τ¡« ΓᬪÑ, ¬á¬ óδ ¿¼Ñ½¿ 󫺼«ª¡«ßΓ∞ ß«º-
ñáóáΓ∞ ¼Ñ¡ε ¿ ßΓ᫬¿ ß«ßΓ«∩¡¿∩ íѺ ¡Ñ«íσ«ñ¿¼«ßΓ¿ αáºαáí«Γ¬¿ »α«ú-
αá¼¼δ, αÑáú¿απεΘÑ⌐ ¡á »«ßδ½áѼδÑ ¿¼¿ ¬«¼á¡ñδ.
è¡«»¬á, ¬¡«»¬á...
Äñ¡¿¼ ¿º »α«ßΓÑ⌐Φ¿σ ¬½áßß«ó π»αáó½Ñ¡¿∩ ∩ó½∩ÑΓß∩ ¬½áßß
TButton. Ä¡ Σπ¡¬µ¿«¡¿απÑΓ »«ñ«í¡« φ½Ñ¼Ñ¡Γπ ßΓ᫬¿ ß«ßΓ«∩¡¿∩: φΓ«
µóÑΓ¡á∩ «í½áßΓ∞ «¬¡á ß »«¼ÑΘÑ¡¡δ¼ ¡á ¡Ñ⌐ ΓѬßΓ«óδ¼ ¿¼Ñ¡Ñ¼, »α¿
"¡áªáΓ¿¿" ¡á ¬«Γ«απε »«ßδ½áÑΓß∩ «»αÑñѽѡ¡á∩ ¬«¼á¡ñá. Å«ºáñ¿
¬¡«»¬¿ ¡áα¿ß«óá¡á ÑÑ "ΓÑ¡∞", í½áú«ñáα∩ τѼπ »α¿ ¡áªáΓ¿¿ ¡á ¬¡«»¬¿
»«½πτáÑΓß∩ φΣΣÑ¬Γ ¿σ ΓαÑσ¼Ñα¡«ú« »ÑαѼÑΘÑ¡¿∩.
ü«½∞Φ¿¡ßΓó« »á¡Ñ½Ñ⌐ ñ¿á½«úá ¿¼ÑεΓ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¡π ¿½¿
ñóÑ ¬¡«»¬¿. ìá¿í«½ÑÑ αáß»α«ßΓαá¡Ñ¡¡δ¼¿ ∩ó½∩εΓß∩ ¬¡«»¬¿ "OK" (τΓ«
º¡áτ¿Γ: "ƒ óßÑ ßñѽá½á. éδ ¼«ªÑΓÑ ºá¬αδΓ∞ »á¡Ñ½∞ ñ¿á½«úá ¿ »«½π-
τ¿Γ∞ αѺπ½∞ΓáΓδ") ¿ "Cancel" («Γ¼Ñ¡á) (τΓ« º¡áτ¿Γ: "ƒ σ«τπ ºá¬-
αδΓ∞ »á¡Ñ½∞ ñ¿á½«úá ¿ »α«¿ú¡«α¿α«óáΓ∞ óßÑ ßñѽᡡδÑ ó ¡Ñ¼ ¿º¼Ñ¡Ñ-
¡¿∩"). è¡«»¬á "Cancel" «íδτ¡« »«ßδ½áÑΓ Γπ ªÑ ¬«¼á¡ñπ cmCancel,
τΓ« ¿ ¬¡«»¬á ºá¬αδΓ¿∩ ¡á »á¡Ñ½¿ ñ¿á½«úá.
æπΘÑßΓóπÑΓ »∩Γ∞ ßΓá¡ñáαΓ¡δσ ñ¿á½«ú«óδσ ¬«¼á¡ñ, ¬«Γ«αδÑ ¼«úπΓ
íδΓ∞ »α¿ó∩ºá¡δ ¬ ¬½áßßπ TButton: cmOK, cmCancel, cmYes, cmNo ¿
Turbo Vision ñ½∩ æ++ = 74 =
cmDefault. ÅÑαóδÑ τÑΓδαÑ ¬«¼á¡ñδ Γá¬ªÑ ºá¬αδóáεΓ »á¡Ñ½¿ ñ¿á½«úá,
«íαáΘá∩ß∞ ñ½∩ φΓ«ú« ¬ ¼ÑΓ«ñπ EndModal ¬½áßßá TDialog, ¬«Γ«αδ⌐
ó«ßßΓá¡áó½¿óáÑΓ »αÑñδñπΘ¿⌐ ¼«ñá½∞¡δ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ó ¼«-
ñá½∞¡«Ñ ß«ßΓ«∩¡¿Ñ.
éδ ¼«ªÑΓÑ Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ ¬¡«»¬¿ ñ½∩ »«ß佬¿ ¬«¼á¡ñ, ß»Ñ-
µ¿Σ¿τ¡δσ ñ½∩ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
// «Γ½¿τ¿∩ «Γ tvguid12: ñ«íáó½Ñ¡δ ¬¡«»¬¿
void TMyApp::newDialog()
{
TDialog *αd = new TDialog(TRect(20, 6, 60, 19), "Demo Dialog");
if( αd )
{
αd->insert( new TButton( TRect( 15, 10, 25, 12 ),"~O~K",cmOK,
bfDefault ));
αd->insert( new TButton( TRect( 28, 10, 38, 12 ), "~C~ancel",
cmCancel, bfNormal ));
deskToα->execView( αd );
}
destroy( αd );
}
Åα¿¼Ñτá¡¿Ñ: φΓ« »α¿¼Ñα, ¡áσ«ñ∩Θ¿⌐ß∩ ó Σá⌐½Ñ TVGUID13.CPP.
Åα¿ ß«ºñá¡¿¿ ¬¡«»¬¿ ó ¬«¡ßΓαπ¬Γ«α ΓαÑíπÑΓß∩ »ÑαÑñáΓ∞ τÑΓδαÑ
áαúπ¼Ñ¡Γá:
1. Äí½áßΓ∞, ¬«Γ«απε íπñÑΓ ºá¡¿¼áΓ∞ ¬¡«»¬á (¡Ñ ºáíπñ∞ΓÑ
«ßΓáó¿Γ∞ ¼ÑßΓ« ñ½∩ ΓÑ¡¿!)
2. ÆѬßΓ, ¬«Γ«αδ⌐ »«∩ó¿Γß∩ ¡á ¬¡«»¬Ñ.
3. 諼á¡ñá, ¬«Γ«αá∩ íπñÑΓ »α¿ó∩ºá¡á ¬ ¬¡«»¬Ñ.
4. ö½áú, π¬áºδóáεΘ¿⌐ Γ¿» ¬¡«»¬¿ («íδτ¡δ⌐ ¿½¿ »« π¼«½τá¡¿ε),
á ¡Ñ «íδτ¡δ⌐ «»ÑαáΓ«α ∩ºδ¬ æ++.
Å«ß½Ñ Γ«ú«, ¬á¬ »«½∞º«óáΓѽ∞ ºá¬α«ÑΓ ¿½¿ «Γ¼Ñ¡¿Γ »á¡Ñ½∞ ñ¿á-
½«úá, π»αáó½Ñ¡¿Ñ »α«úαá¼¼«⌐ óÑα¡ÑΓß∩ ¿º ExecView, á ßá¼ «íΩѬΓ
"»á¡Ñ½∞ ñ¿á½«úá" íπñÑΓ π¡¿τΓ«ªÑ¡. Å«ñτÑα¬¡Ñ¼, τΓ« ñ½∩ φΓ«ú«
¿ß»«½∞ºπÑΓß∩ ¼ÑΓ«ñ destoy, á ¡Ñ «íδτ¡δ⌐ «»ÑαáΓ«α ∩ºδ¬á æ++
delete, ¬á¬ óδ ¼«ú½¿ íδ »αÑñ»«½«ª¿Γ∞, »«ßΓα«¿ó «íΩÑ¬Γ »α¿ »«¼«Θ¿
«»ÑαáΓ«αá new. éßÑ «íΩѬΓδ, »«α«ªñÑ¡¡δÑ «Γ TObject ¿ ß«ºñá¡¡δÑ
»α¿ »«¼«Θ¿ «»ÑαáΓ«αá new, ñ«½ª¡δ πñá½∩Γ∞ß∩ »α¿ »«¼«Θ¿ π¡áß½Ññ«-
óá¡¡«ú« ¼ÑΓ«ñá destroy ¬½áßßá Tobject. ÆᬠªÑ, ¬á¬ ¿ delete,
destroy ΓαÑíπÑΓ ó ¬áτÑßΓóÑ »áαá¼ÑΓαá «ñ¿¡ áαúπ¼Ñ¡Γ - π¬áºáΓѽ∞ ¡á
«íΩѬΓ. àß½¿ óá¼ ¿¡ΓÑαÑß¡«, ºáτѼ ¿ »«τѼπ, Γ« í«½ÑÑ »«ñα«í¡πε
¿¡Σ«α¼áµ¿ε «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε ó Turbo Vision óδ ¡á⌐ñÑΓÑ ó ú½á-
óÑ 6, á Γá¬ªÑ ó ú½áóÑ 13 (ß¼. ¿¡Σ«α¼áµ¿ε « ¬½áßßáσ TVMemMgr ¿
TObject). ìá ¡áßΓ«∩ΘѼ φΓá»Ñ ó᪡« º¡áΓ∞ ½¿Φ∞, τΓ« destroy ºáí«-
Turbo Vision ñ½∩ æ++ = 75 =
Γ¿Γß∩ «í« óßѼ ñѽ¿¬áΓ¡«¼ ó¡πΓαÑ¡¡Ñ¼ σ«º∩⌐ßΓóÑ, ¡Ñ«íσ«ñ¿¼«¼ ñ½∩
π¡¿τΓ«ªÑ¡¿∩ «íΩÑ¬Γ«ó, »«α«ªñÑ¡¡δσ «Γ TObject, ¿ ß½Ññ¿Γ ºá ΓѼ,
τΓ«íδ ß«ßΓ«∩¡¿Ñ óßÑσ «íΩÑ¬Γ«ó, α«ñßΓóÑ¡¡δσ ¬ Γ«¼π, ¬«Γ«αδ⌐ óδ
σ«Γ¿ΓÑ π¡¿τΓ«ª¿Γ∞, í佫 íδ ¡πª¡δ¼ «íαẫ¼ ¿º¼Ñ¡Ñ¡«.
╔═[■]═══════ Demo Dialog Box ═════════╗
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ OK ▄ Cancel ▄ ║
║ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ║
╚═════════════════════════════════════╝
É¿ßπ¡«¬ 2.8. Ĭ¡« ñ¿á½«úá ß ¬¡«»¬á¼¿.
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« ó π»αáó½∩εΘѼ ß½«óÑ "Cancel" íπ¬óá
"C" ¡Ñ óδñѽѡá, Γ.¬. πªÑ ßπΘÑßΓóπÑΓ π»αáó½∩εΘá∩ ¬½áó¿Φá (Esc)
ñ½∩ «Γ¼Ñ¡δ »á¡Ñ½¿ ñ¿á½«úá. é αѺπ½∞ΓáΓÑ, "C" ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«-
óá¡á ó ¬áτÑßΓóÑ ß«¬αáΘÑ¡¿∩ ñ½∩ ñαπú«ú« π»αáó½∩Ѽ«ú« «íΩѬΓá.
Äíδτ¡δÑ ¬¡«»¬¿ ¿ ¬¡«»¬¿, αáí«ΓáεΘ¿Ñ »« π¼«½τá¡¿ε
Åα¿ ß«ºñá¡¿¿ ¬¡«»¬¿, Ñ⌐ ßΓáó¿Γß∩ ó ß««ΓóÑΓßΓó¿Ñ Σ½áú - ½¿í«
bfNormal, ½¿í« bfDefault. ü«½∞Φ¿¡ßΓó« ¬¡«»«¬ íπñÑΓ ¿¼ÑΓ∞ Σ½áú
bfNormal. è¡«»¬á ªÑ ß Σ½áú«¼ bfDefault íπñÑΓ ∩ó½∩Γ∞ß∩ ¬¡«»¬«⌐,
αáí«ΓáεΘÑ⌐ »« π¼«½τá¡¿ε. ¥Γ« «º¡áτáÑΓ, τΓ« ñá¡¡á∩ ¬¡«»¬á íπñÑΓ
»ÑαÑó«ñ¿Γ∞ß∩ ó ß«ßΓ«∩¡¿Ñ "¡áªáΓ«" »α¿ ¡áªáΓ¿¿ ¬½áó¿Φ¿ Enter.
Turbo Vision ¡Ñ ßΓá¡ÑΓ »α«óÑα∩Γ∞ ¡á½¿τ¿Ñ Γ«½∞¬« «ñ¡«⌐ ¬¡«»¬¿, αá-
í«ΓáεΘÑ⌐ »« π¼«½τá¡¿ε - óδ ñ«½ª¡δ φΓ« ßñѽáΓ∞ ßἿ. àß½¿ π óáß
íπñÑΓ í«½ÑÑ «ñ¡«⌐ Γᬫ⌐ ¬¡«»¬¿, Γ« αѺπ½∞ΓáΓ íπñÑΓ ¡Ñ»αÑñ߬áºπѼ.
Äíδτ¡« ¬¡«»¬á "OK" »á¡Ñ½¿ ñ¿á½«úá ∩ó½∩ÑΓß∩ ¬¡«»¬«⌐, αáí«Γáε-
ΘÑ⌐ »« π¼«½τá¡¿ε, ¿ »«½∞º«óáΓѽ¿ »α¿óδ¬áεΓ ¡áª¿¼áΓ∞ ¬½áó¿Φπ Enter
ñ½∩ ºá¬αδΓ¿∩ »á¡Ñ½¿ ñ¿á½«úá ¿ ñá½∞¡Ñ⌐ΦÑ⌐ «íαáí«Γ¬¿ ¿¡Σ«α¼áµ¿¿,
óóÑñÑ¡¡«⌐ ó ñá¡¡«⌐ »á¡Ñ½¿.
Ç¬Γ¿ó¡δÑ π»αáó½∩εΘ¿Ñ «íΩѬΓδ
ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« ¬«úñá »á¡Ñ½∞ ñ¿á½«úá «Γ¬αδΓá, «ñ¿¡ ¿º
«íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ ó ¡Ñ⌐ óßÑúñá óδñѽѡ ¡Ñ»«ßαÑñßΓóÑ¡¡« ßó«¿¼
µóÑΓ«¼. ¥Γ«Γ «íΩÑ¬Γ π»αáó½Ñ¡¿∩ ¡áºδóáÑΓß∩ á¬Γ¿ó¡δ¼ «íΩÑ¬Γ«¼. Æá-
¬«Ñ óδñѽѡ¿Ñ á¬Γ¿ó¡δσ «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ «ß«íÑ¡¡« »«½Ñº¡« »α¿
óó«ñÑ ñá¡¡δσ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß ¬½áó¿áΓπαδ, íѺ »«¼«Θ¿ "¼δΦ¿".
ìá»α¿¼Ñα, Ñß½¿ ¬¡«»¬á á¬Γ¿ó¡á, Γ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ "¡áªáΓ∞" ¡á
¡ÑÑ, ¡áª¿¼áó ¡á ¬½áó¿Φπ "Åα«íѽ". ìπ á óó«ñ¿ó ß¿¼ó«½δ ó ßΓ᫬π
óó«ñá ó««íΘÑ ¼«ª¡« ½¿Φ∞ ó Γ«¼ ß½πτáÑ, Ñß½¿ ñá¡¡á∩ ßΓ᫬á óó«ñá
á¬Γ¿ó¡á ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ óαѼѡ¿.
Turbo Vision ñ½∩ æ++ = 76 =
ä½∩ »«ß½Ññ«óáΓѽ∞¡«⌐ "á¬Γ¿ó¿ºáµ¿¿" «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ ó
ó »á¡Ñ½¿ ñ¿á½«úá, »«½∞º«óáΓѽ∞ ñ«½ªÑ¡ ¡áªáΓ∞ ¡á ¬½áó¿Φπ Tab. ê¼Ñ-
¡á «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ ¡Ñ ¼«úπΓ íδΓ∞ á¬Γ¿ó¡δ¼¿, »«φΓ«¼π ¬½áó¿Φá
Tab "»α«»π߬áÑΓ" ß««ΓóÑΓßΓóπεΘ¿Ñ «í½áßΓ¿ «¬¡á.
Åα¿¼Ñτá¡¿Ñ: «í ¿¼Ñ¡áσ (¼ÑΓ¬áσ) ß¼. ¡¿ªÑ ó ñá¡¡«⌐ ú½áóÑ.
éδ ¼«ªÑΓÑ ºáσ«ΓÑΓ∞, τΓ«íδ »«½∞º«óáΓѽ∞ ¿¼Ñ½ 󫺼«ª¡«ßΓ∞ "«í-
σ«ñ¿Γ∞" »á¡Ñ½∞ ñ¿á½«úá (ß »«¼«Θ∞ε ¬½áó¿Φ¿ Tab) ó «»αÑñѽѡ¡«¼ ½«-
ú¿τÑ߬«¼ »«α∩ñ¬Ñ. Å«α∩ñ«¬ Γᬫú« «íσ«ñá - φΓ« »«α∩ñ«¬, ó ¬«Γ«α«¼
«íΩѬΓδ »«¼ÑΘ὿ß∞ ó »á¡Ñ½∞ ñ¿á½«úá. é¡πΓα¿ ¡Ñú« «íΩѬΓδ «íß½πª¿-
óáεΓß∩ ó µ¿¬½¿τÑ߬«¼ »«α∩ñ¬Ñ, »α¿ ¬«Γ«α«¼ »«ß½Ññ¡¿⌐ »«¼ÑΘÑ¡¡δ⌐
«íΩÑ¬Γ »α¿ó∩ºá¡ ¬ »Ñαó«¼π.
Å« π¼«½τá¡¿ε, á¬Γ¿ó¿ºáµ¿∩ «ßΓá¡áó½¿óáÑΓß∩ ¡á »«ß½Ññ¡Ñ¼ »«¼Ñ-
ΘÑ¡¡«¼ «íΩѬΓÑ. é φëà ¼«¼Ñ¡Γ óδ óδíαáΓ∞ ¡«óδ⌐ á¬Γ¿ó¡δ⌐ «íΩѬΓ
π»αáó½Ñ¡¿∩ ½¿í« »α¿ »«¼«Θ¿ ¼ÑΓ«ñá selectNext, ½¿í« τÑαѺ «íαáΘÑ-
¡¿Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¬ ¼ÑΓ«ñπ select. îÑΓ«ñ selectNext »«ºó«½∩ÑΓ
óδ»«½¡∩Γ∞ »ÑαѼÑΘÑ¡¿Ñ »« ß»¿ß¬π «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ ó »α∩¼«¼ ¿
«íαáΓ¡«¼ ¡á»αáó½Ñ¡¿¿. àß½¿ óδ ¡á»¿ΦÑΓÑ ó »α«úαá¼¼Ñ:
selectNext(False), Γ« íπñÑΓ óδ»«½¡∩Γ∞ß∩ »ÑαѼÑΘÑ¡¿Ñ ó »α∩¼«¼ ¡á»-
αáó½Ñ¡¿¿ (ó »«α∩ñ¬Ñ Tab (Γáíπ½∩µ¿¿)), á »α¿ ¿ß»«½∞º«óá¡¿¿
selectNext (True) - ó «íαáΓ¡«¼.
Åα¿¼Ñτá¡¿Ñ: »«α∩ñ«¬ "«íσ«ñá" á¬Γ¿ó¡δσ «íΩÑ¬Γ«ó ¿¼ÑÑΓ »α¿¡µ¿»¿á½∞-
¡«Ñ º¡áτÑ¡¿Ñ!
éδí¿αá⌐ΓÑ!
ùáßΓ« »αÑñ½áúáѼδÑ óἿ óáα¿á¡Γδ «»Ñαᵿ⌐ ñ½∩ »«½∞º«óáΓѽÑ⌐
ó »á¡Ñ½¿ ñ¿á½«úá ¡Ñ ¼«úπΓ íδΓ∞ óδíαá¡δ ß »«¼«Θ∞ε «Γñѽ∞¡δσ ¬¡«-
»«¬. Turbo Vision »αÑñ«ßΓáó½∩ÑΓ »«½∞º«óáΓѽ∩¼ α∩ñ »«½Ñº¡δσ ßΓá¡-
ñáαΓ¡δσ «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ ñ½∩ φΓ¿σ µÑ½Ñ⌐. ìá¿í«½ÑÑ »«½Ñº¡δ¼¿ ¿º
¡¿σ ∩ó½∩εΓß∩ ¬¡«»¬¿ ß ¡Ñºáó¿ß¿¼«⌐ ¿ ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐.
è¡«»¬¿ ß ¡Ñºáó¿ß¿¼«⌐ ¿ ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ Σπ¡¬µ¿«¡¿απεΓ
»αá¬Γ¿τÑ߬¿ ¿ñÑ¡Γ¿τ¡δ¼ «íαẫ¼. àñ¿¡ßΓóÑ¡¡δ¼ αẽ¿τ¿Ñ¼ ∩ó½∩ÑΓß∩
Γ«, τΓ« óδ ¼«ªÑΓÑ π¬áºδóáΓ∞ ó¬½ετÑ¡¿Ñ Ññ¿¡«óαѼѡ¡« ½εí«ú« ¬«½¿-
τÑßΓóá ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐, ¡« Γ«½∞¬« «ñ¡π «»αÑñѽѡ-
¡πε ¬¡«»¬π ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐. Åα¿τ¿¡á ßσ«ªÑßΓ¿ Σπ¡¬µ¿⌐ φΓ¿σ
ñóπσ ¡áí«α«ó ¬¡«»«¬ ß«ßΓ«¿Γ ó Γ«¼, τΓ« «¡¿ ∩ó½∩εΓß∩ »«α«ªñÑ¡¡δ¼¿
«Γ «ñ¡«ú« ¬½áßßá Turbo Vision - ¬½áßßá TCluster.
櫺ñá¡¿Ñ ¬½áßΓÑαá
éá¼ óα∩ñ ½¿ »«ΓαÑíπÑΓß∩ ß«ºñáóáΓ∞ »α«ßΓ«⌐ φ¬ºÑ¼»½∩α ¬½áßßá
TCluster. ū߬«½∞¬π »α«µÑßßδ «αúá¡¿ºáµ¿¿ ¬½áßΓÑαá ñ½∩ ¬¡«»«¬ ß
¡Ñºáó¿ß¿¼«⌐ ¿ ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ «ñ¿¡á¬«óδ, Γ« óá¼ ñ«ßΓáΓ«τ¡«
¿ºπτ¿Γ∞ ¿σ ºá «ñ¿¡ αáº.
Turbo Vision ñ½∩ æ++ = 77 =
éá¼ ß½ÑñπÑΓ ñ«íáó¿Γ∞ ¬ ¼ÑΓ«ñπ TMyApp::newDialog ß½ÑñπεΘ¿⌐
Σαáú¼Ñ¡Γ »α«úαá¼¼δ, »α¿τѼ »«ß½Ñ ß«ºñá¡¿∩ »á¡Ñ½¿ ñ¿á½«úá, ¡« »Ñ-
αÑñ ñ«íáó½Ñ¡¿Ñ¼ ¬¡«»«¬. è¡«»¬¿ ñ«½ª¡δ óßΓáó½∩Γ∞ß∩ ó ¬áτÑßΓóÑ
»«ß½Ññ¡¿σ «íΩÑ¬Γ«ó, ΓᬠτΓ« «¡¿ íπñπΓ »«ß½Ññ¡¿¼¿ ó »«α∩ñ¬Ñ Tab
(Γáíπ½∩µ¿¿).
┌────────────────┐
│ ( ) Hvarti │
│ ( ) Tilset │
│ ( ) Jarlsberg │
└────────────────┘
TView *b = new TCheckBoxes( TRect( 3, 3, 18, 6),
new TSItem( "~H~varti",
new TSItem( "~T~ilset",
new TSItem( "~J~arlsberg", 0 )
)));
αd->insert( b );
ê¡¿µ¿á½¿ºáµ¿∩ »α«µÑßßá ñ«ó«½∞¡« »α«ßΓá. éδ π¬áºδóáÑΓÑ »α∩¼«-
πú«½∞¡¿¬ ñ½∩ ¿º«íαáªÑ¡¿∩ «íΩÑ¬Γ«ó («ßΓáó½∩∩ ¼ÑßΓ« ñ½∩ ßá¼¿σ ¬¡«-
»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐), á ºáΓѼ ß«ºñáÑΓÑ ßó∩ºá¡¡δ⌐ ß»¿ß«¬
π¬áºáΓѽÑ⌐ ¡á ßΓ᫬¿, ¬«Γ«αδÑ íπñπΓ ¿º«íαáªáΓ∞ß∩ óß½Ññ ºá φΓ¿¼¿
¬¡«»¬á¼¿, ºáóÑαΦáѼδ⌐ π¬áºáΓѽѼ 0.
ç¡áτÑ¡¿∩ ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐
ÅαÑñδñπΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ß«ºñáÑΓ ¡áí«α ¬¡«»«¬ ß ΓαѼ∩
óáα¿á¡ΓἿ óδí«αá. ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« óδ ¡Ñ ºáñ὿ πßΓá¡«ó«τ-
¡δσ »áαá¼ÑΓα«ó ñ½∩ ¬áªñ«ú« ¿º «íΩÑ¬Γ«ó ß»¿ß¬á. Ä¡¿ óßÑ »« π¼«½τá-
¡¿ε íπñπΓ "ó䬽ετÑ¡δ". ì« óδ ¼«ªÑΓÑ πßΓá¡«ó¿Γ∞ ¿ Γá¬¿Ñ ¬¡«»¬¿,
¬«Γ«αδÑ íπñπΓ πªÑ "ó¬½ετÑ¡δ". é¼ÑßΓ« ¡Ñ«íσ«ñ¿¼«ßΓ¿ »α¿ßóá¿óá¡¿∩
º¡áτÑ¡¿⌐ »α¿ ºáñá¡¿¿ ß»¿ß¬á Turbo Vision »αÑñ«ßΓáó½∩ÑΓ ß»«ß«í
»α«ßΓ«ú« ºáñá¡¿∩ ¿ ß«σαá¡Ñ¡¿∩ º¡áτÑ¡¿⌐ ó¡Ñ ó¿ºπá½∞¡«⌐ ß«ßΓáó½∩ε-
ΘÑ⌐ π»αáó½Ñ¡¿∩.
ìáí«α ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ ¼«ªÑΓ ß«ñÑαªáΓ∞ ñ« 16
«íΩÑ¬Γ«ó.
é ¬½áßßÑ TCluster ßπΘÑßΓóπÑΓ »«½Ñ ñá¡¡δσ Γ¿»á ushort, 16 í¿Γ
¬«Γ«α«ú« ß««ΓóÑΓßΓóπεΓ ß«ßΓ«∩¡¿ε ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐.
Å«ß½Ñ ºáóÑαΦÑ¡¿∩ «αúá¡¿ºáµ¿¿ »á¡Ñ½¿ ñ¿á½«úá ó µÑ½«¼, óδ
ñ«½ª¡δ «º¡á¬«¼¿Γ∞ß∩ ß »«α∩ñ¬«¼ πßΓá¡«ó¬¿ ¿ τΓÑ¡¿∩ º¡áτÑ¡¿⌐ óßÑσ
φ½Ñ¼Ñ¡Γ«ó π»αáó½Ñ¡¿∩. é ñá¡¡δ⌐ ¼«¼Ñ¡Γ óδ ñ«½ª¡δ ß«ßαÑñ«Γ«τ¿Γ∞ß∩
¡á »αáó¿½∞¡«¼ αẼÑΘÑ¡¿¿ «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩.
櫺ñá¡¿Ñ ÑΘÑ «ñ¡«ú« ¬½áßΓÑαá
ÅÑαÑñ ΓѼ, ¬á¬ »«⌐Γ¿ ñá½∞ΦÑ, óδ ñ«½ª¡δ ñ«íáó¿Γ∞ ó »á¡Ñ½∞ ñ¿-
Ὣúá ¡áí«α ¬¡«»«¬ ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐, τΓ«íδ ßαáó¡¿Γ∞ ¿σ ß
Turbo Vision ñ½∩ æ++ = 78 =
¬¡«»¬á¼¿ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐. æ½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ
ñѼ«¡ßΓα¿απÑΓ «»αÑñѽѡ¿Ñ ¡áí«αá ¿º ΓαÑσ ¬¡«»«¬ ß ºáó¿ß¿¼«⌐
Σ¿¬ßᵿÑ⌐ óß½Ññ ºá «»αÑñѽѡ¿Ñ¼ óἿ ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßá-
µ¿Ñ⌐:
┌──────────────┐
│ (*) Solid │
│ ( ) Runny │
│ ( ) Melted │
└──────────────┘
b = new TRadioButtons( TRect( 22, 3, 34, 6),
new TSItem( "~S~olid",
new TSItem( "~R~unny",
new TSItem( "~M~elted", 0 )
)));
αd->insert( b );
Äß¡«ó¡δ¼ αẽ¿τ¿Ñ¼ ¼Ñªñπ φΓ¿¼¿ ó¿ñἿ ¬¡«»«¬ ∩ó½∩ÑΓß∩ Γ«,
τΓ« óδ ¼«ªÑΓÑ óδíαáΓ∞ ½¿Φ∞ «ñ¡π ¬¡«»¬π ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ ¿º
úαπ»»δ, á »Ñαóá∩ Γá¬á∩ ¬¡«»¬á »« π¼«½τá¡¿ε ßτ¿ΓáÑΓß∩ ó¬½ετÑ¡¡«⌐.
ū߬«½∞¬π óá¼ ¡Ñ ΓαÑíπÑΓß∩ ¿¡Σ«α¼áµ¿∩ « ß«ßΓ«∩¡¿¿ ¬áªñ«⌐ ¿º
¬¡«»«¬ ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ (óÑñ∞ Γ«½∞¬« «ñ¡á ¿º ¡¿σ ¼«ªÑΓ íδΓ∞
ó¬½ετÑ¡á, ¿ óδ ñ«½ª¡δ º¡áΓ∞ Γ«½∞¬«, ¬á¬á∩ ¿¼Ñ¡¡«), Γ« ñá¡¡δÑ «
¬¡«»¬áσ ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ ¡Ñ »αÑñßΓáó½∩εΓß∩ ó ó¿ñÑ í¿Γ«ó«ú«
¼áßß¿óá. ¥Γ« «º¡áτáÑΓ, τΓ« óδ ¼«ªÑΓÑ ¿¼ÑΓ∞ í«½ÑÑ 16 ßÑ½Ñ¬Γ¿ó¡δσ
¬¡«»«¬ »« óδí«απ, ¡« Γ.¬. ñá¡¡δÑ ¡Ñ«íσ«ñ¿¼« σαá¡¿Γ∞, Γ« óδ «úαá-
¡¿τÑ¡δ óѽ¿τ¿¡«⌐ 65536 ¬¡«»«¬ ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ ¡á «ñ¿¡
¬½áßΓÑα. ¥Γ« ¡Ñ »«ß½πª¿Γ ßÑα∞Ѻ¡«⌐ »«¼Ñσ«⌐ ñ½∩ óáΦÑ⌐ αáºαáí«Γ¬¿.
ç¡áτÑ¡¿Ñ ¡«½∞ íπñÑΓ π¬áºδóáΓ∞ ¡á óδí«α »Ñαó«⌐ ¬¡«»¬¿ ß ºáó¿ß¿¼«⌐
Σ¿¬ßᵿÑ⌐, º¡áτÑ¡¿Ñ Ññ¿¡¿µá - óΓ«α«⌐, ñó«⌐¬á - ΓαÑΓ∞Ñ⌐ ¿ Γ.ñ.
îáનα«ó¬á «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩
çáñá¡¿Ñ «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ ßἫ »« ßÑíÑ ¡Ñ ∩ó½∩ÑΓß∩ ñ«ßΓá-
Γ«τ¡δ¼. Åα«ßΓ«Ñ »αÑñ«ßΓáó½Ñ¡¿Ñ ¡áí«αá óáα¿á¡Γ«ó ñ½∩ óδí«αá ¼«ªÑΓ
¡Ñ ú«ó«α¿Γ∞ »«½∞º«óáΓÑ½ε ¡¿τÑú« « Γ«¼, τΓ« ªÑ «¡ óδí¿αáÑΓ. Turbo
Vision »αÑñ«ßΓáó½∩ÑΓ πñ«í¡δ⌐ ß»«ß«í ¼áનα«ó¬¿ «íΩÑ¬Γ«ó π»αáó½Ñ-
¡¿∩ ó Σ«α¼Ñ ñαπú«ú« «íΩѬΓá π»αáó½Ñ¡¿∩, TLabel.
¥Γá Σ«α¼á ¼áનα«ó¬¿ ¿¼ÑÑΓ í«½∞ΦÑ »αÑ¿¼πΘÑßΓó, τѼ ¬áªÑΓß∩
¡á »Ñαóδ⌐ óºú½∩ñ. TLabel ¡Ñ Γ«½∞¬« óδñáÑΓ ¿º«íαáªÑ¡¿Ñ ΓѬßΓá, ¡«
«¡ »α¿ó∩ºá¡ Γá¬ªÑ ¬ ñαπú«¼π «Γ«íαáªáѼ«¼π «íΩѬΓπ. ìáªáΓ¿Ñ ¡á
¼ÑΓ¬π »ÑαѼÑßΓ¿Γ óδñѽѡ¿Ñ ¡á ßó∩ºá¡¡δ⌐ ß ¡Ñ⌐ «Γ«íαáªáѼδ⌐ «íΩ-
ѬΓ. éδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ Γá¬ªÑ ñ½∩ ¼ÑΓ¬¿ ß«¬αáΘÑ¡¿Ñ ó ó¿ñÑ íπ¬-
óδ, »«¼ÑßΓ¿ó ÑÑ ó ß¿¼ó«½δ ~.
ä½∩ óδ»«½¡Ñ¡¿∩ ¼áનα«ó¬¿ óáΦ¿σ ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßá-
µ¿Ñ⌐, »«ß½Ñ ¿σ óßΓáó¬¿ ó »á¡Ñ½∞ ñ¿á½«úá, ñ«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ Σαáú-
¼Ñ¡Γ »α«úαá¼¼δ:
Turbo Vision ñ½∩ æ++ = 79 =
αd->insert(new TLabel(TRect(2, 2, 10, 3), "Cheeses", b));
ÆÑ»Ñα∞ óδ ¼«ªÑΓÑ á¬Γ¿ó¿º¿α«óáΓ∞ ¡áí«α ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐
Σ¿¬ßᵿÑ⌐ ¡áªáΓ¿Ñ¼ ¡á ¼áα¬Ñα "Cheeses" (ßδαδ). ¥Γ« ß««íΘáÑΓ ¡Ñ-
«ßóÑñ«¼½Ñ¡¡δ¼ »«½∞º«óáΓѽ∩¼, τΓ« «íΩѬΓδ »á¡Ñ½¿ ñ¿á½«úá ∩ó½∩εΓß∩
¼áα¬á¼¿ ßδαá.
Æᬿ¼ ªÑ «íαẫ¼ óδ ¼«ªÑΓÑ ¼áનα«óáΓ∞ ¿ ¬¡«»¬¿ ß ºáó¿ß¿¼«⌐
Σ¿¬ßᵿÑ⌐ ß »«¼«Θ∞ε ß½ÑñπεΘÑú« Σαáú¼Ñ¡Γá »α«úαá¼¼δ:
αd->insert(new TLabel(TRect(21, 2, 33, 3),"Consistency",b));
Åα¿¼Ñτá¡¿Ñ: φΓ« »α¿¼Ñα ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ TVGUID14.CPP.
ÉѺπ½∞ΓáΓ«¼ ∩ó½∩ÑΓß∩ ß½ÑñπεΘá∩ »á¡Ñ½∞ ñ¿á½«úá:
╔═[■]═══════ Demo Dialog Box ═════════════╗
║ ║
║ Cheeses Consistency ║
║ ┌────────────────┐ ┌──────────────┐ ║
║ │ [ ] Hvarti │ │ [*] Solid │ ║
║ │ [ ] Tilset │ │ [ ] Runny │ ║
║ │ [ ] Jarlsberg │ │ [ ] Melted │ ║
║ └────────────────┘ └──────────────┘ ║
║ ║
║ ║
║ OK ▄ Cancel ▄ ║
║ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ║
╚══════════════════════════════════════════╝
É¿ßπ¡«¬ 2.9. Åá¡Ñ½∞ ñ¿á½«úá ß ñ«íáó½Ñ¡¿Ñ¼ ¼áનα«óá¡¡δσ ¬½áßΓÑα«ó.
ÄíΩÑ¬Γ "ßΓ᫬á óó«ñá"
éδ ¼«ªÑΓÑ ñ«íáó¿Γ∞ ó óáΦπ »á¡Ñ½∞ ñ¿á½«úá ÑΘÑ «ñ¿¡ »α«ßΓ«⌐
«Γ«íαáªáѼδ⌐ «íΩÑ¬Γ «íΩѬΓá π»αáó½Ñ¡¿∩: «íΩÑ¬Γ ñ½∩ αÑñá¬Γ¿α«óá¡¿∩
óó«ñ¿¼δσ ßΓ᫬, ¡áºδóáѼδ⌐ ßΓ᫬«⌐ óó«ñá. ìá ßἫ¼ ñÑ½Ñ «íαáí«Γ¬á
ßΓ᫬¿ óó«ñá ∩ó½∩ÑΓß∩ ñ«ßΓáΓ«τ¡« ß½«ª¡δ¼ »α«µÑßß«¼, ¡« ß Γ«τ¬¿
ºαÑ¡¿∩ »α«úαá¼¼¿ßΓá ¿ß»«½∞º«óá¡¿Ñ ¬½áßßá TInαutLine ∩ó½∩ÑΓß∩
»α«ßΓδ¼.
Å«ß½Ñ ¡á»¿ßá¡¿∩ Σαáú¼Ñ¡Γá »α«úαá¼¼δ »« ¼áનα«ó¬Ñ ¬¡«»«¬ ß
ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ ¿ »ÑαÑñ óδ»«½¡Ñ¡¿Ñ¼ «»Ñαᵿ⌐ ß »á¡Ñ½∞ε ñ¿á½«-
úá ñ«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ:
// ñ«íáó½Ñ¡á ßΓ᫬á óó«ñá
b = new TInαutLine( TRect( 3, 8, 37, 9 ), 128 );
αd->insert( b );
αd->insert( new TLabel( TRect( 2, 7, 24, 8 ),
"Delivery Instructions", b ));
Åα¿¼Ñτá¡¿Ñ: φΓ« »α¿¼Ñα ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ TVGUID15.CPP.
Turbo Vision ñ½∩ æ++ = 80 =
çáñá¡¿Ñ ßΓ᫬¿ óó«ñá ταѺóδτá⌐¡« »α«ßΓ«: óδ ß«ºñáÑΓÑ »α∩¼«π-
ú«½∞¡¿¬, ¬«Γ«αδ⌐ «»αÑñѽ∩ÑΓ ñ½¿¡π ßΓ᫬¿ óó«ñá ¡á φ¬αá¡Ñ.
àñ¿¡ßΓóÑ¡¡δ¼ ΓαÑíπεΘ¿¼ß∩ ¬α«¼Ñ φΓ«ú« »áαá¼ÑΓα«¼ ∩ó½∩ÑΓß∩ «»αÑñÑ-
½Ñ¡¿Ñ ¼á¬ß¿¼á½∞¡«⌐ ñ½¿¡δ αÑñá¬Γ¿απѼ«⌐ ßΓ᫬¿. Ä¡á ¼«ªÑΓ »αÑóδ-
ΦáΓ∞ ñ½¿¡π ¿º«íαáªáѼ«⌐ ßΓ᫬¿, Γ.¬. ¬½áßß TInαutLine ¿¼ÑÑΓ ó«º-
¼«ª¡«ßΓ∞ »α«¬απΓ¬¿ ßΓ᫬ ó»ÑαÑñ ¿ ¡áºáñ. æΓ᫬á óó«ñá ¼«ªÑΓ »«
π¼«½τá¡¿ε «íαáíáΓδóáΓ∞ ¡áªáΓ¿∩ ¬½áó¿Φ, ¬«¼á¡ñδ αÑñá¬Γ¿α«óá¡¿∩ ¿
¡áªáΓ¿∩ ¬¡«»«¬ "¼δΦ¿" ¿ »ÑαѼÑΘÑ¡¿∩ "¼δΦ¿".
╔═[■]═══════ Demo Dialog Box ═════════════╗
║ ║
║ Cheeses Consistency ║
║ ┌────────────────┐ ┌──────────────┐ ║
║ │ [ ] Hvarti │ │ [*] Solid │ ║
║ │ [ ] Tilset │ │ [ ] Runny │ ║
║ │ [ ] Jarlsberg │ │ [ ] Melted │ ║
║ └────────────────┘ └──────────────┘ ║
║ ║
║ Delivery instructions ║
║ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ║
║ ║
║ OK ▄ Cancel ▄ ║
║ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ║
╚══════════════════════════════════════════╝
É¿ßπ¡«¬ 2.10. Åá¡Ñ½∞ ñ¿á½«úá ß ñ«íáó½Ñ¡¿Ñ¼ ßΓ᫬¿ óó«ñá.
æΓ᫬á óó«ñá ¿¼ÑÑΓ Γá¬ªÑ ¼ÑΓ¬π, Γ.¬. ¡Ñ¼áનα«óá¡¡δÑ ßΓ᫬¿
óó«ñá ¼«úπΓ ÑΘÑ í«½∞ΦÑ ºá»πΓáΓ∞ »«½∞º«óáΓѽ∩, τѼ ¡Ñ¼áનα«óá¡¡δÑ
¬½áßΓÑαδ.
ôßΓá¡«ó¬á ¿ »«½πτÑ¡¿Ñ ñá¡¡δσ
Å«ß½Ñ Γ«ú«, ¬á¬ óδ ß«ºñ὿ óÑß∞¼á ß½«ª¡πε »á¡Ñ½∞ ñ¿á½«úá, óδ
ñ«½ª¡δ π¬áºáΓ∞, ¬á¬ ¿¼ »«½∞º«óáΓ∞ß∩. éδ πªÑ πßΓᡫ󿽿 ¿¡ΓÑαΣÑ⌐ß
»«½∞º«óáΓѽ∩; ΓÑ»Ñα∞ óá¼ ΓαÑíπÑΓß∩ πßΓá¡«ó¿Γ∞ »α«úαá¼¼¡δ⌐ ¿¡ΓÑα-
ΣÑ⌐ß. ì὿τ¿Ñ π»αáó½∩εΘ¿σ «íΩÑ¬Γ«ó óá¼ ¼á½« ó φΓ«¼ »«¼«ªÑΓ, Ñß½¿
óδ ¡Ñ º¡áÑΓÑ, ¬á¬ »«½πτ¿Γ∞ ¿¡Σ«α¼áµ¿ε «Γ ¡¿σ!
éδ ñ«½ª¡δ ¿¼ÑΓ∞ 󫺼«ª¡«ßΓ∞ óδ»«½¡¿Γ∞ ñóÑ ú½áó¡δÑ óÑΘ¿: ºá-
ñáΓ∞ »Ñαó«¡áτá½∞¡δÑ º¡áτÑ¡¿∩ «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩, »α¿ «Γ¬αδΓ¿¿
»á¡Ñ½¿ ñ¿á½«úá, ¿ »«½πτ¿Γ∞ ¿σ ¡«óδÑ º¡áτÑ¡¿∩, »α¿ ºá¬αδΓ¿¿ »á¡Ñ½¿
ñ¿á½«úá. ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« óá¼ ¡Ñ ΓαÑíπÑΓß∩ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ñá¡-
¡δÑ ó¡Ñ »á¡Ñ½¿ ñ¿á½«úá, »«¬á óδ Ñú« πß»ÑΦ¡« ¡Ñ ºá¬α«ÑΓÑ. àß½¿
»«½∞º«óáΓѽ∞ αÑΦ¿Γ «Γ¼Ñ¡¿Γ∞ »á¡Ñ½∞ ñ¿á½«úá, óδ ñ«½ª¡δ ¿¼ÑΓ∞ ó«º-
¼«ª¡«ßΓ∞ ¿ú¡«α¿α«óáΓ∞ ½εíδÑ ñÑ⌐ßΓó¿∩, óδ»«½¡∩εΘ¿Ñß∩ »α¿ «Γ¬αδΓ«⌐
»á¡Ñ½¿.
Turbo Vision, ¬ ßτáßΓ∞ε, «í½ÑúτáÑΓ φΓπ Σπ¡¬µ¿ε. éáΦá »α«ú-
αá¼¼á »α¿ «Γ¬αδΓ¿¿ »á¡Ñ½¿ ñ¿á½«úá »ÑαÑñáÑΓ ó ¡ÑÑ «»αÑñѽѡ¡πε ¿¡-
Σ«α¼áµ¿«¡¡πε ºá»¿ß∞. è«úñá »«½∞º«óáΓѽ∞ ºá¬αδóáÑΓ »á¡Ñ½∞ ñ¿á½«úá,
Turbo Vision ñ½∩ æ++ = 81 =
Γ« »α«úαá¼¼Ñ ΓαÑíπÑΓß∩ óδ»«½¡¿Γ∞ »α«óÑα¬π ¡«α¼á½∞¡«⌐ «Γ¼Ñ¡δ ¿½¿
ºá¬αδΓ¿∩ »á¡Ñ½¿ ñ¿á½«úá. àß½¿ «¡á íδ½á «Γ¼Ñ¡Ñ¡á, Γ« óδ ¼«ªÑΓÑ
»α«ñ«½ªáΓ∞ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ íѺ ¿º¼Ñ¡Ñ¡¿∩ ºá»¿ß¿. àß½¿ »á¡Ñ½∞
ñ¿á½«úá íδ½á πß»ÑΦ¡« ºá¬αδΓá, Γ« óδ ¼«ªÑΓÑ ßτ¿ΓáΓ∞ ºá»¿ß∞ ¿º »á-
¡Ñ½¿ ñ¿á½«úá ó Γ«⌐ ªÑ Σ«α¼Ñ, ó ¬á¬«⌐ «¡á íδ½á ó ¡Ñú« »ÑαÑñá¡á.
é¿αΓπá½∞¡δÑ ¼ÑΓ«ñδ setData ¿ getData ¿ß»«½∞ºπεΓß∩ ñ½∩ ¬«»¿-
α«óá¡¿∩ ñá¡¡δσ ó «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿ ¿º «Γ«íαáªáѼ«ú« «íΩѬΓá.
èáªñδ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ αáß»«½áúáÑΓ «íÑ¿¼¿ φΓ¿¼¿ ¼ÑΓ«ñἿ.
è«úñá ¿¡¿µ¿á½¿ºáµ¿∩ úαπ»»δ (Γᬫ⌐, ¬á¬ TDialog) »α«¿ºó«ñ¿Γß∩
ß »«¼«Θ∞ε ¼ÑΓ«ñá setData, «¡á »ÑαÑñáÑΓ ñá¡¡δÑ »«ßαÑñßΓó«¼ ¼ÑΓ«ñá
setData ¬áªñ«ú« ¿º ßó«¿σ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó.
àß½¿ óδ «íαáΘáÑΓÑß∞ ¬ ¼ÑΓ«ñπ setData úαπ»»δ, Γ« óδ »ÑαÑñáÑΓÑ
Ѽπ ºá»¿ß∞ ñá¡¡δσ, ß«ñÑαªáΘπε ñá¡¡δÑ ñ½∩ ¬áªñ«ú« «Γ«íαáªáѼ«ú«
«íΩѬΓá ó úαπ»»Ñ. éá¼ ß½ÑñπÑΓ «αúá¡¿º«óáΓ∞ ñá¡¡δÑ ¬áªñ«ú« «Γ«íαá-
ªáѼ«ú« «íΩѬΓá ó Γ«¼ ªÑ »«α∩ñ¬Ñ, ó ¬á¬«¼ «¡¿ í뫨 »«¼ÑΘÑ¡δ ó
úαπ»»π.
éδ ñ«½ª¡δ Γá¬ªÑ »αÑñßΓáó¿Γ∞ ñá¡¡δÑ ñ½∩ ¬áªñ«ú« «Γ«íαáªáѼ«ú«
«íΩѬΓá ó ¡πª¡«¼ αẼÑαÑ. èáªñδ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿¼ÑÑΓ ¼ÑΓ«ñ
dataSize, ¬«Γ«αδ⌐ ºáñáÑΓ αẼÑα »α«ßΓαá¡ßΓóá ñ½∩ ñá¡¡δσ ó φΓ«¼
«Γ«íαáªáѼ«¼ «íΩѬΓÑ. èáªñδ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¬«»¿απÑΓ ñá¡¡δÑ
¿º ºá»¿ß¿ ñá¡¡δσ ó «íΩÑ¼Ñ dataSize ¿ ºáΓѼ ß »«¼«Θ∞ε π¬áºáΓѽ∩
«í«º¡áτáÑΓ ¼ÑßΓ« ¡áτá½á ß½ÑñπεΘÑú« «Γ«íαáªáѼ«ú« «íΩѬΓá. àß½¿
ñá¡¡δÑ ó «Γ«íαáªáѼ«¼ «íΩѬΓÑ ¿¼ÑεΓ ¡Ñ ëà αẼÑα, Γ« ¬áªñδ⌐
»«ß½ÑñπεΘ¿⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ íπñÑΓ Γá¬ªÑ ¬«»¿α«óáΓ∞ ¡ÑóÑα¡δÑ
ñá¡¡δÑ.
àß½¿ óδ ß«ºñáÑΓÑ ¡«óδ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿ ñ«íáó½∩ÑΓÑ ó
¡Ñú« »«½∩ ñá¡¡δσ, ¡Ñ ºáíπñ∞ΓÑ »ÑαÑ«»αÑñѽ¿Γ∞ ¼ÑΓ«ñ dataSize,
setData ¿ getData Γ.«., τΓ«íδ «¡¿ «íαáíáΓδó὿ »αáó¿½∞¡δÑ º¡áτÑ-
¡¿∩. Å«α∩ñ«¬ ¿ αẼÑαδ ñá¡¡δσ ó ßΓαπ¬ΓπαÑ ñá¡¡δσ «»αÑñѽ∩εΓß∩ óá-
¼¿. àß½¿ óδ «Φ¿íÑΓÑß∞, Γ« ¬«¼»¿½∩Γ«α ¡Ñ óδñáßΓ ß««íΘÑ¡¿Ñ «í «Φ¿í-
„.
Å«ß½Ñ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ ó »á¡Ñ½¿ ñ¿á½«úá óáΦÑ⌐ »α«úαá¼¼δ
ó¡áτá½Ñ ß½ÑñπÑΓ πíÑñ¿Γ∞ß∩, τΓ« »á¡Ñ½∞ ñ¿á½«úá ¡Ñ íδ½á «Γ¼Ñ¡Ñ¡á, á
ºáΓѼ «íαáΓ¿Γ∞ß∩ ¬ ¼ÑΓ«ñπ getData, τΓ«íδ »«¼ÑßΓ¿Γ∞ ¿¡Σ«α¼áµ¿ε ¿º
»á¡Ñ½¿ ñ¿á½«úá «íαáΓ¡« ó »α«úαá¼¼π.
Æᬿ¼ «íαẫ¼, ó óáΦѼ »α¿¼ÑαÑ »α«úαá¼¼δ óδ »«ß½Ññ«óáΓѽ∞¡«
¿¡¿µ¿á½¿º¿απÑΓÑ ¬½áßΓÑα ¬¡«»«¬ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐, ¼ÑΓ¬π,
¬½áßΓÑα ¬¡«»«¬ ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐, ¼ÑΓ¬π, ßΓ᫬π óó«ñá ñ½¿¡«⌐
ñ« 128 ß¿¼ó«½«ó, ¼ÑΓ¬π ¿ ñóÑ ¬¡«»¬¿ (Ok ¿ Cancel). é Γáí½¿µÑ 2.1
»α¿óÑñÑ¡δ ΓαÑí«óá¡¿∩ ¬ ñá¡¡δ¼ ñ½∩ ¬áªñ«⌐ ¿º ¡¿σ.
Turbo Vision ñ½∩ æ++ = 82 =
Æáí½¿µá 2.1. äá¡¡δÑ ñ½∩ «íΩÑ¬Γ«ó π»αáó½Ñ¡¿∩ »á¡Ñ½¿ ñ¿á½«úá
────────────────────────────────────────────────────────────
¥½Ñ¼Ñ¡Γ π»αáó½Ñ¡¿∩ ÆαÑíπѼδÑ ñá¡¡δÑ
────────────────────────────────────────────────────────────
è¡«»¬¿ ß ¡Ñºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ Word (ß½«ó«)
îÑΓ¬á ¡¿¬á¬¿Ñ
è¡«»¬¿ ß ºáó¿ß¿¼«⌐ Σ¿¬ßᵿÑ⌐ Word (ß½«ó«)
îÑΓ¬á ¡¿¬á¬¿Ñ
æΓ᫬á óó«ñá string[128] (ßΓ᫬á)
îÑΓ¬á ¡¿¬á¬¿Ñ
è¡«»¬á ¡¿¬á¬¿Ñ
è¡«»¬á ¡¿¬á¬¿Ñ
────────────────────────────────────────────────────────────
ÄΓ«íαáªáѼδÑ «íΩѬΓδ, ¬«Γ«αδÑ ¡Ñ ΓαÑíπεΓ ñá¡¡δσ (ΓᬿÑ, ¬á¬
¼ÑΓ¬¿ ¿ ¬¡«»¬¿) ¿ß»«½∞ºπεΓ ¼ÑΓ«ñ getData, ¬«Γ«αδ⌐ «¡¿ ¡áß½ÑñπεΓ
«Γ ¬½áßßá TView, ¬«Γ«αδ⌐ ¡Ñ óδ»«½¡∩ÑΓ ¡¿¬á¬¿σ ñÑ⌐ßΓó¿⌐, »«φΓ«¼π
óδ ºñÑß∞ ¡Ñ ñ«½ª¡δ «íαáΘáΓ∞ ¡á ¡¿σ 󡿼᡿Ñ. ¥Γ« «º¡áτáÑΓ, τΓ«
»α¿ »«½πτÑ¡¿¿ ¿ ºáñá¡¿¿ ñá¡¡δσ óδ ¼«ªÑΓÑ »α«¿ú¡«α¿α«óáΓ∞ ¼ÑΓ¬¿ ¿
¬¡«»¬¿.
Æᬿ¼ «íαẫ¼, óδ ¿¼ÑÑΓÑ ºñÑß∞ ñѽ« ß ΓαѼ∩ «Γ«íαáªáÑ¼δ¼¿
«íΩѬΓἿ »á¡Ñ½¿ ñ¿á½«úá: ¬¡«»¬á¼¿ ß ¡Ñºáó¿ß¿¼«⌐ ¿ ºáó¿ß¿¼«⌐
Σ¿¬ßᵿÑ⌐ ¿ ßΓ᫬«⌐ óó«ñá. èᬠí佫 «Γ¼ÑτÑ¡« óδΦÑ, ñá¡¡δÑ ¿º «íΩ-
Ñ¬Γ«ó ¬½áßΓÑαá σαá¡∩Γß∩ ó »«½Ñ ñá¡¡δσ Γ¿»á ushort. äá¡¡δÑ ßΓ᫬¿
óó«ñá σαá¡∩Γß∩ ó ßΓ᫬Ñ. éδ ¼«ªÑΓÑ ºáñáΓ∞ ºá»¿ß∞ ñá¡¡δσ ñ½∩ φΓ«⌐
»á¡Ñ½¿ ñ¿á½«úá ó «íΩ∩ó½Ñ¡¿¿ ú½«íá½∞¡«ú« Γ¿»á:
struct DialogData
{
ushort checkBoxData;
ushort radioButtonData;
char inαutLineData[128];
};
ÆÑ»Ñα∞ óá¼ ΓαÑíπÑΓß∩ ½¿Φ∞ ¿¡¿µ¿á½¿º¿α«óáΓ∞ ºá»¿ß∞ »α¿ ºá-
»π᪥ »α«úαá¼¼δ (σ«α«Φ¿¼ ¼ÑßΓ«¼ ñ½∩ φΓ«ú« ∩ó½∩ÑΓß∩ ¬«¡ßΓαπ¬Γ«α
MyApp.Init), ºáñáΓ∞ ñá¡¡δÑ »α¿ óσ«ñÑ ó »á¡Ñ½∞ ñ¿á½«úá ¿ ó¡«ó∞
ßτ¿ΓáΓ∞ ¿σ, »α¿ πß»ÑΦ¡«¼ ºá¬αδΓ¿¿ »á¡Ñ½¿ ñ¿á½«úá. Å«ß½Ñ «íΩ∩ó½Ñ-
¡¿∩ Γ¿»á Γᬿ¼ «íαẫ¼ óδ «íΩ∩ó½∩ÑΓÑ π¬áºáΓѽ∞:
DialogData *demoDialogData;
ºáΓѼ ñ«íáó½∩ÑΓÑ «ñ¡π ßΓ᫬π ñ« óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ »á¡Ñ½¿ ñ¿á½«-
úá ¿ «ñ¡π »«ß½Ñ:
// ß«σαá¡∩Ѽ ñá¡¡δÑ »á¡Ñ½¿ ñ¿á½«úá:
αd->setData( demoDialogData );
ushort control = deskToα->execView( αd );
// ºáΓѼ, Ñß½¿ ñ¿á½«ú ºáóÑαΦ¿½ß∩ πß»ÑΦ¡«, τ¿ΓáѼ ¿σ ß¡«óá
if( control != cmCancel )
Turbo Vision ñ½∩ æ++ = 83 =
αd->getData( demoDialogData );
}
á Γá¬ªÑ ΦÑßΓ∞ ßΓ᫬ ¬ ¬«¡ßΓαπ¬Γ«α𠬽áßßá TMyApp ñ½∩ ºáñá¡¿∩ »Ñα-
ó«¡áτá½∞¡δσ º¡áτÑ¡¿⌐ ñ½