home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS 1
/
BBS#1.iso
/
document
/
tvcpp.a01
/
DOP_TV.DOC
Wrap
Text File
|
1992-03-03
|
188KB
|
4,854 lines
«íΩѬΓδ TGrouα
(ó¬½ετá∩ óßε úαπ»»π »α¿¬½áñ¡«⌐ »α«úαá¼¼δ) ¼«úπΓ ºá»¿ßδóáΓ∞ß∩ ó
»«Γ«¬ ¿ ßτ¿ΓδóáΓ∞ß∩ ¿º »«Γ«¬á ß ß«σαá¡Ñ¡¿Ñ¼ Γ¿»«ó, ñ½∩ τÑú« ¿ß-
»«½∞ºπεΓß∩ «íδτ¡δÑ «»ÑαáΓ«αδ iostream æ++.
Å«½∩
buffer uchar far *buffer;
------
ô¬áºδóáÑΓ ¡á íπΣÑα, ¿ß»«½∞ºπѼδ⌐ ñ½∩ «»Ñαᵿ⌐ »ÑαÑα¿ß«ó¬¿
¬φΦá, ¿½¿ αáóÑ¡ 0, Ñß½¿ π úαπ»»δ ¡ÑΓ ¬φΦ-íπΣÑαá. èφΦ-íπΣÑαá ß«º-
ñáεΓß∩ ¿ πñá½∩εΓß∩ áóΓ«¼áΓ¿τÑ߬¿, Ñß½¿ Γ«½∞¬« ó φ½Ñ¼Ñ¡ΓÑ oαtions
úαπ»»δ ¡Ñ «τ¿ΘÑ¡ Σ½áª«¬ ofBuffered.
cliα TRect cliα;
----
æ«ñÑαª¿Γ αẼÑα ¼¿¡¿¼á½∞¡«⌐ «í½áßΓ¿, »ÑαÑα¿ß«óδóáѼ«⌐ »α¿
ó맮óÑ ¼ÑΓ«ñá draw.
æ¼. ΓᬪÑ: TView::getCliαRect, TView::getExtent
current TView *current;
-------
ô¬áºδóáÑΓ ¡á óδíαá¡¡δ⌐ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ »«ñ«íΩÑ¬Γ ¿½¿ αáóÑ¡
0, Ñß½¿ óδñѽѡ¡«ú« »«ñ«íΩѬΓá ¡ÑΓ.
æ¼. ΓᬪÑ: sfSelected, TView::select
endState ushort endState;
--------
æ«ñÑαª¿Γ ß«ßΓ«∩¡¿Ñ úαπ»»δ »«ß½Ñ ó맮óá endModal.
æ¼. ΓᬪÑ: TGrouα::endModal
last uchar lockFlag;
----
ô¬áºδóáÑΓ ¡á »«ß½Ññ¡¿⌐ »«ñ«íΩÑ¬Γ úαπ»»δ (ßá¼δ⌐ ñá½∞¡¿⌐ «Γ
óÑαΦ¿¡δ ó Z-»«α∩ñ¬Ñ).
lockFlag uchar lockFlag;
--------
Éáí«ΓáÑΓ ¬á¬ ßѼáΣ«α ñ½∩ π»αáó½Ñ¡¿∩ «»Ñαᵿ∩¼¿ »ÑαÑα¿ß«ó¬¿
íπΣÑਧ«óá¡¡«⌐ úαπ»»δ. lockFlag ß«ñÑαª¿Γ ßτÑΓτ¿¬ τ¿ß½á í½«¬¿α«-
ó«¬, πßΓá¡«ó½Ñ¡¡δσ ó« óαѼ∩ α∩ñá 󽫪ѡ¡δσ ó맮ó«ó draw. lock ¿
unlock πóѽ¿τ¿óáεΓ ¿ π¼Ñ¡∞ΦáεΓ φΓ« º¡áτÑ¡¿Ñ. è«úñá φΓ« τ¿ß½«
ñ«ßΓ¿úáÑΓ 0, óß∩ úαπ»»á íπñÑΓ »ÑαÑα¿ß«óδóáΓ∞ ßÑí∩ ¿º ßó«Ñú« íπΣÑ-
αá. ä½∩ Γ«ú«, τΓ«íδ φ¬αá¡ ¡Ñ ¼Ñαµá½ ¿¡ΓÑ¡ß¿ó¡«, ¼Ñªñπ ó맮óἿ
Turbo Vision ñ½∩ æ++ = 114 =
lock ¿ unlock ñ«½ª¡δ íδΓ∞ óßΓáó½Ñ¡δ «»Ñαᵿ¿ ¿¡ΓÑ¡ß¿ó¡«⌐ »ÑαÑ-
α¿ß«ó¬¿.
αhase αhaseTyαe αhase;
-----
ÆѬπΘá∩ Σáºá «íαáí«Γ¬¿ ñ½∩ á¬Γ¿ó¡«ú« ß«íδΓ¿∩. Å«ñ«íΩѬΓδ, ó
¬«Γ«αδσ πßΓá¡«ó½Ñ¡δ Σ½áú¿ ofPreProcess ¿/¿½¿ ofPostProcess, ¼«úπΓ
»α«óÑα∩Γ∞ owner>αhase, τΓ«íδ «»αÑñѽ¿Γ∞, ó ¬á¬«⌐ ¿º Σáº
αhPreProcess, αhFocused ¿½¿ αhPostProcess íδ½á óδºóá¡ ¿σ ¼ÑΓ«ñ
HandleEvent.
αhaseTyαe - φΓ« »ÑαÑτ¿ß½Ñ¡¿Ñ, «»αÑñѽѡ¡«Ñ ß½ÑñπεΘ¿¼ «íαẫ¼:
enum αhaseTyαe( αhFocused, αhPreProcess, αhPostProcess);
æ¼. ΓᬪÑ: ofPreProcess, ofPostProcess, TGrouα::handleEvent
îÑΓ«ñδ
constructor TGrouα(TRect& bounds);
éδºδóáÑΓ TView::TView(bounds), πßΓá¡áó½¿óáÑΓ ofSelectable ¿
ofBuffered ó oαtions, á eventMask - ó 0xFFFF. ¥½Ñ¼Ñ¡Γδ last,
current, buffer, lockFlag ¿ endState πßΓá¡áó½¿óáεΓß∩ ó 0.
constructor TTGrouα( StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ΓαÑíπÑΓß∩ "»«ßΓα«¿Γѽ∞" ñ½∩ óδñÑ-
½Ñ¡¿∩ ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ »«ñ Ñú« «íΩѬΓδ ó¼ÑßΓÑ ß ¿¡¿µ¿á-
½¿º¿α«óá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ vtable. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. æ¼. ΓᬪÑ
ú½áóπ 8.
æ¼. ΓᬪÑ: TView::TView
destructor ~TGrouα();
----------
ôñá½∩ÑΓ úαπ»»π, ¿ß»«½∞ºπ∩ hide, «ßó«í«ªñáÑΓ ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ
úαπ»»δ, ¿ß»«½∞ºπ∩ delete α, »«ß½Ñ τÑú« «ßó«í«ªñáÑΓß∩ íπΣÑα (Ñß½¿
¿¼ÑÑΓß∩).
at TView *at(short index);
--
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á «Γ«íαáªáѼδ⌐ »«ñ«íΩѬΓ, ¡áσ«ñ∩Θ¿⌐ß∩
ó »«º¿µ¿¿ ¿¡ñѬßá ó Z-»«α∩ñ¬Ñ.
æ¼. ΓᬪÑ: TGrouα::IndexOf
Turbo Vision ñ½∩ æ++ = 115 =
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ τΓÑ¡¿∩
»«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, iαstream::readData
changeBounds virtual void changeBounds(TRect& bounds)
------------
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::changeBounds. 꺼ѡ∩ÑΓ úαá¡¿µδ úαπ»»δ
¡á bounds, ºáΓѼ óδºδóáÑΓ calcBounds ¿ changeBounds ñ½∩ ¬áªñ«ú«
φ½Ñ¼Ñ¡Γá úαπ»»δ.
æ¼. ΓᬪÑ: TView::calcBounds, TView::changeBounds
dataSize virtual ushort dataSize();
--------
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::dataSize. 髺óαáΘáÑΓ «íΘ¿⌐ αẼÑα
úαπ»»δ, óδºδóá∩ ¿ ¡á¬á»½¿óá∩ dataSize ñ½∩ ¬áªñ«ú« »«ñ«íΩѬΓá.
æ¼. ΓᬪÑ: TView::dataSize
draw virtual void draw;
----
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::draw. àß½¿ ¬φΦ-íπΣÑα ßπΘÑßΓóπÑΓ (ß¼.
»«½Ñ TGrouα::buffer), Γ« íπΣÑα óδó«ñ¿Γß∩ ¡á φ¬αá¡ ß ¿ß»«½∞º«óá¡¿-
Ѽ TView::writeBuf. é »α«Γ¿ó¡«¼ ß½πτáÑ, ¬áªñδ⌐ »«ñ«íΩÑ¬Γ «Γ«íαá-
ªáÑΓ ßÑí∩ ß »«¼«Θ∞ε TGrouα::redraw.
drawSubViews void drawSubViews(TView *α, TView *bottom);
------------
éδºδóáÑΓ drawView ñ½∩ ¬áªñ«ú« «Γ«íαáªáѼ«ú« »«ñ«íΩѬΓá, ¡á-
τ¿¡á∩ ß *α, ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓ »«ñ«íΩѬΓ
*bottom.
endModal virtual void endModal(ushort command);
--------
àß½¿ úαπ»»á - φΓ« ΓѬπΘ¿⌐ ¼«ñá½∞¡δ⌐ «Γ«íαáªáѼδ⌐ «íΩѬΓ, ¼«-
ñá½∞¡«Ñ ß«ßΓ«∩¡¿Ñ ºáóÑαΦáÑΓß∩. command »ÑαÑñáÑΓß∩ ó execView, ¬«-
Γ«αδ⌐ ó«ºóαáΘáÑΓ command ¬á¬ αѺπ½∞ΓáΓ. àß½¿ φΓá úαπ»»á ¡Ñ ΓѬπ-
Θ¿⌐ ¼«ñá½∞¡δ⌐ «Γ«íαáªáѼδ⌐ «íΩѬΓ, Γ« «¡á óδºδóáÑΓ TView::
endModal.
æ¼. ΓᬪÑ: TGrouα::execView, TGrouα::execute,
TGrouα::endModal, sfModal
Turbo Vision ñ½∩ æ++ = 116 =
eventError virtual void eventError(TEvent& event);
----------
eventError óδºδóáÑΓß∩ Γ«úñá, ¬«úñá ó µ¿¬½Ñ «íαáí«Γτ¿¬á ß«íδ-
Γ¿∩ ¼«ñá½∞¡«ú« TGrouα::execute óßΓαÑτáÑΓß∩ ß«íδΓ¿Ñ, ¬«Γ«α«Ñ ¡Ñ
¼«ªÑΓ íδΓ∞ «íαáí«Γá¡«. äÑ⌐ßΓó¿Ñ »« π¼«½τá¡¿ε: Ñß½¿ ó½áñѽѵ úαπ»-
»δ ¡Ñ-¡«½∞, Γ« eventError óδºδóáÑΓ eventError ßó«Ñú« ó½áñѽ∞µá.
Äíδτ¡« φΓá µÑ»«τ¬á αáß»α«ßΓαá¡∩ÑΓß∩ ñ« eventError ¿º
TAααlication. éδ ¼«ªÑΓÑ »ÑαÑ«»αÑñѽ¿Γ∞ eventErr«r ñ½∩ óδ»«½¡Ñ¡¿∩
ΓαÑíπѼ«ú« ñÑ⌐ßΓó¿∩.
æ¼. ΓᬪÑ: TGrouα::execute, TGrouαe::execView, sfModal
execute virtual ushort execute();
-------
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::execute. execute - φΓ« ú½áó¡δ⌐ µ¿¬½
«íαáí«Γ¬¿ ß«íδΓ¿⌐ úαπ»»δ: «¡ »«ßΓ«∩¡¡« »«½πτáÑΓ ß«íδΓ¿∩, ¿ß»«½∞-
ºπ∩ getEvent, ¿ «íαáíáΓδóáÑΓ ¿σ, ¿ß»«½∞ºπ∩ handleEvent. û¿¬½ ß«-
íδΓ¿⌐ ºáóÑαΦáÑΓß∩ úαπ»»«⌐ ¿½¿ »«ñ«íΩÑ¬Γ«¼ ß »«¼«Θ∞ε ó맮óá
endModal. Äñ¡á¬«, ñ« ó«ºóαáΓá execute óδºδóáÑΓ valid ñ½∩ »α«óÑન
Γ«ú«, τΓ« ¼«ñá½∞¡«Ñ ß«ßΓ«∩¡¿Ñ ó ßἫ¼ ñÑ½Ñ í佫 ºáóÑαΦÑ¡«.
æ¼. ΓᬪÑ: TGrouα::getEvent, TGrouα::handleEvent,
TGrouα::endModal, TGrouα::valid
execView ushort execView(TView *α);
--------
execView - φΓ« ¼«ñá½∞¡δ⌐ óáα¿á¡Γ ¡Ñ¼«ñá½∞¡δσ ¼ÑΓ«ñ«ó insert
¿ remove. é «Γ½¿τ¿Ñ «Γ insert, »«ß½Ñ óßΓáó¬¿ «Γ«íαáªáѼ«ú« «íΩѬ-
Γá ó úαπ»»π, execView «ª¿ñáÑΓ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ñ½∩ óδ»«½¡Ñ¡¿∩,
ºáΓѼ πñá½∩ÑΓ Ñú« ¿ ó«ºóαáΘáÑΓ αѺπ½∞ΓáΓ óδ»«½¡Ñ¡¿∩. execView
¿ß»«½∞ºπÑΓß∩ ó α∩ñÑ ¼ÑßΓ ó Turbo Vision, ¡á»α¿¼Ñα ñ½∩ αÑ὿ºáµ¿¿
TAααlication::run ¿ ñ½∩ óδ»«½¡Ñ¡¿∩ ¼«ñá½∞¡δσ ñ¿á½«ú«óδσ «¬«¡.
execView ß«σαá¡∩ÑΓ ΓѬπΘ¿⌐ ¬«¡ΓѬßΓ (óδñѽѡ¡δ⌐ «Γ«íαáªáѼδ⌐
«íΩѬΓ, ¼«ñá½∞¡δ⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿ ¡áí«α ¬«¼á¡ñ), ñѽáÑΓ p
¼«ñá½∞¡δ¼, óδºδóá∩ p>setState(sfModal, True), óßΓáó½∩ÑΓ p ó úαπ»-
»π (Ñß½¿ «¡ ÑΘÑ ¡Ñ óßΓáó½Ñ¡) ¿ óδºδóáÑΓ p>execute. è«úñá
p>execute ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ, úαπ»»á ó«ßßΓá¡áó½¿óáÑΓß∩ ó »αÑ-
ñδñπΘÑÑ ß«ßΓ«∩¡¿Ñ ¿ αѺπ½∞ΓáΓ p>execute ó«ºóαáΘáÑΓß∩ ¬á¬ αѺπ½∞-
ΓáΓ ó맮óá execView. àß½¿ »α¿ ó맮óÑ execView α = 0, Γ« ó«ºóαáΘá-
ÑΓß∩ º¡áτÑ¡¿Ñ cmCancel.
æ¼. ΓᬪÑ: TGrouα::execute,TGrouα::insert, sfModal
first TView *first();
-----
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á »Ñαóδ⌐ »«ñ«íΩÑ¬Γ (í½¿ªá⌐Φ¿⌐ ¬ óÑαΦ¿-
¡Ñ ó Z-»«α∩ñ¬Ñ) ¿½¿ 0, Ñß½¿ ó úαπ»»Ñ ¡ÑΓ »«ñ«íΩÑ¬Γ«ó.
Turbo Vision ñ½∩ æ++ = 117 =
æ¼. ΓᬪÑ: TGrouα::last
firstMatch TView *firstMatch(ushort aState, ushort aOαtions);
----------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á »Ñαóδ⌐ »«ñ«íΩѬΓ, 𠬫ëα«ú« state
ß«ó»áñáÑΓ ß aState, á oαtions - ß aOαtions.
firstThat TView *firstThat(Boolean(*func)(TView*, void*),
--------- void *args)
firstThat »α¿¼Ñ¡∩ÑΓ íπ½Ñó߬πε Σπ¡¬µ¿ε *func, ºáñá¡¡πε »«½∞-
º«óáΓѽѼ, ß« ß»¿ß¬«¼ áαúπ¼Ñ¡Γ«ó, ºáñá¡¡δ¼ args (󫺼«ª¡« »πß-
Γδ¼), ¬ ¬áªñ«¼π »«ñ«íΩѬΓπ ó úαπ»»Ñ (ó Z-»«α∩ñ¬Ñ) ñ« ΓÑσ »«α, »«-
¬á func* ó«ºóαáΘáÑΓ True. ÉѺπ½∞ΓáΓ - π¬áºáΓѽ∞ ¡á »«ñ«íΩѬΓ,
ñ½∩ ¬«Γ«α«ú« func* ó«ºóαáΘáÑΓ True, ¿½¿ 0, Ñß½¿ Σπ¡¬µ¿∩ func*
ó«ºóαáΘáÑΓ False ñ½∩ óßÑσ »«ñ«íΩÑ¬Γ«ó.
ÅÑαóδ⌐ áαúπ¼Ñ¡Γ π¬áºáΓѽ∩ Σπ¡¬µ¿¿ func* ߬᡿απÑΓ «Γ«íαáªáÑ-
¼δ⌐ »«ñ«íΩѬΓ. éΓ«α«⌐ áαúπ¼Ñ¡Γ Σπ¡¬µ¿¿ func* πßΓá¡áó½¿óáÑΓß∩ ¿º
π¬áºáΓѽ∩ args Σπ¡¬µ¿¿ firstThat, τΓ« »«¬áºá¡« ó ß½ÑñπεΘÑ⌐ αÑ὿-
ºáµ¿¿:
TView *TGrouα::firstThat(Boolean(*func)(TView*, void*),
void *args)
{
TView *temα = last;
if (temα == 0)
return 0;
do {
temα = temα ->next;
if( func( temα, args ) == True)
return temα;
} while( temα != last);
return 0;
}
forEach void forEach(void (*func)(TView *, void *), void *args);
-------
forEach óδ»«½¡∩ÑΓ ñÑ⌐ßΓó¿Ñ, ºáñá¡¡«Ñ Σπ¡¬µ¿Ñ⌐ *func, ¡áñ
¬áªñδ¼ »«ñ«íΩÑ¬Γ«¼ úαπ»»δ ó Z-»«α∩ñ¬Ñ. Çαúπ¼Ñ¡Γ args »«ºó«½∩ÑΓ
»ÑαÑñáóáΓ∞ Σπ¡¬µ¿¿, óδ»«½¡∩εΘÑ⌐ ñÑ⌐ßΓó¿∩, »α«¿ºó«½∞¡δÑ áαúπ¼Ñ¡Γδ:
void *TGrouα::forEach(void (*func)(TView *, void *), void *args);
{
TView *term = last;
TView *temα = last;
if (temα == 0)
return;
TView *next = temα->next;
do {
temα = next;
Turbo Vision ñ½∩ æ++ = 118 =
next = temα->next;
func( temα, args );
return temα;
} while( temα != term);
}
æ¼. ΓᬪÑ: TGrouα::firstThat
freeBuffer void freeBuffer();
----------
Äßó«í«ªñáÑΓ íπΣÑα «Γ«íαáªÑ¡¿∩ úαπ»»δ (Ñß½¿ Γᬫ⌐ ßπΘÑßΓóπ-
ÑΓ), óδºδóá∩ ñ½∩ φΓ«ú« delete buffer ¿ πßΓá¡áó½¿óá∩ íπΣÑα ó 0.
æ¼. ΓᬪÑ: TGrouα::Buffer, TGrouα::getBuffer, TGrouα::draw
getBuffer void getBuffer();
---------
àß½¿ ó úαπ»»Ñ πßΓá¡«ó½Ñ¡δ Σ½áú¿ sfExαosed ¿ ofBuffered, Γ«
ß«ºñáÑΓß∩ íπΣÑα «Γ«íαáªÑ¡¿∩, ¬«Γ«αδ⌐ íπñÑΓ ¿¼ÑΓ∞ αẼÑαδ (size.x
* size.y), ¿ »«½Ñ buffer íπñÑΓ π¬áºδóáΓ∞ ¡á ¡«óδ⌐ íπΣÑα.
æ¼. ΓᬪÑ: TGrouα::buffer, TGrouα::freeBuffer, TGrouα::draw
getData virtual void getData(void *rec);
-------
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::getData. éδºδóáÑΓ getData ñ½∩ ¬áªñ«ú«
»«ñ«íΩѬΓá ó Z-»«α∩ñ¬Ñ, πóѽ¿τ¿óá∩ »«½«ªÑ¡¿Ñ, ºáñá¡¡«Ñ ó rec, ¡á
dataSize ñ½∩ ¬áªñ«ú« »«ñ«íΩѬΓá.
æ¼. ΓᬪÑ: TView::getData, TGrouα::setData
getHelαCtx virtual ushort getHelαCtx();
----------
髺óαáΘáÑΓ ¬«¡ΓѬßΓ »«ñ߬Ậ¿ ñ½∩ ΓѬπΘÑú« á¬Γ¿ó¡«ú« «Γ«íαá-
ªáѼ«ú« «íΩѬΓá, óδºδóá∩ ¼ÑΓ«ñ getHelαCt óδñѽѡ¡«ú« »«ñ«íΩѬΓá.
àß½¿ ¡ÑΓ ¬«¡ΓѬßΓá »«ñ߬Ậ¿, ºáñá¡¡«⌐ »«ñ«íΩÑ¬Γ«¼, getHelαCtx
ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ ß«íßΓóÑ¡¡«ú« »«½∩ HelαCtx.
handleEvent virtual void handleEvent(TEvent& event);
-----------
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::handleEvent. âαπ»»á «íαáíáΓδóáÑΓ ß«íδ-
Γ¿∩, »ÑαÑñáóá∩ ¿σ ó ¼ÑΓ«ñδ handleEvent «ñ¡«ú« ¿½¿ í«½ÑÑ »«ñ«íΩ-
Ñ¬Γ«ó. Äñ¡á¬« ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ ¼áαΦαπΓ ºáó¿ß¿Γ «Γ ¬½áßßá ß«íδΓ¿∩.
ä½∩ á¬Γ¿ó¡δσ ß«íδΓ¿⌐ (»« π¼«½τá¡¿ε evKeyDown ¿ evCommand, ß¼. »Ñ-
αѼѡ¡πε focusedEvents) «íαáí«Γ¬á ß«íδΓ¿⌐ óδ»«½¡∩ÑΓß∩ ó Γα¿ Σáºδ:
ó«-»Ñαóδσ, φ½Ñ¼Ñ¡Γ αhase πßΓá¡áó½¿óáÑΓß∩ ó αhPreProcess ¿ ß«íδΓ¿Ñ
»ÑαÑñáÑΓß∩ ó handleEvent óßÑσ »«ñ«íΩÑ¬Γ«ó, ó ¬«Γ«αδσ πßΓá¡«ó½Ñ¡
Turbo Vision ñ½∩ æ++ = 119 =
Σ½áú ofPreProcess. çáΓѼ αhase πßΓá¡áó½¿óáÑΓß∩ ó αhFocused ¿ ß«-
íδΓ¿Ñ »ÑαÑñáÑΓß∩ ó handleEvent ΓѬπΘÑú« óδñѽѡ¡«ú« «Γ«íαáªáѼ«ú«
«íΩѬΓá. ìᬫ¡Ñµ, αhase πßΓá¡áó½¿óáÑΓß∩ ó αhPostProcess ¿ ß«íδΓ¿Ñ
»ÑαÑñáÑΓß∩ ó handleEvent óßÑσ »«ñ«íΩÑ¬Γ«ó, ó ¬«Γ«αδσ πßΓá¡«ó½Ñ¡
Σ½áú ofPostProcess. ä½∩ »«º¿µ¿«¡¡δσ ß«íδΓ¿⌐ (»« π¼«½τá¡¿ε
evMouse, ß¼. »ÑαѼѡ¡πε αositionalEvents), ß«íδΓ¿Ñ »ÑαÑñáÑΓß∩ ó
handleEvent »Ñαó«ú« »«ñ«íΩѬΓá, τ∞∩ «úαá¡¿τ¿óáεΘá∩ »α∩¼«πú«½∞¡á∩
«í½áßΓ∞ ß«ñÑαª¿Γ Γ«τ¬π, ºáñá¡¡πε ó event.where. ä½∩ «íΘ¿σ ß«íδΓ¿⌐
(Γ.Ñ. ¡Ñ á¬Γ¿ó¡δσ ¿ ¡Ñ »«º¿µ¿«¡¡δσ), ß«íδΓ¿Ñ »ÑαÑñáÑΓß∩ ó
handleEvent ¬áªñ«ú« »«ñ«íΩѬΓá úαπ»»δ ó Z-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿.
Åα¿¼Ñτá¡¿Ñ: àß½¿ »«½Ñ eventMask »«ñ«íΩѬΓá ¼á߬¿απÑΓ ¬½áßß
ß«íδΓ¿∩, TGrouα::handleEvent ¡¿¬«úñá ¡Ñ íπñÑΓ »«ßδ½áΓ∞ ß«íδΓ¿∩
φΓ«ú« ¬½áßßá »«ñ«íΩѬΓπ. ìá»α¿¼Ñα, »« π¼«½τá¡¿ε eventMask ¿º
TView ºá»αÑΘáÑΓ evMouseUα, evMouseMove ¿ evMouseAu- to, »«φΓ«¼π
TGrouα::handleEvent ¡¿¬«úñá ¡Ñ íπñÑΓ »«ßδ½áΓ∞ Γá¬¿Ñ ß«íδΓ¿∩ ßΓá¡-
ñáαΓ¡«¼π TView.
æ¼. ΓᬪÑ: focusedEvents, αositionalEvents, ¬«¡ßΓá¡Γδ ß«íδ-
Γ¿⌐ evXXXX, TView::eventMask, ¼ÑΓ«ñδ handleEvent
indexOf short indexOf(TView *p);
-------
髺óαáΘáÑΓ »«½«ªÑ¡¿Ñ (¿¡ñѬß) «íΩѬΓá *p ó Z-»«ß½Ññ«óáΓѽ∞-
¡«ßΓ¿.
æ¼. ΓᬪÑ: TGrouα::at
insert void insert(TView *p);
------
éßΓáó½∩ÑΓ «Γ«íαáªáѼδ⌐ «íΩѬΓ, ºáñá¡¡δ⌐ p, ó ß»¿ß«¬ »«ñ«íΩ-
Ñ¬Γ«ó úαπ»»δ. ì«óδ⌐ »«ñ«íΩÑ¬Γ »«¼ÑΘáÑΓß∩ ¡áñ óßѼ¿ ñαπú¿¼¿ «Γ«í-
αáªáÑ¼δ¼¿ »«ñ«íΩѬΓἿ. àß½¿ ó »«ñ«íΩѬΓÑ πßΓá¡«ó½Ñ¡δ Σ½áú¿
ofCenterX ¿/¿½¿ ofCenterY, Γ« «¡ µÑ¡Γα¿απÑΓß∩ ó úαπ»»Ñ ß««Γ-
óÑΓßΓóπεΘ¿¼ «íαẫ¼. àß½¿ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿¼ÑÑΓ πßΓá¡«ó½Ñ¡¡δ⌐
Σ½áú sfVisible, Γ« «¡ íπñÑΓ »«¬áºá¡ ó úαπ»»Ñ - ¿¡áτÑ «ßΓáÑΓß∩
߬αδΓδ¼ ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ »«¬áºá¡ ߻ѵ¿á½∞¡«. àß½¿ «Γ«í-
αáªáѼδ⌐ «íΩÑ¬Γ ¿¼ÑÑΓ πßΓá¡«ó½Ñ¡¡δ¼ Σ½áú ofSelectable, Γ« «¡ ßΓá-
¡«ó¿Γß∩ ΓѬπΘ¿¼ óδñѽѡ¡δ¼ »«ñ«íΩÑ¬Γ«¼.
æ¼. ΓᬪÑ: TGrouα::remove, TGrouα::execView
insertBefore void insertBefore(TView *α, TView *target);
------------
éßΓáó½∩ÑΓ «Γ«íαáªáѼδ⌐ «íΩѬΓ, ºáñá¡¡δ⌐ p, »ÑαÑñ «Γ«íαáªáÑ-
¼δ¼ «íΩÑ¬Γ«¼, ºáñá¡¡δ¼ target. àß½¿ target ¿¼ÑÑΓ º¡áτÑ¡¿Ñ 0, Γ«
«Γ«íαáªáѼδ⌐ «íΩÑ¬Γ αẼÑΘáÑΓß∩ »«ß½Ñ óßÑσ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó
úαπ»»δ.
æ¼. ΓᬪÑ: TGrouα::insert, TGrouα::remove
Turbo Vision ñ½∩ æ++ = 120 =
lock void lock();
----
ü½«¬¿απÑΓ úαπ»»π, ºáñÑনóá∩ óßÑ ºá»¿ß¿, »α«¿ºó«ñ¿¼δÑ »«ñ«-
íΩѬΓἿ, ¡á φ¬αá¡ ñ« ΓÑσ »«α, »«¬á úαπ»»á ¡Ñ íπñÑΓ αáºí½«¬¿α«óá-
¡á. lock ¡Ñ ¿¼ÑÑΓ φΣΣѬΓá, Ñß½¿ ó úαπ»»Ñ ¡ÑΓ ¬φΦ-íπΣÑαá (ß¼.
ofBuffered ¿ TGrouα::buffer). lock αáí«ΓáÑΓ, πóѽ¿τ¿óá∩ ßτÑΓτ¿¬
í½«¬¿α«ó«¬, ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóÑ¡¡« π¼Ñ¡∞ΦáÑΓß∩ ß »«¼«Θ∞ε unlock.
è«úñá ó맮ó unLock π¼Ñ¡∞ΦáÑΓ ßτÑΓτ¿¬ ñ« 0, óß∩ úαπ»»á »¿ΦÑΓß∩ ¡á
φ¬αá¡, ¿ß»«½∞ºπ∩ «íαáº, ß«ºñá¡¡δ⌐ ó ¬φΦ-íπΣÑαÑ.
ìá¬á»½¿óá∩ ¿¡ΓÑ¡ß¿ó¡δÑ «»Ñαᵿ¿ »ÑαÑα¿ß«ó¬¿ ¼Ñªñπ ó맮óἿ
lock ¿ unlock, ¼«ª¡« π¼Ñ¡∞Φ¿Γ∞ ¿½¿ »«½¡«ßΓ∞ε ¿ß¬½ετ¿Γ∞ ¡Ñ»α¿∩Γ¡«Ñ
¼Ñαµá¡¿Ñ φ¬αá¡á. ìá»α¿¼Ñα, TDeskToα::tile ¿ TDeskToα::cascade
¿ß»«½∞ºπεΓß∩ lock ¿ unlock ñ½∩ π¼Ñ¡∞ΦÑ¡¿∩ ¼Ñαµá¡¿∩.
Åα¿¼Ñτá¡¿Ñ: é맮óδ lock ¿ unlock ñ«½ª¡δ íδΓ∞ ßíá½á¡ß¿α«óá¡δ,
¿¡áτÑ úαπ»»á ¼«ªÑΓ «ßΓáΓ∞ß∩ ó »«ßΓ«∩¡¡« ºáí½«¬¿α«óá¡¡«¼ ß«ßΓ«∩-
¡¿¿, τΓ« »α¿óÑñÑΓ ¬ Γ«¼π, τΓ« «¡á ¡Ñ ß¼«ªÑΓ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿
ó¡«ó∞ óδóÑßΓ¿ ßÑí∩ ¡á φ¬αá¡.
æ¼. ΓᬪÑ: TGrouα::unlock
matches Boolean matches(TView *α);
-------
髺óαáΘáÑΓ True, Ñß½¿ º¡áτÑ¡¿∩ state ¿ oαtions «Γ«íαáªáѼ«ú«
«íΩѬΓá *p ß«ó»áñáεΓ ß« º¡áτÑ¡¿∩¼¿ φΓ¿σ ªÑ »áαá¼ÑΓα«ó óδºδóáεΘÑú«
«íΩѬΓá.
read void *read( iαstream is);
----
éδ»«½¡∩ÑΓ τΓÑ¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, iαstream
redraw void redraw();
------
ÅÑαÑα¿ß«óδóáÑΓ »«ñ«íΩѬΓδ úαπ»»δ ó Z-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿.
TGrouα:: redraw «Γ½¿τáÑΓß∩ «Γ TGrouα::draw ΓѼ, τΓ« redraw ¡¿¬«ú-
ñá ¡Ñ »α«¿ºó«ñ¿Γ óδó«ñ«¼ ¡á φ¬αá¡ ¿º ¬φΦ-íπΣÑαá.
æ¼. ΓᬪÑ: TGrouα::draw
remove void remove(TView *α);
------
ôñá½∩ÑΓ «Γ«íαáªáѼδ⌐ »«ñ«íΩÑ¬Γ α ¿º úαπ»»δ ¿, Ñß½¿ ΓαÑíπ-
ÑΓß∩, »ÑαÑα¿ß«óδóáÑΓ ñαπú¿Ñ »«ñ«íΩѬΓδ. é½áñѽѵ α ¿ ß½ÑñπεΘ¿Ñ
φ½Ñ¼Ñ¡Γδ (owner ¿ next) πßΓá¡áó½¿óáεΓß∩ ó 0.
Turbo Vision ñ½∩ æ++ = 121 =
æ¼. ΓᬪÑ: TGrouα::insert, TGrouα::removeView
removeView void removeView(TView *α);
----------
ôñá½∩ÑΓ «Γ«íαáªáѼδ⌐ »«ñ«íΩÑ¬Γ p ¿º úαπ»»δ. êß»«½∞ºπÑΓß∩
TGrouα::remove ñ½∩ ó¡πΓαÑ¡¡¿σ ¡πªñ
æ¼. ΓᬪÑ: TGrouα::remove
resetCurrent void resetCurrent();
------------
éδí¿αáÑΓ (ñѽáÑΓ ΓѬπΘ¿¼) »Ñαóδ⌐ «Γ«íαáªáѼδ⌐ »«ñ«íΩÑ¬Γ ó
µÑ»«τ¬Ñ, ó ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡δ Σ½áú¿ sfVisible ¿ ofSelectable.
resetCurrent αáí«ΓáÑΓ »α¿ ß½ÑñπεΘѼ ó맮óÑ:
setCurrent (firstMatch(sfVisible, ofSelectable, normalSelect);
ä½∩ áαúπ¼Ñ¡Γ«ó óδí«αá αѪ¿¼á »«½Ñº¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿⌐
Γ¿» enum:
enum selectMode ( normalSelect, enterSelect, leaveSelect );
æ¼. ΓᬪÑ: TGrouα::setCurrent
selectNext void selectNext(Boolean forwards);
----------
àß½¿ forwards - True, selectNext íπñÑΓ óδí¿αáΓ∞ (ñѽáΓ∞ ΓÑ-
¬πΘ¿¼) ß½ÑñπεΘ¿⌐ óδñѽ∩Ѽδ⌐ »«ñ«íΩÑ¬Γ (»«ñ«íΩѬΓ, ó ¬«Γ«α«¼ πßΓá-
¡«ó½Ñ¡ í¿Γ ofSelectable) úαπ»»δ ó Z-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿. àß½¿
forwards - False, Γ« óδí¿αáÑΓß∩ »αÑñδñπΘ¿⌐ óδñѽ∩Ѽδ⌐ «íΩѬΓ.
æ¼. ΓᬪÑ: ¬«¡ßΓá¡Γδ Σ½áú«ó «»µ¿⌐ ofXXXX, TGrouα::selectView
setCurrent void setCurrent(TView *α, selectMode mode);
----------
selectMode - φΓ« »ÑαÑτ¿ß½Ñ¡¿Ñ, «»αÑñѽ∩Ѽ«Ñ ó TGrouα ß½Ññπε-
Θ¿¼ «íαẫ¼:
enum selectMode(normalSelect, enterSelect, leaveSelect);
àß½¿ *α - ΓѬπΘ¿⌐ «Γ«íαáªáѼδ⌐ »«ñ«íΩѬΓ, Γ« setCurrent ¡¿-
τÑú« ¡Ñ ñѽáÑΓ. é »α«Γ¿ó¡«¼ ß½πτáÑ, »πΓѼ ó맮óá setState *α ñÑ-
½áÑΓß∩ ΓѬπΘ¿¼ (Γ« ÑßΓ∞, óδí¿αáÑΓß∩).
æ¼. ΓᬪÑ: TGrouα::resetCurrent
setData void setData(void rec);
-------
Turbo Vision ñ½∩ æ++ = 122 =
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::setData. éδºδóáÑΓ setData ñ½∩ ¬áªñ«ú«
»«ñ«íΩѬΓá ó »«α∩ñ¬Ñ, «íαáΓ¡«¼ Z-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿, πóѽ¿τ¿óá∩
»«½«ªÑ¡¿Ñ, ºáñá¡¡«Ñ ó rec, ¡á dataSize ¬áªñ«ú« »«ñ«íΩѬΓá.
æ¼. ΓᬪÑ: TGrouα::getData, TView::setData
setState virtual void setState(ushort aState, Boolean enable);
--------
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::setState. æ¡áτá½á óδºδóáÑΓ π¡áß½Ññ«-
óá¡¡δ⌐ ¼ÑΓ«ñ TView::state, á ºáΓѼ «í¡«ó½∩ÑΓ »«ñ«íΩѬΓδ ß½ÑñπεΘ¿¼
«íαẫ¼: Ñß½¿ aState ¿¼ÑÑΓ º¡áτÑ¡¿Ñ sfActive ¿½¿ sfDragging, Γ«
setState óδºδóáÑΓß∩ ñ½∩ ¬áªñ«ú« »«ñ«íΩѬΓá ñ½∩ Ñú« «í¡«ó½Ñ¡¿∩;
Ñß½¿ aState - sfFocused, Γ« óδºδóáÑΓß∩ ΓѬπΘ¿⌐ óδñѽѡ¡δ⌐ »«ñ«íΩ-
Ñ¬Γ ñ½∩ ßó«Ñ⌐ á¬Γ¿ó¿ºáµ¿¿. àß½¿ aState ¿¼ÑÑΓ º¡áτÑ¡¿Ñ sfExαosed,
Γ« ñ½∩ ¬áªñ«ú« »«ñ«íΩѬΓá óδºδóáÑΓß∩ doExαosed. ìᬫ¡Ñµ, Ñß½¿
enable ¿¼ÑÑΓ º¡áτÑ¡¿Ñ False, Γ« óδºδóáÑΓß∩ freeBuffer.
æ¼. ΓᬪÑ: TView::setState, TGrouα::doExαose,
TGrouα::freeBuffer
shutDown virtual void shutDown();
--------
êß»«½∞ºπÑΓß∩ ó¡πΓαÑ¡¡Ñ ó TObject::destroy ñ½∩ úáαá¡Γ¿¿
¬«ααÑ¬Γ¡«ú« π¡¿τΓ«ªÑ¡¿∩ »«α«ªñÑ¡¡«ú« ¿ ßó∩ºá¡¡«ú« «íΩÑ¬Γ«ó.
shutDown »ÑαÑ«»αÑñѽ∩ÑΓß∩ ó« ¼¡«ú¿σ ¬½áßßáσ, τΓ«íδ úáαá¡Γ¿α«óáΓ∞
»αáó¿½∞¡«ßΓ∞ ¡áßΓα«⌐¬¿ ßó∩ºá¡¡δσ »«½Ñ⌐, »α¿ ó맮óÑ destroy.
æ¼. ΓᬪÑ: ú½áóá 6, "Éáºαáí«Γ¬á ¡áñѪ¡δσ »α«úαá¼¼"
unlock void unlock();
------
Éáºí½«¬¿απÑΓ úαπ»»π, π¼Ñ¡∞Φá∩ ßτÑΓτ¿¬ í½«¬¿α«ó¬¿ lockFlag.
àß½¿ ßτÑΓτ¿¬ í½«¬¿α«ó¬¿ ßΓá¡«ó¿Γß∩ αáó¡δ¼ 0, Γ« óß∩ úαπ»»á «Γ«í-
αáªáÑΓß∩ ¡á ¡á φ¬αá¡Ñ, ¿ß»«½∞ºπ∩ «íαáº, ß«ºñá¡¡δ⌐ ó ¬φΦ-íπΣÑαÑ.
æ¼. ΓᬪÑ: TGrouα::lock
valid virtual Boolean valid(ushort command);
-----
ÅÑαÑ«»αÑñѽ∩ÑΓ TView::valid. 髺óαáΘáÑΓ True, Ñß½¿ ó맮óδ
valid óßÑσ »«ñ«íΩÑ¬Γ«ó ó«ºóαáΘáεΓ True. TGrouα::valid ¿ß»«½∞ºπ-
ÑΓß∩ ó ¬«¡µÑ µ¿¬½á «íαáí«Γ¬¿ ß«íδΓ¿⌐ ó TGrouα::execute ñ½∩ »«ñΓ-
óÑαªñÑ¡¿∩, τΓ« ºáóÑαΦÑ¡¿Ñ αáºαÑΦÑ¡«. î«ñá½∞¡«Ñ ß«ßΓ«∩¡¿Ñ ¡Ñ ¼«ªÑΓ
íδΓ∞ ºáóÑαΦÑ¡« ñ« ΓÑσ »«α, »«¬á óßÑ ó맮óδ valid ¡Ñ óÑα¡πΓ True.
Å«ñ«íΩÑ¬Γ ¼«ªÑΓ óÑα¡πΓ∞ False, Ñß½¿ «¡ σ«τÑΓ, τΓ«íδ π»αáó½Ñ¡¿Ñ
«ßΓὫß∞ π ¡Ñú«.
æ¼. ΓᬪÑ: TView::valid, TGrouα::execute
Turbo Vision ñ½∩ æ++ = 123 =
write virtual void write(oαstream& oα);
-----
éδ»«½¡∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, oαstream
äαπªÑßΓóÑ¡¡δÑ ¬½áßßδ
äαπªÑßΓóÑ¡¡«⌐ ñ½∩ TGrouα ∩ó½∩ÑΓß∩ Σπ¡¬µ¿∩ genRefs.
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
æ TGrouα ßó∩ºá¡δ ¡Ñ¬«Γ«αδÑ Σπ¡¬µ¿¿ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ ¡Ñ
∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Turbo Vision ñ½∩ æ++ = 124 =
THistinit DIALOGS.H
-----------------------------------------------------------------
╔═══════════╗ ┌───────────┐
║ THistInit ║ │ TWindow │
╚═══════╤═══╝ └─────┬─────┘
└────────┐ ┌──┘
┌────┴────┴──────┐
│ THistoryWindow │
└────────────────┘
THistInit «íÑß»Ñτ¿óáÑΓ ¬«¡ßΓαπ¬Γ«α ¿ ¼ÑΓ«ñ createListViewer,
¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ »α¿ ß«ºñá¡¿¿ ¿ óßΓáó¬Ñ ¼«ñπ½∩ »α«ß¼«Γαá
ß»¿ß¬á ó «¬¡« »α«Γ«¬«½á.
îÑΓ«ñδ
constructor THistInit( TListViewer *(*cListViewer)( TRect r,
----------- Window *w, ushort histID );
¥Γ«Γ íẫóδ⌐ ¬«¡ßΓαπ¬Γ«α, THistInit::THistInit, óδºδóáÑΓß∩
¬«¡ßΓαπ¬Γ«α«¼ HistoryWindow, ¬«Γ«αδ⌐ »ÑαÑñáÑΓ Ñ¼π áñαÑß
THistoryViewer, ¿¼ÑεΘÑú« Γ¿» cListViewer. é αѺπ½∞ΓáΓÑ φΓ«ú« ó
ñá¡¡«Ñ «¬¡« »α«Γ«¬«½á ß ºáñá¡¡δ¼ αẼÑα«¼ ¿ ß»¿ß¬«¼ »α«Γ«¬«½á
óßΓáó½∩ÑΓß∩ ¼«ñπ½∞ »α«ß¼«Γαá ß»¿ß¬á.
æ¼. ΓᬪÑ: ¬«¡ßΓαπ¬Γ«α THistoryWindow
createListViewer TListViewer *(* createListViewerr)( TRect r,
---------------- Window *w, ushort histID ); (ºáΘ¿ΘÑ¡¡δ⌐)
æ¼. ΓᬪÑ: THistory, TListViewer, THistoryWindow
Turbo Vision ñ½∩ æ++ = 125 =
THistory DIALOGS.H
-----------------------------------------------------------------
┌──────────┐
│ TView │
└────┬─────┘
╔════╧═════╗
║ THistory ║
╚══════════╝
ÄíΩÑ¬Γ THistory αÑ὿ºπÑΓ ß»¿ß«¬ ñ½∩ «Γ¼ÑΓ¬¿ »αÑñδñπΘ¿σ º¡á-
τÑ¡¿⌐, ñÑ⌐ßΓó¿⌐ ¿½¿ ó맮óá »α«Γ«¬«½á. ÄíΩѬΓδ THistory ßó∩ºδóá-
εΓß∩ ß «íΩÑ¬Γ«¼ TInαutLine ¿ ß« ß»¿ß¬«¼ »α«Γ«¬«½á. ê¡Σ«α¼áµ¿∩
ß»¿ß¬á »α«Γ«¬«½á σαá¡¿Γß∩ ó í½«¬Ñ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í-
½áßΓ¿ »á¼∩Γ¿. è«úñá í½«¬ ºá»«½¡∩ÑΓß∩, ¡á¿í«½ÑÑ ßΓáαδÑ φ½Ñ¼Ñ¡Γδ
»α«Γ«¬«½á πñá½∩εΓß∩, á ¡«óδÑ ñ«íáó½∩εΓß∩.
ÄíΩÑ¬Γ THistory »«¬áºá¡ ¬á¬ ¬¡«»¬á (ßΓαѽ¬á 󡿺) ó ¬«¡µÑ
ßΓ᫬¿ óó«ñá. è«úñá »«½∞º«óáΓѽ∞ á¬Γ¿ó¿º¿απÑΓ ¬¡«»¬π ó맮óá »α«-
Γ«¬«½á, Turbo Vision «Γ¬αδóáÑΓ «¬¡« »α«Γ«¬«½á (ß¼«Γα¿
THistoryWindow) ß »α«ß¼«Γα«¼ »α«Γ«¬«½á (ß¼«Γα¿ «»¿ßá¡¿Ñ ¬½áßßá
THistoryViewer), ß«ñÑαªáΘÑÑ ß»¿ß«¬ »αÑñδñπΘ¿σ φ½Ñ¼Ñ¡Γ«ó.
Éẽ¿τ¡δÑ ßΓ᫬¿ óó«ñá ¼«úπΓ ¿ß»«½∞º«óáΓ∞ «ñ¿¡ ß»¿ß«¬ »α«Γ«-
¬«½á, ¿ß»«½∞ºπ∩ «ñ¿¡á¬«óδ⌐ ¡«¼Ñα ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ID.
Å«½∩
historyID ushort historyID;
---------
èáªñδ⌐ ß»¿ß«¬ »α«Γ«¬«½á ¿¼ÑÑΓ π¡¿¬á½∞¡δ⌐ ¡«¼Ñα ID, ¡áº¡áτáÑ-
¼δ⌐ »α«úαá¼¼¿ßΓ«¼. Éẽ¿τ¡δÑ «íΩѬΓδ »α«Γ«¬«½«ó ó αẽ¿τ¡δσ «¬¡áσ
¼«úπΓ ß«ó¼ÑßΓ¡« ¿ß»«½∞º«óáΓ∞ ß»¿ß«¬ »α«Γ«¬«½á, π¬áºδóá∩ «ñ¿¡ ¿
ëà ªÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α »α«Γ«¬«½á (ID).
link TInαutLine *link;
----
ô¬áºáΓѽ∞ ¡á ßó∩ºá¡¡δ⌐ «íΩÑ¬Γ TInαutLine.
îÑΓ«ñδ
constructor THistory (const TRect& bounds, TInαutLine *aLink,
----------- ushort aHistoryID);
櫺ñáÑΓ «íΩÑ¬Γ THist«ry ºáñá¡¡«ú« αẼÑαá, óδºδóá∩
TView(bounds), ºáΓѼ πßΓá¡áó½¿óáÑΓ »«½∩ link ¿ historyId ó º¡áτÑ-
¡¿∩, ºáñá¡¡δÑ ó áαúπ¼Ñ¡Γáσ. Å«½Ñ oαtions πßΓá¡áó½¿óáÑΓß∩ ó
ofPostProcess, á ¬α«¼Ñ í¿Γ evMouseDown, evKeyDown ¿ evCommand,
πßΓá¡«ó½Ñ¡¡δσ TView(bounds), ó eventMask πßΓá¡áó½¿óáÑΓß∩ í¿Γ
Turbo Vision ñ½∩ æ++ = 126 =
evBroadcast.
constructor TTGrouα( StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ΓαÑíπÑΓß∩ "»«ßΓα«¿Γѽ∞" ñ½∩ óδñÑ-
½Ñ¡¿∩ ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ »«ñ Ñú« «íΩѬΓδ ó¼ÑßΓÑ ß ¿¡¿µ¿á-
½¿º¿α«óá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ vtable. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. æ¼. ΓᬪÑ
ú½áóπ 8.
æ¼. ΓᬪÑ: TView::TView
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ τΓÑ¡¿∩
»«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, iαstream::readData
draw virtual void draw;
----
ÄΓ«íαáªáÑΓ φ½Ñ¼Ñ¡Γ THistory ó »á½¿ΓαÑ µóÑΓ«ó, »α¿¡∩Γ«⌐ »« π¼«½-
τá¡¿ε.
getPalette virtual TPalette& getPalette() const;
----------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á ¿ß»«½∞ºπѼπε »« π¼«½τá¡¿ε »á½¿Γαπ
cαHistory, "\x16\x17".
handleEvent virtual void handleEvent(TEvent& event);
-----------
éδºδóáÑΓ TView::handleEvent, á ºáΓѼ «íαáíáΓδóáÑΓ ß««ΓóÑΓß-
ΓóπεΘ¿Ñ ß«íδΓ¿∩ ó "¼δΦ¿" ¿½¿ ó ¬½áó¿áΓπαÑ ñ½∩ óδí«αá ßó∩ºá¡¡«⌐
ßΓ᫬¿ óó«ñá ß«ºñá¡¿∩ «¬¡á »α«Γ«¬«½á.
æ¼. ΓᬪÑ: initHistoryWindow
initHistoryWindow virtual THistoryWindow *
----------------- initHistoryWindow(const TRect& bounds)
櫺ñáÑΓ «íΩÑ¬Γ THistoryWindow ¿ ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ¡Ñ-
ú«. ì«óδ⌐ «íΩÑ¬Γ ¿¼ÑÑΓ ΓÑ ªÑ úαá¡¿µδ bounds ¿ ëà ªÑ ¿ñÑ¡Γ¿Σ¿¬á-
Γ«α »α«Γ«¬«½á historyID, τΓ« ¿ óδºδóáεΘ¿⌐ «íΩÑ¬Γ THistory. ì«óδ⌐
«íΩÑ¬Γ »«½πτáÑΓ ßó«⌐ helαCtx ¿º ßó∩ºá¡¡«⌐ ßΓ᫬¿ óó«ñá TInαutLine
óδºδóáεΘÑú« «íΩѬΓá.
read void *read( iαstream is);
----
Turbo Vision ñ½∩ æ++ = 127 =
éδ»«½¡∩ÑΓ τΓÑ¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, iαstream
shutDown virtual void shutDown();
--------
êß»«½∞ºπÑΓß∩ ó¡πΓαÑ¡¡Ñ ó TObject::destroy ñ½∩ úáαá¡Γ¿¿
¬«ααÑ¬Γ¡«ú« πñá½Ñ¡¿∩ »«α«ªñÑ¡¡«ú« ¿ ßó∩ºá¡¡«ú« «íΩÑ¬Γ«ó. shutDown
»ÑαÑ«»αÑñѽ∩ÑΓß∩ ó« ¼¡«ú¿σ ¬½áßßáσ, τΓ«íδ úáαá¡Γ¿α«óáΓ∞ »αáó¿½∞-
¡«ßΓ∞ ¡áßΓα«⌐¬¿ ßó∩ºá¡¡δσ »«½Ñ⌐, »α¿ ó맮óÑ destroy.
æ¼. ΓᬪÑ: ú½áóá 6, "Éáºαáí«Γ¬á ¡áñѪ¡δσ »α«úαá¼¼"
write virtual void write(oαstream& oα);
-----
éδ»«½¡∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, oαstream
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
æ THistory ßó∩ºá¡δ ¡Ñ¬«Γ«αδÑ Σπ¡¬µ¿¿ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ ¡Ñ
∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
è¡«»¬¿ ó맮óá »α«Γ«¬«½á ¿ß»«½∞ºπεΓ »á½¿Γαπ (»« π¼«½τá¡¿ε)
cαHistory ñ½∩ «Γ«íαáªÑ¡¿∩ 14 ¿ 20-ú« φ½Ñ¼Ñ¡Γ«ó ó »á½¿Γαπ ßΓá¡-
ñáαΓ¡«ú« ñ¿á½«ú«ó«ú« «¬¡á.
1 2
╔═══╤═══╗
cαHistory ║x16│x17║
╚═╤═╧═╤═╝
æΓαѽ¬á ───────┘ └─────── æΓ«α«¡δ
Turbo Vision ñ½∩ æ++ = 128 =
THistoryViewer DIALOGS.H
-----------------------------------------------------------------
┌─────────────┐
│ TListViewer │
└──────┬──────┘
╔═══════╧════════╗
║ THistoryViewer ║
╚════════════════╝
THistoryViewer - »α∩¼«⌐ »«Γ«¼«¬ TListViewer. Ä¡ ¿ß»«½∞ºπÑΓß∩
ß¿ßΓѼ«⌐ ß«ºñá¡¿∩ ß»¿ß¬á »α«Γ«¬«½á ¿ »«∩ó½∩ÑΓß∩ ó¡πΓα¿ «¬¡á »α«-
Γ«¬«½á »α¿ ¡áªáΓ¿¿ ¬¡«»¬¿ »α«Γ«¬«½á. äÑΓá½∞¡«Ñ «»¿ßá¡¿Ñ óºá¿¼«-
ñÑ⌐ßΓó¿∩ THistory, THistoryWindow ¿ THistoryViewer ñáÑΓß∩ »α¿
«»¿ßá¡¿¿ THistory.
Å«½∩
historyID ushort historyID;
---------
historyId - φΓ« ID (¿ñÑ¡Γ¿Σ¿¬áµ¿«¡¡δ⌐ ¡«¼Ñα) ß»¿ß¬á »α«Γ«¬«-
½á, «Γ«íαáªáѼ«ú« ó φΓ«¼ «Γ«íαáªáѼ«¼ «íΩѬΓÑ.
îÑΓ«ñδ
constructor THistoryViewer(const TRect& bounds, TScrollBar
----------- *aHScrollBar, TScrollBar *aVScrollBar,
ushort aHistoryID);
ê¡¿µ¿á½¿º¿απÑΓ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ »α«ß¼«Γαá ß»¿ß¬á, ó¡áτá½Ñ
óδºδóá∩ ¬«¡ßΓαπ¬Γ«α TListViewer ñ½∩ πßΓá¡«ó¬¿ úαá¡¿µ, «ñ¡«⌐ ¬«-
½«¡¬¿ ¿ π¬áºáΓѽÑ⌐ ñóπσ ßΓ᫬ »α«¬απΓ¬¿, »ÑαÑñáóáѼδσ ó
aHScrollBar ¿ aVScrollBar. ÄΓ«íαáªáѼδ⌐ «íΩÑ¬Γ ßó∩ºδóáÑΓß∩ ºáΓѼ
ß« ß»¿ß¬«¼ »α«Γ«¬«½á, ß »«½Ñ¼ historyId, πßΓá¡«ó½Ñ¡¡δ¼ ó º¡áτÑ-
¡¿Ñ, »ÑαÑñá¡¡«Ñ ó »áαá¼ÑΓαÑ aHistory. ¥Γ«Γ ß»¿ß«¬ »α«óÑα∩ÑΓß∩ ¡á
ñ½¿¡π Γá¬, τΓ« Ñú« αẼÑα πßΓá¡áó½¿óáÑΓß∩ ó τ¿ß½« φ½Ñ¼Ñ¡Γ«ó
ß»¿ß¬á. ÅÑαóδ⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß¬Ñ »α«Γ«¬«½á ºáñá¡, ¬á¬ á¬Γ¿ó¡δ⌐.
ä¿á»áº«¡ ú«α¿º«¡Γá½∞¡«⌐ »α«¬απΓ¬¿ πßΓá¡áó½¿óáÑΓß∩ ó ß««ΓóÑΓßΓó¿Ñ
ß ßá¼δ¼ Φ¿α«¬¿¼ φ½Ñ¼Ñ¡Γ«¼ ß»¿ß¬á.
æ¼. ΓᬪÑ: TListViewer::TListViewer
getPalette virtual TPalette getPalette() const;
----------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á »á½¿Γαπ cαHistoryViewer, ¬«Γ«αá∩
¡áº¡áτáÑΓß∩ »« π¼«½τá¡¿ε, "\x06\x06\x07\x06\x06\".
getText virtual void getText(char *dest,short item,short MaxLen);
-------
Turbo Vision ñ½∩ æ++ = 129 =
ôßΓá¡áó½¿óáÑΓ dest ó item-¡πε ßΓ᫬π ó ß««ΓóÑΓßΓóπεΘѼ ß»¿ß-
¬Ñ »α«Γ«¬«½á. getText óδºδóáÑΓß∩ áíßΓαá¬Γ¡«⌐ ¼ÑΓ«ñ«¼ draw ñ½∩
¬áªñ«ú« «Γ«íαáªáѼ«ú« «íΩѬΓá ó ß»¿ß¬Ñ.
æ¼. ΓᬪÑ: TListViewer::draw
handleEvent virtual void handleEvent(TEvent& event);
-----------
ÄΓ«íαáªáѼδ⌐ «íΩÑ¬Γ »α«ß¼«Γαá »α«Γ«¬«½á π»αáó½∩ÑΓ ñóπ¼∩ ó¿-
ñἿ ß«íδΓ¿⌐, á óßÑ ñαπú¿Ñ »ÑαÑñáεΓß∩ ó TListViewer::handleEvent.
äó«⌐¡á∩ «Γ¼ÑΓ¬á ¿½¿ ¡áªáΓ¿Ñ ¬½áó¿Φ¿ Enter íπñπΓ ºáóÑαΦáΓ∞ ¼«ñá½∞-
¡«Ñ ß«ßΓ«∩¡¿Ñ «¬¡á »α«Γ«¬«½á ß ¬«¼á¡ñ«⌐ cmOK. Åα¿ ¡áªáΓ¿¿ ¬½áó¿Φ¿
Esc ¿½¿ »«½πτÑ¡¿¿ ¬«¼á¡ñδ cmCancel, óδí«α ß»¿ß¬á »α«Γ«¬«½á íπñÑΓ
«Γ¼Ñ¡Ñ¡.
æ¼. ΓᬪÑ: TListViewer::handleEvent
historyWidth int historyWidth();
------------
髺óαáΘáÑΓ ñ½¿¡π ßἫ⌐ ñ½¿¡¡«⌐ ßΓ᫬¿ ó ß»¿ß¬Ñ »α«Γ«¬«½á,
ßó∩ºá¡¡«¼ ß historyId.
Å὿Γαá
ÄíΩѬΓδ »α«ß¼«Γαá »α«Γ«¬«½á ¿ß»«½∞ºπεΓ »á½¿Γαπ (»« π¼«½τá-
¡¿ε) cαHistoryViewer ñ½∩ «Γ«íαáªÑ¡¿∩ ó 6 ¿ 7 φ½Ñ¼Ñ¡Γδ »á½¿Γαδ
ßΓá¡ñáαΓ¡«ú« ñ¿á½«ú«ó«ú« «¬¡á.
1 2 3 4 5
╔═══╤═══╤═══╤═══╤═══╗
cαHistoryViewer ║x06│x06│x07│x06│x06║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │
Ç¬Γ¿ó¡δ⌐ ────────┘ │ │ │ └─ Éáºñѽ¿Γѽ∞
ìÑá¬Γ¿ó¡δ⌐ ────────────┘ │ └───── éδíαá¡¡δ⌐
ÆѬπΘ¿⌐ ────────────────┘
Turbo Vision ñ½∩ æ++ = 130 =
THistoryWindow DIALOGS.H
-----------------------------------------------------------------
┌─────────┐ ┌───────────┐
│ TWindow │ │ THistInit │
└────┬────┘ └─────┬─────┘
└───────┐ ┌──────┘
╔══════╧════╧════╗
║ THistoryWindow ║
╚════════════════╝
THistoryWindow - φΓ« ߻ѵ¿á½¿º¿α«óá¡¡δ⌐ »«Γ«¼«¬ (¡áß½Ññ¡¿¬)
TWindow, ¿ß»«½∞ºπѼδ⌐ ñ½∩ «íΩѬΓá »α«ß¼«Γαá ß»¿ß¬á »α«Γ«¬«½á,
¬«úñá »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬¡«»¬π »α«Γ«¬«½á, ßΓ«∩Θπε ºá ßΓ᫬«⌐
óó«ñá. Å« π¼«½τá¡¿ε, «¬¡« ¡Ñ ¿¼ÑÑΓ ºáú«½«ó¬á ¿ ¡«¼Ñαá. Éá¼¬á «¬¡á
»α«Γ«¬«½á ¿¼ÑÑΓ ºá¬αδóáεΘπε ¬¡«»¬π, »«φΓ«¼π «¬¡« ¼«ªÑΓ íδΓ∞ ºá¬-
αδΓ«, ¡« ¡Ñ ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ αẼÑα ¿½¿ "αáß»áσ¿óáΓ∞ß∩" (¿º¼Ñ¡¿Γ∞
αẼÑα). Å«ñα«í¡« ¿ß»«½∞º«óá¡¿Ñ ß»¿ß¬«ó »α«Γ«¬«½«ó ¿ ßó∩ºá¡¡δσ ß
¡¿¼¿ «íΩÑ¬Γ«ó αáßß¼áΓα¿óáÑΓß∩ ó «»¿ßá¡¿¿ ¬½áßßá THistory.
Å«½∩
viewer TListViewer *viewer;
------
Å«½Ñ viewer π¬áºδóáÑΓ ¡á ß»¿ß«¬ »α«ß¼«Γαá «¬¡á »α«Γ«¬«½á.
îÑΓ«ñδ
constructor THistoryWindow(const TRect& bounds,
----------- ushort aHistoryId);
éδºδóáÑΓ ¬«¡ßΓαπ¬Γ«α THistInit ß áαúπ¼Ñ¡Γ«¼ &HistoryWindow::
InitViewer. Åα¿ φΓ«¼ ¿¡¿µ¿á½¿º¿απÑΓß∩ »α«ß¼«Γα ß»¿ß¬á. çáΓѼ ñ½∩
πßΓá¡«ó¬¿ «¬¡á ß ºáñá¡¡δ¼¿ úαá¡¿µá¼¿, »πßΓ«⌐ ßΓ᫬«⌐ ºáú«½«ó¬á ¿
íѺ ¡«¼Ñαá «¬¡á (wnNoNumber) óδºδóáÑΓß∩ ¬«¡ßΓαπ¬Γ«α TWindow,
»«ß½Ñ τÑú« ñ½∩ «¬¡á »α«Γ«¬«½á óδºδóáÑΓß∩ ¬«¡ßΓαπ¬Γ«α TWindowInit
ß áαúπ¼Ñ¡Γ«¼ &HistoryWindow::InitFrame. ìᬫ¡Ñµ, »«½Ñ TWindow::
flags πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ wfClose, τΓ«íδ «íÑß»Ñτ¿Γ∞ ºá¬αδ-
óáεΘπε ¬¡«»¬π, á «íΩÑ¬Γ »α«ß¼«Γαá »α«Γ«¬«½á ß«ºñáÑΓß∩ ¿ ó¬½ετá-
ÑΓß∩ ó «¬¡«, τΓ«íδ »«¬áºáΓ∞ φ½Ñ¼Ñ¡Γδ ß»¿ß¬á »α«Γ«¬«½á, ºáñá¡¡δÑ
τÑαѺ historyID.
æ¼. ΓᬪÑ: ¬«¡ßΓαπ¬Γ«α TWindow, THistoryWindow::initViewer
getPalette virtual TPalette getPalette() const;
----------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á »á½¿Γαπ (¿ß»«½∞ºπѼπε »« π¼«½τá¡¿ε)
cαHistoryWindow, "\x13\x13\x15\x18\x17\x13\x14\"
Turbo Vision ñ½∩ æ++ = 131 =
getSelection virtual void getSelection(char * dest);
------------
髺óαáΘáÑΓ ßΓ᫬«ó«Ñ º¡áτÑ¡¿Ñ á¬Γ¿ó¡«ú« φ½Ñ¼Ñ¡Γá ¿º »α«ß¼«Γ-
αá »α«Γ«¬«½á.
æ¼. ΓᬪÑ: THistoryViewer::getText
initViewer static TListViewer(TRect bounds, TWindow *w,
---------- ushort aHistoryId);
櫺ñáÑΓ ¿ ó¬½ετáÑΓ «íΩÑ¬Γ THistoryViewer ó¡πΓα¿ úαá¡¿µ «¬¡á
»α«Γ«¬«½á ß« ß»¿ß¬«¼, ºáñá¡¡δ¼ τÑαѺ historyId. æΓá¡ñáαΓ¡δÑ »«-
½«ßδ »α«¬απΓ¬¿ αẼÑΘÑ¡δ ¡á αá¼¬Ñ «¬¡á ñ½∩ ߬«½∞ªÑ¡¿∩ »« ß»¿ß¬π.
æ¼. ΓᬪÑ: ¬«¡ßΓαπ¬Γ«α THistoryViewer
Å὿Γαá
ÄíΩѬΓδ «¬¡á »α«Γ«¬«½á ¿ß»«½∞ºπεΓ »« π¼«½τá¡¿ε »á½¿Γαπ
cαHistoryWindow ñ½∩ «Γ«íαáªÑ¡¿∩ ¡á φ½Ñ¼Ñ¡Γδ ß 19 »« 25-⌐ ó »á½¿Γ-
αÑ ßΓá¡ñáαΓ¡«ú« ñ¿á½«ú«ó«ú« «¬¡á.
1 2 3 4 5 6 7
╔════╤════╤════╤════╤════╤════╤════╗
cαHistoryWindow ║x13 │x13 │x15 │x18 │x17 │x13 │x14 ║
╚══╤═╧══╤═╧══╤═╧══╤═╧══╤═╧══╤═╧══╤═╝
│ │ │ │ │ │ │
Åáßß¿ó¡á∩ αἬá ──┘ │ │ │ │ │ └ éδñѽѡ¡δ⌐
Ç¬Γ¿ó¡á∩ αἬá ───────┘ │ │ │ │ ΓѬßΓ
è¡«»¬á αἬ¿ ────────────┘ │ │ └── Äíδτ¡δ⌐ ΓѬßΓ
│ │
│ └───── ¥½Ñ¼Ñ¡Γδ π»αáó½Ñ¡¿∩
└──────────── Äí½áßΓ∞ ßΓαá¡¿µδ
Turbo Vision ñ½∩ æ++ = 132 =
THWMouse SYSTEM.H
-----------------------------------------------------------------
╔══════════╗
║ THWMouse ║
╚════╤═════╝
│
┌────┴────┐
│ TMouse │
└─────────┘
ÄΓ THWMouse «íÑß»Ñτ¿óáÑΓ Σπ¡¬µ¿¿ ¡¿º¬«ú« πα«ó¡∩ ñ½∩ «íαáí«Γ-
¬¿ ß«íδΓ¿⌐ "¼δΦ¿" ñ½∩ ßó«Ñú« »α«¿ºó«ñ¡«ú« ¬½áßßá TMouse. ¥Γ«Γ ¿
ñαπú¿Ñ ß¿ßΓѼ¡δÑ ¬½áßßδ ¿º SYSTEM.H »α¿ó«ñ∩Γß∩ Γ«½∞¬« ñ½∩ ßóÑñÑ-
¡¿∩: «¡¿ ó¡πΓαÑ¡¡Ñ ¿ß»«½∞ºπεΓß∩ ó Turbo Vision, á ó «íδτ¡δσ »α¿¬-
½áñ¡δσ »α«úαá¼¼áσ ¿σ ¿ß»«½∞º«óá¡¿Ñ ó ∩ó¡«¼ ó¿ñÑ ¡Ñ ΓαÑíπÑΓß∩.
Å«½∩
buttonCount static uchar near buttonCount; (ºáΘ¿ΘÑ¡¡δ⌐)
-----------
æ«ñÑαª¿Γ τ¿ß½« ¬¡«»«¬ "¼δΦ¿", ¿½¿ 0, Ñß½¿ "¼δΦ∞" ¡Ñ »«ñ¬½ετÑ-
¡á.
îÑΓ«ñδ
constructor THWMouse(); (ºáΘ¿ΘÑ¡¡δ⌐)
----------- THWMouse( const THWMouse& m); (ºáΘ¿ΘÑ¡¡δ⌐)
éδºδóáÑΓ THWMouse::resume.
æ¼. ΓᬪÑ: THWMouse::resume
destructor ~THWMouse(); (ºáΘ¿ΘÑ¡¡δ⌐)
éδºδóáÑΓ THWMouse::susαend.
æ¼. ΓᬪÑ: THWMouse::susαend
getEvent static void getEvent(MouseEventTyαe& me); (ºáΘ¿ΘÑ¡¡δ⌐)
--------
éδí¿αáÑΓ ¿º «τÑαÑñ¿ ß«íδΓ¿⌐ ß«íδΓ¿Ñ «Γ "¼δΦ¿" ¿ πßΓá¡áó½¿óá-
ÑΓ »«½∩ buttons, where.x, where.y ¿ doubleClick ßΓαπ¬Γπαδ me
MouseEventTyαe.
æ¼. ΓᬪÑ: MouseEventTyαe
hide static void hide(); (ºáΘ¿ΘÑ¡¡δ⌐)
----
Turbo Vision ñ½∩ æ++ = 133 =
äѽáÑΓ ¡Ñó¿ñ¿¼δ¼ ("»α∩τÑΓ") ¬παß«α "¼δΦ¿".
αresent Boolean αresent(); (ºáΘ¿ΘÑ¡¡δ⌐)
-------
髺óαáΘáÑΓ True, Ñß½¿ "¼δΦ∞" »«ñ¬½ετÑ¡á ¿ á¬Γ¿ó¡á; ó »α«Γ¿ó-
¡«¼ ß½πτáÑ, ó«ºóαáΘáÑΓ False.
registerHandler static void registerHandler(unsigned mask, void
--------------- (far *func)(); (ºáΘ¿ΘÑ¡¡δ⌐)
ÉÑú¿ßΓα¿απÑΓ func ¬á¬ ΓѬπΘ¿⌐ «íαáí«Γτ¿¬ "¼δΦ¿" ¿ πßΓá¡áó½¿-
óáÑΓ handlerInstalled ó True.
resume static void resume(); (ºáΘ¿ΘÑ¡¡δ⌐)
------
é«ßßΓá¡áó½¿óáÑΓ "¼δΦ∞", »ÑαÑ(αÑú¿ßΓα¿απ∩) «íαáí«Γτ¿¬ ¿
(»ÑαÑ)πßΓá¡áó½¿óá∩ buttonCount.
setRange static void setRange( ushort rx, ushort ry );
-------- (ºáΘ¿ΘÑ¡¡δ⌐)
ôßΓá¡áó½¿óáÑΓ ñ¿á»áº«¡ ñÑ⌐ßΓó¿∩ "¼δΦ¿" ó ß««ΓóÑΓßΓó¿¿ ß ºá-
ñá¡¡δ¼¿ áαúπ¼Ñ¡ΓἿ x, y.
static void show(); (ºáΘ¿ΘÑ¡¡δ⌐)
------
ÄΓ«íαáªáÑΓ ¬παß«α "¼δΦ¿".
susαend static void susαend(); (ºáΘ¿ΘÑ¡¡δ⌐)
-------
ì¿τÑú« ¡Ñ ñѽáÑΓ, Ñß½¿ αresent ó«ºóαáΘáÑΓ False; ó »α«Γ¿ó¡«¼
ß½πτáÑ, ߬αδóáÑΓ "¼δΦ∞", «Γ¼Ñ¡∩ÑΓ αÑú¿ßΓαáµ¿ε «íαáí«Γτ¿¬á ¿ πßΓá-
¡áó½¿óáÑΓ bottonCount ó 0.
æ¼. ΓᬪÑ: THWMouse::αresent
Turbo Vision ñ½∩ æ++ = 134 =
TInαutLine DIALOGS.H
-----------------------------------------------------------------
┌─────────────┐
│ TView │
└──────┬──────┘
╔══════╧══════╗
║ TInαutLine ║
╚═════════════╝
ÄíΩÑ¬Γ TInαutLine «íÑß»Ñτ¿óáÑΓ «ß¡«ó¡«⌐ αÑñá¬Γ«α ßΓ᫬ óó«-
ñá. Ä¡ π»αáó½∩ÑΓ óó«ñ«¼ ß ¬½áó¿áΓπαδ ¿ "¼δΦ¿" ¿ »ÑαѼÑΘÑ¡¿Ñ¼ »«-
¼ÑτÑ¡¡δσ í½«¬«ó ó αẽ¿τ¡δσ Σπ¡¬µ¿∩σ αÑñá¬Γ¿α«óá¡¿∩ ßΓ᫬¿ (ß¼.
TInαutLine::handleEvent). éδñѽѡ¡δ⌐ ΓѬßΓ πñá½∩ÑΓß∩ ¿ ºá¼Ñ¡∩ÑΓß∩
»Ñαóδ¼ óóÑñÑ¡¡δ¼ ΓѬßΓ«¼. àß½¿ maxLen í«½∞ΦÑ αẼÑαá »« ò
(size.X), Γ« »«ññÑনóáÑΓß∩ ú«α¿º«¡Γá½∞¡á∩ »α«¬απΓ¬á, ¬«Γ«αá∩
π¬áºδóáÑΓß∩ »αáó«⌐ ¿ ½Ñó«⌐ ßΓαѽ¬á¼¿.
îÑΓ«ñδ getData ¿ setData »αÑñ¡áº¡áτÑ¡δ ñ½∩ ºá»¿ß¿ ¿ τΓÑ¡¿∩
ßΓ᫬ ñá¡¡δσ (τÑαѺ »«½Ñ π¬áºáΓѽ∩ data) ó ñá¡¡πε ºá»¿ß∞.
TInαutLine::setState π»α«ΘáÑΓ »ÑαÑα¿ß«ó¬π «Γ«íαáªáѼ«ú« «íΩѬΓá
ß««ΓóÑΓßΓóπεΘ¿¼ µóÑΓ«¼, ¬«úñá ß«ßΓ«∩¡¿Ñ ¿º¼Ñ¡∩ÑΓß∩ ó sfActive ¿
sfSelected.
æΓ᫬á óó«ñá τáßΓ« ¿¼ÑÑΓ ßó∩ºá¡¡δÑ ß ¡Ñ⌐ «íΩѬΓδ TLabel
¿/¿½¿ THistory.
TInαutLine ¼«ª¡« αáßΦ¿α¿Γ∞ ñ½∩ «íαáí«Γ¬¿ Γ¿»«ó ñá¡¡δσ «Γ½¿τ-
¡δσ «Γ ßΓ᫬. ùΓ«íδ ßñѽáΓ∞ φΓ«, óδ ñ«íáó½∩ÑΓÑ ¡«óδÑ »«½∩, »ÑαÑ-
«»αÑñѽ∩ÑΓÑ ¬«¡ßΓαπ¬Γ«αδ ¿ ¼ÑΓ«ñδ store, valid, dataSize, getData
¿ setData. ìá»α¿¼Ñα, τΓ«íδ «»αÑñѽ¿Γ∞ ßΓ᫬π óó«ñá τ¿ß½á, óδ ¼«-
ªÑΓÑ ºáñáΓ∞ ¼¿¡¿¼á½∞¡«Ñ ¿ ¼á¬ß¿¼á½∞¡δÑ ñ«»πßΓ¿¼δÑ º¡áτÑ¡¿∩, ¬«Γ«-
αδÑ íπñπΓ »α«óÑα∩Γ∞ß∩ Σπ¡¬µ¿Ñ⌐ valid. ¥Γ¿ ¼¿¡¿¼á½∞¡δÑ ¿ ¼á¬ß¿-
¼á½∞¡δÑ »«½∩ íπñπΓ ºáúαπªáΓ∞ß∩ ¿ ß«σαá¡∩Γ∞ß∩ ó »«Γ«¬Ñ ¬«¡ßΓαπ¬Γ«-
α«¼ ºáúαπº¬¿ ¿ Σπ¡¬µ¿Ñ⌐ store, ß««ΓóÑΓßΓóÑ¡¡«. valid ¼«ñ¿Σ¿µ¿απ-
ÑΓß∩ ñ½∩ »α«óÑન Γ«ú«, τΓ« º¡áτÑ¡¿Ñ ¡áσ«ñ¿Γß∩ ó ñ«»πßΓ¿¼«¼ ñ¿á-
»áº«¡Ñ. dataSize ¼«ñ¿Σ¿µ¿απÑΓß∩ ñ½∩ ó¬½ετÑ¡¿∩ αẼÑαá ñ¿á»áº«¡á
¡«óδσ »«½Ñ⌐ (óÑα«∩Γ¡«, sizeOf(long) ñ½∩ ¬áªñ«ú«). é φΓ«¼ »α¿¼ÑαÑ
¡Ñ«í∩ºáΓѽ∞¡« ñ«íáó½∩Γ∞ »«½Ñ, ñ½∩ σαá¡Ñ¡¿∩ τ¿ß½«ó«ú« º¡áτÑ¡¿∩.
Ä¡« ¼«ªÑΓ σαá¡¿Γ∞ß∩, ¬á¬ ßΓ᫬«ó«Ñ º¡áτÑ¡¿Ñ (¬«Γ«α«Ñ πªÑ «íαáíá-
ΓδóáÑΓß∩ ó TIn- αutLine) ¿ »αÑ«íαẫóδóáΓ∞ß∩ ¿º ßΓ᫬¿ ó τ¿ß½«ó«Ñ
º¡áτÑ¡¿Ñ ¿ «íαáΓ¡« ¼ÑΓ«ñἿ getData ¿ setData, ß««ΓóÑΓßΓóÑ¡¡«.
Å«½∩
curPos int curPos;
------
ê¡ñÑ¬ß ¡á Γ«τ¬π óßΓáó¬¿ (Γ.Ñ. ¡á ΓѬπΘπε »«º¿µ¿ε ¬παß«αá).
æ¼. ΓᬪÑ: TInαutLine::selectAll
Turbo Vision ñ½∩ æ++ = 135 =
data char *data;
----
ô¬áºáΓѽ∞ ¡á ßΓ᫬π, ß«ñÑαªáΘπε «ΓαÑñá¬Γ¿α«óá¡¡πε ¿¡Σ«α¼á-
µ¿ε.
firstPos int firstPos;
--------
ê¡ñÑ¬ß ¡á »Ñαóδ⌐ «Γ«íαáªáѼδ⌐ ß¿¼ó«½.
æ¼. ΓᬪÑ: TInαutLine::selectAll
maxLen int maxLen;
------
îá¬ß¿¼á½∞¡á∩ ñ½¿¡á, ñ«»πßΓ¿¼á∩ ñ½∩ ßΓ᫬¿, ó¬½ετá∩ íá⌐Γ ñ½¿-
¡δ.
æ¼. ΓᬪÑ: TInαutLine::dataSize
selEnd int selEnd;
------
ê¡ñÑ¬ß ¬«¡µá óδñѽѡ¡«⌐ «í½áßΓ¿ (Γ.Ñ. π¬áºáΓѽ∞ ¡á »«ß½Ññ¡¿⌐
ß¿¼ó«½ «Γ¼ÑτÑ¡¡«ú« í½«¬á).
æ¼. ΓᬪÑ: TInαutLine::selectAll
selStart int selStart;
--------
ê¡ñÑ¬ß ¡áτá½á óδñѽѡ¡«⌐ «í½áßΓ¿ (Γ.Ñ. »Ñαóδ⌐ ß¿¼ó«½ «Γ¼Ñ-
τÑ¡¡«ú« í½«¬á).
æ¼. ΓᬪÑ: TInαutLine::selectAll
îÑΓ«ñδ
constructor TInαutLine (const TRect& bounds, int aMaxLen);
-----------
櫺ñáÑΓ »α∩¼«πú«½∞¡¿¬ óó«ñá ß ºáñá¡¡δ¼¿ º¡áτÑ¡¿∩¼¿, óδºδóá∩
TView(bounds). Åα¿ φΓ«¼ state πßΓá¡áó½¿óáÑΓß∩ ó sfCursorVis,
oαtions πßΓá¡áó½¿óáÑΓß∩ ó (ofSelectable | ofFirstClick), á maxLen
πßΓá¡áó½¿óáÑΓß∩ ó aMaxLen. éδñѽ∩ÑΓß∩ ¿ «τ¿ΘáÑΓß∩ »á¼∩Γ∞ αẼÑα«¼
aMaxLen + 1 íá⌐Γ, á »«½Ñ data πßΓá¡áó½¿óáÑΓß∩ Γᬿ¼ «íαẫ¼, τΓ«
π¬áºδóáÑΓ ¡á φΓπ αáß»αÑñѽѡ¡πε »á¼∩Γ∞.
constructor TInαutLine( StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ΓαÑíπÑΓß∩ "»«ßΓα«¿Γѽ∞" ñ½∩ óδñÑ-
½Ñ¡¿∩ ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ »«ñ Ñú« «íΩѬΓδ ó¼ÑßΓÑ ß ¿¡¿µ¿á-
Turbo Vision ñ½∩ æ++ = 136 =
½¿º¿α«óá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ vtable. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. æ¼. ΓᬪÑ
ú½áóπ 8.
æ¼. ΓᬪÑ: TView::TView, sfCursorVis, ofSelectable,
ofFirstClick
destructor ~TInαutLine
----------
ôñá½∩ÑΓ ¿º »á¼∩Γ¿ »«½Ñ data, »«ß½Ñ τÑú« ñ½∩ πñá½Ñ¡¿∩ «íΩѬΓá
TInαutLine óδºδóáÑΓ ~View.
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ τΓÑ¡¿∩
»«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, iαstream::readData
dataSize virtual short dataSize();
--------
髺óαáΘáÑΓ αẼÑα ºá»¿ß¿ ñ½∩ TInαutLine::getData ¿
TInαutLine::setData. Å« π¼«½τá¡¿ε ó«ºóαáΘáÑΓß∩ maxLen+1. àß½¿ óδ
«»αÑñѽ¿½¿ »«Γ«¼¬«ó ñ½∩ «íαáí«Γ¬¿ ñαπú¿σ Γ¿»«ó ñá¡¡δσ, Γ« φΓ«Γ
¼ÑΓ«ñ ¡πª¡« »ÑαÑ«»αÑñѽ¿Γ∞.
æ¼. ΓᬪÑ: TInαutLine::getData, TInαutLine::setData
draw virtual void draw;
----
ÄΓ«íαáªáÑΓ »α∩¼«πú«½∞¡¿¬ óó«ñá ¿ Ñú« ñá¡¡δÑ. Åα∩¼«πú«½∞¡¿¬
α¿ßπÑΓß∩ ß««ΓóÑΓßΓóπεΘ¿¼ µóÑΓ«¼ ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, ∩ó½∩ÑΓß∩
½¿ «¡ sfFocused ¿½¿ ¡ÑΓ (Γ.Ñ. ¡áσ«ñ¿Γß∩ ½¿ ó «Γ«íαáªáѼ«¼ «íΩѬΓÑ
¬παß«α ¿½¿ ¡ÑΓ), á ßΓαѽ¬¿ α¿ßπεΓß∩, Ñß½¿ ßΓ᫬á óó«ñá »αÑóδΦáÑΓ
αẼÑα «Γ«íαáªáѼ«ú« «íΩѬΓá (ó ½εí«¼ ¿½¿ ó «í«¿σ ¡á»αáó½Ñ¡¿∩σ).
ïεíδÑ óδñѽѡ¡δÑ («Γ¼ÑτÑ¡¡δÑ í½«¬«¼) ß¿¼ó«½δ α¿ßπεΓß∩ ß««Γ-
óÑΓßΓóπεΘ¿¼ µóÑΓ«¼.
getData virtual void getData(void *rec);
-------
çỿßδóáÑΓ íá⌐Γδ (¿σ τ¿ß½« ó«ºóαáΘáÑΓß∩ Σπ¡¬µ¿Ñ⌐ dataSize)
¿º ßΓ᫬¿ data ó ¼áßß¿ó, ºáñá¡¡δ⌐ rec êß»«½∞ºπÑΓß∩ ó¼ÑßΓÑ ß
setData ñ½∩ α∩ñá »α¿½«ªÑ¡¿⌐, ¡á»α¿¼Ñα, ñ½∩ óδñѽѡ¿∩ óαѼѡ¡«⌐
»á¼∩Γ¿ ¿½¿ ñ½∩ »ÑαÑñáτ¿ ßΓ᫬¿ óó«ñá ó ñαπú¿Ñ «Γ«íαáªáѼδÑ «íΩѬ-
Γδ. àß½¿ óδ «»αÑñѽ∩ÑΓÑ »«Γ«¼¬«ó TInαutLine ñ½∩ «íαáí«Γ¬¿ ¡ÑßΓα«-
¬«óδσ Γ¿»«ó ñá¡¡δσ, Γ« »«½Ñ getData ¡πª¡« »ÑαÑ«»αÑñѽ¿Γ∞. ¥Γ«Γ
¼ÑΓ«ñ ¼«ª¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ ñ½∩ »αÑ«íαẫóá¡¿∩ ¿º ßΓ᫬¿ ó
ñαπú¿Ñ Γ¿»δ ñá¡¡δσ »«ß½Ñ αÑñá¬Γ¿α«óá¡¿∩ ÑÑ ß »«¼«Θ∞ε TInαutLine.
Turbo Vision ñ½∩ æ++ = 137 =
æ¼. ΓᬪÑ: TInαutLine::dataSize, TInαutLine::setData
getPalette virtual TPalette& getPalette() const;
----------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á ¿ß»«½∞ºπѼπε »« π¼«½τá¡¿ε »á½¿Γαπ
cαInαutLine, "\x13\x13\x14\x15".
handleEvent void handleEvent(TEvent& event);
-----------
éδºδóáÑΓ ¼ÑΓ«ñ TView::handleEvent, ¬«Γ«αδ⌐ «íαáíáΓδóáÑΓ óßÑ
ß«íδΓ¿∩ «Γ "¼δΦ¿" ¿ ¬½áó¿áΓπαδ, Ñß½¿ »α∩¼«πú«½∞¡á∩ «í½áßΓ∞ óó«ñá
óδíαá¡á. ¥Γ«Γ ¼ÑΓ«ñ αÑ὿ºπÑΓ ßΓá¡ñáαΓ¡δÑ ó«º¼«ª¡«ßΓ¿ αÑñá¬Γ¿α«-
óá¡¿∩.
髺¼«ª¡«ßΓ¿ αÑñá¬Γ¿α«óá¡¿∩ ó¬½ετáεΓ ó ßÑí∩: «Γ¼ÑΓ¬π í½«¬á
"¼δΦ∞ε", πñá½Ñ¡¿Ñ í½«¬á, óßΓáó¬π ¿½¿ »ÑαÑ«»αÑñѽѡ¿Ñ φ½Ñ¼Ñ¡Γá π»-
αáó½Ñ¡¿∩ ß áóΓ«¼áΓ¿τÑ߬¿¼ ¿º¼Ñ¡Ñ¡¿Ñ¼ Σ«α¼δ ¬παß«αá; áóΓ«¼áΓ¿τÑß-
¬πε ¿ "απτ¡πε" »α«¬απΓ¬π (ºáó¿ß¿Γ «Γ «Γ¡«ß¿Γѽ∞¡δσ αẼÑα«ó ßΓα«-
¬¿ data ¿ size.X), "απτ¡πε" ú«α¿º«¡Γá½∞¡πε »α«¬απΓ¬π ß »«¼«Θ∞ε
«Γ¼ÑΓ¬¿ "¼δΦ∞ε" ¡á ßΓαѽ¬¿ íÑúπ¡¬á, "απτ¡«Ñ" »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá
ß »«¼«Θ∞ε ¬½áó¿Φ Home ¿ End, πñá½Ñ¡¿Ñ ß¿¼ó«½á ¿ í½«¬á ß »«¼«Θ∞ε
¬½áó¿Φ Del ¿ Ctrl-G. ÄΓ«íαáªáѼδ⌐ «íΩÑ¬Γ »ÑαÑα¿ß«óδóáÑΓß∩ ΓαÑíπÑ-
¼δ¼ «íαẫ¼ ¼ »«½∩ TInαutLine ß««ΓóÑΓßΓóÑ¡¡« ¿º¼Ñ¡∩εΓß∩.
æ¼. ΓᬪÑ: sfCursorIns, TView::handleEvent,
TIαutLine::selectAll
read void *read( iαstream is);
----
éδ»«½¡∩ÑΓ τΓÑ¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, iαstream
selectAll void selectAll(Boolean enable);
---------
ôßΓá¡áó½¿óáÑΓ curPos, firstPos ¿ selStart ó º¡áτÑ¡¿Ñ 0. àß½¿
enable πßΓá¡«ó½Ñ¡á ó º¡áτÑ¡¿Ñ True, selEnd »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ
ñ½¿¡δ ßΓ᫬¿ data, óδí¿αá∩ Γᬿ¼ «íαẫ¼ óßε ßΓ᫬π óó«ñá. àß½¿
enable πßΓá¡«ó½Ñ¡á ó False, selEnd πßΓá¡áó½¿óáÑΓß∩ ó 0, «Γ¼Ñ¡∩∩
Γᬿ¼ «íαẫ¼ óδí«α óßÑ⌐ ßΓ᫬¿. ìᬫ¡Ñµ, «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ »Ñ-
αÑα¿ß«óδóáÑΓß∩ »πΓѼ ó맮óá¼ View::drawView.
æ¼. ΓᬪÑ: TView::drawView
setData virtual void setData(void rec);
-------
Turbo Vision ñ½∩ æ++ = 138 =
Å« π¼«½τá¡¿ε, ¬«»¿απÑΓ íá⌐Γδ (¿σ τ¿ß½« ó«ºóαáΘáÑΓß∩ Σπ¡¬µ¿Ñ⌐
dataSize) ¿º ¼áßß¿óá rec ó ßΓ᫬π data, á ºáΓѼ óδºδóáÑΓ
selectAll(True). ¥Γ¿¼ «í¡π½∩εΓß∩ curPos, firstPos ¿ selStart. ìá-
¬«¡Ñµ, ñ½∩ »ÑαÑα¿ß«ó¬¿ í½«¬á óó«ñá óδºδóáÑΓß∩ dataView.
àß½¿ óδ «»αÑñѽ∩ÑΓÑ »«Γ«¼¬«ó ñ½∩ «íαáí«Γ¬¿ ¡ÑßΓ᫬«óδσ Γ¿»«ó
ñá¡¡δσ, Γ« Σπ¡¬µ¿ε setData ¡πª¡« »ÑαÑ«»αÑñѽ¿Γ∞. ¥Γπ Σπ¡¬µ¿ε φ½Ñ-
¼Ñ¡Γ ¼«ª¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ ñ½∩ »αÑ«íαẫóá¡¿∩ ñαπú¿σ Γ¿»«ó
ñá¡¡δσ ó ßΓα«¬π »«ß½Ñ αÑñá¬Γ¿α«óá¡¿∩ ¿σ ß »«¼«Θ∞ε TInαutLine.
æ¼. ΓᬪÑ: TInαutLine::dataSize, TInαutLine::getData,
TInαutLine::selectAll
setState virtual void setState(usort aState Boolean enable);
--------
éδºδóáÑΓß∩, ¬«úñá »α∩¼«πú«½∞¡á∩ «í½áßΓ∞ óó«ñá ñ«½ª¡á íδΓ∞
«Γ«íαáªÑ¡á ºá¡«ó« (¡á»α¿¼Ñα, »α¿ ¿º¼Ñ¡Ñ¡¿¿ »á½¿Γαδ) »«ß½Ñ ¿º¼Ñ¡Ñ-
¡¿∩ ß«ßΓ«∩¡¿∩ aState. éδºδóáÑΓ ¼ÑΓ«ñ TView::setState ñ½∩ ¿¡¿µ¿á-
½¿ºáµ¿¿ ¿½¿ ºá»«½¡Ñ¡¿∩ »«½∩ state «Γ«íαáªáѼ«ú« «íΩѬΓá ºáñá¡¡δ¼¿
í¿ΓἿ aState. çáΓѼ, Ñß½¿ aState - sfSelected (¿½¿ sfActive ¿
»α∩¼«πú«½∞¡á∩ «í½áßΓ∞ óó«ñá - sfSelected), Γ« óδºδóáÑΓß∩ ¼ÑΓ«ñ
selectAll(enable), ¬«Γ«αδ⌐, ó ßó«ε «τÑαÑñ∞, óδºδóáÑΓ drawView.
æ¼. ΓᬪÑ: TView::setState, TView::drawView
write virtual void write(oαstream& oα);
-----
éδ»«½¡∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, oαstream
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
æ TInαutLine ßó∩ºá¡δ ¡Ñ¬«Γ«αδÑ Σπ¡¬µ¿¿ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ
¡Ñ ∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
æΓ᫬¿ óó«ñá ¿ß»«½∞ºπεΓ »« π¼«½τá¡¿ε »á½¿Γαπ cαInαutLine ñ½∩
«Γ«íαáªÑ¡¿∩ ó φ½Ñ¼Ñ¡Γδ ß 19 »« 21-⌐ ó »á½¿ΓαÑ ßΓá¡ñáαΓ¡«ú« ñ¿á½«-
ú«ó«ú« «¬¡á.
1 2 3 4
╔════╤════╤════╤════╗
cαInαutLine ║ x13│ x13│ x14│ x15║
╚══╤═╧══╤═╧══╤═╧══╤═╝
│ │ │ │
Åáßß¿ó¡δ⌐ ─────┘ │ │ └─── æΓαѽ¬á
Ç¬Γ¿ó¡δ⌐ ──────────┘ └──────── éδíαá¡¡δ⌐
Turbo Vision ñ½∩ æ++ = 139 =
TLabel DIALOGS.H
-----------------------------------------------------------------
┌─────────────┐
│ TStaticText │
└──────┬──────┘
╔══════╧══════╗
║ TLabel ║
╚═════════════╝
ÄíΩÑ¬Γ TLabel - φΓ« ΓѬßΓ ó «Γ«íαáªáѼ«¼ «íΩѬΓÑ, ¬«Γ«αδ⌐
¼«ªÑΓ íδΓ∞ óδíαá¡ (»«ñßóÑτÑ¡) ß »«¼«Θ∞ε "¼δΦ¿", ¬½áó¿ΦἿ π»αáó-
½Ñ¡¿∩ ¬παß«αá ¿½¿ ß«τÑΓ᡿Ѽ ¬½áó¿Φ Alt-íπ¬óá. îÑΓ¬á «íδτ¡«
»α¿ß«Ññ¿¡Ñ¡á τÑαѺ π¬áºáΓѽ∞ ¡á TView (¡áºδóáÑΓß∩ ßó∩º∞ε) ¬ ñαπ-
ú«¼π «Γ«íαáªáѼ«¼π «íΩѬΓπ π»αáó½Ñ¡¿∩, Γᬫ¼π, ¬á¬ ßΓ᫬á óó«ñá,
¬½áßΓÑα ¿½¿ »α«ß¼«Γα ß»¿ß¬á ñ½∩ »«∩ß¡Ñ¡¿∩ »«½∞º«óáΓѽε. éδí«α
(¿½¿ ¡áªáΓ¿Ñ) ¼ÑΓ¬¿ íπñÑΓ óδñѽ∩Γ∞ »α¿ß«Ññ¿¡Ñ¡¡δ⌐ φ½Ñ¼Ñ¡Γ π»αáó-
½Ñ¡¿∩. îÑΓ¬á ΓᬠªÑ íπñÑΓ »«ñßóÑτ¿óáΓ∞ß∩, ¬«úñá óδíαá¡ ßó∩ºá¡¡δ⌐
φ½Ñ¼Ñ¡Γ π»αáó½Ñ¡¿∩.
Å«½∩
link TView *link;
----
ô¬áºδóáÑΓ ¡á φ½Ñ¼Ñ¡Γ π»αáó½Ñ¡¿∩ TView, ßó∩ºá¡¡δ⌐ ß φΓ«⌐ ¼ÑΓ-
¬«⌐.
light Boolean light;
-----
àß½¿ True, Γ« ¼ÑΓ¬á ¿ ßó∩ºá¡¡δ⌐ ß ¡Ñ⌐ φ½Ñ¼Ñ¡Γ π»αáó½Ñ¡¿∩ íδ-
½¿ óδíαá¡δ ¿ íπñπΓ »«ñßóÑτ¿óáΓ∞ß∩.
îÑΓ«ñδ
constructor TLabel(const TRect& bounds, const char aText,
TView *aLink);
櫺ñáÑΓ «íΩÑ¬Γ TLabel ºáñá¡¡«ú« αẼÑαá ¿ ΓѬßΓ, óδºδóá∩
TStaticText(bounds, aText), ºáΓѼ πßΓá¡áó½¿óáÑΓ »«½Ñ link ó aLink
ñ½∩ ßó∩ºδóá¡¿∩ ß φ½Ñ¼Ñ¡Γ«¼ π»αáó½Ñ¡¿∩ (Ñß½¿ φ½Ñ¼Ñ¡Γ π»αáó½Ñ¡¿∩
Ñß½¿ ¡Ñ ΓαÑíπÑΓß∩, Γ« πßΓá¡«ó¿ΓÑ aLink ó 0). Å«½Ñ oαtions πßΓá-
¡áó½¿óáÑΓß∩ ó ofPreProcess ¿ ofPostProcess. eventMask πßΓá¡áó½¿-
óáÑΓß∩ evBroadcast. aText ¼«ªÑΓ ºáñáΓ∞ π»αáó½∩εΘπε ¬½áó¿Φπ ñ½∩
»«¼ÑΓ¬¿, «¬απª¿ó ß««ΓóÑΓßΓóπεΘπε íπ¬óπ ß¿¼ó«½á¼¿ Γ¿½∞ñδ (~).
constructor TInαutLine( StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ΓαÑíπÑΓß∩ "»«ßΓα«¿Γѽ∞" ñ½∩ óδñÑ-
Turbo Vision ñ½∩ æ++ = 140 =
½Ñ¡¿∩ ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ »«ñ Ñú« «íΩѬΓδ ó¼ÑßΓÑ ß ¿¡¿µ¿á-
½¿º¿α«óá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ vtable. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. æ¼. ΓᬪÑ
ú½áóπ 8.
æ¼. ΓᬪÑ: TStaticText::TStaticText
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ τΓÑ¡¿∩
¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, iαstream::readData
draw virtual void draw;
----
É¿ßπÑΓ ¼ÑΓ¬π ó »á½¿ΓαÑ µóÑΓ«ó, »α¿¡∩Γ«⌐ »« π¼«½τá¡¿ε.
getPalette virtual TPalette& getPalette() const;
----------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á ¿ß»«½∞ºπѼπε »« π¼«½τá¡¿ε »á½¿Γαπ
cαLabel, "\x07\x08\x09\x09".
handleEvent virtual void handleEvent(TEvent& event);
-----------
ÄíαáíáΓδóáÑΓ óßÑ ß«íδΓ¿∩, óδºδóá∩ TStaticText::handleEvent.
é ß½πτáÑ evMouseDown ¿½¿ Ñß½¿ »«½πτÑ¡« ß«íδΓ¿Ñ «Γ π»αáó½∩εΘÑ⌐
¬½áó¿Φ¿, óδñѽ∩ÑΓß∩ ßó∩ºá¡¡δ⌐ φ½Ñ¼Ñ¡Γ π»αáó½Ñ¡¿∩ (Ñß½¿ «¡ ÑßΓ∞).
¥Γá Σπ¡¬µ¿∩ φ½Ñ¼Ñ¡Γ Γá¬ªÑ «íαáíáΓδóáÑΓ «íΘ¿Ñ ß«íδΓ¿∩
cmReceivedFocus ¿ cmReleasedFocus «Γ ßó∩ºá¡¡«ú« φ½Ñ¼Ñ¡Γá π»αáó½Ñ-
¡¿∩ ñ½∩ ¡áßΓα«⌐¬¿ º¡áτÑ¡¿∩ »«½∩ light ¿ »ÑαÑα¿ß«ó¬¿ ¼ÑΓ¬¿.
æ¼. ΓᬪÑ: TView::handleEvent, ¬«¡ßΓá¡Γδ ¬«¼á¡ñ cmXXXX
read void *read( iαstream is);
----
éδ»«½¡∩ÑΓ τΓÑ¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, iαstream
shutDown virtual void shutDown();
--------
é¡πΓαÑ¡¡Ñ ¿ß»«½∞ºπÑΓß∩ ó TObject::destroy ñ½∩ úáαá¡Γ¿¿ ¬«α-
αÑ¬Γ¡«ú« πñá½Ñ¡¿∩ »«α«ªñÑ¡¡«ú« ¿ ßó∩ºá¡¡«ú« «íΩÑ¬Γ«ó. shutDown
»ÑαÑ«»αÑñѽ∩ÑΓß∩ ó« ¼¡«ú¿σ ¬½áßßáσ, τΓ«íδ úáαá¡Γ¿α«óáΓ∞ »αáó¿½∞-
¡«ßΓ∞ ¡áßΓα«⌐¬¿ ßó∩ºá¡¡δσ »«½Ñ⌐, »α¿ ó맮óÑ destroy.
Turbo Vision ñ½∩ æ++ = 141 =
æ¼. ΓᬪÑ: ú½áóá 6, "Éáºαáí«Γ¬á ¡áñѪ¡δσ »α«úαá¼¼"
write virtual void write(oαstream& oα);
-----
éδ»«½¡∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, oαstream
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
æ TLabel ßó∩ºá¡δ ¡Ñ¬«Γ«αδÑ Σπ¡¬µ¿¿ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ ¡Ñ
∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
îÑΓ¬¿ ¿ß»«½∞ºπεΓ »á½¿Γαπ »« π¼«½τá¡¿ε cαLabel ñ½∩ «Γ«íαáªÑ-
¡¿∩ ó φ½Ñ¼Ñ¡Γδ 7, 8 ¿ 9 »á½¿Γαδ ßΓá¡ñáαΓ¡«ú« ñ¿á½«úá.
1 2 3 4
╔════╤════╤════╤════╗
cαLabel ║ 7 │ 8 │ 9 │ 9 ║
╚══╤═╧══╤═╧══╤═╧══╤═╝
│ │ │ │
ì«α¼á½∞¡δ⌐ ΓѬßΓ ┘ │ │ └─── éδñѽѡ¡«Ñ ß«¬αáΘÑ¡¿Ñ
éδñѽѡ¡δ⌐ ΓѬßΓ ─────┘ └──────── Äíδτ¡«Ñ óδñѽѡ¡«Ñ
ß«¬αáΘÑ¡¿Ñ
Turbo Vision ñ½∩ æ++ = 142 =
TListBox DIALOGS.H
-----------------------------------------------------------------
┌─────────────┐
│ TListViewer │
└──────┬──────┘
╔══════╧══════╗
║ TListBox ║
╚═════════════╝
TListBox, »«α«ªñÑ¡¡δ⌐ «Γ ¬½áßßá TListViewer, »«¼«úáÑΓ óá¼
ß«ºñáóáΓ∞ ¡á¿í«½ÑÑ τáßΓ« ¿ß»«½∞ºπѼδÑ «¬¡á ß»¿ß¬«ó, «Γ«íαáªáεΘ¿σ
¡áí«αδ ßΓ᫬, Γᬿσ ¬á¬ ¿¼Ñ¡á Σá⌐½«ó. ÄíΩѬΓδ TListBox «Γ«íαáªáεΓ
ß»¿ß¬¿ Γᬿσ φ½Ñ¼Ñ¡Γ«ó ó «ñ¡π ¿½¿ í«½ÑÑ ¬«½«¡«¬ ß ó«º¼«ª¡«⌐ óÑα-
Γ¿¬á½∞¡«⌐ ßΓ᫬«⌐ »α«¬απΓ¬¿. â«α¿º«¡Γá½∞¡δÑ ßΓ᫬¿ »α«¬απΓ¬¿ ó
TListViewer ¡Ñ »«ññÑনóáεΓß∩. ìáß½ÑñπѼδÑ ¼ÑΓ«ñδ TListViewer
»«ºó«½∩εΓ óá¼ óδíαáΓ∞ (¿ »«ñßóÑΓ¿Γ∞) φ½Ñ¼Ñ¡Γδ ß »«¼«Θ∞ε "¼δΦ¿"
¿½¿ τÑαѺ ¬½áó¿áΓπαπ. TListBox ¡Ñ »ÑαÑ«»αÑñѽ∩ÑΓ
TListViewer::handleEvent ¿½¿ TListViewer::draw, »«φΓ«¼π óδ ñ«½ª¡δ
»α«ß¼«ΓαÑΓ∞ ¿σ «»¿ßá¡¿Ñ ñ« ¿ß»«½∞º«óá¡¿∩ TListBox ó ßó«¿σ »α«ú-
αá¼¼áσ.
TListBox ¿¼ÑÑΓ ñ«»«½¡¿Γѽ∞¡«Ñ (τáßΓ¡«Ñ) »«½Ñ items,
«ΓßπΓßΓóπεΘÑÑ ó TListViewer. Å«½Ñ items π¬áºδóáÑΓ ¡á «íΩѬΓ
TCollection, ß«ñÑαªáΘ¿⌐ óδó«ñ¿¼δÑ ¿ óδí¿αáѼδÑ φ½Ñ¼Ñ¡Γδ. ô¬áºá-
Γѽ∞ ¡á items ó«ºóαáΘáÑΓ «íΘ¿⌐ ¼ÑΓ«ñ list. ÄΓóÑΓßΓóÑ¡¡«ßΓ∞ ºá
óßΓáó¬π ñá¡¡δσ ó «íΩÑ¬Γ TCollection, á Γá¬ªÑ ºá ñÑ⌐ßΓó¿∩, óδ»«½-
¡∩ѼδÑ »α¿ óδí«αÑ φ½Ñ¼Ñ¡Γá, ½Ñª¿Γ ¡á óáß.
TListViewer ¡áß½ÑñπÑΓ ßó«⌐ ñÑßΓαπ¬Γ«α «Γ TView, »«φΓ«¼π óδ
ΓᬠªÑ «ΓóÑτáÑΓÑ ºá «ßó«í«ªñÑ¡¿Ñ ß«ñÑন¼«ú« items »α¿ «¬«¡τá¡¿¿
αáí«Γδ ß ¡¿¼. é맮ó newList íπñÑΓ «ßó«í«ªñáΓ∞ ßΓáαδ⌐ ß»¿ß«¬, »«φ-
Γ«¼π ó맮ó newList(0) ¿ »«ß½ÑñπεΘÑÑ «ßó«í«ªñÑ¡¿Ñ «¬¡á ß»¿ß¬á íπ-
ñπΓ «ßó«í«ªñáΓ∞ óßÑ.
Å«½∩
items TCollection *items;
-----
Å«½Ñ items π¬áºδóáÑΓ ¡á ¬«½½Ñ¬µ¿ε φ½Ñ¼Ñ¡Γ«ó ñ½∩ »α«ß¼«Γαá.
¥Γ« ¼«ªÑΓ íδΓ∞ ¡áí«α ßΓ᫬, »αÑñßΓáó½∩εΘ¿σ ΓѬßΓ«óδÑ φ½Ñ¼Ñ¡Γδ.
Å«½∞º«óáΓѽ∞ ¼«ªÑΓ «íαáΘáΓ∞ß∩ ¬ φΓ«¼π τáßΓ¡«¼π »«½ε Γ«½∞¬« ß »«-
¼«Θ∞ε ó맮óá ¼ÑΓ«ñá list.
îÑΓ«ñδ
constructor TListBox(const TRect& bounds, ushort aNumCols,
----------- TScrollBar *aScrollBar);
櫺ñáÑΓ «¬¡« ß»¿ß¬á ß ºáñá¡¡δ¼ αẼÑα«¼, τ¿ß½«¼ ¬«½«¡«¬
(ßΓ«½íµ«ó) ¿ óÑαΓ¿¬á½∞¡«⌐ ßΓ᫬«⌐ »α«¬απΓ¬¿, π¬áºδóáѼ«⌐ π¬áºáΓÑ-
Turbo Vision ñ½∩ æ++ = 143 =
½Ñ¼ aScrollBar. ¥Γ«Γ ¬«¡ßΓαπ¬Γ«α óδºδóáÑΓ TListViewer(bounds,
aNumCols, 0, aScrollBar), ΓѼ ßá¼δ¼ »«ñáó½∩∩ ßΓ᫬π ú«α¿º«¡Γá½∞-
¡«⌐ »α«¬απΓ¬¿.
Å«½Ñ list »Ñαó«¡áτá½∞¡« ∩ó½∩ÑΓß∩ »πßΓ«⌐ ¬«½½Ñ¬µ¿Ñ⌐, á ¡áß½Ñ-
ñπѼ«Ñ »«½Ñ range πßΓá¡áó½¿óáÑΓß∩ ó 0. éáΦá »α«úαá¼¼á ñ«½ª¡á ºá-
ñáΓ∞ »«ñσ«ñ∩Θ¿⌐ TCollection, úñÑ ß«ñÑαªáΓß∩ ßΓ᫬¿ (¿½¿ ñαπú¿Ñ
«íΩѬΓδ ñ½∩ óδó«ñá). Å«½Ñ list ñ«½ª¡« íδΓ∞ πßΓá¡«ó½Ñ¡« ß »«¼«Θ∞ε
newList Γᬿ¼ «íαẫ¼, τΓ«íδ π¬áºδóáΓ∞ ¡á φëà ¡áí«α.
constructor TListBox( StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ΓαÑíπÑΓß∩ "»«ßΓα«¿Γѽ∞" ñ½∩ óδñÑ-
½Ñ¡¿∩ ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ »«ñ Ñú« «íΩѬΓδ ó¼ÑßΓÑ ß ¿¡¿µ¿á-
½¿º¿α«óá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ vtable. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. æ¼. ΓᬪÑ
ú½áóπ 8.
æ¼. ΓᬪÑ: ¬«¡ßΓαπ¬Γ«α TListViewer, TListBox::newList
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ τΓÑ¡¿∩
¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, iαstream::readData
dataSize virtual short dataSize();
--------
髺óαáΘáÑΓ αẼÑα ßτ¿ΓδóáѼδσ ¿ ºá»¿ßδóáѼδσ ñá¡¡δσ ñ½∩ ºá-
»¿ßÑ⌐, »ÑαÑñáóáѼδσ ó getData ¿ setData. ¥Γ¿ Γα¿ ¼ÑΓ«ñá »«½Ñº¡δ
ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ úαπ»». Å« π¼«½τá¡¿ε, TListBox::dataSize ó«ºóαá-
ΘáÑΓ αẼÑα &TCollection, »½εß αẼÑα ushort (ñ½∩ items ¿ óδíαá¡-
¡«ú« φ½Ñ¼Ñ¡Γá). éá¼ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ »ÑαÑ«»αÑñѽѡ¿Ñ φΓ«ú«
¼ÑΓ«ñá ñ½∩ ßó«Ñ⌐ »α«úαá¼¼δ.
æ¼. ΓᬪÑ: TListBox::getData, TListBox::setData
getData virtual void getData(void *rec);
-------
çỿßδóáÑΓ ñá¡¡δÑ «íΩѬΓá TListBox ó ºáñá¡¡πε ºá»¿ß∞. Å«
π¼«½τá¡¿ε, φëà ¼ÑΓ«ñ »¿ΦÑΓ ó rec ΓѬπΘ¿Ñ »«½∩ items ¿ focused.
éá¼ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ »ÑαÑ«»αÑñѽѡ¿Ñ φΓ«ú« ¼ÑΓ«ñá ñ½∩ ßó«Ñ⌐
»α«úαá¼¼δ.
æ¼. ΓᬪÑ: TListBox::dataSize, TListBox::setData
getText virtual void getText(char *dest, short item,
------- short maxLen);
Turbo Vision ñ½∩ æ++ = 144 =
ôßΓá¡áó½¿óáÑΓ ßΓ᫬π ó dest ¿º óδºδóáεΘÑú« «íΩѬΓá TListBox.
Å« π¼«½τá¡¿ε, ó«ºóαáΘáѼá∩ ßΓα«¬á »«½πτáÑΓß∩ ¿º item-¡«ú« φ½Ñ¼Ñ¡-
Γá ó TCollection ß »«¼«Θ∞ε (char *)((list())->at(item). àß½¿ list
ó«ºóαáΘáÑΓ ¬«½½Ñ¬µ¿ε, ß«ñÑαªáΘπε ¡ÑßΓ᫬«óδÑ «íΩѬΓδ, Γ« óá¼ ¡Ñ-
«íσ«ñ¿¼« »ÑαÑ«»αÑñѽ¿Γ∞ φëà ¼ÑΓ«ñ. àß½¿ list ó«ºóαáΘáÑΓ 0, Γ«
getText πßΓá¡áó½¿óáÑΓ dest ó " " (Γ« ÑßΓ∞, ó«ºóαáΘáÑΓ »πßΓπε
ßΓ᫬π).
æ¼. ΓᬪÑ: TCollection::at
list TCollection *list();
----
list ó«ºóαáΘáÑΓ τáßΓ¡δ⌐ π¬áºáΓѽ∞ items.
æ¼. ΓᬪÑ: TListBox::items
newList virtual voidnNewList(TCollection *aList);
-------
櫺ñáÑΓ ¡«óδ⌐ ß»¿ß«¬, πñá½∩∩ ΓѬπΘ¿⌐ ¿ ºá¼Ñ¡∩∩ Ñú« ¡á ºáñá¡-
¡δ⌐ ó aList.
read void *read( iαstream is);
----
éδ»«½¡∩ÑΓ τΓÑ¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, iαstream
setData virtual void setData(void rec);
-------
çá¼Ñ¡∩ÑΓ ΓѬπΘ¿⌐ ß»¿ß«¬ ß« º¡áτÑ¡¿∩¼¿ items ¿ focused ¡á
ßτ¿Γá¡¡δÑ ¿º rec. setData óδºδóáÑΓ newList, ΓᬠτΓ« ¡«óδ⌐ ß»¿ß«¬
«Γ«íαáªáÑΓß∩ ß ¬«ααÑ¬Γ¡δ¼ á¬Γ¿ó¡δ¼ φ½Ñ¼Ñ¡Γ«¼. èᬠó ß½πτáÑ
getData ¿ dataSize, óá¼ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ »ÑαÑ«»αÑñѽѡ¿Ñ φΓ«ú«
¼ÑΓ«ñá ñ½∩ ßó«Ñ⌐ »α«úαá¼¼δ.
æ¼. ΓᬪÑ: TListBox::dataSize, TListBox::getData,
TListBox::newList
write virtual void write(oαstream& oα);
-----
éδ»«½¡∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, oαstream
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
Turbo Vision ñ½∩ æ++ = 145 =
æ TListBox ßó∩ºá¡δ ¡Ñ¬«Γ«αδÑ Σπ¡¬µ¿¿ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ ¡Ñ
∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
Ĭ¡á ß»¿ß¬á ¿ß»«½∞ºπεΓ »á½¿Γαπ (¡áº¡áτÑ¡¡πε »« π¼«½τá¡¿ε)
cαListViewÑr, «Γ«íαáªá∩ φ½Ñ¼Ñ¡Γδ ß 26 »« 29 ó ßΓá¡ñáαΓ¡πε »á½¿Γαπ
»α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
1 2 3 4 5
╔═══╤═══╤═══╤═══╤═══╗
cαListViewer ║x1A│x1A│x1B│x1C│x1D║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │
Ç¬Γ¿ó¡δ⌐ ────┘ │ │ │ └── Éáºñѽ¿Γѽ∞
ìÑá¬Γ¿ó¡δ⌐ ────────┘ │ └────── éδñѽѡ¡δ⌐
ÆѬπΘ¿⌐ ────────────┘
Turbo Vision ñ½∩ æ++ = 146 =
TListViewer VIEWS.H
-----------------------------------------------------------------
┌─────────────┐
│ TView │
└─────┬───────┘
╔═════╧═══════╗
║ TListViewer ║
╚═════╤═══════╝
┌─────┴───────┐
│ TListBox │
└─────────────┘
TListViewer »αÑñßΓáó½∩ÑΓ ß«í«⌐ íẫóδ⌐ Γ¿», »α«¿ºó«ñ¡δ¼¿ ¿º
¬«Γ«α«ú« ∩ó½∩εΓß∩ αẽ¿τ¡δÑ »«ñ»α«úαá¼¼δ »α«ß¼«Γαá ß»¿ß¬«ó, Γá-
¬¿Ñ, ¬á¬ TListBox. üẫóδÑ »«½∩ ¿ ¼ÑΓ«ñδ TListViewer »αÑñ½áúáεΓ
ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿«¡á½∞¡δÑ ó«º¼«ª¡«ßΓ¿:
- »α«ß¼«Γα ßó∩ºá¡¡δσ ß»¿ß¬«ó φ½Ñ¼Ñ¡Γ«ó (¡« ¡Ñ ß»¿ß¬«ó);
- π»αáó½Ñ¡¿Ñ «ñ¡«⌐ ¿½¿ ñóπ¼∩ ßΓα«¬á¼¿ »α«¬απΓ¬¿;
- «ß¡«ó¡δÑ ó«º¼«ª¡«ßΓ¿ »α«ß¼«Γαá ß»¿ß¬«ó ó ñóπσ ¿º¼ÑαÑ¡¿∩σ;
- ºáúαπº¬á ¿ ß«σαá¡Ñ¡¿Ñ «í½áßΓ¿ »α«ß¼«Γαá ¿ ÑÑ ßΓ᫬ »α«¬-
απΓ¬¿ ó/¿º »«Γ«¬á;
- 󫺼«ª¡«ßΓ∞ óδí«αá (»«ñßóÑΓ¬¿) φ½Ñ¼Ñ¡Γá ß»¿ß¬á ß »«¼«Θ∞ε
"¼δΦ¿" ¿½¿ Σπ¡¬µ¿«¡á½∞¡δσ ¬½áó¿Φ;
- ¼ÑΓ«ñ draw, óδ»«½¡∩εΘ¿⌐ ¬«»¿α«óá¡¿Ñ ß ¿º¼Ñ¡Ñ¡¿Ñ¼ αẼÑαá ¿
»α«¬απΓ¬«⌐.
TListViwer ß«ñÑαª¿Γ áíßΓαá¬Γ¡δ⌐ ¼ÑΓ«ñ getText, í½áú«ñáα∩ τÑ-
¼π óá¼ ¡Ñ ¡πª¡« αáºαáíáΓδóáΓ∞ ¼Ñσá¡¿º¼ ñ½∩ ß«ºñá¡¿∩ ¿ «íαáí«Γ¬¿
ΓѬßΓá ó óδó«ñ¿¼δσ φ½Ñ¼Ñ¡Γáσ.
TListViewer ¡Ñ αáß»«½áúáÑΓ ¼Ñσá¡¿º¼«¼ ß«σαá¡Ñ¡¿∩ ß»¿ß¬á.
TListViwer ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ óδó«ñá ¡á φ¬αá¡ »α«¬απτ¿óáѼδσ
ß»¿ß¬«ó ¼áßß¿ó«ó, ßó∩ºá¡¡δσ ß»¿ß¬«ó ¿½¿ »«ñ«í¡δσ ßΓαπ¬Γπα ñá¡¡δσ.
éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ »«Γ«¼¬«ó TListViwer (Γᬿσ, ¬á¬ TListBox),
¬«Γ«αδÑ ßó∩ºδóáεΓ ¡áí«α ß ¼ÑΓ«ñ«¼ »α«ß¼«Γαá ß»¿ß¬á.
Å«½∩
focused short integer;
-------
쫼Ñα ΓѬπΘÑú« φ½Ñ¼Ñ¡Γá. ¥½Ñ¼Ñ¡Γδ ¡π¼ÑαπεΓß∩ «Γ 0 ñ« range -
1. focesed »Ñαó«¡áτá½∞¡« πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ 0 (»Ñαóδ⌐
φ½Ñ¼Ñ¡Γ), á ºáΓѼ Ñú« ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ß »«¼«Θ∞ε ¬¡«»¬¿ "¼δΦ¿" ¿½¿
¬½áó¿Φ¿ »α«íѽá.
Turbo Vision ñ½∩ æ++ = 147 =
æ¼. ΓᬪÑ: TListViewer::range
hScrollBar TScrollBar *hScrollBar;
----------
ô¬áºáΓѽ∞ ¡á ßó∩ºá¡¡πε ß ñá¡¡δ¼ »α«ß¼«Γα«¼ ú«α¿º«¡Γá½∞¡πε
»«½«ßπ »α«¬απΓ¬¿. é ß½πτáÑ º¡áτÑ¡¿∩ 0, ßΓα«¬á »α«¬απΓ¬¿ »α¿
»α«ß¼«ΓαÑ ¡Ñ ¿ß»«½∞ºπÑΓß∩.
numCols short NumCols;
-------
ù¿ß½« ßΓ«½íµ«ó »α¿ π»αáó½Ñ¡¿¿ ß»¿ß¬«¼.
range short range;
-----
ÆѬπΘÑÑ «íΘÑÑ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ó ß»¿ß¬Ñ. ¥½Ñ¼Ñ¡Γδ ¡π¼ÑαπεΓß∩
«Γ 0 ñ« range - 1.
æ¼. ΓᬪÑ: TListViewer::setRange
toαItem short toαItem;
-------
쫼Ñα »Ñαó«ú« óδó«ñ¿¼«ú« φ½Ñ¼Ñ¡Γá. ¥½Ñ¼Ñ¡Γδ ¡π¼ÑαπεΓß∩ ß 0
ñ« range - 1. ¥Γ«Γ ¡«¼Ñα ºáó¿ß¿Γ «Γ τ¿ß½á ßΓ«½íµ«ó, αẼÑαá «í-
½áßΓ¿ »α«ß¼«Γαá ¿ º¡áτÑ¡¿∩ range.
æ¼. ΓᬪÑ: TListViewer::range
vScrollBar TScrollBar *vScrollBar;
----------
ô¬áºáΓѽ∞ ¡á ßó∩ºá¡¡πε ß ñá¡¡δ¼ »α«ß¼«Γα«¼ óÑαΓ¿¬á½∞¡πε
ßΓ᫬π »α«¬απΓ¬¿. é ß½πτáÑ º¡áτÑ¡¿∩ 0, ßΓα«¬á »α«¬απΓ¬¿ »α¿
»α«ß¼«ΓαÑ ¡Ñ ¿ß»«½∞ºπÑΓß∩.
îÑΓ«ñδ
constructor TListViewer(TRect& bounds, short aNumCols;
----------- TScrollBar *aHscrollBar, TScrollBar *aVScrollBar);
櫺ñáÑΓ ¿ ¿¡¿µ¿á½¿º¿απÑΓ «íΩÑ¬Γ TListViewer ß ºáñá¡¡δ¼ αáº-
¼Ñα«¼, »Ñαó«¡áτá½∞¡« óδºδóá∩ TView(bounds). Å«½Ñ numCols πßΓá¡áó-
½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ aNumCols. Å«½Ñ oαtions πßΓá¡áó½¿óáÑΓß∩ ó
(ofFirstClick | ofSelectable), í½áú«ñáα∩ τѼπ ¡áªáΓ¿∩ ¬½áó¿Φ "¼δ-
Φ¿", ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ »α¿ ñá¡¡«¼ »α«ß¼«ΓαÑ, íπñπΓ »ÑαÑñá-
óáΓ∞ß∩ TListViewer::handleEvent. eventMask πßΓá¡áó½¿óáÑΓß∩ ó º¡á-
τÑ¡¿Ñ evBroadcast. ìáτá½∞¡δÑ º¡áτÑ¡¿∩ range ¿ focused αáó¡δ 0.
ô¬áºáΓѽ¿ ¡á óÑαΓ¿¬á½∞¡πε ¿ ú«α¿º«¡Γá½∞¡πε »«½«ßδ »α«¬απΓ¬¿ ¼«úπΓ
»ÑαÑñáóáΓ∞ß∩ τÑαѺ áαúπ¼Ñ¡Γδ aVScrollBar ¿ aHScrollBar. àß½¿ óδ
Turbo Vision ñ½∩ æ++ = 148 =
¡Ñ σ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ »«½«ßδ »α«¬απΓ¬¿, πßΓá¡«ó¿ΓÑ φΓ¿ áαúπ¼Ñ¡Γδ
ó º¡áτÑ¡¿Ñ 0. ¥Γ¿ ñóá áαúπ¼Ñ¡Γá-π¬áºáΓѽ∩ íπñπΓ πßΓá¡áó½¿óáΓ∞ß∩
»«½∩¼¿ vScrollBar ¿ hScrollBar.
àß½¿ óδ »ÑαÑñáÑΓÑ ñ«»πßΓ¿¼δÑ »«½«ßδ »α«¬απΓ¬¿, ¿σ »«½∩
arSteα ¿ αgSteα íπñπΓ ¡áßΓαá¿óáΓ∞ß∩ ó ß««ΓóÑΓßΓó¿¿ ß αẼÑα«¼
TListViewer ¿ τ¿ß½«¼ ßΓ«½íµ«ó. ìá»α¿¼Ñα, ñ½∩ TListViewer, ß«ßΓ«∩-
ΘÑú« ¿º «ñ¡«ú« ßΓ«½íµá, »« π¼«½τá¡¿ε, ñ½∩ óÑαΓ¿¬á½¿, º¡áτÑ¡¿Ñ
αgSteα αáó¡« size.Y - 1, á ¿¡ΓÑαóá½ óÑαΓ¿¬á½¿ arSteα αáóÑ¡ 1.
constructor TListViewer( StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ΓαÑíπÑΓß∩ "»«ßΓα«¿Γѽ∞" ñ½∩ óδñÑ-
½Ñ¡¿∩ ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ »«ñ Ñú« «íΩѬΓδ ó¼ÑßΓÑ ß ¿¡¿µ¿á-
½¿º¿α«óá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ vtable. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. æ¼. ΓᬪÑ
ú½áóπ 8.
æ¼. ΓᬪÑ: TView::TView, TScrollBar::setSteα
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ τΓÑ¡¿∩
»«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, iαstream::readData
changeBounds virtual void changeBounds(TRect& bounds);
------------
꺼ѡ∩ÑΓ αẼÑα «íΩѬΓá TListViewer ß »«¼«Θ∞ε ó맮óá TView::
changeBounds. é ß½πτáÑ ¡á½¿τ¿∩ ú«α¿º«¡Γá½∞¡«⌐ »«½«ßδ »α«¬απΓ¬¿
ñá¡¡δ⌐ ¼ÑΓ«ñ ¡áßΓαá¿óáÑΓ º¡áτÑ¡¿Ñ αgSteα (Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«).
æ¼. ΓᬪÑ: TView::changeBounds, TScrollBar::changeSteα
draw virtual void draw();
----
ÄΓ«íαáªáÑΓ «íΩÑ¬Γ TListViewer, ¿ß»«½∞ºπ∩ ¡áº¡áτÑ¡¡πε »«
π¼«½τá¡¿ε »á½¿Γαπ, ß »«¼«Θ∞ε »«óΓ«α∩εΘÑú«ß∩ ñ½∩ ¬áªñ«ú« «Γ«íαáªá-
Ѽ«ú« «íΩѬΓá ó맮óá getText. ôτ¿ΓδóáεΓß∩ ΓѬπΘÑÑ, óδñѽѡ¡«Ñ »«-
½Ñ ¿ ß«ßΓ«∩¡¿Ñ sfActive.
æ¼. ΓᬪÑ: TListViewer::getText
focusItem virtual void focusItem(short item);
---------
ôßΓá¡áó½¿óá∩ º¡áτÑ¡¿Ñ »«½∩ focused ó item, ñѽáÑΓ ºáñá¡¡δ⌐
φ½Ñ¼Ñ¡Γ ΓѬπΘ¿¼. ¥Γ«Γ ¼ÑΓ«ñ Γá¬ªÑ πßΓá¡áó½¿óáÑΓ ó º¡áτÑ¡¿Ñ item
»«½Ñ value ΓѬπΘÑ⌐ ßΓ᫬¿ »α«¬απΓ¬¿ (Ñß½¿ «¡á ¿¼ÑÑΓß∩) ¿ ¡áßΓαá¿-
óáÑΓ toαItem.
æ¼. ΓᬪÑ: TListViewer::isSelected, TScrollBar::setValue
Turbo Vision ñ½∩ æ++ = 149 =
focusItemNum virtual void focusItem(short item);
-------------
êß»«½∞ºπÑΓß∩ ó¡πΓαÑ¡¡Ñ Σπ¡¬µ¿Ñ⌐ focusItem. äѽáÑΓ ñá¡¡δ⌐
φ½Ñ¼Ñ¡Γ ΓѬπΘ¿¼, πßΓá¡áó½¿óá∩ »«½Ñ focused ó º¡áτÑ¡¿Ñ item.
æ¼. ΓᬪÑ: TListViewer::focusItemNum
getPalette virtual TPalette& getPalette;
----------
髺óαáΘáÑΓ ßΓ᫬π »á½¿Γαδ cαListViewer, ¿ß»«½∞ºπѼπε
TListViewer »« π¼«½τá¡¿ε, "\x1A\x1A\x1B\x1C\x1D\".
getText virtual void getText(char *dest,short item,short maxLen);
-------
¥Γ« áíßΓαá¬Γ¡δ⌐ ¼ÑΓ«ñ. Åα«¿ºó«ñ¡δÑ ¬½áßßδ ñ«½ª¡δ ½¿í« »ÑαÑ-
«»αÑñѽ∩Γ∞ Ñú«, ¬á¬ τ¿ßΓ« áíßΓαá¬Γ¡πε Σπ¡¬µ¿ε ¿½¿ »ÑαÑ«»αÑñѽ∩Γ∞
Ñú« ß »«¼«Θ∞ε ¼ÑΓ«ñá, ó«ºóαáΘáεΘÑú« (ó ß½πτáÑ ºáñá¡¿∩ ¿¡ñѬßá
φ½Ñ¼Ñ¡Γá, áñαÑßπѼ«ú« item) ßΓ᫬π, ¡Ñ »αÑóδΦáεΘπε »« ñ½¿¡Ñ
maxLen. çá¼ÑΓ¿¼, τΓ« TListViewer::draw ¡πª¡« óδºδóáΓ∞ getText.
æ¼. ΓᬪÑ: TListViewer::draw
handleEvent virtual void handleEvent(TEvent& event);
-----------
æ »«¼«Θ∞ε ó맮óá TView::handleEvent(event) «íαáíáΓδóáÑΓ ß«-
íδΓ¿∩. ìáªáΓ¿∩ ¬¡«»«¬ "¼δΦ¿" ¿ "áóΓ«¼áΓ¿τÑ߬¿Ñ" »ÑαѼÑΘÑ¡¿∩ »«
ß»¿ß¬π íπñπΓ ¿º¼Ñ¡∩Γ∞ ΓѬπΘ¿⌐ φ½Ñ¼Ñ¡Γ. ¥½Ñ¼Ñ¡Γ ¼«ª¡« óδíαáΓ∞ ß
»«¼«Θ∞ε ñó«⌐¡«ú« ¡áªáΓ¿∩ ¬¡«»¬¿ "¼δΦ¿". ÄíαáíáΓδóáεΓß∩ Γá¬ªÑ ¬½á-
ó¿áΓπα¡δÑ ß«íδΓ¿∩: ¬½áó¿Φá »α«íѽá óδñѽ∩ÑΓ ΓѬπΘ¿⌐ φ½Ñ¼Ñ¡Γ, á
¬½áó¿Φ¿ π»αáó½Ñ¡¿∩ ¬παß«α«¼ (ß« ßΓαѽ¬á¼¿), PgUα, PgDn,
Ctrl-PgDn, Ctrl-PgUα, Home, End ¿ß»«½∞ºπεΓß∩ ñ½∩ πßΓá¡«ó¬¿ ΓѬπ-
ΘÑú« φ½Ñ¼Ñ¡Γá. ìᬫ¡Ñµ ß«íδΓ¿∩, óδºóá¡¡δÑ »«½«ßἿ »α«¬απΓ¬¿, «í-
αáíáΓδóáεΓß∩ »πΓѼ ¿º¼Ñ¡Ñ¡¿∩ ΓѬπΘÑú« φ½Ñ¼Ñ¡Γá ¿ ¡«óδ¼ «Γ«íαáªÑ-
¡¿Ñ¼ «í½áßΓ¿ »α«ß¼«Γαá, ¬á¬ φΓ« ΓαÑíπÑΓß∩.
æ¼. ΓᬪÑ: TView::handleEvent, TLiatViewer::focusItem
isSelected virtual Boolean isSelected( short item);
----------
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ ºáñá¡¡δ⌐ φ½Ñ¼Ñ¡Γ item ∩ó½∩ÑΓ-
ß∩ ΓѬπΘ¿¼, Γ« ÑßΓ∞ item == focused.
æ¼. ΓᬪÑ: TListViewer::focusItem
read void *read( iαstream is);
----
éδ»«½¡∩ÑΓ τΓÑ¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, iαstream
selectItem virtual void selectItem(short item);
Turbo Vision ñ½∩ æ++ = 150 =
----------
éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ item ß»¿ß¬á, »«ß½Ñ τÑú« ß««íΘáÑΓ «í φΓ«¼
úαπ»»Ñ-ó½áñѽ∞µπ, óδºδóá∩ ñ½∩ φΓ«ú«:
message (owner, evBroadcast, cmListItemSelected, this);
æ¼. ΓᬪÑ: TListViever::focusItem, message
setRange virtual void setRange(short aRange);
--------
ôßΓá¡áó½¿óáÑΓ »«½Ñ range ó º¡áτÑ¡¿Ñ aRange. àß½¿ ¿ß»«½∞ºπ-
ÑΓß∩ óÑαΓ¿¬á½∞¡á∩ ßΓα«¬á »α«¬απΓ¬¿, Γ« ÑÑ »áαá¼ÑΓαδ ß««ΓóÑΓßΓóπε-
Θ¿¼ «íαẫ¼ ¡áßΓαá¿óáεΓß∩ (¿ Ñß½¿ ΓαÑíπÑΓß∩ »ÑαÑα¿ß«ó¬á, óδºδóá-
ÑΓß∩ TScrollBar::drawView). àß½¿ ΓѬπΘ¿⌐ φ½Ñ¼Ñ¡Γ ¡Ñ »«»áñáÑΓ ó
¡«óδ⌐ ñ¿á»áº«¡ range, Γ« »«½Ñ focused πßΓá¡áó½¿óáÑΓß∩ ó ¡π½Ñó«Ñ
º¡áτÑ¡¿Ñ.
æ¼. ΓᬪÑ: TListViewer::range, TScrollBar::setParams
setState virtual void setState(ushort aState, Boolean enable);
--------
àß½¿ enable ¿¼ÑÑΓ º¡áτÑ¡¿Ñ True, óδºδóáÑΓ TView::setState
ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ ß«ßΓ«∩¡¿∩ «íΩѬΓá TListViewer. é ºáó¿ß¿¼«ßΓ¿ «Γ
º¡áτÑ¡¿∩ áαúπ¼Ñ¡Γá aState, φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ Γ«¼π, τΓ« «í½áßΓ∞
»α«ß¼«Γαá íπñÑΓ óδóÑñÑ¡á ¡á φ¬αá¡ ¿½¿ "߬αδΓá". èα«¼Ñ Γ«ú«, Ñß½¿
aState ¿¼ÑÑΓ º¡áτÑ¡¿∩ sfSelected ¿ sfActive, ºá¡«ó« «Γ«íαáªáεΓß∩
»«½«ßδ »α«¬απΓ¬¿. àß½¿ aState ¿¼ÑÑΓ º¡áτÑ¡¿Ñ sfSelected, ¡« ¡Ñ
sfActive, Γ« »«½«ßδ »α«¬απΓ¬¿ íπñπΓ "߬αδΓδ".
æ¼. ΓᬪÑ: TView::setState, TScrollBar::show,
TScrollBar::hide
write virtual void write(oαstream& oα);
-----
éδ»«½¡∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamable, TStreamableClass, oαstream
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
æ TListViewer ßó∩ºá¡δ ¡Ñ¬«Γ«αδÑ Σπ¡¬µ¿¿ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ
¡Ñ ∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
ä½∩ «Γ «Γ«íαáªÑ¡¿∩ ó 26 - 29 ºá»¿ß¿ ßΓá¡ñáαΓ¡«⌐ »α¿¬½áñ¡«⌐
»á½¿Γαδ ¿ß»«½∞ºπÑΓß∩ ß»¿ß«¬ «í½áßΓÑ⌐ »α«ß¼«Γαá ß ¡áº¡áτÑ¡¡«⌐ »«
Turbo Vision ñ½∩ æ++ = 151 =
π¼«½τá¡¿ε »á½¿Γα«⌐ cαListViewer.
1 2 3 4 5
╔═══╤═══╤═══╤═══╤═══╗
cαListViewer ║x1A│x1A│x1B│x1C│x1D║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │
Ç¬Γ¿óÑ¡ ─────┘ │ │ │ └──────── äѽ¿Γѽ∞
ìÑá¬Γ¿óÑ¡ ─────────┘ │ └──────────── éδíαá¡¡δ⌐
ÆѬπΘ¿⌐ ─────────────┘
Turbo Vision ñ½∩ æ++ = 152 =
TMenuBar MENUS.H
-----------------------------------------------------------------
┌────────────┐
│ TMenuView │
└─────┬──────┘
╔════╧═════╗
║ TMenuBar ║
╚══════════╝
ÄíΩѬΓδ TMenuBar »αÑñßΓáó½∩εΓ ß«í«⌐ ú«α¿º«¡Γá½∞¡δÑ ßΓ᫬¿
¼Ñ¡ε, ¿º ¬«Γ«αδσ ¬«¼á¡ñδ ¼Ñ¡ε ¼«ª¡« óδí¿αáΓ∞ ß½ÑñπεΘ¿¼¿ ß»«ß«íá-
¼¿:
- ß »«¼«Θ∞ε ¡áªáΓ¿∩ ¬¡«»¬¿ "¼δΦ¿";
- ß »«¼«Θ∞ε π»αáó½∩εΘ¿σ ¬½áó¿Φ ¿ ¬½áó¿Φ¿ F10;
- ß »«¼«Θ∞ε óδí«αá (»«ñßóÑΓ¬¿) φ½Ñ¼Ñ¡Γá ¿ ¡áªáΓ¿∩ ¬½áó¿Φ¿
Enter;
- ß »«¼«Θ∞ε π»αáó½∩εΘ¿σ ¬½áó¿Φ.
é óÑασ¡Ñ⌐ τáßΓ¿ ßΓ᫬¿ ¼Ñ¡ε óδó«ñ∩Γß∩ «ß¡«ó¡δÑ º¡áτÑ¡¿∩ óδ-
í«αá ¼Ñ¡ε. ¥Γ« αÑ὿ºπÑΓß∩ ß »«¼«Θ∞ε «íΩѬΓá TMenuBar, ó½áñѽ∞µÑ¼
¬«Γ«α«ú« «íδτ¡« ∩ó½∩ÑΓß∩ «íΩÑ¬Γ TAααlication. Å«ñ¼Ñ¡ε óδó«ñ∩Γß∩ ó
«íΩѬΓáσ Γ¿»á TMenuBox. TMenuBar ¿ TMenuBox ∩ó½∩εΓß∩ »«Γ«¼¬á¼¿
TMenuView (¬«Γ«αδ⌐ ∩ó½∩ÑΓß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ »«Γ«¼¬«¼ TView).
ä½∩ í«½∞Φ¿¡ßΓóá »α¿½«ªÑ¡¿⌐, ¡á»¿ßá¡¡δσ ß ¿ß»«½∞º«ó᡿Ѽ
Turbo Vision, óá¼ ¡Ñ »α¿ñÑΓß∩ αáí«ΓáΓ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß «íΩѬΓá-
¼¿ ¼Ñ¡ε. îÑΓ«ñ Turbo Vision ñѽáÑΓ φΓ«, »ÑαÑ«»αÑñѽ∩∩
TAααlication::initMenuBar ß««ΓóÑΓßΓóπεΘ¿¼ ¡áí«α«¼ 󽫪ѡ¡δσ ó맮-
ó«ó new TMenuItem ¿ new TMenu.
îÑΓ«ñδ
constructor TMenuBar(const TRect& bounds, TMenu *aMenu);
-----------
éδºδóá∩ TMenuView(bounds), c«ºñáÑΓ ßΓ᫬π ¼Ñ¡ε ß ºáñá¡¡δ¼¿
úαá¡¿µá¼¿ bounds. ÉѪ¿¼ πóѽ¿τÑ¡¿∩ πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ
gfGrowHiX. ùΓ«íδ αáí«Γ὿ π»αáó½∩εΘ¿Ñ ¬½áó¿Φ¿, »«½∩ oαtions πßΓá-
¡áó½¿óáÑΓß∩ ó ofPreProcess. Å«½Ñ menu πßΓá¡áó½¿óáÑΓß∩ ó aMenu,
«íÑß»Ñτ¿óá∩ óδí«α »π¡¬Γ«ó ¼Ñ¡ε.
constructor TMenuBar( StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ΓαÑíπÑΓß∩ "»«ßΓα«¿Γѽ∞" ñ½∩ óδñÑ-
½Ñ¡¿∩ ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ »«ñ Ñú« «íΩѬΓδ ó¼ÑßΓÑ ß ¿¡¿µ¿á-
½¿º¿α«óá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ vtable. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
Turbo Vision ñ½∩ æ++ = 153 =
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. æ¼. ΓᬪÑ
ú½áóπ 8.
æ¼. ΓᬪÑ: TMenuView::TMenuView, Σ½áú¿ αѪ¿¼á πóѽ¿τÑ¡¿∩
αẼÑαá gfXXXX, Σ½áú¿ »áαá¼ÑΓα«ó ofXXXX, TMenuView::menu, TMenu
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¡Ñ¬«Γ«αδσ ß¿Γπᵿ∩σ τΓÑ¡¿∩
¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, iαstream::readData
draw virtual void draw();
----
É¿ßπÑΓ ßΓ᫬π ¼Ñ¡ε, ¿ß»«½∞ºπ∩ ¡áº¡áτÑ¡¡πε »« π¼«½τá¡¿ε »á-
½¿Γαπ. ùΓ«íδ πßΓá¡«ó¿Γ∞ ñ½∩ ¼Ñ¡ε »αáó¿½∞¡δÑ º¡áτÑ¡¿∩ µóÑΓ«ó, ¿º
¬áªñ«ú« «íΩѬΓá TMenuItem ó ßó∩ºá¡¡«¼ ß»¿ß¬Ñ menu ßτ¿ΓδóáεΓß∩
»«½∩ name ¿ disabled. ÆѬπΘ¿⌐ (óδíαá¡¡δ⌐) φ½Ñ¼Ñ¡Γ current »«ñßóÑ-
τ¿óáÑΓß∩.
getItemRect virtual void getItemRect( TMenuItem *item);
-----------
ÅÑαÑ«»αÑñѽ∩ÑΓ ¼ÑΓ«ñ TMenuView::getItemRect. 髺óαáΘáÑΓ »α∩-
¼«πú«½∞¡¿¬, ºá¡∩Γδ⌐ ºáñá¡¡δ¼ φ½Ñ¼Ñ¡Γ«¼ ¼Ñ¡ε. ¡« ¿ß»«½∞º«óáΓ∞
ó¼ÑßΓÑ ß mouseInView ñ½∩ «»αÑñѽѡ¿∩ ¡áªáΓ¿∩ ñ½∩ ΓѬπΘÑú« óδí«αá
¼Ñ¡ε ¬¡«»¬¿ "¼δΦ¿".
æ¼. ΓᬪÑ: TMenuView::getItemRect, TView::mouseInView
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
æ TMenuBar ßó∩ºá¡δ ¡Ñ¬«Γ«αδÑ Σπ¡¬µ¿¿ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ ¡Ñ
∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
æΓ᫬¿ ¼Ñ¡ε, ¬á¬ ¿ óßÑ ¼Ñ¡ε, ñ½∩ «Γ «Γ«íαáªÑ¡¿∩ ó 2-7 ºá»¿ß¿
ßΓá¡ñáαΓ¡«⌐ »α¿¬½áñ¡«⌐ »á½¿Γαδ ¿ß»«½∞ºπεΓ ¡áº¡áτÑ¡¡πε »« π¼«½τá-
¡¿ε »á½¿Γαπ cαMenuView.
1 2 3 4 5 6
╔════╤════╤════╤════╤════╤════╗
cαMenuView ║ 2 │ 3 │ 4 │ 5 │ 6 │ 7 ║
╚══╤═╧══╤═╧══╤═╧══╤═╧══╤═╧══╤═╝
│ │ │ │ │ │
Äíδτ¡δ⌐ ΓѬßΓ ──────────┘ │ │ │ │ └── éδíαá¡δ
Turbo Vision ñ½∩ æ++ = 154 =
ÆѬßΓ ºá»αÑΘÑ¡ ───────────────┘ │ │ │ ß«¬αáΘÑ¡¿∩
櫬αáΘÑ¡¿∩ ────────────────────┘ │ └── éδíαá¡ ºá»αÑ-
│ ΘÑ¡¡δ⌐ ΓѬßΓ
└───── éδíαá¡ «íδτ¡δ⌐
ΓѬßΓ
Turbo Vision ñ½∩ æ++ = 155 =
TMenuBox MENUS.H
-----------------------------------------------------------------
┌────────────┐
│ TMenuView │
└─────┬──────┘
│
╔════╧═════╗
║ TMenuBox ║
╚══════════╝
ÄíΩÑ¬Γ TMenuBar »αÑñßΓáó½∩ÑΓ ß«í«⌐ 󽫪ѡ¡«Ñ óÑαΓ¿¬á½∞¡«Ñ
¼Ñ¡ε, ¬«Γ«α«Ñ ¼«ªÑΓ ß«ñÑαªáΓ∞ »α«¿ºó«½∞¡δ⌐ ß»¿ß«¬ ¬«¼á¡ñ, ó¬½ετá∩
󽫪ѡ¡δÑ »«ñ¼Ñ¡ε. èᬠ¿ ó ßΓα«¬Ñ ¼Ñ¡ε, ñ½∩ π¬áºá¡¿∩ ¡Ññ«ßΓπ»¡δσ
ó ¼Ñ¡ε »π¡¬Γ«ó ¿ß»«½∞ºπÑΓß∩ µóÑΓ«ó«Ñ «í«º¡áτÑ¡¿Ñ. îÑ¡ε ¼«úπΓ αÑá-
½¿º«óδóáΓ∞ß∩, ¬á¬ »«ñ¼Ñ¡ε ñ½∩ ñá¡¡«ú« »π¡¬Γá ¼Ñ¡ε ¿½¿ ñαπú¿σ ¼Ñ-
¡ε, ¿ß»«½∞º«óáΓ∞ß∩ ó ¬áτÑßΓóÑ óß»½δóáεΘ¿σ ¼Ñ¡ε.
îÑΓ«ñδ
constructor TMenuBox(const TRect& bounds, TMenu *aMenu);
----------- TMenuBox(const TRect& bounds, TMenu *aMenu,
TMenuView *aParentMenu=0);
櫺ñáÑΓ «íΩÑ¬Γ TMenuBox »α¿ »«¼«Θ¿ ó맮óá TMenuView(bounds).
Åáαá¼ÑΓα bounds αÑúπ½¿απÑΓß∩ ñ½∩ »α¿óÑñÑ¡¿∩ ó ß««ΓóÑΓßΓó¿Ñ Φ¿α¿¡δ
¿ ñ½¿¡δ »π¡¬Γ«ó ó aMenu.
ü¿Γ ofPreProcess ó »«½Ñ options πßΓá¡áó½¿óáÑΓß∩ Γᬿ¼ «íαá-
º«¼, τΓ« íπñπΓ αáí«ΓáΓ∞ π»αáó½∩εΘ¿Ñ ¬½áó¿Φ¿. state πßΓá¡áó½¿óá-
ÑΓß∩, τΓ«íδ ó¬½ετ¿Γ∞ sfShadow. Å«½Ñ menu πßΓá¡áó½¿óáÑΓß∩ ó aMenu,
τΓ« «íÑß»Ñτ¿óáÑΓ óδí«α »π¡¬Γ«ó ¼Ñ¡ε. éΓ«αá∩ Σ«α¼á ¬«¡ßΓαπ¬Γ«αá
»«ºó«½∩ÑΓ Γ«τ¡«Ñ ºáñá¡¿Ñ áαúπ¼Ñ¡Γá aParentMenu (»« π¼«½τá¡¿ε ¿¼Ñ-
ÑΓ º¡áτÑ¡¿Ñ 0), ¬«Γ«αδ⌐ πßΓá¡áó½¿óáÑΓß∩ ó parentMenu.
constructor TMenuBox(StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñδ⌐ »«Γ«¬«óδ⌐ ¬½áßß ΓαÑíπÑΓ "»«ßΓα«¿Γѽ∩" ñ½∩ αáß»αÑñѽÑ-
¡¿∩ »á¼∩Γ¿ ñ½∩ Ñú« «íΩÑ¬Γ«ó ó¼ÑßΓÑ ß ¿¡¿µ¿á½¿º¿α«óá¡¡δ¼¿ π¬áºáΓÑ-
½∩¼¿ ó¿αΓπá½∞¡«⌐ Γáí½¿µδ ¼ÑΓ«ñ«ó. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. 漫Γα¿ΓÑ
Γá¬ªÑ ú½áóπ 8.
æ¼. ΓᬪÑ: TMenuView::TMenuView, Σ½áú¿ ß«ßΓ«∩¡¿∩ sfXXXX,
Σ½áú¿ »áαá¼ÑΓα«ó ofXXXX, TMenuView::menu, TMenuView::parentMenu.
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¬«¡¬αÑΓ¡δσ ß¿Γπᵿ∩σ τΓÑ-
¡¿∩ ¿º »«Γ«¬á.
Turbo Vision ñ½∩ æ++ = 156 =
æ¼. ΓᬪÑ: TStreamableClass, ipstream::readData
draw virtual void draw();
----
ÄΓ«íαáªáÑΓ αá¼¬π ¿ »π¡¬Γδ ¼Ñ¡ε, ¿ß»«½∞ºπ∩ ¡áº¡áτÑ¡¡δÑ »«
π¼«½τá¡¿ε µóÑΓá.
getItemRect virtual TRect getItemRect(TMenuItem *item);
-----------
ÅÑαÑ«»αÑñѽ∩ÑΓ »«Γ«¬ TMenuView::getItemRect. 髺óαáΘáÑΓ »α∩-
¼«πú«½∞¡¿¬, ºá¡¿¼áѼδ⌐ ñá¡¡δ¼ »π¡¬Γ«¼ ¼Ñ¡ε. êß»«½∞ºπÑΓß∩ ñ½∩ «»-
αÑñѽѡ¿∩ Γ«ú«, íδ½ ½¿ ¬παß«α "¼δΦ¿" ó »αÑñѽáσ ñá¡¡«ú« »π¡¬Γá
¼Ñ¡ε »α¿ ¡áªáΓ¿ε ¬¡«»¬¿ "¼δΦ¿".
æ¼. ΓᬪÑ: TMenuView::getItemRect, TView::mouseInView
read virtual void *read( ipstream& is);
----
ÄßπΘÑßΓó½∩ÑΓ ßτ¿Γδóá¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, ipstream
write virtual void write( opstream& os);
-----
ÄßπΘÑßΓó½∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, ipstream.
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
ìѬ«Γ«αδÑ óδ»«½¡∩ѼδÑ Σπ¡¬µ¿¿ «Γ¡«ß∩Γß∩ ¬ TMenuBox, ¡« ¡Ñ
∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
Äí½áßΓ¿ ¼Ñ¡ε, ¬á¬ ¿ óßÑ «Γ«íαáªáѼδÑ «íΩѬΓδ, ¿ß»«½∞ºπεΓ »á-
½¿Γαπ (»« π¼«½τá¡¿ε) cpMenuView ñ½∩ «Γ«íαáªÑ¡¿∩ ºáñá¡¡δσ º¡áτÑ¡¿⌐
ó« 2 - 7 φ½Ñ¼Ñ¡Γδ ßΓá¡ñáαΓ¡«⌐ »á½¿Γαδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
1 2 3 4 5 6
╔════╤════╤════╤════╤════╤════╗
cpMenuView ║ 2 │ 3 │ 4 │ 5 │ 6 │ 7 ║
╚══╤═╧══╤═╧══╤═╧══╤═╧══╤═╧══╤═╝
│ │ │ │ │ │
Äíδτ¡δ⌐ ΓѬßΓ ────────┘ │ │ │ │ └───── éδíαá¡δ
ÆѬßΓ ¡Ññ«ßΓπ»Ñ¡ ─────────────┘ │ │ │ ß«¬αáΘÑ¡¿∩
Turbo Vision ñ½∩ æ++ = 157 =
櫬αáΘÑ¡¿∩ ──────────────────┘ │ └─── éδíαá¡ ¡Ññ«ßΓπ-
│ »¡δ⌐ ΓѬßΓ
└──────── éδíαá¡ «íδτ¡δ⌐
ΓѬßΓ
Turbo Vision ñ½∩ æ++ = 158 =
TMenuView MENUS.H
-----------------------------------------------------------------
┌────────────┐
│ TView │
└──────┬─────┘
╔══════╧═════╗
║ TMenuView ║
╚════╤═══╤═══╝
┌────────┘ └──────┐
┌────┴─────┐ ┌────┴─────┐
│ TMenuBar │ │ TMenuBox │
└──────────┘ └──────────┘
TMenuView »«ññÑনóáÑΓ áíßΓαá¬Γ¡δ⌐ ¬½áßß, »«α«ªñÑ¡¡δ¼¿ «Γ
¬«Γ«α«ú« ∩ó½∩εΓß∩ ¬½áßßδ π¬áºáΓѽ∩ ¬«¼á¡ñδ ¼Ñ¡ε ¿ »«½Ñ⌐ ¼Ñ¡ε
(óß»½δóáεΘ¿σ ¿½¿ ß»π߬áεΘ¿σß∩). éá¼ ¡¿¬«úñá ¡Ñ »«ΓαÑíπÑΓß∩ ßá-
¼«ßΓ«∩Γѽ∞¡« ß«ºñáóáΓ∞ φ¬ºÑ¼»½∩α TMenuView.
Å«½∩
current TMenuItem *current;
-------
ô¬áºáΓѽ∞ ¡á ñá¡¡δ⌐ óδíαá¡¡δ⌐ »π¡¬Γ ¼Ñ¡ε.
menu TMenu *menu;
----
ô¬áºáΓѽ∞ ¡á «íΩÑ¬Γ TMenu ñ½∩ φΓ«ú« ¼Ñ¡ε, ¬«Γ«αδ⌐ ß«ñÑনΓ
߬«¼»«¡«óá¡¡δ⌐ ß»¿ß«¬ »π¡¬Γ«ó ¼Ñ¡ε. ô¬áºáΓѽ∞ menu αáºαÑΦáÑΓ
ñ«ßΓπ» ¬« óßѼ ñá¡¡δ¼ »π¡¬Γá¼ ¼Ñ¡ε ó ñá¡¡«¼ «Γ«íαáªáѼ«¼ «íΩѬΓÑ
¼Ñ¡ε.
æ¼. ΓᬪÑ: TMenuView::findItem, TMenuView::getItemRect,
TMenu struct
parentMenu TMenuView *parentMenu;
----------
¥Γ« π¬áºáΓѽ∞ ¡á «íΩÑ¬Γ TMenuView (¿½¿ Ñú« »«Γ«¼¬á), ¬«Γ«αδ⌐
∩ó½∩ÑΓß∩ ó½áñѽ∞µÑ¼ ñá¡¡«ú« ¼Ñ¡ε. çá¼ÑΓ¿¼, τΓ« TMenuView ¡Ñ ∩ó½∩-
ÑΓß∩ úαπ»»«⌐. Åα¿¡áñ½Ñª¡«ßΓ∞ ºñÑß∞ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ú«αáºñ« í«-
½ÑÑ »α«ßΓπε ¬«¡µÑ»µ¿ε, τѼ »α¿¡áñ½Ñª¡«ßΓ∞ TGroup ¿ »«ºó«½∩ÑΓ
¿ß»«½∞º«óáΓ∞ 󽫪ѡ¡δÑ ¼Ñ¡ε: óδí¿αáΓ∞ »«ñ¼Ñ¡ε ¿ ó«ºóαáΘáΓ∞ß∩ «í-
αáΓ¡« ó ¼Ñ¡ε óÑασ¡Ñú« πα«ó¡∩. ìá»α¿¼Ñα, óδí«α «ñ¡«ú« ¿º »π¡¬Γ«ó
¼Ñ¡ε, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ ¬παß«α ¼Ñ¡ε «íδτ¡« »α¿ó«ñ¿Γ ¬ óδó«ñπ
󽫪ѡ¡«ú« óÑαΓ¿¬á½∞¡«ú« ¼Ñ¡ε. æΓα«¬á ¼Ñ¡ε ó φΓ«¼ ß½πτáÑ ∩ó½∩ÑΓß∩
»αÑñßΓáó¿ΓѽѼ óÑασ¡Ñú« πα«ó¡∩ ¼Ñ¡ε ñ½∩ »«ñ¼Ñ¡ε.
æ¼. ΓᬪÑ: TMenuBox::TMenuBox
îÑΓ«ñδ
Turbo Vision ñ½∩ æ++ = 159 =
constructor TMenuView(const TRect& bounds);
-----------
éδºδóáÑΓ TView::TView(bounds) ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá TMenuView
αẼÑαá bounds. ÆѬπΘ¿Ñ TMenuItem, π¬áºáΓѽ¿ parentMenu ¿ menu
πßΓá¡áó½¿óáεΓß∩ ó 0. Å« π¼«½τá¡¿ε eventMask πßΓá¡áó½¿óáÑΓß∩ ó ev-
Broadcast. äá¡¡δ⌐ ¬«¡ßΓαπ¬Γ«α óδºδóáÑΓß∩ ó ¬½áßßáσ-»«Γ«¼¬áσ
TMenuBar ¿ TMenuBox ¿ ¼«ªÑΓ, «τÑ¡∞ αÑñ¬«, ºá»π߬áΓ∞ß∩ »α∩¼δ¼ «í-
αẫ¼.
constructor TMenuBox(StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñδ⌐ »«Γ«¬«óδ⌐ ¬½áßß ΓαÑíπÑΓ "»«ßΓα«¿Γѽ∩" ñ½∩ αáß»αÑñѽÑ-
¡¿∩ »á¼∩Γ¿ ñ½∩ Ñú« «íΩÑ¬Γ«ó ó¼ÑßΓÑ ß ¿¡¿µ¿á½¿º¿α«óá¡¡δ¼¿ π¬áºáΓÑ-
½∩¼¿ vtable (ó¿αΓπá½∞¡«⌐ Γáí½¿µδ ¼ÑΓ«ñ«ó). ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ
ó맮óá φΓ«ú« ¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. 漫Γ-
α¿ΓÑ Γá¬ªÑ ú½áóπ 8.
æ¼. ΓᬪÑ: TView::TView, evBroadcast, TMenuBar::TMenuBar,
TMenuBox::TMenuBox
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¬«¡¬αÑΓ¡δσ ß¿Γπᵿ∩σ τΓÑ-
¡¿∩ ¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, ipstream::readData
execute virtual ushort execute();
-------
éδ»«½¡∩ÑΓ «»Ñαáµ¿ε »α«ß¼«Γαá ¼Ñ¡ε, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ óδ-
íÑαÑΓ φ½Ñ¼Ñ¡Γ ¼Ñ¡ε ¿½¿ ¡Ñ «Γ¼Ñ¡¿Γ »α«µÑßß. 髺óαáΘáÑΓ ¬«¼á¡ñπ,
»α¿ßó«Ñ¡¡πε óδñѽѡ¡«¼π »π¡¬Γπ ¼Ñ¡ε, ¿½¿ 0, Ñß½¿ ßÑá¡ß αáí«Γδ ß
¼Ñ¡ε íδ½ »αÑαóá¡. äá¡¡δ⌐ ¼ÑΓ«ñ ¡Ñ ñ«½ª¡á óδºδóáΓ∞ß∩ ¡¿úñÑ, ¬α«¼Ñ
execView.
æ¼. ΓᬪÑ: TGroup::execView
findItem TMenuItem *findItem(char ch);
--------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á »π¡¬Γ ¼Ñ¡ε, ¬«Γ«αδ⌐ ¿¼ÑÑΓ º¡áτÑ¡¿Ñ
toupper(ch) ó ¬áτÑßΓóÑ π»αáó½∩εΘÑ⌐ ¬½áó¿Φ¿ (»«ñßóÑτÑ¡¡δ⌐ ß¿¼ó«½).
髺óαáΘáÑΓ 0, Ñß½¿ ¡Ñ ¡á⌐ñÑ¡« Γᬫú« »π¡¬Γá ¼Ñ¡ε ¿½¿ Ñß½¿ »π¡¬Γ
¼Ñ¡ε ¡Ññ«ßΓπ»Ñ¡. çá¼ÑΓ¿¼, τΓ« αÑú¿ßΓα ß¿¼ó«½á ch º¡áτÑ¡¿∩ ¡Ñ ¿¼Ñ-
ÑΓ.
getHelpCtx virtual ushort getHelpCtx();
----------
Å« π¼«½τá¡¿ε ñá¡¡δ⌐ ¼ÑΓ«ñ ó«ºóαáΘáÑΓ ¬«¡ΓѬßΓ »«ñ߬Ậ¿ ñ½∩
»π¡¬Γá ó ¼Ñ¡ε, ¡á ¬«Γ«α«¼ ßΓ«¿Γ ¬παß«α. àß½¿ φΓ« hcNoContext, Γ«
»α«óÑα∩ÑΓß∩ ΓѬπΘ¿⌐ ¬«¡ΓѬßΓ ó ¼Ñ¡ε óÑασ¡Ñú« πα«ó¡∩. àß½¿ ¼Ñ¡ε
óÑασ¡Ñú« πα«ó¡∩ ¡ÑΓ, Γ« getHelpCtx ó«ºóαáΘáÑΓ hcNoContext.
æ¼. ΓᬪÑ: ¬«¡ßΓá¡Γδ ¬«¡ΓѬßΓá »«ñ߬Ậ¿ hcXXXX
Turbo Vision ñ½∩ æ++ = 160 =
getItemRect virtual TRect getItemRect(TMenuItem *item);
-----------
è½áßßδ, óδñѽѡ¡δÑ ¿º TMenuView ñ«½ª¡δ »ÑαÑ«»αÑñѽ¿Γ∞ φΓ«Γ
¼ÑΓ«ñ ñ½∩ Γ«ú«, τΓ«íδ «¡á αÑáú¿α«óá½á ¡á ñÑ⌐ßΓó¿∩ "¼δΦ¿". éáΦ »Ñ-
αѡạáτÑ¡¡δ⌐ ¼ÑΓ«ñ ¬½áßß«ó-»«Γ«¼¬«ó ñ«½ªÑ¡ ó«ºóαáΘáΓ∞ »π¡¬Γ, ºá-
¡¿¼áѼδ⌐ ñá¡¡«⌐ ¬«¼á¡ñ«⌐ ¼Ñ¡ε. äá¡¡δ⌐ ¼ÑΓ«ñ ¿ß»«½∞ºπÑΓß∩ ó¼ÑßΓÑ ß
mouseInView ñ½∩ «»αÑñѽѡ¿∩, ¡áσ«ñ¿½ß∩ ½¿ ¬παß«α "¼δΦ¿" ó «í-
½áßΓ¿, ºá¡¿¼áѼ«¼ ñá¡¡δ¼ »π¡¬Γ«¼ ¼Ñ¡ε, ó ëà ¼«¼Ñ¡Γ, ¬«úñá ¬¡«»¬á
"¼δΦ¿" íδ½á ¡áªáΓá, ¿ ñ½∩ «»αÑñѽѡ¿∩ ºáΓѼ ¡Ñ«íσ«ñ¿¼«ú«
ñÑ⌐ßΓó¿∩.
æ¼. ΓᬪÑ: TMenuBar::getItemRect, TMenuBox::getItemRect,
TView::mouseInView
getPalette virtual TPalette& getPalette() const;
----------
髺óαáΘáÑΓ ßΓá¡ñáαΓ¡πε ßΓ᫬π »á½¿Γαδ, cpMenuView,
"\x02\x03\x04\x05\x06\x07".
handleEvent virtual void handleEvent(TEvent& event);
-----------
éδºδóáÑΓß∩, ¬«úñá ¡Ñ«íσ«ñ¿¼« «íαáí«ΓáΓ∞ ß«íδΓ¿Ñ ¼Ñ¡ε. Ä»αÑ-
ñѽ∩ÑΓ, ¬á¬«⌐ »π¡¬Γ ¼Ñ¡ε íδ½ óδíαá¡ ß »«¼«Θ∞ε "¼δΦ¿" ¿½¿ ¬½áó¿á-
Γπαδ (ó¬½ετá∩ π»αáó½∩εΘ¿Ñ ¬½áó¿Φ¿) ¿ ß »«¼«Θ∞ε putEvent »«ßδ½áÑΓ
ß««ΓóÑΓßΓóπεΘπε ¬«¼á¡ñπ-ß«íδΓ¿Ñ.
æ¼. ΓᬪÑ: TView::handleEvent, TView::putEvent,
TMenuView::hotKey
hotKey TMenuItem *hotKey(ushort keyCode);
------
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á ¬«¼á¡ñπ ¼Ñ¡ε, ßó∩ºá¡¡πε ß π»αáó½∩ε-
ΘÑ⌐ ¬½áó¿ΦÑ⌐, «»αÑñѽ∩Ѽ«⌐ »áαá¼ÑΓα«¼ KeyCode. àß½¿ Γᬫú« »π¡¬Γá
¡Ñ ßπΘÑßΓóπÑΓ ¿½¿ »π¡¬Γ ¡Ññ«ßΓπ»Ñ¡, ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0. ô»αáó-
½∩εΘπε ¬½áó¿Φ¿ »αÑñßΓáó½∩εΓ ß«í«⌐ «íδτ¡« Σπ¡¬µ¿«¡á½∞¡δÑ ¬½áó¿Φ¿
¿½¿ ¬«¼í¿¡áµ¿¿ ß ¬½áó¿ΦÑ⌐ Alt, «»αÑñѽ∩ѼδÑ ó맮óἿ
TProgram::initMenuBar. hotKey ¿ß»«½∞ºπÑΓß∩ handleEvent ñ½∩ «»αÑ-
ñѽѡ¿∩ Γ«ú«, óδí¿αáÑΓß∩ ½¿ »α¿ ¡áªáΓ¿¿ ¬½áó¿Φ¿ »π¡¬Γ ¼Ñ¡ε.
read virtual void *read( ipstream& is);
----
ÄßπΘÑßΓó½∩ÑΓ ßτ¿Γδóá¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, ipstream
write virtual void write( opstream& os);
-----
ÄßπΘÑßΓó½∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, ipstream.
Turbo Vision ñ½∩ æ++ = 161 =
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
Ä»αÑñѽѡ¡δÑ óδ»«½¡¿¼δÑ Σπ¡¬µ¿¿ «Γ¡«ß∩Γß∩ ¬ TMenuBox, ¡« ¡Ñ
∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
éßÑ «í½áßΓ¿ ¼Ñ¡ε ¿ß»«½∞ºπεΓ ñ½∩ «Γ«íαáªÑ¡¿∩ 2 - 7 φ½Ñ¼Ñ¡Γδ
»α¿¡¿¼áѼ«⌐ »« π¼«½τá¡¿ε »á½¿Γαδ cpMenuView ó ßΓá¡ñáαΓ¡«⌐ »α¿¬-
½áñ¡«⌐ »á½¿ΓαÑ.
1 2 3 4 5 6
╔════╤════╤════╤════╤════╤════╗
cpMenuView ║x02 │x03 │x04 │x05 │x06 │x07 ║
╚══╤═╧══╤═╧══╤═╧══╤═╧══╤═╧══╤═╝
│ │ │ │ │ │
Äíδτ¡δ⌐ ΓѬßΓ ────────┘ │ │ │ │ └───── éδíαá¡δ
ÆѬßΓ ¡Ññ«ßΓπ»Ñ¡ ─────────────┘ │ │ │ ß«¬αáΘÑ¡¿∩
櫬αáΘÑ¡¿∩ ──────────────────┘ │ └─── éδíαá¡á ¡Ññ«ß-
│ Γπ»¡«ßΓ∞ ΓѬßΓá
└──────── éδíαá¡ «íδτ¡δ⌐
ΓѬßΓ
Turbo Vision ñ½∩ æ++ = 162 =
TMonoSelector COLORSEL.H
-----------------------------------------------------------------
┌────────────┐
│ TCluster │
└─────┬──────┘
│
╔══════╧═══════╗
║ TMonoSelector║
╚══════════════╝
éºá¿¼«ºáó¿ß¿¼δÑ ¬½áßßδ TColorItem, TColorGroup, TColorSelec-
tor, TMonoSelector, TColorDisplay, TColorGroupList, TColorItem-
List ¿ TColorDialog ¿ß»«½∞ºπεΓß∩ ñ½∩ »«ññÑ᪬¿ «¬«¡ »α«ß¼«Γαá ¿
ñ¿á½«ú«óδσ «¬«¡, ¿º ¬«Γ«αδσ »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ ¿ ¼Ñ¡∩Γ∞
º¡áτÑ¡¿∩ µóÑΓ«ó ¿º ñ«ßΓπ»¡«⌐ »á½¿Γαδ ß ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ «Γ«íαáªÑ-
¡¿Ñ¼ ¿º¼Ñ¡Ñ¡¿⌐ ¡á φ¬αá¡Ñ.
TMonoSelector óó«ñ¿Γ ó αáí«Γπ ñá¡¡δÑ, ¿º ¬«Γ«αδσ óδ ¼«ªÑΓÑ
óδíαáΓ∞ áΓα¿íπΓδ ¡«α¼á½∞¡«ú«, »«ñßóÑτÑ¡¡«ú«, »«ñτÑનóáѼ«ú« ¿½¿
¿¡óÑαß¡«ú« ¿º«íαáªÑ¡¿∩ ¡á ¼«¡«σα«¼¡δσ φ¬αá¡áσ.
îÑΓ«ñδ
constructor TMonoSelector( const TRect& bounds);
-----------
櫺ñáÑΓ ñá¡¡δÑ »πΓѼ ó맮óá ¬«¡ßΓαπ¬Γ«αá TCluster ß τÑΓδα∞¼∩
¬¡«»¬á¼¿, «í«º¡áτÑ¡¡δ¼¿: "Normal", "Highlight", "Underline" ¿
"Inverse". ö½áúπ evBroadcast »α¿ßóá¿óáÑΓß∩ º¡áτÑ¡¿Ñ eventMask.
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó ¬«¡¬αÑΓ¡δσ ß¿Γπᵿ∩σ τΓÑ-
¡¿∩ ¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, ipstream::readData, TStreamable
draw virtual void draw();
----
ÄΓ«íαáªáÑΓ óδíαá¡¡δ⌐ ¬½áßΓÑα.
handleEvent virtual void handleEvent( TEvent& event);
-----------
éδºδóáÑΓ TCluster::handleEvent ¿ αÑáú¿απÑΓ ¡á ñÑ⌐ßΓó¿∩
cmColorSet »πΓѼ ¿º¼Ñ¡Ñ¡¿∩ »«½∩ value ß««ΓóÑΓßΓóÑ¡¡«. Å«½Ñ
»α«ß¼«Γαá ºá¡«ó« «Γ«íαáªáÑΓß∩, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«. ç¡áτÑ¡¿Ñ
value ß«ñÑαª¿Γ áΓα¿íπΓ ¿º«íαáªÑ¡¿∩, ß««ΓóÑΓßΓóπεΘ¿⌐ óδíαá¡¡«¼π
áΓα¿íπΓπ.
æ¼. ΓᬪÑ: TCluster::handleEvent, TCluster::value
mark virtual Boolean mark( int item);
Turbo Vision ñ½∩ æ++ = 163 =
----
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ íδ½á óδíαá¡á ¬¡«»¬á item; ó
»α«Γ¿ó¡«¼ ß½πτáÑ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ False.
movedTo void movedTo(int item);
-------
ôßΓá¡áó½¿óáÑΓ value ó º¡áτÑ¡¿Ñ item (¿¼ÑÑΓ Γá¬«Ñ ªÑ
ñÑ⌐ßΓó¿Ñ, ¬á¬ press).
æ¼. ΓᬪÑ: TMonoSelector::Press
newColor void newColor();
--------
ê¡Σ«α¼¿απÑΓ úαπ»»π «íΩÑ¬Γ«ó, ó½áñÑεΘπε ñá¡¡δ¼ ¼Ñ¡ε, « Γ«¼,
τΓ« íδ½ ¿º¼Ñ¡Ñ¡ áΓα¿íπΓ.
press virtual void press( int item);
-----
"ìᪿ¼áÑΓ" ¬¡«»¬¿ item ¿ óδºδóáÑΓ newColor.
æ¼. ΓᬪÑ: TMonoSelector::newColor
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
Ä»αÑñѽѡ¡δÑ óδ»«½¡¿¼δÑ Σπ¡¬µ¿¿ «Γ¡«ß∩Γß∩ ¬ TMonoSelector,
¡« ¡Ñ ∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Turbo Vision ñ½∩ æ++ = 164 =
TMouse SYSTEM.H
-----------------------------------------------------------------
┌────────────┐
│ THWMouse │
└─────┬──────┘
│
╔════╧═════╗
║ TMouse ║
╚══════════╝
TMouse »«ññÑনóáÑΓ Σπ¡¬µ¿¿ ¡¿ª¡Ñú« πα«ó¡∩ ñ½∩ αáí«Γδ ß ¼á-
¡¿»π½∩Γ«α«¼ "¼δΦ∞". ¥Γ«Γ ¿ ñαπú¿Ñ ß¿ßΓѼ¡δÑ ¬½áßßδ ó SYSTEM.H
«»¿ßá¡δ ¬αáΓ¬« Γ«½∞¬« ñ½∩ «º¡á¬«¼½Ñ¡¿∩: «¡¿ ¿ß»«½∞ºπεΓß∩ Turbo
Vision ñ½∩ ó¡πΓαÑ¡¡Ñú« »«½∞º«óá¡¿∩, ¿ óá¼ ¡Ñ »«ΓαÑíπÑΓß∩ ¿σ ∩ó¡«Ñ
¿ß»«½∞º«óá¡¿Ñ ó «íδτ¡δσ »α¿¬½áñ¡δσ »α«úαá¼¼áσ.
îÑΓ«ñδ
constructor TMouse();
-----------
éδºδóáÑΓ TMouse::show ñ½∩ «Γ«íαáªÑ¡¿∩ ¬παß«αá "¼δΦ¿".
æ¼. ΓᬪÑ: TMouse::show
destructor ~TMouse();
----------
éδºδóáÑΓ THWMouse::hide ñ½∩ ߬αδΓ¿∩ ¬παß«αá "¼δΦ¿".
æ¼. ΓᬪÑ: THWMouse::hide
getEvent static void getEvent (MouseEventType& me);
--------
éδºδóáÑΓ THWMouse::gatEvent(me) ñ½∩ πßΓá¡«ó¬¿ »«½Ñ⌐ buttons,
where.x, where.y ¿ doubleClick ßΓαπ¬Γπαδ MouseEventType, me.
æ¼. ΓᬪÑ: THWMouse::gatEvent, MouseEventType
hide static void hide();
----
éδºδóáÑΓ THWMouse::hide ñ½∩ ߬αδΓ¿∩ ¬παß«αá "¼δΦ¿".
æ¼. ΓᬪÑ: THWMouse::hide
present static Boolean present();
-------
éδºδóáÑΓ ¼ÑΓ«ñ THWMouse::present. 髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True,
Ñß½¿ "¼δΦ∞" ¿¼ÑÑΓß∩ ó ß¿ßΓÑ¼Ñ (φΓ« «º¡áτáÑΓ, τΓ« º¡áτÑ¡¿Ñ
buttonCount ¡Ñ¡π½Ñó«Ñ); ó »α«Γ¿ó¡«¼ ß½πτáÑ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ
False.
æ¼. ΓᬪÑ: mouse;;present
Turbo Vision ñ½∩ æ++ = 165 =
registerHandler static void registerHandler(unsigned mask,
--------------- void (far *func) ();
éδºδóáÑΓ THWMouse::registerHandler( mask, func ) ñ½∩ αÑú¿ßΓ-
αᵿ¿ func ó ¬áτÑßΓóÑ ΓѬπΘÑú« «íαáí«Γτ¿¬á ñÑ⌐ßΓó¿⌐ "¼δΦ¿".
æ¼. ΓᬪÑ: THWMouse::registerHandler
resume static void resume();
------
éδºδóáÑΓ THWMouse::resume. é«ßßΓá¡áó½¿óáÑΓ "¼δΦ∞" »πΓѼ »Ñ-
αÑαÑú¿ßΓαᵿ¿ «íαáí«Γτ¿¬á ¿ »ÑαÑπßΓá¡«ó¬¿ buttonCount.
æ¼. ΓᬪÑ: THWMouse::resume
setRange static void setRange ( ushort rx, ushort ry );
--------
éδºδóáÑΓ THWMouse::setRange( rx, ry ) ñ½∩ πßΓá¡«ó½Ñ¡¿∩ »αÑ-
ñѽ«ó ñÑ⌐ßΓó¿∩ "¼δΦ¿" ó ºáñá¡¡δÑ áαúπ¼Ñ¡Γδ.
æ¼. ΓᬪÑ: THWMouse::setRange
show static void show();
----
éδºδóáÑΓ THWMouse::show ñ½∩ «Γ«íαáªÑ¡¿∩ ¬παß«αá "¼δΦ¿".
æ¼. ΓᬪÑ: THWMouse::show
suspend static void suspend();
-------
éδºδóáÑΓ THWMouse::suspend. ìÑ óδ»«½¡∩ÑΓ ¡¿¬á¬¿σ ñÑ⌐ßΓó¿⌐,
Ñß½¿ present ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ False; ó »α«Γ¿ó¡«¼ ß½πτáÑ ß¬αδ-
óáÑΓ "¼δΦ∞", «Γ¼Ñ¡∩ÑΓ αÑú¿ßΓαáµ¿ε «íαáí«Γτ¿¬á ¿ πßΓá¡áó½¿óáÑΓ
buttonCount ó ¡«½∞.
æ¼. ΓᬪÑ: THWMouse::suspend
Turbo Vision ñ½∩ æ++ = 166 =
TMouseEventType SYSTEM.H
-----------------------------------------------------------------
╔═════════════════╗
║ TMouseEventType ║
╚═════════════════╝
æΓαπ¬Γπαá TMouseEventType ß«ñÑαª¿Γ ñá¡¡δÑ, ¬«Γ«αδÑ σáαá¬ΓÑ-
ਧπεΓ ñÑ⌐ßΓó¿∩ "¼δΦ¿": ¡«¼Ñα ¬¡«»¬¿, íπñπΓ ½¿ «íαáíáΓδóáΓ∞ß∩
ñÑ⌐ßΓó¿∩ "¼δΦ¿", »α¿ ñó«⌐¡«¼ ¡áªáΓ¿¿ ¬¡«»¬¿, ¿ ¬««αñ¿¡áΓδ Γ«τ¬¿,
ó ¬«Γ«α«⌐ ¡áσ«ñ¿Γß∩ ¬παß«α "¼δΦ¿" »α¿ ¡áªáΓ¿¿ ¡á ¬¡«»¬π.
struct TMouseEventType
{
unchar buttons;
Boolean doubleClick;
TPoint where;
};
æ¼. ΓᬪÑ: TEvent::getMouseEvent, TView::handleEvent,
THWMouse::getEvent.
Turbo Vision ñ½∩ æ++ = 167 =
TNSCollection TVOBJS.H
-----------------------------------------------------------------
┌───────────┐
│ TObject │
└─────┬─────┘
│
╔═════╧════════╗ ┌───────────────┐
║ TNSCollection║ │ TStreamable │
╚═════╤════════╝ └───────┬───────┘
│ │
└──────┐ ┌───────────────┘
┌─────┴─┴──────┐
│ TCollection │
└──────────────┘
TNSCollection «íαáíáΓδóáÑΓ ¡Ñ»«Γ«¬«óπε ¬«½½Ñ¬µ¿ε φ½Ñ¼Ñ¡Γ«ó
(¡á τΓ« π¬áºδóáÑΓ »αÑΣ¿¬ß NS), ó¬½ετá∩ ñαπú¿Ñ «íΩѬΓδ. àú« ú½áó-
¡«⌐ µÑ½∞ε ∩ó½∩ÑΓß∩ »«ññÑαª¬á «ß¡«ó¡«ú« ¬½áßßá (ó¼ÑßΓÑ ß
TStreamable τÑαѺ ¼¡«ªÑßΓóÑ¡¡«Ñ ¡áß½Ññ«óá¡¿Ñ) ñ½∩ »«Γ«¬«ó«ú«
¬½áßßá ¬«½½Ñ¬µ¿¿, TCollection. TNSCollection »«ññÑনóáÑΓ ó
TCollection ¼ÑΓ«ñδ, ß½πªáΘ¿Ñ ñ½∩ ñ«íáó½Ñ¡¿∩, ñ«ßΓπ»á ¿ πñá½Ñ¡¿∩
φ½Ñ¼Ñ¡Γ«ó ¿º ¬«½½Ñ¬µ¿¿. TStreamable »«ññÑনóáÑΓ ó TCollection
󫺼«ª¡«ßΓ∞ ¿¼Ñ¡«óáΓ∞ ¿ ß«ºñáóáΓ∞ »«Γ«¬¿, ó ¬«Γ«αδÑ ¿ ¿º ¬«Γ«αδσ
¬«½½Ñ¬µ¿∩ ¼«ªÑΓ ºá»¿ßá¡á ¿ ßτ¿Γá¡á.
諽½Ñ¬µ¿∩ ∩ó½∩ÑΓß∩ í«½ÑÑ «íΘ¿¼ »«¡∩Γ¿Ñ¼ »« ßαáó¡Ñ¡¿ε ß Γαá-
ñ¿µ¿«¡¡δ¼¿ ¼áßß¿ó«¼, ¼¡«ªÑßΓó«¼ ¿½¿ ß»¿ß¬«¼. ÉẼÑαδ «íΩÑ¬Γ«ó
TNSCollection ßἿ ∩ó½∩εΓß∩ ñ¿¡á¼¿τÑ߬¿¼¿ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ ¿
»αÑñ«ßΓáó½∩εΓ «ß¡«óπ ñ½∩ í«½ÑÑ ß»Ñµ¿á½∞¡δσ ¬½áßß«ó-»«Γ«¼¬«ó, Γá-
¬¿σ ¬á¬ TCollection, TNSSortedCollection, TSortedCollection,
TStringCollection ¿ TResourceCollection. é ñ«»«½¡Ñ¡¿Ñ ¬ ¼ÑΓ«ñá¼,
ñ½∩ ñ«íáó½Ñ¡¿∩ ¿ πñá½Ñ¡¿∩ φ½Ñ¼Ñ¡Γ«ó, TNSCollection »αÑñ«ßΓáó½∩ÑΓ
¡Ñ߬«½∞¬« »«ñ»α«úαá¼¼, »«óΓ«α∩εΘ¿σ ó맮ó Σπ¡¬µ¿¿ ñ½∩ ¬áªñ«ú« φ½Ñ-
¼Ñ¡Γá ¬«½½Ñ¬µ¿¿.
Å«½∩
count ccIndex count; (ºáΘ¿ΘÑ¡¡δ⌐)
-----
ÆѬπΘÑÑ ¬«½¿τÑßΓó« φ½Ñ¼Ñ¡Γ«ó ¬«½½Ñ¬µ¿¿, 󻽫Γ∞ ñ« maxColle-
ctionSize.
æ¼. ΓᬪÑ: »ÑαѼѡ¡á∩ maxCollectionSize
delta ccIndex delta;
-----
ù¿ß½«, ¬«Γ«αδ¼ ¼«ª¡« πóѽ¿τ¿Γ∞ ß»¿ß«¬ φ½Ñ¼Ñ¡Γ«ó items ñ« Ñú«
»«½¡«ú« ºá»«½¡Ñ¡¿∩. àß½¿ delta αáó¡á 0, ¬«½½Ñ¬µ¿∩ ¡Ñ ¼«ªÑΓ óδ-
αáßΓ¿ ºá αẼÑα, πßΓá¡«ó½Ñ¡¡δ⌐ »α¿ »«¼«Θ¿ limit.
Turbo Vision ñ½∩ æ++ = 168 =
æ¼. ΓᬪÑ: limit, ¬«¡ßΓαπ¬Γ«α TNSCollection
items void **items;
-----
ô¬áºáΓѽ∞ ¡á ¼áßß¿ó π¬áºáΓѽÑ⌐ ß«ºñáóáѼδσ φ½Ñ¼Ñ¡Γ«ó.
limit ccIndex limit;
-----
ÆѬπΘ¿⌐ πßΓá¡«ó½Ñ¡¡δ⌐ αẼÑα (ó φ½Ñ¼Ñ¡Γáσ) ß»¿ß¬á items.
æ¼. ΓᬪÑ: delta, ¬«¡ßΓαπ¬Γ«α TNSCollection
limit Boolean shouldDelete;
-----
àß½¿ πßΓá¡«ó½Ñ¡« º¡áτÑ¡¿Ñ True (»« π¼«½τá¡¿ε), Γ« ñÑßΓαπ¬Γ«α
TNSCollection íπñÑΓ óδºδóáΓ∞ freeAll »ÑαÑñ πßΓá¡«ó¬«⌐ limit ó 0.
àß½¿ πßΓá¡«ó½Ñ¡« º¡áτÑ¡¿Ñ False, ñÑßΓαπ¬Γ«α »α«ßΓ« πßΓá¡áó½¿óáÑΓ
limit ó 0.
æ¼. ΓᬪÑ: NSCollection:: ~TNSCollection,
TNSCollection::freeAll
îÑΓ«ñδ
constructor TNSCollection(ccIndex aLimit, ccIndex aDelta);
-----------
櫺ñáÑΓ ¬«½½Ñ¬µ¿ε ß »áαá¼ÑΓαἿ limit, πßΓá¡«ó½Ñ¡¡δ¼¿ ó
aLimit, ¿ delta, πßΓá¡«ó½Ñ¡¡δ¼ ó aDelta. Äíá »«½∩ count ¿ items
πßΓá¡«ó½Ñ¡δ ó 0. shouldDelete πßΓá¡«ó½Ñ¡ ó º¡áτÑ¡¿Ñ True. ìáτá½∞-
¡«Ñ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó íπñÑΓ «úαá¡¿τ¿óáΓ∞ß∩ º¡áτÑ¡¿Ñ¼ aLimit, á αáº-
¼Ñα ¬«½½Ñ¬µ¿¿ ¼«ªÑΓ πóѽ¿τ¿óáΓ∞ß∩ ß Φáú«¼ aDelta ñ« ΓÑσ »«α, »«¬á
σóáΓáÑΓ »á¼∩Γ¿, ¿½¿ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ¡Ñ ñ«ßΓ¿ú¡ÑΓ º¡áτÑ¡¿∩
maxCollectionSize.
constructor TNSCollection();
-----------
ôßΓá¡áó½¿óáÑΓ shouldDelete ó º¡áτÑ¡¿Ñ True, á óßÑ «ßΓá½∞¡δÑ
»«½∩ - ó 0.
æ¼. ΓᬪÑ: TNSCollection::shouldDelete, TNSCollection::count
TNSCollection::limit, TNSCollection::delta
destructor ~TNSCollection();
----------
àß½¿ shouldDelete ¿¼ÑÑΓ º¡áτÑ¡¿Ñ True, ñÑßΓαπ¬Γ«α πñá½∩ÑΓ ¿
π¡¿τΓ«ªáÑΓ óßÑ φ½Ñ¼Ñ¡Γδ ó ¬«½½Ñ¬µ¿¿ »πΓѼ ó맮óá TNSCollection::
Turbo Vision ñ½∩ æ++ = 169 =
freeAll ¿ πßΓá¡«ó¬¿ limit ó 0. àß½¿ shouldDelete ¿¼ÑÑΓ º¡áτÑ¡¿Ñ
False, Γ« ñÑßΓαπ¬Γ«α πßΓá¡áó½¿óáÑΓ limit ó 0, ¡« ¡Ñ π¡¿τΓ«ªáÑΓ
¬«½½Ñ¬µ¿ε.
æ¼. ΓᬪÑ: TNSCollection::shouldDelete,
TNSCollection::freeAll, TNSCollection::Setlimit
at void *at(ccIndex index);
--
髺óαáΘáÑΓ π¬áºáΓѽ∞ ¡á φ½Ñ¼Ñ¡Γ ¬«½½Ñ¬µ¿¿, »«¼ÑτÑ¡¡δ⌐ »α¿
»«¼«Θ¿ index. ¥Γ«Γ ¼ÑΓ«ñ »«ºó«½∩ÑΓ «íαáíáΓδóáΓ∞ ¬«½½Ñ¬µ¿ε ¬á¬ ¿¡-
ñѬ߿α«óá¡¡δ⌐ ¼áßß¿ó. àß½¿ º¡áτÑ¡¿Ñ index ¼Ñ¡∞ΦÑ ¡π½∩ ¿½¿ í«½∞ΦÑ
¿½¿ αáó¡« count, óδºδóáÑΓß∩ ¼ÑΓ«ñ error ß áαúπ¼Ñ¡Γ«¼
coIndexError, ¿ ó«ºóαáΘáÑΓß∩ 0.
æ¼. ΓᬪÑ: TNSCollection::indexOf
atInsert void atInsert(ccIndex index, void *item);
--------
ÅÑαѼÑΘáÑΓ ß½ÑñπεΘ¿Ñ φ½Ñ¼Ñ¡Γδ ¡á «ñ¡π »«º¿µ¿ε 󡿺, ºáΓѼ
óßΓáó½∩ÑΓ item ó »«º¿µ¿ε index. àß½¿ º¡áτÑ¡¿Ñ index ¼Ñ¡∞ΦÑ ¡π½∩
¿½¿ í«½∞ΦÑ ¿½¿ αáó¡« count, óδºδóáÑΓß∩ ¼ÑΓ«ñ error ß áαúπ¼Ñ¡Γ«¼
coIndexError, ¿ ¡«óδ⌐ φ½Ñ¼Ñ¡Γ item ¡Ñ óßΓáó½∩ÑΓß∩. àß½¿ º¡áτÑ¡¿Ñ
count αáó¡« limit »ÑαÑñ óδº«ó«¼ atInsert, πßΓá¡«ó½Ñ¡¡δ⌐ αẼÑα
¬«½½Ñ¬µ¿¿ πóѽ¿τ¿óáÑΓß∩ ¡á delta φ½Ñ¼Ñ¡Γ«ó »α¿ »«¼«Θ¿ ó맮óá
setLimit. àß½¿ ó맮ó setLimit ¡Ñ αáßΦ¿α∩ÑΓ ¬«½½Ñ¬µ¿ε, Γ« óδºδóá-
ÑΓß∩ ¼ÑΓ«ñ error ß áαúπ¼Ñ¡Γ«¼ coOverflow, ¿ ¡«óδ⌐ φ½Ñ¼Ñ¡Γ item ¡Ñ
óßΓáó½∩ÑΓß∩.
æ¼. ΓᬪÑ: TNSCollection::at,TNSCollection::atPut
atPut void atPut(ccIndex index, void *item);
-----
çá¼ÑΘáÑΓ φ½Ñ¼Ñ¡Γ ß ¿¡ñѬߡ«⌐ »«º¿µ¿Ñ⌐ index ñá¡¡δ¼ φ½Ñ¼Ñ¡Γ«¼
item. àß½¿ º¡áτÑ¡¿Ñ index ¼Ñ¡∞ΦÑ ¡π½∩ ¿½¿ í«½∞ΦÑ ¿½¿ αáó¡« count,
óδºδóáÑΓß∩ ¼ÑΓ«ñ error ß áαúπ¼Ñ¡Γ«¼ coIndexError.
æ¼. ΓᬪÑ: TNSCollection::at,TNSCollection::atInsert
atRemove void atRemove(ccIndex index);
--------
ôñá½∩ÑΓ φ½Ñ¼Ñ¡Γ ¿º »«º¿µ¿¿ index »πΓѼ »ÑαѼÑΘÑ¡¿∩ ß½ÑñπεΘ¿σ
ºá ¡¿¼ φ½Ñ¼Ñ¡Γ«ó ¡á «ñ¡π »«º¿µ¿ε óóÑασ. æá¼ φ½Ñ¼Ñ¡Γ ¡Ñ π¡¿τΓ«ªá-
ÑΓß∩. ç¡áτÑ¡¿Ñ count π¼Ñ¡∞ΦáÑΓß∩ ¡á 1, ¡« »á¼∩Γ∞, óδñѽѡ¡á∩ ñ½∩
¬«½½Ñ¬µ¿¿ (π¬áºá¡¡«⌐ »α¿ »«¼«Θ¿ limit) ¡Ñ π¼Ñ¡∞ΦáÑΓß∩. àß½¿ º¡á-
τÑ¡¿Ñ index í«½∞ΦÑ ¿½¿ αáó¡« count, Γ« óδºδóáÑΓß∩ error(1,0).
æαáó¡¿ΓÑ ñÑ⌐ßΓó¿Ñ atRemove ß atFree. Å«ß½Ññ¡¿⌐ óδ»«½¡∩ÑΓ
atRemove, ºáΓѼ πñá½∩ÑΓ φ½Ñ¼Ñ¡Γ »α¿ »«¼«Θ¿ ¼ÑΓ«ñá delete(item).
Turbo Vision ñ½∩ æ++ = 170 =
æ¼. ΓᬪÑ: TNSCollection::at,TNSCollection::remove
error static void error(ccIndex code, ccIndex info);
-----
éδºδóáÑΓß∩ »α¿ «í¡áαπªÑ¡¿¿ «Φ¿í¬¿ ¬«½½Ñ¬µ¿¿. Å« π¼«½τá¡¿ε
φëà ¼ÑΓ«ñ óδαáíáΓδóáÑΓ «Φ¿í¬π ß ¬«ñ«¼ 212.
firstThat void *firstThat(ccTestFunc Test, void *arg);
---------
firstThat »α¿¼Ñ¡∩ÑΓ íπ½Ñó߬πε Σπ¡¬µ¿ε *Test ß« ß»¿ß¬«¼ áαúπ-
¼Ñ¡Γ«ó, ºáñá¡¡δ¼ ó arg (¼«ªÑΓ íδΓ∞ »πßΓδ¼) ¬ ¬áªñ«¼π φ½Ñ¼Ñ¡Γπ
¬«½½Ñ¬µ¿¿ ñ« ΓÑσ »«α, »«¬á *Test ¡Ñ óÑα¡ÑΓ º¡áτÑ¡¿Ñ True. ÉѺπ½∞-
ΓáΓ«¼ ∩ó½∩ÑΓß∩ π¬áºáΓѽ∞ φ½Ñ¼Ñ¡Γá, ñ½∩ ¬«Γ«α«ú« *Test ó«ºóαáΘáÑΓ
º¡áτÑ¡¿Ñ True, ¿½¿ 0, Ñß½¿ *Test óÑα¡π½á º¡áτÑ¡¿Ñ False ñ½∩ óßÑσ
φ½Ñ¼Ñ¡Γ«ó. Æ¿» ¼ÑΓ«ñá ccTestFunc «»αÑñѽ∩εΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
typedef Boolean (*ccTestFunc) (void *, void *);
ÅÑαóδ⌐ áαúπ¼Ñ¡Γ π¬áºáΓѽ∩ Σπ¡¬µ¿¿ *Test »α«ß¼áΓα¿óáÑΓ ¬«½-
½Ñ¬µ¿ε. éΓ«α«⌐ áαúπ¼Ñ¡Γ *Test íÑαÑΓß∩ ¿º π¬áºáΓѽ∩ arg ¼ÑΓ«ñá
firstThat, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
void *TNSCollection::firstThat( ccTestFunc Test, void *arg)
{
for( ccIndex i = 0; i < count; i++)
{
if( Test( items[i], arg ) == True )
return items[i];
}
return 0;
}
Å«¼¡¿ΓÑ, τΓ« ºáΘ¿ΘÑ¡¡δÑ »«½∩ items ¿¼ÑεΓ Γ¿» void**, ΓᬠτΓ«
items[i] ¿¼ÑεΓ Γ¿» void *.
æ¼. ΓᬪÑ: TNSCollection::lastThat, TNSCollection::forEach
forEach void forEach(ccAppFunc action, void *arg);
-------
êΓÑαáΓ«α forEach »α¿¼Ñ¡∩ÑΓ ñÑ⌐ßΓó¿Ñ, ºáñá¡¡«Ñ Σπ¡¬µ¿Ñ⌐
*action, ¬ ¬áªñ«¼π φ½Ñ¼Ñ¡Γ𠬫½½Ñ¬µ¿¿. ô¬áºáΓѽ∞ arg ¼«ªÑΓ
¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ »ÑαÑñáτ¿ ñ«»«½¡¿Γѽ∞¡δσ áαúπ¼Ñ¡Γ«ó φΓ«¼π
ñÑ⌐ßΓó¿ε. Æ¿» ¼ÑΓ«ñá ccAppFunc «»αÑñѽ∩ÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
typedef Boolean (*ccAppFunc) (void *, void *);
ÅÑαóδ⌐ áαúπ¼Ñ¡Γ π¬áºáΓѽ∩ Σπ¡¬µ¿¿ *action »α«ß¼áΓα¿óáÑΓ ¬«½-
½Ñ¬µ¿ε. éΓ«α«⌐ áαúπ¼Ñ¡Γ *action íÑαÑΓß∩ ¿º π¬áºáΓѽ∩ arg ¼ÑΓ«ñá
forEach, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
Turbo Vision ñ½∩ æ++ = 171 =
void *TNSCollection::forEach( ccAppFunc action, void *arg)
{
for( ccIndex i = 0; i < count; i++)
action( items[i], arg )
}
Å«¼¡¿ΓÑ, τΓ« ºáΘ¿ΘÑ¡¡δÑ »«½∩ items ¿¼ÑεΓ Γ¿» void**, ΓᬠτΓ«
items[i] ¿¼ÑεΓ Γ¿» void *.
æ¼. ΓᬪÑ: TNSCollection::firstThat, TNSCollection::lastThat
free void free(void*item);
----
ôñá½∩ÑΓ ¿ π¡¿τΓ«ªáÑΓ ºáñá¡¡δ⌐ φ½Ñ¼Ñ¡Γ item. ƒó½∩ÑΓß∩ φ¬ó¿óá-
½Ñ¡Γ«¼
remove( item );
delete( item );
æ¼. ΓᬪÑ: TNSCollection::remove
freeAll void freAll();
-------
ôñá½∩ÑΓ ¿ π¡¿τΓ«ªáÑΓ óßÑ φ½Ñ¼Ñ¡Γδ ó ¬«½½Ñ¬µ¿¿ ¿ πßΓá¡áó½¿óá-
ÑΓ count ó º¡áτÑ¡¿Ñ 0.
æ¼. ΓᬪÑ: TNSCollection::removeAll
IndexOf virtual ccIndex indexOf(void *item);
-------
髺óαáΘáÑΓ ¿¡ñÑ¬ß ºáñá¡¡«ú« φ½Ñ¼Ñ¡Γá item; ∩ó½∩ÑΓß∩ «íαáΓ¡«⌐
«»ÑαᵿÑ⌐ ¬ ¼ÑΓ«ñπ TNSCollection::at. àß½¿ φ½Ñ¼Ñ¡Γ item ¡Ñ ß«ñÑα-
ª¿Γß∩ ó ¬«½½Ñ¬µ¿¿, Γ« IndexOf óδºδóáÑΓ error(1,0).
æ¼. ΓᬪÑ: TNSCollection::at
insert virtual void insert(void *item);
------
éßΓáó½∩ÑΓ φ½Ñ¼Ñ¡Γ item ó ¬«½½Ñ¬µ¿ε ¿ ¬«ααÑ¬Γ¿απÑΓ ñαπú¿Ñ ¿¡-
ñѬßδ, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«. Å« π¼«½τá¡¿ε, óßΓáó¬á ñѽáÑΓß∩ ó ¬«¡-
µÑ ¬«½½Ñ¬µ¿¿ »α¿ ó맮óÑ atInsert(count,item);
æ¼. ΓᬪÑ: TNSCollection::atInsert
lastThat void *lastThat(ccTestFunc Test,void *arg);
--------
lastThat »α¿¼Ñ¡∩ÑΓ íπ½Ñó߬πε Σπ¡¬µ¿ε *Test ß« ß»¿ß¬«¼ áαúπ-
¼Ñ¡Γ«ó, ºáñá¡¡δ¼ ó arg (¼«ªÑΓ íδΓ∞ »πßΓδ¼) ¬ ¬áªñ«¼π φ½Ñ¼Ñ¡Γπ
Turbo Vision ñ½∩ æ++ = 172 =
¬«½½Ñ¬µ¿¿, ¡áτ¿¡á∩ ß »«ß½Ññ¡Ñú« φ½Ñ¼Ñ¡Γá, ¿ »α«ß¼áΓα¿óáÑΓ ¿σ ó
«íαáΓ¡«¼ »«α∩ñ¬Ñ ñ« ΓÑσ »«α, »«¬á *Test ¡Ñ óÑα¡ÑΓ º¡áτÑ¡¿Ñ "êßΓ¿-
¡á". ÉѺπ½∞ΓáΓ«¼ ∩ó½∩ÑΓß∩ π¬áºáΓѽ∞ φ½Ñ¼Ñ¡Γá, ñ½∩ ¬«Γ«α«ú« *Test
ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ True, ¿½¿ 0, Ñß½¿ *Test óÑα¡π½á º¡áτÑ¡¿Ñ
False ñ½∩ óßÑσ φ½Ñ¼Ñ¡Γ«ó. Æ¿» ¼ÑΓ«ñá ccTestFunc «»αÑñѽ∩ÑΓß∩ ß½Ñ-
ñπεΘ¿¼ «íαẫ¼:
typedef Boolean (*ccTestFunc) (void *, void *);
ÅÑαóδ⌐ áαúπ¼Ñ¡Γ π¬áºáΓѽ∩ Σπ¡¬µ¿¿ *Test »α«ß¼áΓα¿óáÑΓ ¬«½-
½Ñ¬µ¿ε. éΓ«α«⌐ áαúπ¼Ñ¡Γ *Test íÑαÑΓß∩ ¿º π¬áºáΓѽ∩ arg ¼ÑΓ«ñá
lastThat, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
void *TNSCollection::lastThat( ccTestFunc Test, void *arg)
{
for( ccIndex i = 0; i < count; i-- )
{
if( Test( items[i-1], arg ) == True )
return items[i-1];
}
return 0;
}
Å«¼¡¿ΓÑ, τΓ« ºáΘ¿ΘÑ¡¡δÑ »«½∩ items ¿¼ÑεΓ Γ¿» void**, ΓᬠτΓ«
items[i] ¿¼ÑεΓ Γ¿» void *.
æ¼. ΓᬪÑ: TNSCollection::firstThat, TNSCollection::forEach
pack void pack();
----
ôñá½∩ÑΓ óßÑ ¡π½ÑóδÑ π¬áºáΓѽ¿ ó ¬«½½Ñ¬µ¿¿ ¿ »ÑαѼÑΘáÑΓ φ½Ñ-
¼Ñ¡Γδ óóÑασ, ºá»«½¡∩∩ óßÑ ¿¡ΓÑαóá½δ.
æ¼. ΓᬪÑ: TNSCollection::remove, TNSCollection::removeAll
remove void remove(void *item);
------
ôñá½∩ÑΓ φ½Ñ¼Ñ¡Γ, ºáñá¡¡δ⌐ item, ¿º ¬«½½Ñ¬µ¿¿. ƒó½∩ÑΓß∩ φ¬ó¿-
óá½Ñ¡Γ«¼ atRemove(indexOf(item)).
æ¼. ΓᬪÑ: TNSCollection::atRemove, TNSCollection::IndexOf
removeAll void removeAll();
---------
ôñá½∩ÑΓ óßÑ φ½Ñ¼Ñ¡Γδ ¿º ¬«½½Ñ¬µ¿¿ »πΓѼ πßΓá¡«ó¬¿ count ó 0.
æ¼. ΓᬪÑ: TNSCollection::remove, TNSCollection::atRemove
setLimit virtual void setLimit(ccIndex aLimit);
Turbo Vision ñ½∩ æ++ = 173 =
--------
ÉáßΦ¿α∩ÑΓ ¿½¿ ߪ¿¼áÑΓ ¬«½½Ñ¬µ¿ε »πΓѼ ¿º¼Ñ¡Ñ¡¿∩ óδñѽѡ¡«ú«
αẼÑαá ¡á aLimit. àß½¿ aLimit ¼Ñ¡∞ΦÑ, τѼ count, «¡ πßΓá¡áó½¿óá-
ÑΓß∩ ó º¡áτÑ¡¿Ñ count, á Ñß½¿ aLimit í«½∞ΦÑ, τѼ
maxCollectionSize, Γ« «¡ πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ
maxCollectionSize. àß½¿ º¡áτÑ¡¿Ñ aLimit «Γ½¿τ¡« «Γ ΓѬπΘÑú« º¡á-
τÑ¡¿∩ limit, Γ« αẼÑΘáÑΓß∩ ¡«óδ⌐ ¼áßß¿ó ¿º aLimit φ½Ñ¼Ñ¡Γ«ó,
ßΓáαδ⌐ ¼áßß¿ó ¬«»¿απÑΓß∩ ó ¡«óδ⌐ ¼áßß¿ó ¿ ßΓáαδ⌐ ¼áßß¿ó πñá½∩-
ÑΓß∩.
æ¼. ΓᬪÑ: TNSCollection::limit, TNSCollection::count, »ÑαÑ-
¼Ñ¡¡á∩ maxCollectionSize
Turbo Vision ñ½∩ æ++ = 174 =
TNSSortedCollection TVOBJS.H
-----------------------------------------------------------------
┌───────────────┐ ┌──────────────┐
│ TNSCollection │ │ TStreamable │
└───────┬───┬───┘ └───────┬──────┘
│ └───────────────────┐ │
╔═══════╧═══════════╗ ┌───┴───┴──────┐
║TNSSortedCollection║ │ TCollection │
╚═══════╤═══════════╝ └───────┬──────┘
│ │
└──────┐ ┌──────────────────┘
┌───────┴─┴──────────┐
│ TSortedCollection │
└────────────────────┘
ÇíßΓαá¬Γ¡δ⌐ ¬½áßß TNSSortedCollection ∩ó½∩ÑΓß∩ ߻ѵ¿á½∞¡δ¼
¡áß½ÑñπÑ¼δ¼ ¬½áßß«¼ ¿º TNSCollection, óó«ñ∩Θ¿¼ ¡Ñ»«Γ«¬«óδÑ ¬«½-
½Ñ¬µ¿¿, «Γß«αΓ¿α«óá¡¡δÑ »« ¬½ετπ (ß ¿½¿ íѺ ñπí½¿¬áΓ«ó). ìÑ ñ«-
»π߬áεΓß∩ ¡¿¬á¬¿Ñ φ¬ºÑ¼»½∩αδ ¬½áßßá TNSSortedCollection. Ä¡ ßπ-
ΘÑßΓóπÑΓ ¿ß¬½ετ¿Γѽ∞¡« ¬á¬ «ß¡«óá ñ½∩ ñαπú¿σ ßΓá¡ñáαΓ¡δσ ¿½¿ ºá-
ñá¡¡δσ »«½∞º«óáΓѽѼ ¡áß½ÑñπѼδσ ¬½áßß«ó.
æ«αΓ¿α«ó¬á »α«¿ºó«ñ¿Γß∩ »α¿ »«¼«Θ¿ ó¿αΓπá½∞¡«ú« ¼ÑΓ«ñá
compare, ¬«Γ«αδ⌐ óδ ñ«½ª¡δ »ÑαÑ«»αÑñѽ¿Γ∞ (¿½¿ »ÑαѺáñáΓ∞ ¬á¬
ó¿αΓπá½∞¡δ⌐). ê¡«úñá óá¼ »α¿ñÑΓß∩ »ÑαÑ«»αÑñѽ∩Γ∞ ÑÑ ó ¡áß½ÑñπѼδσ
¬½áßßáσ ñ½∩ »«ññÑ᪬¿ «»αÑñѽѡ¡«ú« »«α∩ñ¬á ó ¬«½½Ñ¬µ¿¿. Å« ¼ÑαÑ
ñ«íáó½Ñ¡¿∩ ¡«óδσ φ½Ñ¼Ñ¡Γ«ó, «¡¿ áóΓ«¼áΓ¿τÑ߬¿ óßΓáó½∩εΓß∩ ó »«-
α∩ñ¬Ñ, ºáñá¡¡«¼ compare. ¥½Ñ¼Ñ¡Γδ ¼«úπΓ íδΓ∞ αẼÑΘÑ¡δ »α¿ »«¼«Θ¿
í¿¡áα¡«ú« (»« π¼«½τá¡¿ε) ¼ÑΓ«ñá search (Γá¬ªÑ ó¿αΓπá½∞¡«ú«). é¿α-
Γπá½∞¡δ⌐ ¼ÑΓ«ñ IndexOf, ¬«Γ«αδ⌐ ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ñ½∩ compare,
Γá¬ªÑ ¼«ªÑΓ íδΓ∞ »ÑαÑ«»αÑñѽѡ, Ñß½¿ ¼ÑΓ«ñπ compare ΓαÑíπÑΓß∩ ñ«-
»«½¡¿Γѽ∞¡á∩ ¿¡Σ«α¼áµ¿¿.
ä½∩ »«Γ«¬«óδσ «Γß«αΓ¿α«óá¡¡δσ ¬«½½Ñ¬µ¿⌐ óδ ¼«ªÑΓÑ ¿ß»«½∞º«-
óáΓ∞ ¬½áßß TSortedCollection, ¬«Γ«αδ⌐ ∩ó½∩ÑΓß∩ ¡Ñ¬«Γ«αδ¼ ¡áß½Ññ-
¡¿¬«¼ «Γ ¬½áßß«ó TNSSortedCollection ¿ TCollection («ß¡«ó«⌐ ñ½∩
¬«Γ«α«ú« ß½πª¿Γ ¬½áßß TStreamable). èα«¼Ñ ß»«ß«í¡«ßΓ¿ ß«σαá¡Ñ¡¿∩
ó »«Γ«¬Ñ ñóá ¬½áßßá TSortedCollection ¿ TNSSortedCollection ¿¼ÑεΓ
«ñ¿¡á¬«óδÑ Σπ¡¬µ¿«¡á½∞¡δÑ ó«º¼«ª¡«ßΓ¿.
Å«½∩
duplicates Boolean duplicates
----------
ôßΓá¡«ó½Ñ¡« ó º¡áτÑ¡¿Ñ True, Ñß½¿ ñ«»π߬áεΓß∩ ñπí½¿α«óá¡¡δÑ
¿¡ñѬßδ; ó »α«Γ¿ó¡«¼ ß½πτáÑ, πßΓá¡«ó½Ñ¡« ó º¡áτÑ¡¿Ñ False. Å«
π¼«½τá¡¿ε »α¿¡¿¼áÑΓß∩ False. àß½¿ duplicates ¿¼ÑÑΓ º¡áτÑ¡¿Ñ True,
Γ« ¼ÑΓ«ñδ search, insert ¿ indexOf αáí«ΓáεΓ ¡Ñ«ñ¿¡á¬«ó« (ß¼.
«»¿ßá¡¿Ñ φΓ¿σ ¼ÑΓ«ñ«ó).
Turbo Vision ñ½∩ æ++ = 175 =
îÑΓ«ñδ
constructor TNSSortedCollection(ccIndex aLimit, ccIndex aDelta);
-----------
éδºδóáÑΓ ¬«¡ßΓαπ¬Γ«α TCollection ñ½∩ πßΓá¡«ó¬¿ º¡áτÑ¡¿⌐
count, items ¿ limit ó 0; óδºδóáÑΓ setLimit(aLimit) ñ½∩ πßΓá¡«ó¬¿
»αÑñÑ½á ¬«½½Ñ¬µ¿¿ ó º¡áτÑ¡¿Ñ aLimit, ºáΓѼ πßΓá¡áó½¿óáÑΓ delta ó
aDelta. çá¼ÑΓ∞ΓÑ, τΓ« Γ¿» ñá¡¡δσ ccIndex ºáñá¡ ¬á¬ int.
duplicates πßΓá¡«ó½Ñ¡« ó º¡áτÑ¡¿Ñ False. àß½¿ óδ σ«Γ¿ΓÑ ñ«»πßΓ¿Γ∞
ñπí½¿α«óá¡¿Ñ ¬½ετÑ⌐, óδ ñ«½ª¡δ ºáñáΓ∞ duplicates º¡áτÑ¡¿Ñ True.
æ¼. ΓᬪÑ: ¬«¡ßΓαπ¬Γ«α TCollection, »«½∩ TCollection
compare virual int compare(void *key1, void *key2) = 0;
------- (τáßΓ¡δ⌐)
îÑΓ«ñ compare ∩ó½∩ÑΓß∩ ó¿αΓπá½∞¡δ¼ ¼ÑΓ«ñ«¼, ¬«Γ«αδ⌐ ñ«½ªÑ¡
íδΓ∞ »ÑαÑ«»αÑñѽѡ ó« óßÑσ ¡áß½ÑñπѼδσ ¬½áßßáσ. Ä¡ ñ«½ªÑ¡ ßαáó¡¿-
óáΓ∞ ñóá º¡áτÑ¡¿∩ ¬½ετá ¿ ó«ºóαáΘáΓ∞ αѺπ½∞ΓáΓ ó ß½ÑñπεΘѼ ó¿ñÑ:
___________________________
< 0, Ñß½¿ key1 < key2
0, Ñß½¿ key1 = key2
> 0, Ñß½¿ key1 > key2
___________________________
key1 ¿ key2 ∩ó½∩εΓß∩ π¬áºáΓѽ∩¼¿, ß««ΓóÑΓßΓóπεΘ¿¼¿ ßαáó¡¿óá-
Ñ¼δ¼ φ½Ñ¼Ñ¡Γá¼ ¬«½½Ñ¬µ¿¿, óδñѽѡ¡δ¼ ¼ÑΓ«ñ«¼ keyOf. îÑΓ«ñ search
óδ»«½¡∩ÑΓ í¿¡áα¡δ⌐ »«¿ß¬ »« óßѼ φ½Ñ¼Ñ¡Γá¼ ¬«½½Ñ¬µ¿¿, »α¿ »«¼«Θ¿
¼ÑΓ«ñá compare, ßαáó¡¿óáεΘÑú« φ½Ñ¼Ñ¡Γδ.
insert virtual void insert(void *item);
------
àß½¿ duplicates ¿¼ÑÑΓ º¡áτÑ¡¿Ñ False, insert αáí«ΓáÑΓ ß½Ññπ-
εΘ¿¼ «íαẫ¼: Ñß½¿ µÑ½Ñó«⌐ φ½Ñ¼Ñ¡Γ ¡Ñ ¡á⌐ñÑ¡ ó «Γß«αΓ¿α«óá¡¡«¼
¡áí«αÑ, «¡ óßΓáó½∩ÑΓß∩ ó »«º¿µ¿ε ñ«»πßΓ¿¼«ú« ¿¡ñѬßá. éδºδóáÑΓß∩
¼ÑΓ«ñ search ñ½∩ «»αÑñѽѡ¿∩, ßπΘÑßΓóπÑΓ ½¿ φ½Ñ¼Ñ¡Γ, Ñß½¿ ¡ÑΓ, Γ«
úñÑ Ñú« óßΓáó½∩Γ∞. insert óδ»«½¡∩ÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
{
ccIndex i;
if (search(keyOf(item), i) == 0)
atInsert(i,item);
}
àß½¿ duplicates ¿¼ÑÑΓ º¡áτÑ¡¿Ñ True, Γ« φ½Ñ¼Ñ¡Γ óßΓáó½∩ÑΓß∩
»ÑαÑñ ½εí묨 φ½Ñ¼Ñ¡ΓἿ (Ñß½¿ «¡¿ ÑßΓ∞) ß Γᬿ¼ ¬½ετ«¼.
æ¼. ΓᬪÑ: TNSSortedCollection::search,TCollection::atInsert
Turbo Vision ñ½∩ æ++ = 176 =
search virtual Boolean search(void *key, ccIndex& index);
------
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ φ½Ñ¼Ñ¡Γ, ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡δ⌐
»« key, ¡á⌐ñÑ¡ ó «Γß«αΓ¿α«óá¡¡«⌐ ¬«½½Ñ¬µ¿¿. àß½¿ φ½Ñ¼Ñ¡Γ ¡á⌐ñÑ¡,
index πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ ¡á⌐ñÑ¡¡«ú« ¿¡ñѬßá; ó »α«Γ¿ó¡«¼
ß½πτáÑ, index πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ ¿¡ñѬßá, úñÑ φ½Ñ¼Ñ¡Γ íπ-
ñÑΓ »«¼ÑΘÑ¡ ó ß½πτáÑ, Ñß½¿ «¡ íπñÑΓ óßΓáó½∩Γ∞ß∩. çá¼ÑΓ∞ΓÑ, τΓ«
Ñß½¿ duplicates ¿¼ÑÑΓ º¡áτÑ¡¿Ñ True ¿ ¬½ετ¿ »α«ñπí½¿α«óá¡δ,
search íπñÑΓ ¿ß¬áΓ∞ »Ñαóδ⌐ ß««ΓóÑΓßΓóπεΘ¿⌐ «íαẵπ φ½Ñ¼Ñ¡Γ.
æ¼. ΓᬪÑ: TNSSortedCollection::compare,
TNSSortedCollection::insert
Turbo Vision ñ½∩ æ++ = 177 =
TObject TVOBJ.H
-----------------------------------------------------------------
╔═══════════╗
║ TObject ║
╚╤═══╤═╤═╤═╤╝
┌─────────┘ │ │ │ └─────────┐
┌───────┴───────┐ │ │ │ ┌───────┴───────┐
│ TCollection │ │ │ │ │ TResourceFile │
└───────────────┘ │ │ │ └───────────────┘
│ │ └──────────┐
│ │ ┌───────┴───────┐
│ │ │ TStringList │
│ │ └───────────────┘
┌─────────────┘ └─────────────┐
┌───────┴───────┐ ┌───────┴───────┐
│ TStrListMaster│ │ TView │
└───────────────┘ └───────────────┘
TObject »αÑñßΓáó½∩ÑΓ ß«í«⌐ óÑαΦ¿¡π ¿Ñαáασ¿¿ í«½∞Φ¿¡ßΓóá «íΩ-
Ñ¬Γ«ó Turbo Vision. èᬠíẫóδ⌐ ¬½áßß, «¡ ¡Ñ ¿¼ÑÑΓ α«ñ¿Γѽ∞߬¿σ
¬½áßß«ó, ¡« ¿¼ÑÑΓ í«½∞Φ«Ñ τ¿ß½« »«Γ«¼¬«ó. öá¬Γ¿τÑ߬¿, ¬α«¼Ñ
TPoint ¿ TRect (¿ αẽ¿τ¡δσ ¬½áßß«ó ¿ ßΓαπ¬Γπα ¿¡¿µ¿á½¿ºáµ¿¿ ¿
π»αáó½Ñ¡¿∩ »«Γ«¬á¼¿) óßÑ ßΓá¡ñáαΓ¡δÑ ¬½áßßδ Turbo Vosion ∩ó½∩εΓß∩
ó ¿Γ«úÑ »α«¿ºó«ñ¡δ¼¿ «Γ TObject.
îÑΓ«ñδ
constructor virtual ~TObject();
-----------
éδ»«½¡∩ÑΓ ¡Ñ«íσ«ñ¿¼πε «τ¿ßΓ¬π »á¼∩Γ¿ ¿ αáß»«½áúáÑΓ ñ¿¡á¼¿-
τÑ߬¿Ñ «íΩѬΓδ.
destroy static void destroy( TObject *ob );
-------
é« óßÑσ ß½πτá∩σ, ¬«úñá óδ σ«Γ¿ΓÑ πñ὿Γ∞ «íΩÑ¬Γ (ob) ¡áß½Ññ-
¡¿¬ ¬½áßßá TObject (Γ.Ñ. ½εí«⌐ «íΩѬΓ, ß«ºñá¡¡δ⌐ «»ÑαáΓ«α«¼ new),
óδºδóá⌐ΓÑ ¼ÑΓ«ñ destroy. îÑΓ«ñ destroy »αѬαáΘáÑΓ ßπΘÑßΓó«óá¡¿Ñ
«íΩѬΓá, ᬬπαáΓ¡« «ßó«í«ªñá∩ ºá¡¿¼áѼπε ¿¼ »á¼∩Γ∞. êß»«½∞ºπ⌐ΓÑ
φëà ¼ÑΓ«ñ ó¼ÑßΓ« «»ÑαáΓ«αá æ++ delete. ìá»α¿¼Ñα:
TDialog *dlg = new TDialog(...);
//delete dlg; //Æᬠ¡Ñ ñѽá⌐ΓÑ
destroy( dlg ); //äѽá⌐ΓÑ Γᬿ¼ «íαẫ¼
æ¼. ΓᬪÑ: ú½áóá 6, "Éáºαáí«Γ¬á ¡áñѪ¡δσ »α«úαá¼¼"
shutDown virtual void shutDown();
--------
êß»«½∞ºπÑΓß∩ Γ«½∞¬« TObject::destroy, ñ½∩ »α«óÑન »αáó¿½∞-
¡«ßΓ¿ πñá½Ñ¡¿∩ ¡áß½ÑñπѼδσ ¿ ºáó¿ß¿¼δσ «íΩÑ¬Γ«ó. shutDown »ÑαÑ«»-
Turbo Vision ñ½∩ æ++ = 178 =
αÑñѽ∩ÑΓß∩ ó« ¼¡«ú¿σ ¬½áßßáσ, ñ½∩ «íÑß»ÑτÑ¡¿∩ »αáó¿½∞¡«ú« ºáñá¡¿∩
ºáó¿ß¿¼δσ »«½Ñ⌐, »α¿ ó맮óÑ ¼ÑΓ«ñá destroy.
æ¼. ΓᬪÑ: ú½áóá 6, "Éáºαáí«Γ¬á ¡áñѪ¡δσ »α«úαá¼¼"
Turbo Vision ñ½∩ æ++ = 179 =
TPalette VIEWS.H
-----------------------------------------------------------------
╔══════════════╗
║ TPalette ║
╚══════════════╝
TPalette ∩ó½∩ÑΓß∩ »α«ßΓδ¼ ¬½áßß«¼, ¿ß»«½∞ºπÑ¼δ¼ ñ½∩ ß«ºñá¡¿∩
¿ «íαáí«Γ¬¿ ¼áßß¿ó«ó »á½¿Γαδ. ò«Γ∩ »á½¿Γαδ ∩ó½∩εΓß∩ ¼áßß¿óἿ Γ¿-
»á char ¿ τáßΓ« π¬áºδóáεΓß∩ ¬á¬ ßΓ᫬¿, «¡¿ ¡Ñ ∩ó½∩εΓß∩ ßΓα«¬á¼¿
ºá¬á¡τ¿óáεΘ¿¼¿ß∩ ¡π½Ñóδ¼ ß¿¼ó«½«¼, ¬á¬ φΓ« »α¿¡∩Γ« ó ∩ºδ¬Ñ æ¿.
öá¬Γ¿τÑ߬¿, ó »á½¿ΓαÑ ¼«ªÑΓ »α¿ßπΓßΓó«óáΓ∞ 0-⌐ íá⌐Γ. Å«φΓ«¼π
«íδτ¡δÑ ßΓ᫬«óδÑ Σπ¡¬µ¿¿ æ¿ ¿ß»«½∞º«óáΓ∞ß∩ ¡Ñ ¼«úπΓ. ÅÑαóδ⌐ íá⌐Γ
ßΓ᫬¿ »á½¿Γαδ ß«ñÑαª¿Γ ÑÑ ñ½¿¡π (íѺ πτÑΓá ßἫú« »Ñαó«ú« íá⌐-
Γá). èáªñá∩ «ß¡«ó¡«⌐ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¿¼ÑÑΓ ßΓá¡ñáαΓ¡πε »á½¿Γ-
απ, ¬«Γ«αá∩ «»αÑñѽ∩ÑΓ (»πΓѼ ¿¡ñѬßᵿ¿ ó ÑÑ ß«íßΓóÑ¡¡«⌐ »á½¿Γ-
αÑ) «íδτ¡δÑ µóÑΓá, ¡áº¡áτÑ¡¡δÑ αẽ¿τ¡δ¼ τáßΓ∩¼ «Γ«íαáªáѼδσ «íΩ-
Ñ¬Γ«ó, Γᬿ¼ ¬á¬ »α∩¼«πú«½∞¡δÑ «í½áßΓ¿, αἬ¿, ¬¡«»¬á¼, ΓѬßΓ ¿
Γ.ñ. ä½∩ »«½πτÑ¡¿∩ í«½ÑÑ »«ñα«í¡«⌐ ¿¡Σ«α¼áµ¿¿ ß¼«Γα¿ΓÑ ú½áóπ 4,
"ÄΓ«íαáªáѼδÑ «íΩѬΓδ".
îÑΓ«ñδ
constructor TPalette( const char *d, ushort len );
----------- TPalette( const TPalette& tp );
ÅÑαóá∩ Σ«α¼á ß«ºñáÑΓ «íΩÑ¬Γ TPalette ß« ßΓ᫬«⌐ d ¿ ñ½¿¡«⌐
len. é¡πΓαÑ¡¡ÑÑ »«½Ñ data πßΓá¡áó½¿óáÑΓß∩ ß len ó Ñú« »Ñαó«¼ íá⌐-
ΓÑ, ºá ¡¿¼ ß½ÑñπÑΓ ¼áßß¿ó d. éΓ«αá∩ Σ«α¼á ß«ºñáÑΓ ¡«óπε »á½¿Γαπ,
¬«»¿απ∩ »á½¿Γαπ tp.
destructor ~TPalette();
----------
ô¡¿τΓ«ªáÑΓ »á½¿Γαπ.
operator = TPalette& operator = ( const TPalette& tp );
----------
Ä»ÑαáΓ«α p = tp; ¬«»¿απÑΓ »á½¿Γαπ tp ó »á½¿Γαπ p.
operator [] char& operator[] ( int index );
-----------
Ä»ÑαáΓ«α ¡¿ª¡Ñú« πα«ó¡∩ ó«ºóαáΘáÑΓ ß¿¼ó«½ ó »«º¿µ¿¿ index.
Turbo Vision ñ½∩ æ++ = 180 =
TParamText DIALOGS.H
-----------------------------------------------------------------
╔══════════════╗
║ TParamText ║
╚══════════════╝
TParamText ∩ó½∩ÑΓß∩ ¡áß½Ññ¡¿¬«¼ ¬½áßßá TStaticText. Ä¡
¿ß»«½∞ºπÑΓ »áαá¼ÑΓਧ«óá¡¡δÑ ΓѬßΓ«óδÑ ßΓ᫬¿ ñ½∩ Σ«α¼áΓ¡«ú« óδ-
ó«ñá, »α¿¼Ñ¡∩∩ Σπ¡¬µ¿ε stdio - vsprintf.
Å«½∩
paramCount short paramCount;
----------
paramCount π¬áºδóáÑΓ τ¿ß½« »áαá¼ÑΓα«ó, ß«ñÑαªáΘ¿σß∩ ó
paramList.
æ¼. ΓᬪÑ: TParamText::paramList
paramList void *paramList
---------
paramList - φΓ« π¬áºáΓѽ∞, «íδτ¡« π¬áºδóáεΘ¿⌐ ¡á ¼áßß¿ó (¿½¿
ßΓαπ¬Γπαπ) π¬áºáΓѽÑ⌐ ¿½¿ º¡áτÑ¡¿⌐ Γ¿»á long, ¬«Γ«αδÑ ñ«½ª¡δ
¿ß»«½∞º«óáΓ∞ß∩ ¬á¬ »áαá¼ÑΓαδ Σ«α¼áΓ¿α«óá¡¿∩ ΓѬßΓ«ó«⌐ ßΓ᫬¿.
îÑΓ«ñδ
constructor TParamText(const TRect& bounds, const char *aText,
----------- int aParamCount);
櫺ñáÑΓ ¿ ¿¡¿µ¿á½¿º¿απÑΓ ßΓáΓ¿τÑ߬¿⌐ ΓѬßΓ«óδ⌐ «íΩѬΓ, óδºδ-
óá∩ ¼ÑΓ«ñ TStaticText(bounds, aText). aText ¼«ªÑΓ ß«ñÑαªáΓ∞ ß»Ñ-
µ¿Σ¿¬áΓ«αδ Σ«α¼áΓá printf (ó ó¿ñÑ %[-][nnn]X), ¬«Γ«αδÑ íπñπΓ ºá-
¼Ñ¡Ñ¡δ »áαá¼ÑΓαἿ, »ÑαÑñá¡¡δ¼¿ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩. Åáαá¼ÑΓα
count, »ÑαÑñá¡¡δ⌐ ó aParamCount, »α¿ßóá¿óáÑΓß∩ »«½ε paramCount.
constructor TParamText( StreamableInit streamableInit)
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñδ⌐ »«Γ«¬«óδ⌐ ¬½áßß ΓαÑíπÑΓ "»«ßΓα«¿Γѽ∩" ñ½∩ αáß»αÑñѽÑ-
¡¿∩ »á¼∩Γ¿ ñ½∩ Ñú« «íΩÑ¬Γ«ó ó¼ÑßΓÑ ß ¿¡¿µ¿á½¿º¿α«óá¡¡δ¼¿ π¬áºáΓÑ-
½∩¼¿ ó¿αΓπá½∞¡«⌐ Γáí½¿µδ. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá Σπ¡¬µ¿¿
φ½Ñ¼Ñ¡Γá constructor ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. 漫Γα¿ΓÑ
Γá¬ªÑ â½áóπ 8.
æ¼. ΓᬪÑ: TStaticText::TStaticText, vsprintf (stdio.h)
Turbo Vision ñ½∩ æ++ = 181 =
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó «»αÑñѽѡ¡δσ ß¿Γπᵿ∩σ
τΓÑ¡¿∩ ¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, ipstream::readData
dataSize virtual ushort dataSize();
--------
髺óαáΘáÑΓ αẼÑα ñá¡¡δσ, ¡Ñ«íσ«ñ¿¼δσ »áαá¼ÑΓαá¼ «íΩѬΓá.
getText virtual void getText(char *s);
-------
櫺ñáÑΓ Σ«α¼áΓ¿α«óá¡¡πε ßΓ᫬π ΓѬßΓá ó s, «ßπΘÑßΓó½∩∩ «íΩ-
Ññ¿¡Ñ¡¿Ñ »áαá¼ÑΓα«ó, ºáñá¡¡δσ ó paramList ó ΓѬßΓ«óπε ßΓ᫬π text
ß »«¼«Θ∞ε ó맮óá vsprintf(s, text, paramList). àß½¿ text »πßΓ, *s
πßΓá¡áó½¿óáÑΓß∩ ó EOS.
read virtual void *read( ipstream& is );
----
ÄßπΘÑßΓó½∩ÑΓ ßτ¿Γδóá¡¿Ñ ¿º óσ«ñ¡«ú« »«Γ«¬á is.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, ipstream
setData virtual void setData(void *rec);
-------
ôßΓá¡áó½¿óáÑΓ paramList ó º¡áτÑ¡¿Ñ *rec.
write virtual void write( opstream& os );
-----
ÄßπΘÑßΓó½∩ÑΓ ºá»¿ß∞ ó óδσ«ñ¡«⌐ »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, opstream
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
ìѬ«Γ«αδÑ óδ»«½¡∩ѼδÑ Σπ¡¬µ¿¿ «Γ¡«ß∩Γß∩ ¬ ¬½áßßπ TParamText,
¡« ¡Ñ ∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
ÄíΩѬΓδ TParamText ¿ß»«½∞ºπεΓ »á½¿Γαπ (»« π¼«½τá¡¿ε)
cpStaticText ñ½∩ «Γ«íαáªÑ¡¿∩ ºáñá¡¡«ú« º¡áτÑ¡¿∩ ó 6-⌐ φ½Ñ¼Ñ¡Γ
ßΓá¡ñáαΓ¡«⌐ »á½¿Γαδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
1
Turbo Vision ñ½∩ æ++ = 182 =
╔═══╗
cpStaticText ║0x6║
╚═╤═╝
ÆѬßΓ ─────┘
Turbo Vision ñ½∩ æ++ = 183 =
TPoint OBJECTS.H
-----------------------------------------------------------------
╔══════════╗
║ TPoint ║
╚══════════╝
TPoint - φΓ« ¬½áßß, «»αÑñѽ∩εΘ¿⌐ Γ«τ¬¿ ¡á φ¬αá¡Ñ, ß ¡Ñ߬«½∞-
¬¿¼¿ »ÑαÑ«»αÑñѽ∩Ñ¼δ¼¿ «»ÑαáΓ«αἿ, ß½πªáΘ¿¼¿ ñ½∩ ¼á¡¿»π½¿α«óá¡¿∩
¬««αñ¿¡áΓἿ Γ«τ¬¿.
Å«½∩
x int x;
--
x - »«º¿µ¿∩ (¬«½«¡¬á) Γ«τ¬¿ ¡á φ¬αá¡Ñ.
y int y;
--
y - »«º¿µ¿∩ (ßΓ᫬á) Γ«τ¬¿ ¡á φ¬αá¡Ñ.
îÑΓ«ñδ
operator += TPoint& operator+=(const TPoint& adder);
-----------
ôóѽ¿τ¿óáÑΓ º¡áτÑ¡¿Ñ x »α¿ »«¼«Θ¿ adder.x ¿ y »α¿ »«¼«Θ¿
adder.y. 髺óαáΘáÑΓ *this.
operator -= TPoint& operator-=(const TPoint& subber);
-----------
ô¼Ñ¡∞ΦáÑΓ º¡áτÑ¡¿Ñ x »α¿ »«¼«Θ¿ adder.x ¿ y »α¿ »«¼«Θ¿
adder.y. 髺óαáΘáÑΓ *this.
äαπªÑßΓóÑ¡¡δÑ ¼ÑΓ«ñδ
operator- friend TPoint& operator-(const TPoint& one,
--------- const TPoint& two);
éδτ¿ΓáÑΓ ¬««αñ¿¡áΓπ two ¿º ¬««αñ¿¡áΓδ one. ôßΓá¡áó½¿óáÑΓ x ó
º¡áτÑ¡¿Ñ (one.x - two.x) ¿ y - ó º¡áτÑ¡¿Ñ (one.y - two.y). Çαúπ-
¼Ñ¡Γδ one ¿ two, ¬«¡Ñτ¡«, ¡Ñ ¼Ñ¡∩εΓß∩. 髺óαáΘáÑΓ *this.
operator+ friend TPoint& operator+(const TPoint& one,
--------- const TPoint& two);
Åα¿íáó½∩ÑΓ ¬««αñ¿¡áΓπ two ¬ ¬««αñ¿¡áΓÑ one. ôßΓá¡áó½¿óáÑΓ x
Turbo Vision ñ½∩ æ++ = 184 =
ó º¡áτÑ¡¿Ñ (one.x | two.x) ¿ y - ó º¡áτÑ¡¿Ñ (one.y | two.y). Çα-
úπ¼Ñ¡Γδ one ¿ two, ¬«¡Ñτ¡«, ¡Ñ ¼Ñ¡∩εΓß∩. 髺óαáΘáÑΓ *this.
operator== friend int operastor=(const TPoint& one,
---------- const Tpoint& two);
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ ¬««αñ¿¡áΓδ Γ«τ¬¿ one ¿ two
«ñ¿¡á¬«óδ (Γ.Ñ., Ñß½¿ one.x==two.x && one.y==two.y). é »α«Γ¿ó¡«¼
ß½πτáÑ ó«ºóαáΘáÑΓß∩ False.
operator!= friend int operastor!=(const TPoint& one,
---------- const Tpoint& two);
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True (¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ), Ñß½¿ ¬««αñ¿-
¡áΓδ Γ«τ¬¿ one ¿ two αẽ¿τ¡δ (Γ.Ñ., Ñß½¿ one.x!=two.x ||
one.y!=two.y). é »α«Γ¿ó¡«¼ ß½πτáÑ ó«ºóαáΘáÑΓß∩ False (0).
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
ìѬ«Γ«αδÑ óδ»«½¡∩ѼδÑ Σπ¡¬µ¿¿ «Γ¡«ß∩Γß∩ ¬ ¬½áßßπ TPoint, ¡«
¡Ñ ∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Turbo Vision ñ½∩ æ++ = 185 =
TPReadObjects TOBJSTRM.H
-----------------------------------------------------------------
┌───────────────────────┐
│ TNSSortedCollection │
└──────────┬────────────┘
│
╔═══════╧═══════╗
║ TPReadObjects ║
╚═══════════════╝
è½áßß TPReadObjects (ó¼ÑßΓÑ ß TPWrittenObjects) αÑΦáÑΓ ß½«ª-
¡πε »α«í½Ñ¼π ¿ñÑ¡Γ¿Σ¿¬áµ¿¿, »α¿ ºá»¿ß¿ ¿ τΓÑ¡¿¿ «íΩÑ¬Γ«ó ó ¿ ¿º
»«Γ«¬«ó, »α¿ »«¼«Θ¿ π¬áºáΓѽÑ⌐. ¥Γ«Γ ¬½áßß ß«ñÑαª¿Γ íáºπ ñá¡¡δσ
óßÑσ «íΩÑ¬Γ«ó, ¬«Γ«αδÑ í뫨 ßτ¿Γá¡δ ¿º ΓѬπΘÑú« »«Γ«¬á «íΩÑ¬Γ«ó.
àú« ¿ß»«½∞ºπÑΓ ipstream, »α¿ ßτ¿Γδóá¡¿¿ π¬áºáΓѽ∩ ¿º »«Γ«¬á, ñ½∩
«»αÑñѽѡ¿∩ ¡á½¿τ¿∩ ñαπú¿σ π¬áºáΓѽÑ⌐ ¡á φëà «íΩѬΓ. Å« φΓ«¼π
¼Ñσá¡¿º¼π, Ñß½¿ ptr1 ¿ ptr2 π¬áºδóáεΓ ¡á «ñ¿¡ »«Γ«¬«óδ⌐ «íΩѬΓ, ¿
óδ ºá»¿ßδóáÑΓÑ «íá π¬áºáΓѽ∩ ó opstream, ß«σαá¡∩ÑΓß∩ Γ«½∞¬« «ñ¡á
¬«»¿∩ «íΩѬΓá. è«úñá óδ ß«í¿αáÑΓÑß∞ ßτ¿ΓáΓ∞ «íαáΓ¡« ¿º »«Γ«¬á,
ß«ºñáÑΓß∩ Γ«½∞¬« «ñ¡á ¬«»¿∩ *ptr1, ¿ «íá ptr1 ¿ ptr2 óßÑ ÑΘÑ π¬á-
ºδóáεΓ ¡á ¡ÑÑ.
îÑΓ«ñδ
constructor TPReadObjects();
-----------
¥Γ«Γ ó¡πΓαÑ¡¡¿⌐ ¬«¡ßΓαπ¬Γ«α ß«ºñáÑΓ ¡Ñ»«Γ«¬«óπε ¬«½½Ñ¬µ¿ε
»πΓѼ «íαáΘÑ¡¿∩ ¬ «ß¡«ó¡«¼π ¬«¡ßΓαπ¬Γ«απ TNSSortedCollection. Ä¡
ñ«ßΓπ»Ñ¡ Γ«½∞¬« »α¿ »«¼«Θ¿ ¼ÑΓ«ñ«ó ¿ ñαπªÑßΓóÑ¡¡δσ ¼ÑΓ«ñ«ó.
æ¼. ΓᬪÑ: TNSSortedCollection::TNSSortedCollection
destructor ~TPReadObjects();
----------
ôßΓá¡áó½¿óáÑΓ limit ¬«½½Ñ¬µ¿¿ ó º¡áτÑ¡¿Ñ 0 íѺ π¡¿τΓ«ªÑ¡¿∩
¬«½½Ñ¬µ¿¿ (Γ.¬. »«½Ñ shouldDelete πßΓá¡«ó½Ñ¡« ó º¡áτÑ¡¿Ñ False).
æ¼. ΓᬪÑ: TNSSortedCollection::TNSSortedCollection,
TNSSortedCollection::shouldDelete
äαπªÑßΓóÑ¡¡δÑ ¬½áßßδ
è½áßß ipstream ∩ó½∩ÑΓß∩ ñαπªÑßΓóÑ¡¡δ¼ ¬½áßß«¼ TPReadObjects,
ΓᬠτΓ« óßÑ Ñú« ¼ÑΓ«ñδ ¿¼ÑεΓ ñ«ßΓπ» ¬« ó¡πΓαÑ¡¡¿¼ »«½∩¼ ¬½áßßá
TPReadObjects.
Turbo Vision ñ½∩ æ++ = 186 =
TProgInit APP.H
-----------------------------------------------------------------
┌────────────┐ ╔════════════╗
│ TGroup │ ║ TProgInit ║
└──────┬─────┘ ╚════╤═══════╝
└──────┐ ┌─────────┘
┌─┴──────┴─┐
│ TProgram │
└──────────┘
TProgInit ∩ó½∩ÑΓß∩ «ß¡«ó¡δ¼ ó¿αΓπá½∞¡δ¼ ¬½áßß«¼ ñ½∩ ¬½áßßá
TProgram. è«¡ßΓαπ¬Γ«α TProgram óδºδóáÑΓ «ß¡«ó¡«⌐ ¬«¡ßΓαπ¬Γ«α
TProgInit, »ÑαÑñáóá∩ Ѽπ áñαÑßá ΓαÑσ Σπ¡¬µ¿⌐ ¿¡¿µ¿á½¿ºáµ¿¿, ¬«Γ«-
αδÑ ß«ºñáεΓ ßΓ᫬π ß«ßΓ«∩¡¿∩, »α∩¼«πú«½∞¡δÑ «í½áßΓ¿ ¼Ñ¡ε ¿ αáí«-
τπε «í½áßΓ∞. 漫Γα¿ΓÑ «»¿ßá¡¿Ñ ¬«¡ßΓαπ¬Γ«α«ó TProgram ¿
TApplication.
îÑΓ«ñδ
constructor TProgInit(TStatusLine *(*cStatusLine)( TRect r ),
----------- TMenuBar *(*cMenuBar)( TRect r ),
TDeskTop *(*cDeskTop)( TRect r ) );
漫Γα¿ΓÑ «»¿ßá¡¿Ñ ¬«¡ßΓαπ¬Γ«αá TProgram.
createDeskTop TDeskTop *(*createDeskTop)(TRect r );(ºáΘ¿ΘÑ¡¡δ⌐)
-------------
櫺ñáÑΓ αáí«τπε «í½áßΓ∞ ºáñá¡¡«ú« αẼÑαá.
æ¼. ΓᬪÑ: TApplication::TApplication
createMenuBar TMenuBar *(*createMenuBar)( TRect r );
------------- (ºáΘ¿ΘÑ¡¡δ⌐)
櫺ñáÑΓ ßΓ᫬π ¼Ñ¡ε ºáñá¡¡«ú« αẼÑαá.
æ¼. ΓᬪÑ: TApplication::TApplication
createStatusLine TStatusLine *(*createStatusLine)( TRect r );
----------------
櫺ñáÑΓ ßΓ᫬π ß«ßΓ«∩¡¿∩ ºáñá¡¡«ú« αẼÑαá.
æ¼. ΓᬪÑ: TApplication::TApplication
Turbo Vision ñ½∩ æ++ = 187 =
TProgram APP.H
-----------------------------------------------------------------
┌─────────┐ ┌──────────┐
│ TGroup │ │ TProInit │
└────┬────┘ └────┬─────┘
└───────┐ ┌─────────┘
╔═════╧══╧═════╗
║ TProgram ║
╚══════╤═══════╝
┌──────┴───────┐
│ TApplication │
└──────────────┘
TProgram «íÑß»Ñτ¿óáÑΓ íẫóπε ºáú«Γ«ó¬π ñ½∩ óßÑσ ßΓá¡ñáαΓ¡δσ
»α¿½«ªÑ¡¿⌐, ¡á»¿ßá¡¡δσ ß ¿ß»«½∞º«ó᡿Ѽ Turbo Vision. éßÑ ΓᬿÑ
»α«úαá¼¼δ ñ«½ª¡δ »«α«ªñáΓ∞ß∩ «Γ TProgram ¿½¿ Ñú« »«Γ«¼¬á
TApplication. TApplication «Γ½¿τáÑΓß∩ «Γ TProgram Γ«½∞¬« ßΓá¡-
ñáαΓ¡δ¼¿ ¬«¡ßΓαπ¬Γ«α«¼ ¿ ñÑßΓαπ¬Γ«α«¼. Äíá ¬½áßßá »«ññÑনóáεΓß∩
ñ½∩ «íÑß»ÑτÑ¡¿∩ í«½∞ΦÑ⌐ ú¿í¬«ßΓ¿ »α¿ ß«ºñá¡¿¿ ¡ÑßΓá¡ñáαΓ¡δσ »α«ú-
αá¼¼. é í«½∞Φ¿¡ßΓóÑ ß½πτáÑó óáΦá »α«úαá¼¼á íπñÑΓ »«α«ªñáΓ∞ß∩ «Γ
TApplication.
è½áßß TProgram ∩ó½∩ÑΓß∩ ¡áß½Ññ¡¿¬«¼ TGroup, ΓᬠτΓ« «¡ ñ«½-
ªÑ¡ ß«ñÑαªáΓ∞ «íΩѬΓδ TDeskTop, TStatusLine ¿ TMenuBar.
Å«½∩
application static TProgram *application;
-----------
ô¬áºáΓѽ∞ ¡á ΓѬπΘπε »α¿¬½áñ¡πε »α«úαá¼¼π, πßΓá¡áó½¿óáÑΓß∩
º¡áτÑ¡¿Ñ this ¬«¡ßΓαπ¬Γ«α«¼ TProgInit.
æ¼. ΓᬪÑ: ¬½áßß TProgInit
appPalette static int appPalette;
----------
ê¡ñѬ߿απÑΓ ßΓá¡ñáαΓ¡πε »á½¿Γαπ ñ½∩ φΓ«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼-
¼δ, ¬á¬ πßΓá¡«ó½Ñ¡« »α¿ »«¼«Θ¿ InitScreen. TProgram::getPalette
ó«ºóαáΘáÑΓ «íΩÑ¬Γ TPalette, ß««ΓóÑΓßΓóπεΘ¿⌐ appPalette.
æ¼. ΓᬪÑ: αáºñѽ "Å὿Γαδ" ¡¿ªÑ, TProgram::getPalette
deskTop static DeskTop *deskTop;
-------
ô¬áºáΓѽ∞ ¡á ΓѬπΘ¿⌐ «íΩÑ¬Γ αáí«τÑ⌐ «í½áßΓ¿, πßΓá¡áó½¿óáÑΓß∩
»α¿ ó맮óÑ createDeskTop ó ¬«¡ßΓαπ¬Γ«αÑ TProgram. ÉѺπ½∞Γ¿απεΘ¿⌐
«íΩÑ¬Γ óßΓáó½∩ÑΓß∩ ó úαπ»»π TProgram.
æ¼. ΓᬪÑ: TProgInit::createDeskTop, TProgram::initDeskTop
Turbo Vision ñ½∩ æ++ = 188 =
menuBar static TMenuBar *menuBar;
-------
ô¬áºáΓѽ∞ ¡á ΓѬπΘ¿⌐ «íΩÑ¬Γ ßΓ᫬¿ ¼Ñ¡ε, πßΓá¡áó½¿óáÑΓß∩ »α¿
ó맮óÑ createMenuBar ó ¬«¡ßΓαπ¬Γ«αÑ TProgram. ÉѺπ½∞Γ¿απεΘ¿⌐ «íΩ-
Ñ¬Γ óßΓáó½∩ÑΓß∩ ó úαπ»»π TProgram.
æ¼. ΓᬪÑ: TProgInit::createMenuBar, TProgram::initMenuBar
statusLine static TStatusLine *statusLine;
----------
ô¬áºáΓѽ∞ ΓѬπΘÑú« «íΩѬΓá ßΓ᫬¿ ß«ßΓ«∩¡¿∩, πßΓá¡áó½¿óáÑΓß∩
»α¿ ó맮óÑ createStatusLine ó ¬«¡ßΓαπ¬Γ«αÑ TProgram. ÉѺπ½∞Γ¿απε-
Θ¿⌐ «íΩÑ¬Γ óßΓáó½∩ÑΓß∩ ó úαπ»»π TProgram.
æ¼. ΓᬪÑ: TProgInit::createStatusLine,
TProgram::initStatusLine
îÑΓ«ñδ
constructor TProgram();
-----------
è«¡ßΓαπ¬Γ«α TProgram óδºδóáÑΓ «ß¡«ó¡«⌐ ¬«¡ßΓαπ¬Γ«α
TProgInit, »ÑαÑñáóá∩ Ѽπ áñαÑßá ΓαÑσ ¡áτá½∞¡δσ Σπ¡¬µ¿⌐:
TProgram::TProgram();
TProgInit( &TProgram::initStatusLine,
&TProgram::initMenuBar, & TProgram::initDeskTop
),
...
è«¡ßΓαπ¬Γ«α TProgInit ß«ºñáÑΓ ßΓ᫬π ß«ßΓ«∩¡¿∩, ßΓ᫬π ¼Ñ¡ε
¿ αáí«τπε «í½áßΓ∞:
TProgInit::TProgInit ( TStatusLine *(*cStatusLine)( TRect ),
TMenuBar *(cMenuBar)( TRect ),
TDeskTop *(cDeskTop)( TRect ) );
createStatusLine( cStatusLine ),
createMenuBar( cMenuBar ),
createDeskTop9 cDeskTop )
...
àß½¿ φΓ¿ «íαáΘÑ¡¿∩ í뫨 πß»ÑΦ¡δ, Γ« Γα¿ «íΩѬΓá ó¬½ετáεΓß∩ ó
úαπ»»π TProgram. æΓáΓ¿τÑ߬¿Ñ π¬áºáΓѽ¿ »«½Ñ⌐ statusLine, menuBar,
deskTop ¿ application (=this) πßΓá¡áó½¿óáεΓß∩ ¡á φΓ¿ ¡«óδÑ «íΩѬ-
Γδ. Æá¬ªÑ óδ»«½¡∩ÑΓß∩ ¬«¡ßΓαπ¬Γ«α TGroup ñ½∩ ß«ºñá¡¿∩ »«½¡«φ¬αá¡-
¡«ú« «Γ«íαáªáѼ«ú« «íΩѬΓá; ¿¡¿µ¿á½¿º¿απεΓß∩ íπΣÑα ¿º«íαáªÑ¡¿∩ ¿
ßΓá¡ñáαΓ¡δÑ »á½¿Γαδ; πßΓá¡áó½¿óáεΓß∩ ß½ÑñπεΘ¿Ñ Σ½áú¿ ß«ßΓ«∩¡¿∩:
state = sfVisible | sfSelected | sfFocused | sfModal |
Turbo Vision ñ½∩ æ++ = 189 =
sfExposed
destructor virtual ~Program();
----------
ôñá½∩ÑΓ ß««ΓóÑΓßΓóπεΘ¿Ñ «íΩѬΓδ deskTop, menuBar ¿ statusLine
¿ πßΓá¡áó½¿óáÑΓ ßΓáΓ¿τÑ߬«Ñ »«½Ñ application ó 0.
æ¼. ΓᬪÑ: ~TGroup
getEvent virtual getEvent(TEvent& event);
--------
Å« π¼«½τá¡¿ε ¼ÑΓ«ñ TView::getEvent »α«ßΓ« óδºδóáÑΓ getEvent
¿, »«ß¬«½∞¬π «íΩѬΓδ TProgram (¿½¿ TApplication) ó ¬«¡Ñτ¡«¼ ¿Γ«úÑ
∩ó½∩εΓß∩ ó½áñѽ∞µÑ¼ ½εí«ú« «Γ«íαáªáѼ«ú« «íΩѬΓá, ½εí«⌐ ó맮ó
getEvent íπñÑΓ »α¿ó«ñ¿Γ∞ ¬ TProgram::getEvent (Ñß½¿ Γ«½∞¬« «Γ«í-
αáªáѼδ⌐ «íΩÑ¬Γ ¡Ñ »ÑαÑ«»αÑñѽ¿Γ getEvent).
TÉrogram::getEvent ó¡áτá½Ñ »α«óÑα∩ÑΓ, ¡Ñ »«ßδ½á½ ½¿
TProgram::putEvent ß«íδΓ¿Ñ (ó ßΓáΓ¿τÑ߬«¼ »«½Ñ TEvent pending).
àß½¿ ñá, Γ« getEvent ó«ºóαáΘáÑΓ φΓ« ß«íδΓ¿Ñ. àß½¿ ¡ÑΓ ß«íδΓ¿∩, Γ«
getEvent óδºδóáÑΓ getMouseEvent. àß½¿ ó«ºóαáΘáÑΓß∩ evNothing, Γ«
óδºδóáÑΓß∩ getKeyEvent. àß½¿ «íá ó«ºóαáΘáεΓ evNothing, π¬áºδóá∩,
τΓ« óó«ñ »«½∞º«óáΓѽ∩ ¡Ññ«ßΓπ»Ñ¡, getEvent óδºδóáÑΓ
TProgram::idle, τΓ«íδ ºá»πßΓ¿Γ∞ "Σ«¡«óδÑ" ºáñáτ¿, óδ»«½¡∩ѼδÑ ó«
óαѼ∩ «ª¿ñá¡¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ óó«ñá «Γ »«½∞º«óáΓѽ∩. ä«
ó«ºóαáΓá getEvent »ÑαÑñáÑΓ óßÑ ß«íδΓ¿∩ evKeyDown ¿ evMouseDown ó
StatusLine ñ½∩ «Γ«íαáªÑ¡¿∩ ó ß««ΓóÑΓßΓóπεΘ¿Ñ evCommand ß«íδΓ¿∩
(¡áªáΓ¿∩ π»αáó½∩εΘ¿σ ¬½áó¿Φ).
æ¼. ΓᬪÑ: TProgram::putEvent, getMouseEvent, getKeyEvent
getPalette virtualTPalette& getPalette() const;
----------
髺óαáΘáÑΓ ßΓ᫬π »á½¿Γαδ, ºáñá¡¡πε ¿¡ñѬ߫¼ »á½¿Γαδ ó ßΓá-
Γ¿τÑ߬«¼ »«½Ñ appPalette. TProgram »«ññÑনóáÑΓ Γα¿ »á½¿Γαδ:
apColor, apBlackWhite ¿ apMonochrome. appPalette ¿¡¿µ¿á½¿º¿απÑΓß∩
TProgram::initScreen.
æ¼. ΓᬪÑ:TProgram::initScreen, AppPalette, ¬«¡ßΓá¡Γδ apXXXX
handleEvent virutal handleEvent(TEvent& event);
-----------
ÄíαáíáΓδóáÑΓ ¡áªáΓ¿∩ ¬½áó¿Φ (ß«íδΓ¿∩ «Γ ¬½áó¿áΓπαδ) «Γ Alt-1
ñ« Alt-9, »«ßδ½á∩ ß«íδΓ¿Ñ evBroadcast ß« º¡áτÑ¡¿Ñ¼ command, αáó-
¡δ¼ cmSelectWindowNum, ¿ º¡áτÑ¡¿Ñ¼ infoInt ó ñ¿á»áº«¡Ñ 1..9.
TWindow::handleEvent αÑáú¿απÑΓ ¡á Γá¬¿Ñ ß««íΘÑ¡¿∩, óδí¿αá∩ «¬¡« ß
ñá¡¡δ¼ ¡«¼Ñα«¼.
Turbo Vision ñ½∩ æ++ = 190 =
ÄíαáíáΓδóáÑΓ ß«íδΓ¿Ñ evCommand ß« º¡áτÑ¡¿Ñ¼ command, αáó¡δ¼
cmQuit, óδºδóá∩ endModal(cmQuit), τΓ« »α¿ó«ñ¿Γ ¬ ºáóÑαΦÑ¡¿ε »α¿¬-
½áñ¡«⌐ »α«úαá¼¼δ.
TProgram::handle »«τΓ¿ óßÑúñá »ÑαÑ«»αÑñѽ∩ÑΓß∩ ñ½∩ óóÑñÑ¡¿∩
«íαáí«Γ¬¿ ¬«¼á¡ñ, ߻ѵ¿Σ¿τ¡δσ ñ½∩ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
æ¼. ΓᬪÑ: TGroup::handleEvent
idle virtual void idle();
----
idle óδºδóáÑΓß∩ ¿º TProgram::getEvent, ¬«úñá «τÑαÑñ∞ ß«íδΓ¿⌐
»πßΓá, »«ºó«½∩∩ »α«úαá¼¼Ñ óδ»«½¡∩Γ∞ Σ«¡«óδÑ ºáñáτ¿ »α¿ «ª¿ñá¡¿¿
óó«ñá «Γ »«½∞º«óáΓѽ∩.
Å« π¼«½τá¡¿ε TProgram::idle óδºδóáÑΓ statusLine->update,
τΓ«íδ αáºαÑΦ¿Γ∞ ßΓα«¬Ñ ß«ßΓ«∩¡¿∩ «í¡«ó½∩Γ∞ ßÑí∩ ó ß««ΓóÑΓßΓó¿¿ ß
ΓѬπΘ¿¼ ¬«¡ΓѬßΓ«¼ »«ñ߬Ậ¿. çáΓѼ, Ñß½¿ ¡áí«α ¬«¼á¡ñ ¿º¼Ñ¡¿½ß∩
»«ß½Ñ »«ß½Ññ¡Ñú« ó맮óá TProgram::idle, »«ßδ½áÑΓß∩ evBroadcast ß«
º¡áτÑ¡¿Ñ¼ command, αáó¡δ¼ cmCommandSetChanged, τΓ«íδ »«ºó«½¿Γ∞
«Γ«íαáªáѼ«¼π «íΩѬΓπ, ¬«Γ«αδ⌐ ºáó¿ß¿Γ «Γ φΓ«ú« ¡áí«αá ¬«¼á¡ñ,
αáºαÑΦ¿Γ∞ ¿½¿ ºá»αÑΓ¿Γ∞ ßÑí∩.
àß½¿ óδ »ÑαÑ«»αÑñѽ∩ÑΓÑ idle, Γ« πíÑñ¿ΓÑß∞, τΓ« óδ óδºδóáÑΓÑ
¡áß½ÑñπѼδ⌐ ¼ÑΓ«ñ idle. ôíÑñ¿ΓÑß∞ ΓᬪÑ, τΓ« ºáñáτ¿, óδ»«½¡∩ѼδÑ
¼ÑΓ«ñ«¼ idle, ¡Ñ ºá¡¿¼áεΓ ß½¿Φ¬«¼ ¼¡«ú« óαѼѡ¿ ó »α«úαá¼¼Ñ,
»«ß¬«½∞¬π φΓ« íπñÑΓ í½«¬¿α«óáΓ∞ óó«ñ »«½∞º«óáΓѽ∩ ¿ ß¿½∞¡« ºá¼Ññ-
½¿Γ óαѼ∩ αÑᬵ¿¿.
initDeskTop static TDeskTop *initDeskTop(TRect);
-----------
ÇñαÑß φΓ«ú« ¼ÑΓ«ñá »ÑαÑñáÑΓß∩ ó ¬«¡ßΓαπ¬Γ«α TProgInit, ¬«Γ«-
αδ⌐ ß«ºñáÑΓ «íΩÑ¬Γ TDeskTop ñ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ ß«σαá¡∩ÑΓ
π¬áºáΓѽ∞ ¡á ¡Ñú« ó ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ deskTop. îÑΓ«ñ
initDeskTop ¡¿¬«úñá ¡Ñ ñ«½ªÑ¡ óδºδóáΓ∞ß∩ ¡á»α∩¼πε. initDeskTop
τáßΓ« »ÑαÑ«»αÑñѽ∩ÑΓß∩, ñ½∩ »α¿»¿ßδóá¡¿∩ º¡áτÑ¡¿∩ «»αÑñѽѡ¡«ú«
»«½∞º«óáΓѽѼ TDeskTop, ó¼ÑßΓ« »πßΓ«ú« ßΓá¡ñáαΓ¡«ú« ¼ÑΓ«ñá
TDeskTop.
æ¼. ΓᬪÑ: TProgram::TProgram, TDeskTop
initMenuBar static TMenuBar *initMenuBar(TRect);
-----------
ÇñαÑß φΓ«ú« ¼ÑΓ«ñá »ÑαÑñáÑΓß∩ ó ¬«¡ßΓαπ¬Γ«α TProgInit, ¬«Γ«-
αδ⌐ ß«ºñáÑΓ «íΩÑ¬Γ TMenuBar ñ½∩ »α«úαá¼¼δ ¿ ß«σαá¡∩ÑΓ π¬áºáΓѽ∞
¡á ¡Ñú« ó ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ menuBar. îÑΓ«ñ initMenuBar ¡¿¬«ú-
ñá ¡Ñ ñ«½ªÑ¡ óδºδóáΓ∞ß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡«. é¼ÑßΓ« »πßΓ«ú« TMenuBar
initMenuBar »«τΓ¿ óßÑúñá »ÑαÑ«»αÑñѽ∩ÑΓß∩ φ¬ºÑ¼»½∩α«¼, «»αÑñѽѡ-
¡δ¼ »«½∞º«óáΓѽѼ.
Turbo Vision ñ½∩ æ++ = 191 =
æ¼. ΓᬪÑ: TProgram::TProgram, TMenuBar
initScreen virtual void initScreen();
----------
éδºδóáÑΓß∩ ¿º TProgram::TProgram ¿ TProgram::setScreenMode
¬áªñδ⌐ αáº, ¬«úñá αѪ¿¼ φ¬αá¡á ¿¡¿µ¿á½¿º¿απÑΓß∩ ¿½¿ ¿º¼Ñ¡∩ÑΓß∩.
¥Γ« ¼ÑΓ«ñ, ¬«Γ«αδ⌐ ñÑ⌐ßΓó¿Γѽ∞¡« óδ»«½¡∩ÑΓ «í¡«ó½Ñ¡¿Ñ ¿ ¡áßΓα«⌐¬π
»ÑαѼѡ¡δσ, «»αÑñѽ∩εΘ¿σ αѪ¿¼«¼ φ¬αá¡á ñ½∩ óδτ¿ß½Ñ¡¿∩ αẼÑαá
"ΓÑ¡¿", ¼áα¬Ñα«ó ¿ »á½¿Γαδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
æ¼. ΓᬪÑ: TProgram::TProgram, TProgram::setScreenMode
initStatusLine static TStausLine *initStatusLine(TRect);
--------------
ÇñαÑß φΓ«ú« ¼ÑΓ«ñá »ÑαÑñáÑΓß∩ ¬«¡ßΓαπ¬Γ«απ TProgInit, ¬«Γ«-
αδ⌐ ß«ºñáÑΓ «íΩÑ¬Γ TStatusLine ñ½∩ »α«úαá¼¼δ ¿ ß«σαá¡∩ÑΓ π¬áºá-
Γѽ∞ ¡á ¡Ñú« ó ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ ó statusLine. initStatusLine
¡¿¬«úñá ¡Ñ ñ«½ªÑ¡ óδºδóáΓ∞ß∩ »α∩¼δ¼ «íαẫ¼. é¼ÑßΓ« ¿ß»«½∞º«óá¡¿∩
TStatusLine »« π¼«½τá¡¿ε initStatusLine »«τΓ¿ óßÑúñá »ÑαÑ«»αÑñÑ-
½∩ÑΓß∩ φ¬ºÑ¼»½∩α«¼ TStatusLine, «»αÑñѽѡ¡δ¼ »«½∞º«óáΓѽѼ.
æ¼. ΓᬪÑ: TProgram::TProgram, TStatusLine
outOfMemory virtual void outOfMemory();
-----------
îÑΓ«ñ outOfMemory óδºδóáÑΓß∩ ¿º TProgram::validView ñ½∩ «»-
αÑñѽѡ¿∩ Γ«ú«, τΓ« lowMemory ¿¼ÑÑΓ º¡áτÑ¡¿Ñ True. outOfMemory
ñ«½ªÑ¡ ß««íΘáΓ∞ »«½∞º«óáΓѽε, τΓ« ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿ ñ½∩ óδ»«½-
¡Ñ¡¿∩ «»Ñαᵿ¿. ìá»α¿¼Ñα, ß ¿ß»«½∞º«ó᡿Ѽ ¼ÑΓ«ñá messageBox ¿º
¼«ñπ½∩ STDDLG:
virtual void TMyApp::outOfMemory
{
messageBox('Not enough memory to complete operation.',
0, mfError + mfOKButton);
}
æ¼. ΓᬪÑ: TProgram::validView, lowMemory
putEvent virtual void putEvent(TEvent& event);
--------
Å« π¼«½τá¡¿ε TView::putEvent »α«ßΓ« óδºδóáÑΓ ¼ÑΓ«ñ putEvent
ßó«Ñú« ó½áñѽ∞µá ¿, »«ß¬«½∞¬π «íΩÑ¬Γ TProgram (¿½¿ TApplication)
ó ¬«¡Ñτ¡«¼ ßτÑΓÑ ∩ó½∩ÑΓß∩ ó½áñѽ∞µÑ¼ ½εí«ú« «Γ«íαáªáѼ«ú« «íΩѬ-
Γá, ¬áªñδ⌐ ó맮ó putEvent íπñÑΓ »α¿ó«ñ¿Γ∞ ¬ TProgram::putEvent
(Ñß½¿ Γ«½∞¬« «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ¡Ñ »ÑαÑ«»αÑñѽѡ putEvent).
îÑΓ«ñ Program::putEvent ß«σαá¡∩ÑΓ ¬«»¿ε ßΓαπ¬Γπαδ event ó
ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ pending, ¿ ß½ÑñπεΘ¿⌐ ó맮ó TProgram::
Turbo Vision ñ½∩ æ++ = 192 =
GetEvent íπñÑΓ ó«ºóαáΘáΓ∞ φΓ𠬫»¿ε.
æ¼. ΓᬪÑ: TProgram::getEvent, TView::putEvent
run virtual void run();
---
éδ»«½¡∩ÑΓ TProgram, óδºδóá∩ ¼ÑΓ«ñ execute (¬«Γ«αδ⌐ ¡áß½Ññπ-
ÑΓß∩ «Γ TGroup).
æ¼. ΓᬪÑ: TGroup::execute
setScreenMode void setScreenMode(ushort mode);
-------------
ôßΓá¡áó½¿óáÑΓ αѪ¿¼ φ¬αá¡á. mode - «ñ¡á ¿º ¬«¡ßΓá¡Γ smCO80,
smBW80 ¿½¿ smMono ß ñ«»«½¡¿Γѽ∞¡δ¼ smFont8x8 ñ½∩ óδí«αá 43- ¿½¿
50-ßΓα«τ¡«ú« αѪ¿¼á áñá»ΓÑα«ó EGA ¿½¿ VGA. setScreenMode "߬αδóá-
ÑΓ" ¬παß«α "¼δΦ¿", óδºδóáÑΓ setVideoMode ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ αѪ¿¼á φ¬-
αá¡á, πßΓá¡áó½¿óáÑΓ φ¬αá¡¡δ⌐ íπΣÑα, ¿¡¿µ¿á½¿º¿απÑΓ »ÑαѼѡ¡δÑ αÑ-
ª¿¼á φ¬αá¡á, óδºδóáÑΓ changeBounds ß ¡«ó묨 úαá¡¿µá¼¿ φ¬αá¡á ¿,
¡á¬«¡Ñµ, «Γ«íαáªáÑΓ ¬παß«α "¼δΦ¿".
æ¼. ΓᬪÑ: TProgram::setVideoMode, ¬«¡ßΓá¡Γδ smXXXX
shutDown virtual void shutDown();
--------
êß»«½∞ºπÑΓß∩ ¼ÑΓ«ñ«¼ TObject::destroy ñ½∩ »«ñΓóÑαªñÑ¡¿∩ »αá-
ó¿½∞¡«ú« πñá½Ñ¡¿∩ ¡áß½ÑñπѼδσ ¿ ßó∩ºá¡¡δσ «íΩÑ¬Γ«ó. îÑΓ«ñ
shutDown »ÑαÑ«»αÑñѽ∩ÑΓß∩ ó« ¼¡«ú¿σ ¬½áßßáσ ñ½∩ »«ñΓóÑαªñÑ¡¿∩
»αáó¿½∞¡«⌐ πßΓá¡«ó¬¿ »«½Ñ⌐ »α¿ ó맮óÑ destroy.
æ¼. ΓᬪÑ: ú½áóá 6, "Éáºαáí«Γ¬á ¡áñѪ¡δσ »α«úαá¼¼"
validView TView *validView(TView *p);
---------
Åα«óÑα∩ÑΓ ñ«»πßΓ¿¼«ßΓ∞ *p, ó¡«ó∞ ß«ºñá¡¡δσ «Γ«íαáªáѼδσ «íΩ-
Ñ¬Γ«ó, ó«ºóαáΘá∩ p, Ñß½¿ «íΩÑ¬Γ ñ«»πßΓ¿¼ ¿ 0 - Ñß½¿ ¡ÑΓ. é«-»Ñα-
óδσ, Ñß½¿ p ¿¼ÑÑΓ º¡áτÑ¡¿Ñ 0, ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ 0. é«-óΓ«αδσ,
Ñß½¿ lowMemory αáó¡« True, Γ« »α¿ ó맮óÑ validView «Γ«íαáªáѼδ⌐
«íΩѬΓ, ºáñá¡¡δ⌐ ó p, πñá½∩ÑΓß∩, óδºδóáÑΓß∩ ¼ÑΓ«ñ outOfMemory, ¿
ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ 0. é-ΓαÑΓ∞¿σ, Ñß½¿ ó맮ó P->Valid() ó«ºóαá-
ΘáÑΓ º¡áτÑ¡¿Ñ False, Γ« p πñá½∩ÑΓß∩, ¿ ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ 0.
ê¡áτÑ «Γ«íαáªáѼδ⌐ «íΩÑ¬Γ ßτ¿ΓáÑΓß∩ ñ«»πßΓ¿¼δ¼, ¿ ó«ºóαáΘáÑΓß∩
π¬áºáΓѽ∞ ¡á φëà «íΩÑ¬Γ p.
validView τáßΓ« ¿ß»«½∞ºπÑΓß∩ ñ½∩ »α«óÑન ñ«»πßΓ¿¼«ßΓ¿ ¡«ó«-
ú« «Γ«íαáªáѼ«ú« «íΩѬΓá ñ« óßΓáó¬¿ Ñú« ó úαπ»»π ó½áñѽ∞µá. ìá»-
α¿¼Ñα, ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »«¬áºδóáÑΓ Γ¿»¿τ¡πε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞
ß«ºñá¡¿∩, »α«óÑન ¿ ó¬½ετÑ¡¿∩ ¡«ó«ú« «¬¡á ó αáí«τπε «í½áßΓ∞
(TProgram::validView ¿ TGroup::insert º¡áεΓ, ¬á¬ ¿ú¡«α¿α«óáΓ∞
Turbo Vision ñ½∩ æ++ = 193 =
󫺼«ª¡δÑ ¡π½ÑóδÑ π¬áºáΓѽ¿, 󫺡¿¬áεΘ¿Ñ ó αѺπ½∞ΓáΓÑ «Φ¿í«¬).
deskTop->insert(cvlidView(new(TMyWindow));
æ¼. ΓᬪÑ: lowMemory, TProgram::outOfMemory, ¼ÑΓ«ñδ valid
Turbo Vision ñ½∩ æ++ = 194 =
Å὿Γαá
Å὿Γαá ñ½∩ «íΩѬΓá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ π»αáó½∩ÑΓ ¬«¡Ñτ¡δ¼
«Γ«íαáªÑ¡¿Ñ¼ µóÑΓá óßÑσ «Γ«íαáªáѼδσ «íΩÑ¬Γ«ó »α«úαá¼¼δ. éßÑ
«Γ«íαáªÑ¡¿∩ ñαπú¿σ »á½¿Γα »α¿ó«ñ∩Γ ¬ óδí«απ φ½Ñ¼Ñ¡Γá ó »á½¿ΓαÑ
»α«úαá¼¼δ, ¬«Γ«αá∩ ºáñáÑΓ áΓα¿íπΓδ ΓѬßΓá.
ÅÑαóδ⌐ φ½Ñ¼Ñ¡Γ ¿ß»«½∞ºπÑΓß∩ ó TBackground ñ½∩ µóÑΓ«ó Σ«¡á.
¥½Ñ¼Ñ¡Γδ ß« 2 »« 7 ¿ß»«½∞ºπεΓß∩ ¼Ñ¡ε ¿ ßΓ᫬«⌐ ß«ßΓ«∩¡¿∩.
1 2 3 4 5 6 7
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x71│x70│x78│x74│x20│x28│x24║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x70│x70│x78│x7F│x07│x07│x0F║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x70│x07│x07│x0F│x70│x70│x70║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │
ö«¡ ────┘ │ │ │ │ │ └── éδí«α ß«¬αáΘÑ¡¿∩
ì«α¼á½∞¡δ⌐ ΓѬßΓ ──┘ │ │ │ └────── ìÑñ«ßΓπ»¡δ⌐ óδí«α
ìÑñ«ßΓπ»¡δ⌐ ΓѬßΓ ─────┘ │ └────────── ì«α¼á½∞¡δ⌐ óδí«α
ÆѬßΓ ß«¬αáΘÑ¡¿∩ ──────────┘
¥½Ñ¼Ñ¡Γδ ß 8 »« 15 ¿ß»«½∞ºπεΓß∩ ú«½πí묨 «¬¡á¼¿.
8 9 10 11 12 13 14 15
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x17│x1F│x1A│x31│x31│x1E│x71│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x07│x0F│x07│x70│x70│x07│x70│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x07│x0F│x07│x70│x70│x07│x70│x00║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │ │
Éá¼¬á »áßß¿ó¡á ┘ │ │ │ │ │ │ └─ çáαѺÑαó¿α«óá¡«
ÉἬá á¬Γ¿ó¡á ─────┘ │ │ │ │ └─ éδñѽѡ¡δ⌐ ΓѬßΓ
│ │ │ │ ñ½∩ »α«¬απΓ¬¿
è¡«»¬á αἬ¿ ──────────┘ │ │ └───── ì«α¼á½∞¡δ⌐ ΓѬßΓ
│ │ ñ½∩ »α«¬απΓ¬¿
æΓαá¡¿µá »α«¬απΓ¬¿ ────────┘ └───────── çáαѺÑαó¿α«óá¡«
Turbo Vision ñ½∩ æ++ = 195 =
¥½Ñ¼Ñ¡Γδ ß 16 »« 23 ¿ß»«½∞ºπεΓß∩ í¿αó묨 «¬¡á¼¿.
16 17 18 19 20 21 22 23
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x37│x3F│x3A│x13│x13│x3E│x21│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x07│x0F│x07│x70│x70│x07│x70│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x07│x0F│x07│x70│x70│x07│x70│x00║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │ │
Éá¼¬á »áßß¿ó¡á ┘ │ │ │ │ │ │ └── çáαѺÑαó¿α«óá¡«
ÉἬá á¬Γ¿ó¡á ─────┘ │ │ │ │ └─ éδñѽѡ¡δ⌐ ΓѬßΓ
│ │ │ │ ñ½∩ »α«¬απΓ¬¿
è¡«»¬á αἬ¿ ──────────┘ │ │ └──── ì«α¼á½∞¡δ⌐ ΓѬßΓ
│ │ ñ½∩ »α«¬απΓ¬¿
æΓαá¡¿µá »α«¬απΓ¬¿ ────────┘ └──────── çáαѺÑαó¿α«óá¡«
¥½Ñ¼Ñ¡Γδ ß 24 »« 31 ¿ß»«½∞ºπεΓß∩ ßÑα묨 «¬¡á¼¿.
24 25 26 27 28 29 30 31
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x70│x7F│x7A│x13│x13│x70│x7F│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x70│x7F│x7F│x70│x07│x70│x07│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x70│x70│x70│x07│x07│x70│x07│x00║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │ │
Éá¼¬á »áßß¿ó¡á ┘ │ │ │ │ │ │ └── çáαѺÑαó¿α«óá¡«
ÉἬá á¬Γ¿ó¡á ─────┘ │ │ │ │ └─ éδñѽѡ¡δ⌐ ΓѬßΓ
│ │ │ │ ñ½∩ »α«¬απΓ¬¿
è¡«»¬á αἬ¿ ──────────┘ │ │ └──── ì«α¼á½∞¡δ⌐ ΓѬßΓ
│ │ ñ½∩ »α«¬απΓ¬¿
æΓαá¡¿µá »α«¬απΓ¬¿ ────────┘ └──────── çáαѺÑαó¿α«óá¡«
Turbo Vision ñ½∩ æ++ = 196 =
¥½Ñ¼Ñ¡Γδ ß 32 »« 63 ¿ß»«½∞ºπεΓß∩ ñ¿á½«ú«ó묨 «íΩѬΓἿ. æ¼.
TDialog ñ½∩ «Γñѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó.
32 33 34 35 36 37 38 39 40
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x70│x7F│x7A│x13│x13│x70│x70│x7F│x7E║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x70│x7F│x7F│x70│x07│x70│x70│x7F│x7F║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x70│x70│x70│x07│x07│x70│x70│x70│x0F║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │ │ │
Éá¼¬á »áßß¿ó¡á ┘ │ │ │ │ │ │ │ └── 櫬αáΘÑ¡¿Ñ
│ │ │ │ │ │ │ ¼ÑΓ¬¿
ÉἬá á¬Γ¿ó¡á ─────┘ │ │ │ │ │ └─ Å«ñßóÑτÑ¡¡á∩
│ │ │ │ │ ¼ÑΓ¬á
è¡«»¬á αἬ¿ ──────────┘ │ │ │ └───── ì«α¼á½∞¡á∩
│ │ │ ¼ÑΓ¬á
æΓαá¡¿µá »α«¬απΓ¬¿ ───────┘ │ └───────── æΓáΓ¿τÑ߬¿⌐ ΓѬßΓ
¥½Ñ¼Ñ¡Γδ π»αáó½Ñ¡¿∩ ───────────┘
»α«¬απΓ¬«⌐
41 42 43 44 45 46 47 48 49
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x20│x2B│x2F│x78│x2E│x70│x30│x3F│x3E║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x07│x0F│x0F│x78│x0F│x78│x07│x0F│x0F║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x07│x07│x0F│x70│x0F│x70│x07│x0F│x0F║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │ │ │
ì«α¼á½∞¡á∩ ────┘ │ │ │ │ │ │ │ └── è«α«Γ¬¿⌐
¬¡«»¬á │ │ │ │ │ │ │ ¬½áßΓÑα
è¡«»¬á »« ───────┘ │ │ │ │ │ └───── éδñѽѡ¡δ⌐
π¼«½τá¡¿ε │ │ │ │ │ ¬½áßΓÑα
éδñѽѡ¡á∩ ¬¡«»¬á ───┘ │ │ │ └───────── ì«α¼á½∞¡δ⌐
│ │ │ ¬½áßΓÑα
çá»αÑΘÑ¡¡á∩ ¬¡«»¬á ──────┘ │ └──────────── ÆÑ¡∞
│ ¬¡«»¬¿
櫬αáΘÑ¡¿Ñ ¬¡«»¬¿ ───────────┘
Turbo Vision ñ½∩ æ++ = 197 =
50 51 52 53 54 55 56
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x1F│x2F│x1A│x20│x72│x31│x31║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x0F│x70│x0F│x07│x70│x70│x70║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x07│x70│x07│x07│x70│x07│x07║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │
Äíδτ¡á∩ ßΓ᫬á óó«ñá ┘ │ │ │ │ │ └─ ¥½Ñ¼Ñ¡Γδ
│ │ │ │ │ π»αáó½Ñ¡¿∩
│ │ │ │ │ »α«¬απΓ¬«⌐ «¬¡á
│ │ │ │ │ »α«Γ«¬«½á
éδñѽѡ¡á∩ ßΓ᫬á óó«ñá ─┘ │ │ │ └───── æΓαá¡¿µá
│ │ │ »α«¬απΓ¬¿
│ │ │ «¬¡á »α«Γ«¬«½á
è¡«»¬¿ ßΓ᫬¿ óó«ñá ────────┘ │ └───────── æΓ«α«¡δ
è¡«»¬á »α«Γ«¬«½á ───────────────┘ »α«Γ«¬«½á
57 58 59 60 61 62 63
╔═══╤═══╤═══╤═══╤═══╤═══╤═══╗
cpColor ║x30│x2F│x3E│x31│x13│x00│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpBlackWhite ║x07│x70│x0F│x07│x07│x00│x00║
╠═══╧═══╧═══╧═══╧═══╧═══╧═══╣
╠═══╤═══╤═══╤═══╤═══╤═══╤═══╣
cpMonochrome ║x07│x70│x0F│x07│x07│x00│x00║
╚═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╧═╤═╝
│ │ │ │ │ │ │
Äíδτ¡δ⌐ φ½Ñ¼Ñ¡Γ ───┘ │ │ │ │ │ └── çáαѺÑαó¿α«óá¡«
ß»¿ß¬á │ │ │ │ │
Ç¬Γ¿ó¡δ⌐ φ½Ñ¼Ñ¡Γ ───────┘ │ │ │ └────── çáαѺÑαó¿α«óá¡«
ß»¿ß¬á │ │ │
éδñѽѡ¡δ⌐ »α«ß¼«Γα ß»¿ß¬á ──┘ │ └────────── ê¡Σ«α¼áµ¿«¡¡á∩
Éáºñѽ¿Γѽ∞ »α«ß¼«Γαá ß»¿ß¬á ────┘ «í½áßΓ∞
Turbo Vision ñ½∩ æ++ = 198 =
TPWObj TOBJSTRM.H
-----------------------------------------------------------------
╔═══════════════╗
║ TPWObj ║
╚═══════════════╝
TPWObj ¿ß»«½∞ºπÑΓß∩ ó¡πΓα¿ ¬½áßßá TPWrittenObjects.
äαπªÑßΓóÑ¡¡δÑ ¬½áßßδ
è½áßß TPWrittenObjects ∩ó½∩ÑΓß∩ ñαπªÑßΓóÑ¡¡δ¼ ¬½áßßπ TPWObj,
ΓᬠτΓ« óßÑ Ñú« ¼ÑΓ«ñδ ¼«úπΓ ¿¼ÑΓ∞ ñ«ßΓπ» ¬« ó¡πΓαÑ¡¡¿¼ »«½∩¼
¬½áßßá TPWObj.
TPWrittenObjects TOBJSTRM.H
-----------------------------------------------------------------
┌────────────────────┐
│TNSSortedCollection │
└────────┬───────────┘
╔════════╧══════════╗
║ TPWrittenObjects ║
╚═══════════════════╝
TPWrittenObjects (ó¼ÑßΓÑ ß TPReadObjects) αÑΦáÑΓ ß½«ª¡πε
»α«í½Ñ¼π ¿ñÑ¡Γ¿Σ¿¬áµ¿¿, 󫺡¿¬áεΘ¿σ, »α¿ ºá»¿ß¿ ¿ τΓÑ¡¿¿ «íΩÑ¬Γ«ó
ó ¿ ¿º »«Γ«¬«ó, »α¿ »«¼«Θ¿ π¬áºáΓѽÑ⌐. ¥Γ«Γ ¬½áßß ß«ºñáÑΓ íáºπ
ñá¡¡δσ óßÑσ «íΩÑ¬Γ«ó, ¬«Γ«αδÑ í뫨 ºá»¿ßá¡δ ó ΓѬπΘ¿⌐ »«Γ«¬ «íΩ-
Ñ¬Γ«ó. Ä¡á ¿ß»«½∞ºπÑΓß∩ opstream, ¬«úñá «¡ ºá»¿ßδóáÑΓ π¬áºáΓѽ∞ ó
»«Γ«¬: «¡ ñ«½ªÑ¡ «»αÑñѽ¿Γ∞, íδ½ ½¿ »«¼ÑτÑ¡¡δ⌐ π¬áºáΓѽѼ «íΩѬΓ
πªÑ ºá»¿ßá¡ ó »«Γ«¬. Åα¿ »«¼«Θ¿ φΓ«ú« ¼Ñσá¡¿º¼á, Ñß½¿ ptr1 ¿ ptr2
π¬áºδóáεΓ ¡á «ñ¿¡ ¿ ëà ªÑ »«Γ«¬«óδ⌐ «íΩѬΓ, ¿ óδ ºá»¿ßδóáÑΓÑ «íá
π¬áºáΓѽ∩ ó opstream, ß«σαá¡∩ÑΓß∩ Γ«½∞¬« «ñ¡á ¬«»¿∩ «íΩѬΓá. è«ú-
ñá óδ ß¡«óá »α«¿ºó«ñ¿ΓÑ ßτ¿Γδóá¡¿Ñ ¿º »«Γ«¬á, ß«ºñáÑΓß∩ Γ«½∞¬«
«ñ¡á ¬«»¿∩ *ptr1, ¿ «íá ptr1 ¿ ptr2 π¬áºδóáεΓ ¡á ¡ÑÑ.
îÑΓ«ñδ
constructor TPWrittenObjects(); private
-----------
¥Γ«Γ ó¡πΓαÑ¡¡¿⌐ ¬«¡ßΓαπ¬Γ«α ß«ºñáÑΓ ¡Ñ»«Γ«¬«óπε ¬«½½Ñ¬µ¿ε
»πΓѼ ó맮óá «ß¡«ó¡«ú« ¬«¡ßΓαπ¬Γ«αá TNSSortedCollection. Ä¡ ∩ó½∩-
ÑΓß∩ ñ«ßΓπ»¡δ¼ Γ«½∞¬« ñ½∩ ¼ÑΓ«ñ«ó ¿ ñαπªÑßΓóÑ¡¡δσ ¼ÑΓ«ñ«ó.
æ¼. ΓᬪÑ: TNSSortedCollection::TNSSortedCollection
destructor ~TPWrittenObjects(); private
----------
Turbo Vision ñ½∩ æ++ = 199 =
ôßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ limit ¬«½½Ñ¬µ¿¿ ó 0 íѺ ÑÑ π¡¿τΓ«ªÑ-
¡¿∩ (Γ.¬. »«½Ñ shouldDelete ¿¼ÑÑΓ º¡áτÑ¡¿Ñ False).
æ¼. ΓᬪÑ: TNSCollection::~TNSCollection,
TNSCollection::shouldDelete
äαπªÑßΓóÑ¡¡δÑ ¬½áßßδ
è½áßß opstream ∩ó½∩ÑΓß∩ ñαπªÑßΓóÑ¡¡δ¼ ¬½áßßπ TPWritten-
Objects, ΓᬠτΓ« óßÑ Ñú« ¼ÑΓ«ñδ ¼«úπΓ ¿¼ÑΓ∞ ñ«ßΓπ» ¬« ó¡πΓαÑ¡¡¿¼
»«½∩¼ TPWrittenObjects.
Turbo Vision ñ½∩ æ++ = 200 =
TRadioButtons DIALOGS.H
-----------------------------------------------------------------
┌────────────┐
│ TCluster │
└─────┬──────┘
│
╔═══════╧═══════╗
║ TRadioButtons ║
╚═══════════════╝
ÄíΩѬΓδ TRadioButtons - φΓ« ¬½áßΓÑαδ, ß«ñÑαªáΘ¿Ñ ñ« 16,380
(maxCollectiomSize) φ½Ñ¼Ñ¡Γ«ó π»αáó½Ñ¡¿∩, ¿º ¬«Γ«αδσ ó ½εí«⌐ ¼«-
¼Ñ¡Γ óαѼѡ¿ ¼«ªÑΓ íδΓ∞ óδñѽѡá Γ«½∞¬« «ñ¡á ¬¡«»¬á ß ºáó¿ß¿¼«⌐
Σ¿¬ßᵿÑ⌐. éδí«α ¡Ñóδñѽѡ¡«⌐ ¬¡«»¬¿ íπñÑΓ áóΓ«¼áΓ¿τÑ߬¿ «ßó«í«ª-
ñáΓ∞ »αÑñóáα¿Γѽ∞¡« óδñѽѡ¡πε ¬¡«»¬π. ü«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐ ¡áß½Ñ-
ñπεΓß∩ «Γ TCluster, ó¬½ετá∩ ¬«¡ßΓαπ¬Γ«α ¿ ñÑßΓαπ¬Γ«α. çáó¿ß¿¼δÑ
¬¡«»¬¿ τáßΓ« ßó∩ºá¡δ ß «íΩÑ¬Γ«¼ TLabel.
TRadioButtons ¿¡ΓÑα»αÑΓ¿απÑΓ ¡áß½ÑñπѼ«Ñ »«½Ñ TCluster::
value ¬á¬ ¡«¼Ñα "¡áªáΓ«⌐" ¬¡«»¬¿, ß ¡«¼Ñα«¼ »Ñαó«⌐ ¬¡«»¬¿ ó
¬½áßΓÑαÑ, αáó¡δ¼ 0.
îÑΓ«ñδ
constructor TRadioButtons( StreamableInit );
-----------
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ¡Ñ«íσ«ñ¿¼ "»«ßΓα«¿Γѽ∞" ñ½∩ αáß»-
αÑñѽѡ¿∩ »á¼∩Γ¿ ñ½∩ Ñú« «íΩÑ¬Γ«ó ó¼ÑßΓÑ ß ¿¡¿µ¿á½¿º¿α«óá¡¡δ¼¿
π¬áºáΓѽ∩¼¿ ó¿αΓπá½∞¡«⌐ Γáí½¿µδ. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. 漫Γα¿ΓÑ ΓᬪÑ
ú½áóπ 8.
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó «»αÑñѽѡ¡δσ ß¿Γπᵿ∩σ
τΓÑ¡¿∩ ¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, ipstream::readData
draw virtual void draw();
----
ÄΓ«íαáªáÑΓ ¬¡«»¬¿ ¬á¬ ß¿¼ó«½δ '[ ]', ºá¬½ετÑ¡¡δÑ ó »α∩¼«π-
ú«½∞¡¿¬.
mark virtual Boolean mark(int item);
----
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ item = value, Γ.Ñ. Ñß½¿ ¬¡«»-
¬á ß ¡«¼Ñα«¼ item »αÑñßΓáó½Ñ¡á ΓѬπΘ¿¼ º¡áτÑ¡¿Ñ¼ »«½∩ value ("¡á-
ªáΓá∩" ¬¡«»¬á).
Turbo Vision ñ½∩ æ++ = 201 =
æ¼. ΓᬪÑ: TCluster::value, TCluster::mark
movedTo virtual void movedTo(int item);
-------
Åα¿ßóá¿óáÑΓ value º¡áτÑ¡¿Ñ item.
æ¼. ΓᬪÑ: TCluster::movedTo, TRadioButtons::mark
press virtual void press(int item);
-----
Åα¿ßóá¿óáÑΓ value º¡áτÑ¡¿Ñ item. éδºδóáÑΓß∩ »α¿ "¡áªáΓ¿¿"
¬¡«»¬¿ ß ¡«¼Ñα«¼ item.
setData virtusl void setData(void *rec);
-------
éδºδóáÑΓ TCluster::setData ñ½∩ πßΓá¡«ó¬¿ »«½∩ value, ºáΓѼ
πßΓá¡áó½¿óáÑΓ »«½Ñ sel αáó¡δ¼ value, »«ß¬«½∞¬π ó¡áτá½Ñ óδñѽѡ¡δ⌐
φ½Ñ¼Ñ¡Γ - φΓ« "¡áªáΓá∩" ¬¡«»¬á.
æ¼. ΓᬪÑ: TCluster::setData
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
Ä»αÑñѽѡ¡δÑ óδ»«½¡∩ѼδÑ Σπ¡¬µ¿¿ ßó∩ºá¡δ ß TRadioButtons, ¡«
¡Ñ ∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Å὿Γαá
ÄíΩѬΓδ TRadioButtons ¿ß»«½∞ºπεΓ cpCluster - »á½¿Γαπ, ¡áº¡á-
τÑ¡¡πε »« π¼«½τá¡¿ε ñ½∩ óßÑσ ¬½áßΓÑα¡δσ «íΩÑ¬Γ«ó ñ½∩ «Γ«íαáªÑ¡¿∩
ºáñá¡¡δσ º¡áτÑ¡¿⌐ ó 16 - 18 φ½Ñ¼Ñ¡Γδ »á½¿Γαδ ßΓá¡ñáαΓ¡«ú« ñ¿á½«-
úá.
1 2 3 4
╔════╤════╤════╤════╗
cpCluster ║x10 │x11 │x12 │x12 ║
╚══╤═╧══╤═╧══╤═╧══╤═╝
│ │ │ │
ì«α¼á½∞¡δ⌐ ΓѬßΓ ┘ │ │ └─── éδñѽѡ¡«Ñ ß«¬αáΘÑ¡¿Ñ
éδñѽѡ¡δ⌐ ΓѬßΓ ─────┘ └──────── Äíδτ¡«Ñ ß«¬αáΘÑ¡¿Ñ
Turbo Vision ñ½∩ æ++ = 202 =
TRect OBJECTS.H
-----------------------------------------------------------------
╔═══════╗
║ TRect ║
╚═══════╝
ÄíΩѬΓδ ¬½áßßá TRect »αÑñßΓáó½∩εΓ ñóá «íΩѬΓá TPoint (óÑασ-
¡¿⌐ ½Ñóδ⌐ ¿ ¡¿ª¡¿⌐ »αáóδ⌐ πú½δ »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿) ó¼ÑßΓÑ ß
¡Ñ߬«½∞¬¿¼¿ óßΓα«Ñ¡¡δ¼¿ ¼ÑΓ«ñἿ ñ½∩ «íαáí«Γ¬¿ »α∩¼«πú«½∞¡δσ «í-
½áßΓÑ⌐. Ä»ÑαáΓ«αδ == ¿ != »ÑαѺáúαπªáεΓß∩ ñ½∩ »«ññÑ᪬¿ «»Ñαᵿ¿
ßαáó¡Ñ¡¿∩ ñóπσ »α∩¼«πú«½∞¡δσ «í½áßΓÑ⌐ ÑßΓÑßΓóÑ¡¡δ¼ «íαẫ¼. è½áßß
TPoint ¿¼ÑÑΓ »«½∩ x ¿ y, ¬««αñ¿¡áΓδ Γ«τѬ φ¬αá¡á.
Å«½∩
a TPoint a;
--
a - φΓ« Γ«τ¬á, «»αÑñѽ∩εΘá∩ ½Ñóδ⌐ óÑασ¡¿⌐ πú«½ »α∩¼«πú«½∞¡«⌐
«í½áßΓ¿ ¡á φ¬αá¡Ñ.
æ¼. ΓᬪÑ: TPoint
b TPoint b;
--
b - φΓ« Γ«τ¬á, «»αÑñѽ∩εΘá∩ »αáóδ⌐ ¡¿ª¡¿⌐ πú«½ »α∩¼«πú«½∞-
¡«⌐ «í½áßΓ¿ ¡á φ¬αá¡Ñ.
æ¼. ΓᬪÑ: TPoint
îÑΓ«ñδ
constructor TRect(int ax, int ay, int bx, int by);
----------- TRect(TPoint topleft, TPoiny bottomright);
櫺ñáÑΓ «íΩÑ¬Γ TRect ¿ ¿¡¿µ¿á½¿º¿απÑΓ Ñú« º¡áτÑ¡¿∩¼¿ a.x=ax;
a.y=ay ¿ Γ.ñ. 꽿 ¡á«í«α«Γ, óδ ¼«ªÑΓÑ »«ßΓα«¿Γ∞ »α∩¼«πú«½∞¡¿¬ »π-
ΓѼ ºáñá¡¿∩ ñóπσ áαúπ¼Ñ¡Γ«ó TPoint; ó φΓ«¼ ß½πτáÑ, a ºáñáÑΓß∩
º¡áτÑ¡¿Ñ¼ topleft, á b - º¡áτÑ¡¿Ñ¼ bottomright.
constructor TRect();
-----------
Å«ºó«½∩ÑΓ ß«ºñá¡¿Ñ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡«ú« «íΩѬΓá TRect ß
¿ß»«½∞º«ó᡿Ѽ ¼ÑΓ«ñá new íѺ áαúπ¼Ñ¡Γ«ó.
contains Boolean comtains(const TPoint& p) const;
--------
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ »α∩¼«πú«½∞¡á∩ «í½áßΓ∞ (ó¬½ε-
Turbo Vision ñ½∩ æ++ = 203 =
τá∩ ÑÑ úαá¡¿µδ) ß«ñÑαª¿Γ Γ«τ¬π p.
grow void grow(int aDX, int aDY);
----
꺼ѡ∩ÑΓ αẼÑα »α∩¼«πú«½∞¡¿¬á, óδτ¿Γá∩ aDX ¿º a.x, ñ«íáó½∩∩
aDX ¬ b.x, óδτ¿Γá∩ aDY ¿º a.y ¿ ñ«íáó½∩∩ aDY ¬ b.y.
intersect void intersect(const TRect& r);
---------
꺼ѡ∩ÑΓ »«½«ªÑ¡¿Ñ ¿ αẼÑα »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿ ñ« «í-
½áßΓ¿, «»αÑñѽѡ¡«⌐ »ÑαÑßÑτÑ¡¿Ñ¼ ΓѬπΘÑ⌐ »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿ ß
r.
isEmpty Boolean isEmpty();
-------
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ »α∩¼«πú«½∞¡á∩ «í½áßΓ∞ »πßΓá∩,
Γ.Ñ. ¡Ñ ß«ñÑαª¿Γ ó¡πΓαÑ¡¡Ñú« ß¿¼ó«½∞¡«ú« ¡á»«½¡Ñ¡¿∩; ó »α«Γ¿ó¡«¼
ß½πτáÑ, ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ False. "ÅπßΓ«⌐" «º¡áτáÑΓ, τΓ«
(a.x>=b.x | | a.y>=b.y).
move void move(int aDX, int aDY);
----
ÅÑαѼÑΘáÑΓ »α∩¼«πú«½∞¡πε «í½áßΓ∞, »πΓѼ ñ«íáó½Ñ¡¿∩ aDX ¬ a.x
¿ b.x ¿ ñ«íáó½Ñ¡¿∩ aDY ¬ a.y ¿ b.y.
operator == Boolean operator == (const TRect& r) const;
-----------
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ r ∩ó½∩ÑΓß∩ á¡á½«ú¿τ¡«⌐ »α∩¼«-
πú«½∞¡«⌐ «í½áßΓ¿; ó »α«Γ¿ó¡«¼ ß½πτáÑ, ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ False.
operator != Boolean operator != (const TRect& r) const;
-----------
髺óαáΘáÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ r ¡Ñ ∩ó½∩ÑΓß∩ á¡á½«ú¿τ¡«⌐
»α∩¼«πú«½∞¡«⌐ «í½áßΓ¿; ó »α«Γ¿ó¡«¼ ß½πτáÑ, ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ
False.
Union void Union(const TRect& r);
-----
꺼ѡ∩ÑΓ »α∩¼«πú«½∞¡πε «í½áßΓ∞ ñ« Ñú« «íΩÑñ¿¡Ñ¡¿∩ ß ßἿ¼
ß«í«⌐ ¿½¿ ß »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿ r; Γ.Ñ. ñ« ¡á¿¼Ñ¡∞ΦÑú« »α∩¼«π-
ú«½∞¡«⌐ «í½áßΓ¿, ß«ñÑαªáΘÑ⌐ φëà «íΩÑ¬Γ ¿ r.
Turbo Vision ñ½∩ æ++ = 204 =
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
Ä»αÑñѽѡ¡δÑ Σπ¡¬µ¿¿ «Γ¡«ß∩Γß∩ ¬ ¬½áßßπ TRect, ¡« ¡Ñ ∩ó½∩-
εΓß∩ ¼ÑΓ«ñἿ.
Turbo Vision ñ½∩ æ++ = 205 =
TResourceCollection RESOURCE.H
-----------------------------------------------------------------
┌───────────────────┐
│ TStringCollection │
└────────┬──────────┘
╔═════════╧═══════════╗
║ TResourceCollection ║
╚═════════════════════╝
ÄíΩÑ¬Γ TResourceCollection ∩ó½∩ÑΓß∩ ¡áß½ÑñπÑ¼δ¼ «Γ
TStringCollection, ¬«Γ«αδ⌐ ñѽáÑΓ Ñú« «Γß«αΓ¿α«óá¡¡«⌐ »«Γ«¬«ó«⌐
¬«½½Ñ¬µ¿Ñ⌐. Ä¡ ¿ß»«½∞ºπÑΓß∩ ß TResourceFile ñ½∩ αÑ὿ºáµ¿¿ ¬«½-
½Ñ¬µ¿¿ αÑßπαß«ó. öá⌐½ αÑßπαß«ó - φΓ« »«Γ«¬, ¬«Γ«αδ⌐ ¿¡ñѬ߿απÑΓß∩
¬½ετÑó묨 ßΓα«¬á¼¿. èáªñδ⌐ φ½Ñ¼Ñ¡Γ αÑßπαßá π¬áºδóáÑΓ ¡á «íΩѬΓ
Γ¿»á TResourceItem, «»αÑñѽѡ¡δ⌐ ß½ÑñπεΘ¿¼ «íαẫ¼:
struct TResourceItem
{
long pos;
long size;
char *key;
};
Å«½∩ »«ññÑনóáεΓ »«º¿µ¿ε »«Γ«¬á ¿ αẼÑα φ½Ñ¼Ñ¡Γá ñ½∩ φ½Ñ-
¼Ñ¡Γá αÑßπαßá, »«¼ÑτÑ¡¡«ú« ßΓ᫬«⌐ key. ÅÑαÑ«»αÑñѽѡ¿Ñ ¼ÑΓ«ñ«ó
TResourseCollection ú½áó¡δ¼ «íαẫ¼ ßó∩ºá¡« ß «íαáí«Γ¬«⌐ ñ«»«½¡¿-
Γѽ∞¡δσ ßΓ᫬ ó Ñú« φ½Ñ¼Ñ¡Γáσ. TResourseCollection ¿ß»«½∞ºπÑΓß∩
ó¡πΓα¿ «íΩÑ¬Γ«ó TResourseFile ñ½∩ »«ññÑ᪬¿ ¿¡ñѬßá Σá⌐½á
αÑßπαß«ó.
Å«½∩
name static const char * const name;
----
ê¼∩ ¬½áßßá, ¿ß»«½∞ºπѼ«Ñ »α«úαá¼¼«⌐, π»αáó½∩εΘÑ⌐ »«Γ«¬«¼.
îÑΓ«ñδ
constructor TResourceCollection( short aLimit, short aDelta );
-----------
櫺ñáÑΓ ¬«½½Ñ¬µ¿ε αÑßπαß«ó, ¿¼ÑεΘπε ó¡πΓαÑ¡¡¿⌐ αẼÑα aLimit
¿ 󫺼«ª¡«ßΓ∞ε ¿º¼Ñ¡¿Γ∞ αẼÑα, »α¿ »«¼«Θ¿ aDelta.
constructor TResourceCollection(StreamableInit streamableInit);
----------- (ºáΘ¿ΘÑ¡¡δ⌐)
èáªñ«¼π »«Γ«¬«ó«¼π ¬½áßßπ ¡Ñ«íσ«ñ¿¼ "ßΓα«¿Γѽ∞" ñ½∩ αáß»αÑ-
ñѽѡ¿∩ »á¼∩Γ¿ ñ½∩ Ñú« «íΩÑ¬Γ«ó ó¼ÑßΓÑ ß ¿¡¿µ¿á½¿º¿α«óá¡¡δ¼¿ π¬á-
ºáΓѽ∩¼¿ ó¿αΓπá½∞¡«⌐ Γáí½¿µδ. ¥Γ« ñ«ßΓ¿úáÑΓß∩ »πΓѼ ó맮óá
¬«¡ßΓαπ¬Γ«αá ß áαúπ¼Ñ¡Γ«¼ Γ¿»á StreamableInit. 漫Γα¿ΓÑ ΓᬪÑ
Turbo Vision ñ½∩ æ++ = 206 =
ú½áóπ 8.
æ¼. ΓᬪÑ: TStringCollection::TStringCollection
build static TStreamable *build();
-----
éδºδóáÑΓß∩ ñ½∩ ß«ºñá¡¿∩ «íΩѬΓá ó «»αÑñѽѡ¡δσ ß¿Γπᵿ∩σ
τΓÑ¡¿∩ ¿º »«Γ«¬á.
æ¼. ΓᬪÑ: TStreamableClass, ipstream::readData
freeItem virtual void freeItem( void *item );
--------
Äßó«í«ªñáÑΓ ºáñá¡¡δ⌐ φ½Ñ¼Ñ¡Γ ¿º ¬«½½Ñ¬µ¿¿ »πΓѼ πñá½Ñ¡¿∩ ¿
¬½ετá, ¿ φ½Ñ¼Ñ¡Γá.
keyOf virtual void *keyOf( void *item);
-----
髺óαáΘáÑΓ ¬½ετ ºáñá¡¡«ú« φ½Ñ¼Ñ¡Γá. Åα¿¼Ñ¡∩ÑΓß∩ ß½ÑñπεΘ¿¼
«íαẫ¼:
void* TResourceCollection::keyOf( void *item )
{
return (TResourceItem *)item)->key;
}
read virtual void *read( ipstream& is );
----
æτ¿ΓδóáÑΓ ¿º óσ«ñ¡«ú« »«Γ«¬á is ó ts.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, ipstream
readItem void *TResourceCollection::readItem(ipstream& is);
--------
éδºδóáÑΓß∩ ñ½∩ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá ¬«½½Ñ¬µ¿¿. éá¼ ¼«ªÑΓ »«ΓαÑ-
í«óáΓ∞ß∩ »ÑαÑ«»αÑñѽ¿Γ∞ Ñú« ó« óßÑσ ¬½áßßáσ, »α«¿ºó«ñ¡δσ «Γ
TCollection ¿½¿ TSortedCollection, ñ½∩ «íÑß»ÑτÑ¡¿∩ »αáó¿½∞¡«ú«
ßτ¿Γδóá¡¿∩ φ½Ñ¼Ñ¡Γ«ó. TSortedCollection πªÑ »ÑαÑ«»αÑñѽ¿½ φΓ«Γ
¼ÑΓ«ñ.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, ipstream
write virtual void write( opstream& os );
-----
çỿßδóáÑΓ ts ó »«Γ«¬ os.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, opstream
Turbo Vision ñ½∩ æ++ = 207 =
writeItem void TResourceCollection::writeItem( void *obj,
--------- opstream& os );
éδºδóáÑΓß∩ ñ½∩ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá ¬«½½Ñ¬µ¿¿. éá¼ ¼«ªÑΓ »«ΓαÑ-
í«óáΓ∞ß∩ »ÑαÑ«»αÑñѽ¿Γ∞ Ñú« ó« óßÑσ ¬½áßßáσ, ¡áß½Ññ¡¿¬áσ «Γ
TCollection ¿½¿ TSortedCollection, ñ½∩ «íÑß»ÑτÑ¡¿∩ »αáó¿½∞¡«⌐ ºá-
»¿ß¿ φ½Ñ¼Ñ¡Γ«ó. TSortedCollection πªÑ »ÑαÑ«»αÑñѽ¿½ φëà ¼ÑΓ«ñ.
æ¼. ΓᬪÑ: TStreamableClass, TStreamable, opstream
ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿
Ä»αÑñѽѡ¡δÑ Σπ¡¬µ¿¿ «Γ¡«ß∩Γß∩ ¬ ¬½áßßπ TResourceCollection,
¡« ¡Ñ ∩ó½∩εΓß∩ ¼ÑΓ«ñἿ.
Turbo Vision ñ½∩ æ++ = 208 =
TResourceFile RESOURCE.H
-----------------------------------------------------------------
┌─────────┐
│ TObject │
└────┬────┘
╔═══════╧═══════╗
║ TResourceFile ║
╚═══════════════╝
è½áßß TResourseFile αÑ὿ºπÑΓ »«Γ«¬ (Γ¿»á fpstream), ¬«Γ«αδ⌐
¼«ªÑΓ ¿¡ñѬ߿α«óáΓ∞ß∩ ¬½ετÑó묨 ßΓα«¬á¼¿. è«úñá «íΩѬΓδ ß«σαá¡∩-
εΓß∩ ó Σá⌐½Ñ αÑßπαßá, ¿ß»«½∞ºπ∩ TResourseFile::put, ºáñáÑΓß∩ ¬½ε-
τÑóá∩ ßΓ᫬á, ¬«Γ«αá∩ ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ φëà «íΩѬΓ. ÄíΩÑ¬Γ ¼«ªÑΓ
íδΓ∞ »«ºªÑ »«½πτÑ¡ π¬áºá¡¿Ñ¼ φΓ«⌐ ¬½ετÑó«⌐ ßΓ᫬¿ ó ó맮óÑ
TResourseFile::get.
ä½∩ «íÑß»ÑτÑ¡¿∩ íδßΓα«ú« ¿ φΣΣÑ¬Γ¿ó¡«ú« ñ«ßΓπ»á ¬ «íΩѬΓá¼,
σαá¡∩Θ¿¼ß∩ ó Σá⌐½Ñ αÑßπαßá, TResourseFile σαá¡¿Γ ¬½ετÑóδÑ ßΓ᫬¿
ó «Γß«αΓ¿α«óá¡¡«⌐ ¬«½½Ñ¬µ¿¿ ßΓ᫬ (¿ß»«½∞ºπ∩ ¬½áßß TResourse-
Collection) ó¼ÑßΓÑ ß »«º¿µ¿Ñ⌐ ¿ αẼÑα«¼ ñá¡¡δσ φΓ«ú« αÑßπαßá ó
Σá⌐½Ñ αÑßπαßá. Å«½Ñ index π¬áºδóáÑΓ ¡á ß««ΓóÑΓßΓóπεΘ¿⌐ «íΩѬΓ
TResourceCollection, ¬«Γ«αδ⌐ ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ Σá⌐½á αÑßπαß«ó.
èᬠ¿ ó ß½πτáÑ óó«ñá/óδó«ñá »«Γ«¬«ó, ¬½áßßδ óßÑσ «íΩÑ¬Γ«ó,
ºá»¿ßδóáѼδσ ¿ τ¿ΓáѼδσ ¿º Σá⌐½á αÑßπαß«ó, ñ«½ª¡δ íδΓ∞ »«Γ«¬«ó묨
¿ ºáαÑú¿ßΓα¿α«óá¡δ (Γ.Ñ., »«¼ÑτÑ¡δ »α«úαá¼¼«⌐, π»αáó½∩εΘÑ⌐ »«Γ«-
¬á¼¿ - ß¼. ú½áóπ 8, "ÄíΩѬΓδ, óºá¿¼«ñÑ⌐ßΓóπεΘ¿Ñ ß »«Γ«¬á¼¿").
Å«½∩
basePos long basePos;
-------
Äß¡«ó¡á∩ »«º¿µ¿∩ »«Γ«¬á (íѺ πτÑΓá ¡áτá½∞¡«⌐ ¿¡Σ«α¼áµ¿¿).
æ¼. ΓᬪÑ: fpstream
index TResourceCollection *index;
-----
ô¬áºáΓѽ∞ ¡á ß««ΓóÑΓßΓóπεΘ¿⌐ «íΩÑ¬Γ TResourceCollection.
æ¼. ΓᬪÑ: TResourceCollection
indexPos long indexPos;
--------
ÆѬπΘá∩ »«º¿µ¿∩ »«Γ«¬á «Γ¡«ß¿Γѽ∞¡« «ß¡«ó¡«⌐ »«º¿µ¿¿.
modified Boolean modified;
--------
Turbo Vision ñ½∩ æ++ = 209 =
ôßΓá¡«ó½Ñ¡« ó º¡áτÑ¡¿Ñ True, Ñß½¿ Σá⌐½ αÑßπαßá íδ½ ¼«ñ¿Σ¿µ¿-
α«óá¡ ß ¼«¼Ñ¡Γá »«ß½Ññ¡Ñú« ó맮óá flush; ó »α«Γ¿ó¡«¼ ß½πτáÑ, ¿¼Ñ-
ÑΓ º¡áτÑ¡¿Ñ False.
æ¼. ΓᬪÑ: TResourceFile::flush, TResourceFile::put
stream fpstream *stream;
------
ô¬áºáΓѽ∞ ¡á »«Γ«¬, ßó∩ºá¡¡δ⌐ ß φΓ¿¼ Σá⌐½«¼ αÑßπαßá.
æ¼. ΓᬪÑ: fpstream
îÑΓ«ñδ
constructor TResourceFile( fpstream *aStream );
-----------
ê¡¿µ¿á½¿º¿απÑΓ Σá⌐½ αÑßπαßá, ¿ß»«½∞ºπ∩ »«Γ«¬, ºáñá¡¡δ⌐ τÑαѺ
aStream, ¿ πßΓá¡áó½¿óáÑΓ »«½Ñ modified ó º¡áτÑ¡¿Ñ False. è φΓ«¼π
óαѼѡ¿ »«Γ«¬ ñ«½ªÑ¡ íδΓ∞ πªÑ ¿¡¿µ¿á½¿º¿α«óá¡. ìá»α¿¼Ñα:
TResourceFile * resFile = new TResourceFile(new fpstream
("MYAPP.RES", ios::in | ios::out));
é« óαѼ∩ ¿¡¿µ¿á½¿ºáµ¿¿ ¬«¡ßΓαπ¬Γ«α TResourceFile ¿ΘÑΓ ºáú«-
½«ó«¬ Σá⌐½á αÑßπαß«ó ó ΓѬπΘÑ⌐ »«º¿µ¿¿ ó »«Γ«¬Ñ. àß½¿ ºáú«½«ó«¬
¡Ñ ¡á⌐ñÑ¡, ¬«¡ßΓαπ¬Γ«α »«½áúáÑΓ, τΓ« ¡«óδ⌐ Σá⌐½ αÑßπαßá ß«ºñáÑΓß∩
ó¼ÑßΓÑ ß ¡«óδ¼ ¡áí«α«¼ αÑßπαß«ó. éáß ¼«úπΓ ¡Ñ ¿¡ΓÑαÑß«óáΓ∞ »«ñ-
α«í¡«ßΓ¿ « ºáú«½«ó¬áσ, ¡« «»δΓ¡δÑ »α«úαá¼¼¿ßΓδ ¼«úπΓ íδΓ∞ ºá¿¡ΓÑ-
αÑß«óá¡δ ó ß½ÑñπεΘÑ⌐ ¿¡Σ«α¼áµ¿¿. æΓαπ¬Γπαá ºáú«½«ó¬á Σá⌐½á
αÑßπαß«ó ¿¼ÑÑΓ ó¿ñ:
struct THeader
{
ushort signature;
union
{
Count_type count;
Info_type info;
};
};
úñÑ Count_type:
struct Count_type
{
ushort lastCount:
ushort pageCount;
};
¿ Info_type:
Turbo Vision ñ½∩ æ++ = 210 =
struct Info_type
{
ushort infoType;
long infoSize;
};
signature ß«ñÑαª¿Γ ½¿í« 0σ5a4d, ½¿í« 0x4246. àß½¿ signature
- 0x5a4d, Γ« ¿ß»«½∞ºπÑΓß∩ »«½Ñ Count_type «íΩÑñ¿¡Ñ¡¿∩; Ñß½¿
signature - 0x4246, Γ« ¿ß»«½∞ºπÑΓß∩ »«½Ñ Info_type. àß½¿
¬«¡ßΓαπ¬Γ«α ó¿ñ¿Γ ß¿ú¡áΓεαπ Σá⌐½á .EXE ó ΓѬπΘÑ⌐ »«º¿µ¿¿ »«Γ«¬á,
Γ« «¡ »α«»π߬áÑΓ »«Γ«¬ ñ« ¬«¡µá Σá⌐½á .EXE, á ºáΓѼ ¿ΘÑΓ Γá¼ ºá-
ú«½«ó«¬ Σá⌐½á αÑßπαßá. ÆᬪÑ, ¬«¡ßΓαπ¬Γ«α íπñÑΓ »α«»π߬áΓ∞ ¿
«óÑα½Ñ⌐¡δ⌐ Σá⌐½, ¬«Γ«αδ⌐ íδ½ ñ«»«½¡Ñ¡ ¬ Σá⌐½π .EXE. ¥Γ« «º¡áτáÑΓ,
τΓ« óδ ¼«ªÑΓÑ ñ«íáó¿Γ∞ ¿ óáΦ «óÑα½Ñ⌐¡δ⌐ Σá⌐½ ¿ óáΦ Σá⌐½ αÑßπαßá
(ó ½εí«¼ »«α∩ñ¬Ñ) ó ¬«¡Ñµ Σá⌐½á .EXE óáΦÑ⌐ »α«úαá¼¼δ. é ½εí«¼
ß½πτáÑ, basePos ¿ indexPos πßΓá¡áó½¿óáεΓß∩ ó »αáó¿½∞¡δÑ º¡áτÑ¡¿∩,
ñ«»πßΓ¿¼δÑ ñ½∩ ½εíδσ ºáú«½«ó¬«ó.
æ¼. ΓᬪÑ: ~TResourceFile
destructor ~TResourceFile();
----------
Äτ¿ΘáÑΓ Σá⌐½ αÑßπαßá, ¿ß»«½∞ºπ∩ TResourseFile::flush, ºáΓѼ
πñá½∩ÑΓ »«½∩ index ¿ stream.
æ¼. ΓᬪÑ: ¬«¡ßΓαπ¬Γ«α TResourceFile, TResourceFile::flush
count short count();
-----
éδºδóáÑΓ index->getCount ñ½∩ ó«ºóαáΓá ¬«½¿τÑßΓóá φ½Ñ¼Ñ¡Γ«ó
αÑßπαß«ó, ß«σαá¡Ñ¡¡δσ ó ß««ΓóÑΓßΓóπεΘѼ TResourceCollection.
æ¼. ΓᬪÑ: TResourceFile::getCount
flush void flush();
-----
àß½¿ Σá⌐½ αÑßπαßá ¡Ñ íδ½ ¼«ñ¿Σ¿µ¿α«óá¡ ß ¼«¼Ñ¡Γá »«ß½Ññ¡Ñú«
ó맮óá flush (Γ.Ñ. º¡áτÑ¡¿Ñ modified αáó¡« False) flush ¡Ñ óδ»«½-
¡∩ÑΓ ¡¿¬á¬¿σ ñÑ⌐ßΓó¿⌐. é »α«Γ¿ó¡«¼ ß½πτáÑ, flush ß«σαá¡∩ÑΓ «í¡«ó-
½Ñ¡¡δ⌐ ¿¡ñÑ¬ß ó ¬«¡µÑ »«Γ«¬á ¿ «í¡«ó½∩ÑΓ ºáú«½«ó«¬ αÑßπαßá ó ¡á-
τá½Ñ »«Γ«¬á. çáΓѼ «¡ óδºδóáÑΓ stream->flush ¿ πßΓá¡áó½¿óáÑΓ
modified ó º¡áτÑ¡¿Ñ False.
æ¼. ΓᬪÑ: ~TResourceFile, TResourceFile::modified,
opstream::flush
get void *get( const char *key );
---
Turbo Vision ñ½∩ æ++ = 211 =
êΘÑΓ ºáñá¡¡δ⌐ key ó ß««ΓóÑΓßΓóπεΘÑ⌐ ¬«½½Ñ¬µ¿¿ Σá⌐½á αÑßπαß«ó
(ºáñá¡¡δ¼ π¬áºáΓѽѼ index). 髺óαáΘáÑΓ º¡áτÑ¡¿Ñ 0, Ñß½¿ ¬½ετ ¡Ñ
¡á⌐ñÑ¡. ê¡áτÑ, πßΓá¡áó½¿óáÑΓ »«Γ«¬ ¡á »«º¿µ¿ε, ºáñá¡¡πε »«½Ñ¼ pos
ó «íΩѬΓÑ TResourceItem, αẼÑΘÑ¡¡«¼ »« º¡áτÑ¡¿ε key. 櫺ñáÑΓß∩
«íΩÑ¬Γ ó »«º¿µ¿¿ (basePos+pos), ¿ ó«ºóαáΘáÑΓß∩ π¬áºáΓѽ∞ ¡á ¡Ñú«.
ìá»α¿¼Ñα:
deskTop->insert(validView(resFile.get("eitorWindow")));
æ¼. ΓᬪÑ: TResourceCollection::at, TResourceFile::put,
TApplication::validView, ipstream::seekg
keyAt const char *keyAt(short i);
-----
êß»«½∞ºπÑΓ index->at ñ½∩ ó«ºóαáΓá ¬½ετÑó«⌐ ßΓ᫬¿ ñ½∩
αÑßπαßá ß ¡«¼Ñα«¼ i ó ñá¡¡«¼ Σá⌐½Ñ αÑßπαßá. ê¡ñÑ¬ß »Ñαó«ú«
αÑßπαßá αáóÑ¡ 0, á ¿¡ñÑ¬ß »«ß½Ññ¡Ñú« αÑßπαßá -
TResourseFile::count-1. êß»«½∞ºπ∩ count ¿ keyAt, óδ ¼«ªÑΓÑ ¿ΓÑαá-
Γ¿ó¡« «íαáí«ΓáΓ∞ óßÑ αÑßπαßδ ó Σá⌐½Ñ αÑßπαßá.
æ¼. ΓᬪÑ: TResourceFile::count, TResourceCollection::at
put void put(TSreamable *item, const char *key);
---
ä«íáó½∩ÑΓ »«Γ«¬«óδ⌐ «íΩѬΓ, ºáñá¡¡δ⌐ »α¿ »«¼«Θ¿ item ó Σá⌐½
αÑßπαßá ß ¬½ετÑó«⌐ ßΓ᫬«⌐, ºáñá¡¡«⌐ ó key, ¿ πßΓá¡áó½¿óáÑΓ »«½Ñ
modified ó º¡áτÑ¡¿Ñ True. àß½¿ ¿¡ñÑ¬ß ß«ñÑαª¿Γ key, ¡«óδ⌐ «íΩѬΓ
ºá¼ÑΘáÑΓ ßΓáαδ⌐; ó »α«Γ¿ó¡«¼ ß½πτáÑ, «íΩÑ¬Γ ñ«íáó½∩ÑΓß∩ ó ñ«-
»πßΓ¿¼πε ¿¡ñѬ߿α«óá¡¡πε »«º¿µ¿ε Σá⌐½á αÑßπαßá.
æ¼. ΓᬪÑ: TResourceFile::get, TNSSortedCollection::search
remove void remove(const char *key);
------
àß½¿ αÑßπαß, »«¼ÑτÑ¡¡δ⌐ »α¿ »«¼«Θ¿ key, ¡Ñ ¡á⌐ñÑ¡, ¼ÑΓ«ñ
remove ¡Ñ »α«¿ºó«ñ¿Γ ¡¿¬á¬¿σ ñÑ⌐ßΓó¿⌐. é »α«Γ¿ó¡«¼ ß½πτáÑ, «¡ óδ-
ºδóáÑΓ index->free ñ½∩ πñá½Ñ¡¿∩ αÑßπαßá.
æ¼. ΓᬪÑ: TNSSortedCollection::search, TNSCollection::free
Turbo Vision ñ½∩ æ++ = 212 =
TScreen SYSTEM.H
-----------------------------------------------------------------
┌──────────┐
│ TDisplay │
└────┬─────┘
╔═════╧══════╗
║ TScreen ║
╚════════════╝
TScreen »«ññÑনóáÑΓ áΓα¿íπΓδ ¿ Σπ¡¬µ¿¿ ¿º«íαáªÑ¡¿∩ ¡¿ª¡Ñú«
πα«ó¡∩. ¥Γ«Γ ¬½áßß, ¿ ñαπú¿Ñ ß¿ßΓѼ¡δÑ ¬½áßßδ Σá⌐½á System.h, ¬«-
α«Γ¬« «»¿ßá¡δ Γ«½∞¬« ó απ¬«ó«ñßΓóÑ: «¡¿ ¿ß»«½∞ºπεΓß∩ ó¡πΓα¿ Turbo
Vision, ¿ óá¼ ¡Ñ »«ΓαÑíπÑΓß∩ »«½∞º«óáΓ∞ß∩ ¿¼¿ ∩ó¡δ¼ «íαẫ¼ ó
¡«α¼á½∞¡δσ »α¿¬½áñ¡δσ »α«úαá¼¼áσ. è½áßß TView ∩ó½∩ÑΓß∩ ñαπªÑßΓ-
óÑ¡¡δ¼ ¬½áßßπ TDisplay.
Å«½∩
checkSnow static Boolean near checkSnow;
---------
ê¼ÑÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ αáºαÑΦÑ¡« »«½∞º«óáΓ∞ß∩ »α«óÑᬫ⌐
¡á "ß¡Ñú" (ñ½∩ áñá»ΓÑαá CGA); ó »α«Γ¿ó¡«¼ ß½πτáÑ ¿¼ÑÑΓ º¡áτÑ¡¿Ñ
False.
cursorLines static ushort near cursorLines;
-----------
æ«ñÑαª¿Γ Γ¿» ΓѬπΘÑú« ¬παß«αá, πßΓá¡«ó½Ñ¡¡δ⌐ setCrtData ß
óδº«ó«¼ getCursorType.
æ¼. ΓᬪÑ: TDisplay::getCursorType, TScreen::setCrtData
hiResScreen static Boolean near hiResScreen;
-----------
ê¼ÑÑΓ º¡áτÑ¡¿Ñ True, Ñß½¿ screenHeight í«½∞ΦÑ 25; ó »α«Γ¿ó-
¡«¼ ß½πτáÑ ¿¼ÑÑΓ º¡áτÑ¡¿Ñ False.
æ¼. ΓᬪÑ: TScreen::screenHeight
screenBuffer static uchar far * near screenBuffer;
------------
ô¬áºδóáÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ íπΣÑα ¿º«íαáªÑ¡¿∩ ñ½∩ π¬áºá¡¡«⌐
¬«¡¬αÑΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ ¿º«íαáªÑ¡¿∩ ¿ Ñú« ΓѬπΘ¿⌐ αѪ¿¼.
screenHeight static uchar near screenHeight;
------------
æ«ñÑαª¿Γ ΓѬπΘπε óδß«Γπ φ¬αá¡á, πßΓá¡«ó½Ñ¡¡πε setCrtData ß
«íαáΘÑ¡¿Ñ¼ ¬ getRows.
Turbo Vision ñ½∩ æ++ = 213 =
æ¼. ΓᬪÑ: TDisplay::getRows, TScreen::setCrtData
screenMode static ushort near screenMode;
----------
ÆѬπΘ¿⌐ ó¿ñÑ«αѪ¿¼.
æ¼. ΓᬪÑ: TDisplay::getVideoMode
screenWidth static uchar near screenWidth;
-----------
æ«ñÑαª¿Γ ΓѬπΘπε Φ¿α¿¡π φ¬αá¡á, πßΓá¡«ó½Ñ¡¡πε setCrtData τÑ-
αѺ «íαáΘÑ¡¿Ñ ¬ getCols.
æ¼. ΓᬪÑ: TDisplay::getCols, TScreen::setCrtData
startupCursor static ushort near startupCursor;
-------------
æ«ñÑαª¿Γ ¡áτá½∞¡δ⌐ Γ¿» ¬παß«αá, πßΓá¡«ó½Ñ¡¡δ⌐ initScreen
¬«¡ßΓαπ¬Γ«αἿ TApplication/TProgram.
æ¼. ΓᬪÑ: TProgram::initScreen, TDisplay::getCursorType
startupMode static ushort near startupMode;
-----------
æ«ñÑαª¿Γ ¡áτá½∞¡δ⌐ ó¿ñÑ«αѪ¿¼, πßΓá¡«ó½Ñ¡¡δ⌐ initScreen
¬«¡ßΓαπ¬Γ«αἿ TApplication/TProgram.
æ¼. ΓᬪÑ: TProgram::initScreen
îÑΓ«ñδ
constructor TScreen();
-----------
櫺ñáÑΓ «íΩÑ¬Γ TScreen ¿ óδºδóáÑΓ resume. Ä¡ ¿¡¿µ¿á½¿º¿απÑΓ
startupMode »α¿ »«¼«Θ¿ getCrtMode; startupCursor - »α¿ »«¼«Θ¿
getCursorType; ºáΓѼ πßΓá¡áó½¿óáÑΓ «ßΓáóΦ¿Ñß∩ »«½∩ »πΓѼ ó맮óá
setCrtData.
æ¼. ΓᬪÑ: TDisplay::get