12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101 |
- <?xml version="1.0" encoding="ISO8859-1"?>
- <fpdoc-descriptions>
- <module name="Classes">
- <short>Basic classes for FCL </short>
- <descr>
- <p>This documentation describes the FPC <file>classes</file> unit.
- The <file>Classes</file> unit contains basic classes for the Free Component
- Library (FCL):
- </p>
- <ul>
- <li> a <link id="TList"/> class for maintaining lists of pointers, </li>
- <li> <link id='TStringList'/> for lists of strings, </li>
- <li> <link id='TCollection'/> to manage collections of objects </li>
- <li> <link id="TStream"/> classes to support streaming.</li>
- </ul>
- <p>
- Furthermore it introduces methods for object persistence, and classes
- that understand an owner-owned relationship, with automatic memory
- management.
- </p>
- </descr>
- <element name="TRTLCriticalSection">
- <short>A class for managing multiple threads</short>
- <descr>This class is not yet implemented.</descr>
- </element>
- <element name="HRSRC">
- <short>Type to manage resources</short>
- <descr>This type is provided for Delphi compatibilty, it is used for resource
- streams.
- </descr>
- </element>
- <element name="THandle">
- <short>Type to manage streams.</short>
- <descr>This type is used as the handle for <link
- id='THandleStream'>THandleStream</link> stream descendents</descr>
- </element>
- <element name="TComponentName">
- <short>Special type for component names.</short>
- <descr>Names of components are of type <var>TComponentName</var>. By
- specifying a different type, the Object inspector can handle this property
- differently than a standard string property.
- </descr>
- </element>
- <element name="IUnknown">
- <short><var>IUnknown</var> Interface</short>
- <descr>IUknown is not yet implemented since interfaces are not yet supported
- by FPC.
- </descr>
- </element>
- <element name="TGUID">
- <short>Special type for GUID's.</short>
- <descr>FPC doesn't support GUID yet.
- </descr>
- </element>
- <element name="HMODULE">
- <short>Special type for handling modules.</short>
- <descr>
- FPC doesn't support modules yet, so this is a dummy type.
- </descr>
- </element>
- <element name="TPoint">
- <short>Special type to handle a fake <link id='TComponent'/>
- position</short>
- <descr>
- <p>This record describes a coordinate. It is used to handle the <link
- id='TComponent.Top'>Top</link> and <link id='TComponent.Left'>Left</link>
- properties of <link id='TComponent'/>.
- </p>
- <p>
- <var>X</var> represents the X-Coordinate of the point described by the record.
- <var>Y</var> represents the Y-Coordinate of the point described by the record.
- </p>
- </descr>
- </element>
- <element name="TSmallPoint">
- <short>Type to describe point in a small plane.</short>
- <descr>Same as <link id='TPoint'/>, only the X and Y ranges are limited to
- 2-byte integers instead of 4-byte integers.
- </descr>
- </element>
- <element name="TRect">
- <short>Descibes a rectangle</short>
- <descr>
- <var>TRect</var> describes a rectangle in space with its upper-left (in
- (<var>Top</var>,<var>Left></var>)) and lower-right (in (<var>Bottom</var>
- ,<var>Right</var>)) corners.
- </descr>
- </element>
- <element name="MaxListSize">
- <short>
- Maximum number of elemens in list.
- </short>
- <descr>
- This constant sets the maximum number of elements in a <link id='TList'/>.
- </descr>
- </element>
- <element name="scShift">
- <short>
- Indicates Shift key in a keyboard shortcut.
- </short>
- </element>
- <element name="scCtrl">
- <short>
- indicates CTRL key in a keyboard shortcut.
- </short>
- </element>
- <element name="scAlt">
- <short>
- Indicates ALT key in a keyboard shortcut.
- </short>
- </element>
- <element name="scNone">
- <short>
- Indicates no special key is presed in a keyboard shortcut.
- </short>
- </element>
- <element name="soFromBeginning">
- <short>
- <link id='TStream.Seek'>Seek</link> starts relative to the stream origin.
- </short>
- </element>
- <element name="soFromCurrent">
- <short>
- <link id='TStream.Seek'>Seek</link> starts relative to the current position in
- the stream.
- </short>
- </element>
- <element name="soFromEnd">
- <short>
- <link id='TStream.Seek'>Seek</link> starts relative to the stream end.
- </short>
- </element>
- <element name="fmCreate">
- <short>
- <link id='TFileStream.Create'/> creates a new file if needed.
- </short>
- </element>
- <element name="fmOpenRead">
- <short>
- <link id='TFileStream.Create'/> opens a file with read-only access.
- </short>
- </element>
- <element name="fmOpenWrite">
- <short>
- <link id='TFileStream.Create'/> opens a file with write-only access.
- </short>
- </element>
- <element name="fmOpenReadWrite">
- <short>
- <link id='TFileStream.Create'/> opens a file with read-write access.
- </short>
- </element>
- <element name="toEof">
- <short>
- Token returned by <link id='TParser.Token'/>, meaning the end of the input stream was reached.
- </short>
- </element>
- <element name="toEof">
- <short>
- Value returned by <link id='TParser.Token'/> when the end of the input stream was reached.
- </short>
- </element>
- <element name="toSymbol">
- <short>
- Value returned by <link id='TParser.Token'/> when a symbol was found in the input stream.
- </short>
- </element>
- <element name="toString">
- <short>
- Value returned by <link id='TParser.Token'/> when a string was found in the
- input stream.
- </short>
- </element>
- <element name="toInteger">
- <short>
- Value returned by <link id='TParser.Token'/> when an integer was found in the
- input stream.
- </short>
- </element>
- <element name="toFloat">
- <short>
- Value returned by <link id='TParser.Token'/> when a floating point value was found in the
- input stream.
- </short>
- </element>
- <element name="FilerSignature">
- <short>
- Constant that is found at the start of a binary stream containing a
- streamed component.
- </short>
- </element>
- <element name="TAlignment">
- <short>Type to specify text alignment in controls that display text.</short>
- <descr>
- <p>
- The <var>TAlignment</var> type is used to specify the alignment of
- the text in controls that display a text.
- </p>
- <table>
- <caption><var>TALignment</var> values and their meanings.</caption>
- <th><td>Value</td><td>Meaning</td></th>
- <tr><td><var>taLeftJustify</var></td><td>Text is displayed aligned to the left.</td></tr>
- <tr><td><var>taRightJustify</var></td><td>Text is displayed aligned to the right.</td></tr>
- <tr><td><var>taCenter</var></td><td>Text is displayed centered.</td></tr>
- </table>
- </descr>
- </element>
- <element name="TShiftState">
- <short>
- Indicates what special keys were pressed in combination with a normal key
- </short>
- <descr>
- <p>
- This type is used when describing a shortcut key or when describing what
- special keys are pressed on a keyboard when a key event is generated.
- </p>
- <p>
- The set contains the special keys that can be used in combination with a
- 'normal' key.
- </p>
- <table>
- <th><td>Set element</td><td>Key pressed</td></th>
- <tr><td>ssShift</td><td>Either left or right shift key</td></tr>
- <tr><td>ssAlt</td><td>Either left or right ALT key</td></tr>
- <tr><td>ssCTRL</td><td>Either left or right CTRL key</td></tr>
- <tr><td>ssLeft</td><td>Either left or right shift key</td></tr>
- <tr><td>ssRight</td><td></td></tr>
- <tr><td>ssMiddle</td><td></td></tr>
- <tr><td>ssDouble</td><td></td></tr>
- <tr><td>ssMeta</td><td>The META key</td></tr>
- <tr><td>ssSuper</td><td></td></tr>
- <tr><td>ssHyper</td><td></td></tr>
- <tr><td>ssAltGr</td><td>The AltGr (right Alt) key</td></tr>
- <tr><td>ssCaps</td><td>The CapsLock key</td></tr>
- <tr><td>ssNum</td><td>The NumLock key</td></tr>
- <tr><td>ssScroll</td><td>The ScrollLock key</td></tr>
- </table>
- </descr>
- </element>
- <element name="TNotifyEvent">
- <short>
- Standard event handler type.
- </short>
- <descr>
- Most event handlers are implemented as a property of type
- <var>TNotifyEvent</var>. When this is set to a certain method of a class,
- when the event occurs, the method will be called, and the class that generated
- the event will pass itself along as the <var>Sender</var> argument.
- </descr>
- <seealso>
- <link id="THelpEvent"/>
- <link id="TGetStrProc"/>
- </seealso>
- </element>
- <element name="THelpEvent">
- <short>
- Special event for display of online help.
- </short>
- <descr>
- This event is used for display of online help.
- </descr>
- <seealso>
- <link id="TNotifyEvent"/>
- <link id="TGetStrProc"/>
- </seealso>
- </element>
- <element name="TGetStrProc">
- <short>
- Event for retrieving string values.
- </short>
- <descr>
- This event is used as a callback to retrieve string values. It is used,
- among other things, to pass along string properties in property editors.
- </descr>
- <seealso>
- <link id="THelpEvent"/>
- <link id="TNotifyEvent"/>
- </seealso>
- </element>
- <element name="EStreamError">
- <short>
- Exception raised when an error occurs during read or write operations on a
- stream.
- </short>
- <descr>
- <p>
- An <var>EStreamError</var> is raised when an error occurs during reading
- from or writng to a stream: Possible causes are
- </p>
- <ol>
- <li>Not enough data is available in the stream.</li>
- <li>Trying to seek beyond the beginning or end of the stream.</li>
- <li>Trying to set the capacity of a memory stream and no memory is
- available.</li>
- <li>Trying to write to a resource stream.</li>
- </ol>
- </descr>
- <seealso>
- <link id="EFCreateError"/>
- </seealso>
- </element>
- <element name="EFCreateError">
- <short>
- Exception raised when an error occurred during creation of a <link id="TFileStream"/>
- stream.
- </short>
- <descr>
- When the operating system reports an error during creation of a new file in
- the <link id="TFileStream.Create">Filestream Constructor</link>, a
- <var>EFCreateError</var> is raised.
- </descr>
- <seealso>
- <link id="EStreamError"/>
- <link id="EFOpenError"/>
- </seealso>
- </element>
- <element name="EFOpenError">
- <short>
- Exception raised when an error occurred during creation of a <link id="TFileStream"/>
- </short>
- <descr>
- When the operating system reports an error during the opening of a file in
- the <link id="TFileStream.Create">Filestream Constructor</link>, a
- <var>EFOpenError</var> is raised.
- </descr>
- <seealso>
- <link id="EStreamError"/>
- <link id="EFCreateError"/>
- </seealso>
- </element>
- <element name="EFilerError">
- <short>
- Exception raised by the component streaming system if an error occurs.
- </short>
- <descr>
- This class serves as an ancestor class for exceptions that are raised
- when an error occurs during component streaming.
- A <var>EFilerError</var> exception is raised when a class is registered
- twice.
- </descr>
- <seealso>
- <link id="EStreamError"/>
- <link id="EReadError"/>
- </seealso>
- </element>
- <element name="EReadError">
- <short>
- Exception raised if an error occurs while reading from a stream.
- </short>
- <descr>
- <p>If an error occurs when reading from a stream, a <var>EReadError</var>
- exception is raised. Possible causes for this are:</p>
- <ol>
- <li> Not enough data is available when reading from a stream</li>
- <li> The stream containing a component's data contains invalid data.
- this will occurr only when reading a component from a stream.</li>
- </ol>
- </descr>
- <seealso>
- <link id="EFilerError"/>
- <link id="EWriteError"/>
- </seealso>
- </element>
- <element name="EWriteError">
- <short>
- Exception raised when an error occurs during writing to a stream.
- </short>
- <descr>
- <p>If an error occurs when writing to a stream, a <var>EWriteError</var>
- exception is raised. Possible causes for this are:
- </p>
- <ol>
- <li> The stream doesn't allow writing.</li>
- <li> An error occurred when writing a property to a stream.</li>
- </ol>
- </descr>
- <seealso>
- <link id="EFilerError"/>
- <link id="EReadError"/>
- </seealso>
- </element>
- <element name="EClassNotFound">
- <short>
- Exception raised when an unknown class is referenced in a streamed
- component.
- </short>
- <descr>
- When the streaming system needs to create a component, it looks for the
- class pointer (VMT) in the list of registered classes by its name. If this
- name is not found, then an <var>EClassNotFound</var> is raised.
- </descr>
- <seealso>
- <link id="EFilerError"/>
- </seealso>
- </element>
- <element name="EMethodNotFound">
- <short>
- This exception is no longer used.
- </short>
- <descr>
- This exception is no longer used in the streaming system. This error is
- replaced by a <link id="EReadError"/>.
- </descr>
- <seealso>
- <link id="EFilerError"/>
- <link id="EReadError"/>
- </seealso>
- </element>
- <element name="EInvalidImage">
- <short>
- Exception raised when the resource header needed for streaming of a
- component is invalid.
- </short>
- <descr>
- This exception is not used by Free Pascal but is provided for Delphi
- compatibility.
- </descr>
- </element>
- <element name="EResNotFound">
- <short>
- Exception raised when a resource, needed to initialize a component, is not found.
- </short>
- <descr>
- This exception is not used by Free Pascal but is provided for Delphi
- compatibility.
- </descr>
- </element>
- <element name="EListError">
- <short>
- Exception raised when an error occurs in lists handling.
- </short>
- <descr>
- <p>
- If an error occurs in one of the <link id='TList'/> or <link id='TStrings'/>
- methods, then a <var>EListError</var> exception is raised. This can occur in
- one of the following cases:
- </p>
- <ol>
- <li>There is not enough memory to expand the list.</li>
- <li>The list tried to grow beyond its maximal capacity.</li>
- <li>An attempt was made to reduce the capacity of the list below the
- current element count.</li>
- <li>An attempt was made to set the list count to a negative value.</li>
- <li>A non-existent element of the list was referenced. (i.e. the list index
- was out of bounds)</li>
- <li>An attempt was made to move an item to a position outside the list's
- bounds.</li>
- </ol>
- </descr>
- <seealso>
- <link id="TList"/>,
- <link id="TStrings"/>
- </seealso>
- </element>
- <element name="EBitsError">
- <short>
- Exception raised when an error occurs in a method of <link id="TBits"/>.
- </short>
- <descr>
- When an index of a bit in a <link id="TBits"/> is out of the valid range
- (<var>0</var> to <var>Count-1</var>) then a <var>EBitsError</var> exception
- is raised.
- </descr>
- </element>
- <element name="EStringListError">
- <short>
- Exception raised when an error occurs in a method of <link id="TStrings"/>.
- </short>
- <descr>
- <p>
- When an error occurs in one of the methods of <link id="TStrings"/> then
- an <var>EStringListError</var> is raised. This can have one of the following
- causes:
- </p>
- <ol>
- <li>There is not enough memory to expand the list.</li>
- <li>The list tried to grow beyond its maximal capacity.</li>
- <li>A non-existent element of the list was referenced. (i.e. the list index
- was out of bounds)</li>
- <li>An attempt was made to add a duplicate entry to a <link
- id="TStringList"/> when <link id="TStringList.AllowDuplicates"/> is
- <var>False</var>.</li>
- </ol>
- </descr>
- <seealso>
- <link id="TStrings"/>
- <link id="TStringList"/>
- </seealso>
- </element>
- <element name="EComponentError">
- <short>
- Exception raised when an error occurs in the component registration
- routines.
- </short>
- <descr>
- <p>
- When an error occurs during the registration of a component, or when naming
- a component, then a <var>EComponentError</var> is raised. Possible causes
- are:
- </p>
- <ol>
- <li>An name with an illegal character was assigned to a component.</li>
- <li>A component with the same name and owner already exists.</li>
- <li>The component registration system isn't set up properly.</li>
- </ol>
- </descr>
- <seealso>
- <link id="TComponent"/>
- <link id="TComponent.Name"/>
- </seealso>
- </element>
- <element name="EParserError">
- <short>
- Exception raised when an error occurs during the parsing of streams.
- </short>
- <descr>
- When an error occurs during the parsing of a stream, an <var>EParserError</var>
- is raised. Usually this indicates that an invalid token was found on the
- input stream, or the token read from the stream wasn't the expected token.
- </descr>
- <seealso>
- <link id="TParser"/>
- </seealso>
- </element>
- <element name="EOutOfResources">
- <short>
- Exception raised when the system is out of resources.
- </short>
- <descr>
- This exception is not used in Free Pascal, it is defined for Delphi
- compatibiliy purposes only.
- </descr>
- </element>
- <element name="EInvalidOperation">
- <short>
- Exception raised when an invalid operation is performed. Obsolete.
- </short>
- <descr>
- This exception is not used in Free Pascal, it is defined for Delphi
- compatibiliy purposes only.
- </descr>
- </element>
- <!--
- **********************************************************************
- TList
- **********************************************************************
- -->
- <element name="TList">
- <short>Class to manage collections of pointers.</short>
- <descr>
- <p>
- <var>TList</var> is a class that can be used to manage collections of
- pointers. It introduces methods and properties to store the pointers, search
- in the list of pointers, sort them. It manages its memory by itself, no
- intervention for that is needed.
- </p>
- <p>
- To manage collections of strings, it is better to use a <link
- id="TStrings"/> descendent such as <link id="TStringList"/>. To manage
- general objects, a <link id="TCollection"/> class exists, from which a
- descendent can be made to manage collections of various kinds.
- </p>
- </descr>
- <seealso>
- <link id="TStrings"/>
- <link id="TCollection"/>
- </seealso>
- </element>
- <!-- To be documented later on maybe ?
- function Get(Index: Integer): Pointer;
- <element name="">
- <short>
- </short>
- <descr>
- </descr>
- </element>
- procedure Grow; virtual;
- <element name="">
- <short>
- </short>
- <descr>
- </descr>
- </element>
- procedure Put(Index: Integer; Item: Pointer);
- <element name="">
- <short>
- </short>
- <descr>
- </descr>
- </element>
- procedure SetCapacity(NewCapacity: Integer);
- <element name="">
- <short>
- </short>
- <descr>
- </descr>
- </element>
- procedure SetCount(NewCount: Integer);
- <element name="">
- <short>
- </short>
- <descr>
- </descr>
- </element>
- -->
- <element name="TList.Destroy">
- <short>
- Destroys the list and releases the memory used to store the list elements.
- </short>
- <descr>
- <var>Destroy</var> destroys the list and releases the memory used to store
- the list elements. The elements themselves are in no way touched, i.e. any
- meomory they point to must be explicitly released before calling the
- destructor.
- </descr>
- </element>
- <element name="TList.Add">
- <short>
- Adds a new pointer to the list.
- </short>
- <descr>
- <p>
- <var>Add</var> adds a new pointer to the list after the last pointer (i.e.
- at position <var>Count</var>, thus increasing the item count with 1.
- If the list is at full capacity, the capacity of the list is expanded,
- using the <link id="TList.Grow">Grow</link> method.
- </p>
- <p>
- To insert a pointer at a certain position in the list, use the <link
- id="TList.Insert">Insert</link> method instead.
- </p>
- </descr>
- <seealso>
- <link id="TList.Delete">Delete</link>
- <link id="TList.Grow">Grow</link>
- <link id="TList.Insert">Insert</link>
- </seealso>
- </element>
- <element name="TList.Clear">
- <short>
- Clears the pointer list.
- </short>
- <descr>
- <var>Clear</var> removes all pointers from the list, and sets the capacity to
- 0, thus freeing any memory allocated to maintain the list.
- </descr>
- <seealso>
- <link id="TList.Destroy">Destroy</link>
- </seealso>
- </element>
- <!-- procedure Delete(Index: Integer); -->
- <element name="TList.Delete">
- <short>
- Removes a pointer from the list.
- </short>
- <descr>
- <p><var>Delete</var> removes the pointer at position <var>Index</var> from the
- list, shifting all following pointers one position up (or to the left).
- </p>
- <p>
- The memory the pointer is pointing to is <i>not</i> deallocated.
- </p>
- </descr>
- </element>
- <element name="TList.Error">
- <short>
- Raises an <link id="EListError"/> exception.
- </short>
- <descr>
- <var>Error</var> raises an <link id="EListError"/> exception, with a message
- formatted with <var>Msg</var> and <var>Data</var>.
- </descr>
- </element>
- <!-- procedure Exchange(Index1, Index2: Integer); -->
- <element name="TList.Exchange">
- <short>
- Exchanges two pointers in the list.
- </short>
- <descr>
- <var>Exchange</var> exchanges the pointers at positions <var>Index1</var>
- and <var>Index2</var>. Both pointers must be withing the current range of
- the list, or an <link id="EListError"/> exception will be raised.
- </descr>
- </element>
- <element name="TList.Expand">
- <short>
- Increases the capacity of the list if needed.
- </short>
- <descr>
- <p>
- <var>Expand</var> increases the capacity of the list if the current element
- count matches the current list capacity.
- </p>
- <p>
- The capacity is increased according to the following algorithm:
- </p>
- <ol>
- <li>If the capacity is less than 3, the capacity is increased with 4.</li>
- <li>If the capacity is larger than 3 and less than 8, the capacity is increased with 8.</li>
- <li>If the capacity is larger than 8, the capacity is increased with 16.</li>
- </ol>
- <p>
- The return value is <var>Self</var>.
- </p>
- </descr>
- <seealso>
- <link id="TList.Capacity">Capacity</link>
- <!-- <link id="Tlist.SetCapacity"> -->
- </seealso>
- </element>
- <element name="TList.First">
- <short>
- Returns the first non-nil pointer in the list.
- </short>
- <descr>
- <p>
- <var>First</var> returns the value of the first non-nil pointer in the
- list.
- </p>
- <p> If there are no pointers in the list or all pointers equal
- <var>Nil</var>, then <var>Nil</var> is returned.
- </p>
- </descr>
- <seealso>
- <link id="TList.Last">Last</link>
- </seealso>
- </element>
- <!-- function IndexOf(Item: Pointer): Integer; -->
- <element name="TList.IndexOf">
- <short>
- Returns the index of a given pointer.
- </short>
- <descr>
- <p>
- <var>IndexOf</var> searches for the pointer <var>Item</var> in the list
- of pointers, and returns the index of the pointer, if found.
- </p>
- <p>
- If no pointer with the value <var>Item</var> was found, -1 is returned.
- </p>
- </descr>
- </element>
- <element name="TList.Insert">
- <short>
- Inserts a new pointer in the list at a given position.
- </short>
- <descr>
- <p>
- <var>Insert</var> inserts pointer <var>Item</var> at position
- <var>Index</var> in the list. All pointers starting from <var>Index</var>
- are shifted to the right.
- </p>
- <p>
- If <var>Index</var> is not a valid position, then a <link id="EListError"/>
- exception is raised.
- </p>
- </descr>
- <seealso>
- <link id="TList.Add">Add</link>
- <link id="Tlist.Delete">Delete</link>
- </seealso>
- </element>
- <element name="TList.Insert.Item">
- <short> Pointer to be inserted.</short>
- </element>
- <element name="TList.Insert.Index">
- <short> Position where to insert</short>
- </element>
- <!-- function Last: Pointer; -->
- <element name="TList.Last">
- <short>
- Returns the last non-nil pointer in the list.
- </short>
- <descr>
- <p>
- <var>Last</var> returns the value of the last non-nil pointer in the
- list.
- </p>
- <p> If there are no pointers in the list or all pointers equal
- <var>Nil</var>, then <var>Nil</var> is returned.
- </p>
- </descr>
- <seealso>
- <link id="TList.First">First</link>
- </seealso>
- </element>
- <!-- procedure Move(CurIndex, NewIndex: Integer); -->
- <element name="TList.Move">
- <short>
- Moves a pointer from one position in the list to another.
- </short>
- <descr>
- <p>
- <var>Move</var> moves the pointer at position <var>CurIndex</var>
- to position <var>NewIndex</var>. This is done by storing the value
- at position <var>CurIndex</var>, deleting the pointer at position
- <var>CurIndex</var>, and reinserting the value at position
- <var>NewIndex</var>
- </p>
- <p>
- If <var>CurIndex</var> or <var>Newindex</var> are not inside the valid
- range of indices, an <link id="EListError"/> exception is raised.
- </p>
- </descr>
- <seealso>
- <link id="TList.Exchange">Exchange</link>
- </seealso>
- </element>
- <!-- function Remove(Item: Pointer): Integer; -->
- <element name="TList.Remove">
- <short>
- Removes a value from the list.
- </short>
- <descr>
- <var>Remove</var> searches <var>Item</var> in the list, and, if it finds it,
- deletes the item from the list. Only the first occurrence of <var>Item</var>
- is removed.
- </descr>
- <seealso>
- <link id="TList.Delete">Delete</link>
- <link id="TList.IndexOf">IndexOf</link>
- <link id="Tlist.Insert">Insert</link>
- </seealso>
- </element>
- <!-- procedure Pack; -->
- <element name="TList.Pack">
- <short>
- Removes <var>Nil</var> pointers from the list and frees unused memory.
- </short>
- <descr>
- <var>Pack</var> removes all <var>nil</var> pointers from the list.
- The capacity of the list is then set to the number of pointers in the list.
- This method can be used to free unused memory if the list has grown to
- very large sizes and has a lot of unneeded nil pointers in it.
- </descr>
- <seealso>
- <link id="TList.Clear"/>
- </seealso>
- </element>
- <!-- procedure Sort(Compare: TListSortCompare); -->
- <element name="TList.Sort">
- <short>
- Sorts the pointers in the list.
- </short>
- <descr>
- <p>
- <var>Sort></var> sorts the pointers in the list. Two pointers are compared
- by passing them to the <var>Compare</var> function. The result of this
- function determines how the pointers will be sorted:
- </p>
- <ul>
- <li> If the result of this function is negative, the first pointer is
- assumed to be 'less' than the second and will be moved before the second
- in the list.</li>
- <li> If the function result is positive, the first pointer is assumed to
- be 'greater than' the second and will be moved after the second in the
- list.</li>
- <li> if the function result is zero, the pointers are assumed to be 'equal'
- and no moving will take place. </li>
- </ul>
- <p>
- The sort is done using a quicksort algorithm.
- </p>
- </descr>
- </element>
- <!-- property Capacity: Integer read FCapacity write SetCapacity; -->
- <element name="TList.Capacity">
- <short>
- Current capacity (i.e. number of pointers that can be stored) of the list.
- </short>
- <descr>
- <p><var>Capacity</var> contains the number of pointers the list can store
- before it starts to grow.
- </p>
- <p>
- If a new pointer is added to the list using <link id="TList.Add">add</link>
- or <link id="TList.Insert">insert</link>, and there is not enough memory to
- store the new pointer, then the list will try to allocate more memory to
- store the new pointer. Since this is a time consuming operation, it is
- important that this operation be performed as little as possible. If
- it is known how many pointers there will be before filling the list, it is
- a good idea to set the capacity first before filling. This ensures that the
- list doesn't need to grow, and will speed up filling the list.
- </p>
- </descr>
- <seealso>
- <link id="TList.SetCapacity">SetCapacity</link>
- <link id="TList.Count">Count</link>
- </seealso>
- </element>
- <!-- property Count: Integer read FCount write SetCount; -->
- <element name="Tlist.Count">
- <short>
- Current number of pointers in the list.
- </short>
- <descr>
- <var>Count</var> is the current number of (possibly <var>Nil</var>) pointers
- in the list. Since the list is zero-based, the index of the largest pointer
- is <var>Count-1</var>.
- </descr>
- <link id="TList.Capacity">Capacity</link>
- </element>
- <!-- property Items[Index: Integer]: Pointer read Get write Put; default; -->
- <element name="TList.Items">
- <short>
- Probides access to the pointers in the list.
- </short>
- <descr>
- <p><var>Items</var> is used to access the pointers in the list. It is the
- default property of the <var>TList</var> class, so it can be omitted.
- </p>
- <p>
- The list is zero-based, so Index must be in the range <var>0</var> to
- <var>Count-1</var>.
- </p>
- </descr>
- </element>
- <!-- property List: PPointerList read FList; -->
- <element name="TList.List">
- <short>
- Memory array where pointers are stored.
- </short>
- <descr>
- <var>List</var> points to the memory space where the pointers are stored.
- This can be used to quickly copy the list of pinters to another location.
- </descr>
- </element>
- <!--
- **********************************************************************
- ThreadList
- **********************************************************************
- -->
- <element name="TThreadList"> <!-- Class -->
- <short>List object containing all threads.</short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <element name="TThreadList.Create"> <!-- Constructor -->
- <short></short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <element name="TThreadList.Destroy"> <!-- Destructor -->
- <short></short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <element name="TThreadList.Add"> <!-- Procedure -->
- <short></short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <element name="TThreadList.Clear"> <!-- Procedure -->
- <short></short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <element name="TThreadList.LockList"> <!-- Function -->
- <short></short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <element name="TThreadList.Remove"> <!-- Procedure -->
- <short></short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <element name="TThreadList.UnlockList"> <!-- Procedure -->
- <short></short>
- <descr></descr>
- <errors></errors>
- <seealso></seealso>
- </element>
- <!--
- **********************************************************************
- TBits helpers
- **********************************************************************
- -->
- <element name="BITSHIFT"> <!-- Constant -->
- <short>Used to calculate the size of a bits array</short>
- <seealso>
- <link id="TBits"/>
- <link id="TBits.Size"/>
- </seealso>
- </element>
- <element name="MASK"> <!-- Constant -->
- <short>Bitmask with all bits on.</short>
- <seealso>
- <link id="TBits"/>
- </seealso>
- </element>
- <element name="MaxBitRec"> <!-- Constant -->
- <short>Maximum number of bit records in TBits.</short>
- <seealso>
- <link id="TBits"/>
- </seealso>
- </element>
- <element name="MaxBitFlags"> <!-- Constant -->
- <short>Maximum number of bits in TBits collection.</short>
- <seealso>
- <link id="TBits"/>
- </seealso>
- </element>
- <element name="TBitArray"> <!-- Array type -->
- <short>Array to store bits.</short>
- <seealso>
- <link id="TBits"/>
- </seealso>
- </element>
- <!--
- **********************************************************************
- TBis
- **********************************************************************
- -->
- <element name="TBits"> <!-- Class -->
- <short>Class to store collections of bits (binary values that can be 0 or 1)</short>
- <descr>
- <p><var>TBits</var> can be used to store collections of bits in an indexed
- array. This is especially useful for storing collections of booleans:
- Normally the size of a boolean is the size of the smallest enumerated type,
- i.e. 1 byte. Since a bit can take 2 values it can be used to store a boolean
- as well. Since TBits can store 8 bits in a byte, it takes 8 times less space
- to store an array of booleans in a TBits class then it would take to stoe
- them in a conventional array.
- </p>
- <p><var>TBits</var> introduces methods to store and retrieve bit values,
- apply masks, and search for bits.
- </p>
- </descr>
- </element>
- <element name="TBits.Create"> <!-- Constructor -->
- <short>Creates a new bits collection.</short>
- <descr>
- <p>
- <var>Create</var> creates a new bit collection with initial size <var>TheSize</var>.
- The size of the collection can be changed later on.
- </p>
- <p>All bits are initially set to zero.</p>
- </descr>
- <seealso>
- <link id="TBits.Destroy">Destroy</link>
- </seealso>
- </element>
- <element name="TBits.Destroy"> <!-- Destructor -->
- <short>Destroys a bit collection</short>
- <descr>
- <p>
- <var>Destroy</var> destroys a previously created bit collection and
- releases all memory used to store the bit collection.
- </p>
- <p>
- <var>Destroy</var> should never be called directly, <var>Free</var>
- should be used instead.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.Create">Create</link>
- </seealso>
- </element>
- <element name="TBits.getFSize"> <!-- Function -->
- <short>Returns the number of records used to store the bits.</short>
- <descr>
- <var>GetFSize</var> returns the number of records used to store the current
- number of bits.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.Size">Size</link>
- </seealso>
- </element>
- <element name="TBits.seton"> <!-- Procedure -->
- <short>Turn a particular bit on.</short>
- <descr>
- <var>SetOn</var> turns on the bit at position <var>bit</var>, i.e. sets it
- to 1.
- If <var>bit</var> is at a position bigger than the current size, the collection
- is expanded to the required size using <link id="TBits.grow">Grow</link>.
- </descr>
- <errors>
- If <var>bit</var> is larger than the maximum allowed bits array size or
- is negative, an <link id="EBitsError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TBits.Bits">Bits</link>
- <link id="TBits.clear">Clear</link>
- </seealso>
- </element>
- <element name="TBits.clear"> <!-- Procedure -->
- <short>Clears a particular bit.</short>
- <descr>
- <var>Clear</var> clears the bit at position <var>bit</var>. If the array
- If <var>bit</var> is at a position bigger than the current size, the collection
- is expanded to the required size using <link id="TBits.grow">Grow</link>.
- </descr>
- <errors>
- If <var>bit</var> is larger than the maximum allowed bits array size or
- is negative, an <link id="EBitsError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TBits.Bits">Bits</link>
- <link id="TBits.clear">seton</link>
- </seealso>
- </element>
- <element name="TBits.clearall"> <!-- Procedure -->
- <short>Clears all bits in the array.</short>
- <descr>
- <var>ClearAll</var> clears all bits in the array, i.e. sets them to zero. <var>
- ClearAll</var> works faster than clearing all individual bits, since it
- uses the packed nature of the bits.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.Bits">Bits</link>
- <link id="TBits.clear">clear</link>
- </seealso>
- </element>
- <element name="TBits.andbits"> <!-- Procedure -->
- <short>Performs an <var>and</var> operation on the bits.</short>
- <descr>
- <var>andbits</var> performs an <var>and</var> operation on the bits in
- the array with the bits of array <var>BitSet</var>. If <var>BitSet</var>
- contains less bits than the current array, then all bits which have no
- counterpart in <var>BitSet</var> are cleared.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.clearall">ClearAll</link>
- <link id="TBits.orbits">OrBits</link>
- <link id="TBits.xorbits">XOrBits</link>
- <link id="TBits.notbits">NotBits</link>
- </seealso>
- </element>
- <element name="TBits.orbits"> <!-- Procedure -->
- <short>Performs an <var>or</var> operation on the bits.</short>
- <descr>
- <p>
- <var>andbits</var> performs an <var>or</var> operation on the bits in
- the array with the bits of array <var>BitSet</var>.
- </p>
- <p>
- If <var>BitSet</var>
- contains less bits than the current array, then all bits which have no
- counterpart in <var>BitSet</var> are left untouched.
- </p>
- <p>
- If the current array contains less bits than <var>BitSet</var> then it is
- grown to the size of <var>BitSet</var> before the <var>or</var> operation is
- performed.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.clearall">ClearAll</link>
- <link id="TBits.andbits">andBits</link>
- <link id="TBits.xorbits">XOrBits</link>
- <link id="TBits.notbits">NotBits</link>
- </seealso>
- </element>
- <element name="TBits.xorbits"> <!-- Procedure -->
- <short>Performs a <var>xor</var> operation on the bits.</short>
- <descr>
- <p><var>XorBits</var> performs a <var>xor</var> operation on the bits in
- the array with the bits of array <var>BitSet</var>.
- </p>
- <p>If <var>BitSet</var>
- contains less bits than the current array, then all bits which have no
- counterpart in <var>BitSet</var> are left untouched.
- </p>
- <p>
- If the current array contains less bits than <var>BitSet</var> then it is
- grown to the size of <var>BitSet</var> before the <var>xor</var> operation is
- performed.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.clearall">ClearAll</link>
- <link id="TBits.andbits">andBits</link>
- <link id="TBits.orbits">OrBits</link>
- <link id="TBits.notbits">NotBits</link>
- </seealso>
- </element>
- <element name="TBits.notbits"> <!-- Procedure -->
- <short>Performs a <var>not</var> operation on the bits.</short>
- <descr>
- <p><var>NotBits</var> performs a <var>not</var> operation on the bits in
- the array with the bits of array <var>Bitset</var>.
- </p>
- <p>If <var>BitSet</var>
- contains less bits than the current array, then all bits which have no
- counterpart in <var>BitSet</var> are left untouched.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.clearall">ClearAll</link>
- <link id="TBits.andbits">andBits</link>
- <link id="TBits.orbits">OrBits</link>
- <link id="TBits.xorbits">XOrBits</link>
- </seealso>
- </element>
- <element name="TBits.get"> <!-- Function -->
- <short>Retrieve the value of a particular bit</short>
- <descr>
- <var>Get</var> returns <var>True</var> if the bit at position <var>bit</var>
- is set, or <var>False</var> if it is not set.
- </descr>
- <errors>
- If <var>bit</var> is not a valid bit index then an <link id="EBitsError"/>
- exception is raised.
- </errors>
- <seealso>
- <link id="TBits.Bits">Bits</link>
- <link id="TBits.FindFirstBit">FindFirstBit</link>
- <link id="TBits.seton">seton</link>
- </seealso>
- </element>
- <element name="TBits.grow"> <!-- Procedure -->
- <short>Expands the bits array to the requested size.</short>
- <descr>
- <var>Grow</var> expands the bit array so it can at least contain
- <var>nbit</var> bits. If <var>nbit</var> is less than the current size,
- nothing happens.
- </descr>
- <errors>
- If there is not enough memory to complete the operation, then an
- <link id="EBitsError"/>is raised.
- </errors>
- <seealso>
- <link id="TBits.Size">Size</link>
- </seealso>
- </element>
- <element name="TBits.equals"> <!-- Function -->
- <short>Determines whether the bits of 2 arrays are equal.</short>
- <descr>
- <p><var>equals</var> returns <var>True</var> if all the bits in <var>BitSet</var>
- are the same as the ones in the current BitSet; if not, <var>False</var> is
- returned.
- </p>
- <p>
- If the sizes of the two BitSets are different, the arrays are still reported
- equal when all the bits in the larger set, which are not present in the smaller
- set, are zero.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.clearall">ClearAll</link>
- <link id="TBits.andbits">andBits</link>
- <link id="TBits.orbits">OrBits</link>
- <link id="TBits.xorbits">XOrBits</link>
- </seealso>
- </element>
- <element name="TBits.SetIndex"> <!-- Procedure -->
- <short>Sets the start position for <link
- id="TBits.FindNextBit">FindNextBit</link> and <link
- id="TBits.FindPrevBit">FindPrevBit</link></short>
- <descr>
- <p>
- <var>SetIndex</var> sets the search start position for<link
- id="TBits.FindNextBit">FindNextBit</link> and
- <link id="TBits.FindPrevBit">FindPrevBit</link> to <var>Index</var>.
- This means that these calls will start searching from position
- <var>Index</var>.
- </p>
- <p>This mechanism provides an alternative to <link
- id="TBits.FindFirstBit">FindFirstBit</link> which can also be used to
- position for the <var>FindNextBit</var> and <var>FindPrevBit</var> calls.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.FindNextBit">FindNextBit</link>
- <link id="TBits.FindPrevBit">FindPrevBit</link>
- <link id="TBits.FindFirstBit">FindFirstBit</link>
- <link id="TBits.OpenBit">OpenBit</link>
- </seealso>
- </element>
- <element name="TBits.FindFirstBit"> <!-- Function -->
- <short>Find first bit with a particular value</short>
- <descr>
- <p>
- <var>FindFirstBit</var> searches for the first bit with value
- <var>State</var>. It returns the position of this bit, or <var>-1</var> if
- no such bit was found.
- </p>
- <p>The search starts at position 0 in the array. If the first search
- returned a positive result, the found position is saved, and the
- <link id="TBits.FindNextBit">FindNextBit</link> and <link
- id="TBits.FindPrevBit">FindPrevBit</link> will use this position to resume the
- search. To start a search from a certain position, the start position can be
- set with the <link id="TBits.SetIndex">SetIndex</link> instead.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.FindNextBit">FindNextBit</link>
- <link id="TBits.FindPrevBit">FindPrevBit</link>
- <link id="TBits.OpenBit">OpenBit</link>
- <link id="TBits.SetIndex">SetIndex</link>
- </seealso>
- </element>
- <element name="TBits.FindNextBit"> <!-- Function -->
- <short>Searches the next bit with a particular value.</short>
- <descr>
- <p>
- <var>FindNextBit</var> resumes a previously started search. It searches for
- the next bit with the value specified in the <link
- id="TBits.FindFirstBit">FindFirstBit</link>. The search is done towards the
- end of the array and starts at the position last reported by one of the
- <var>Find</var> calls or at the position set with <link id="TBits.SetIndex">
- SetIndex</link>.
- </p>
- <p>
- If another bit with the same value is found, its position
- is returned. If no more bits with the same value are present in the array,
- <var>-1</var> is returned.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.FindFirstBit">FindFirstBit</link>
- <link id="TBits.FindPrevBit">FindPrevBit</link>
- <link id="TBits.OpenBit">OpenBit</link>
- <link id="TBits.SetIndex">SetIndex</link>
- </seealso>
- </element>
- <element name="TBits.FindPrevBit"> <!-- Function -->
- <short>Searches the previous bit with a particular value.</short>
- <descr>
- <p>
- <var>FindPrevBit</var> resumes a previously started search. It searches for
- the previous bit with the value specified in the <link
- id="TBits.FindFirstBit">FindFirstBit</link>. The search is done towards the
- beginning of the array and starts at the position last reported by one of the
- <var>Find</var> calls or at the position set with <link id="TBits.SetIndex">
- SetIndex</link>.
- </p>
- <p>
- If another bit with the same value is found, its position
- is returned. If no more bits with the same value are present in the array,
- <var>-1</var> is returned.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.FindFirstBit">FindFirstBit</link>
- <link id="TBits.FindNextBit">FindNextBit</link>
- <link id="TBits.OpenBit">OpenBit</link>
- <link id="TBits.SetIndex">SetIndex</link>
- </seealso>
- </element>
- <element name="TBits.OpenBit"> <!-- Function -->
- <short>Returns the position of the first bit that is set to <var>False</var>.</short>
- <descr>
- <var>OpenBit</var> returns the position of the first bit whose value is
- <var>0</var> (<var>False</var>), or <var>-1</var> if no open bit was found.
- This call is equivalent to
- <var>FindFirstBit(False)</var>, except that it doesn't set the position for
- the next searches.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TBits.FindFirstBit">FindNextBit</link>
- <link id="TBits.FindPrevBit">FindPrevBit</link>
- <link id="TBits.FindFirstBit">FindFirstBit</link>
- <link id="TBits.SetIndex">SetIndex</link>
- </seealso>
- </element>
- <element name="TBits.Bits"> <!-- Property -->
- <short>Access to all bits in the array.</short>
- <descr>
- <var>Bits</var> allows indexed access to all of the bits in the array. It
- gives <var>True</var> if the bit is <var>1</var>, <var>False</var>
- otherwise; Assigning to this property will set, respectively clear the bit.
- </descr>
- <errors>
- If an index is specified which is out of the allowed range then an <link
- id="EBitsError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TBits.Size">Size</link>
- </seealso>
- </element>
- <element name="TBits.Size"> <!-- Property -->
- <short>Current size of the array of bits.</short>
- <descr>
- <var>Size</var> is the current size of the bit array. Setting this property
- will adjust the size; this is equivalent to calling <var>Grow(Value-1)</var>
- </descr>
- <errors>
- If an invalid size (negative or too large) is specified, a <link
- id="EBitsError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TBits.Bits">Bits</link>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TPersistent
- *********************************************************************
- -->
- <element name="TPersistent"> <!-- Class -->
- <short>Base class for streaming system and persistent properties.</short>
- <descr>
- <p><var>TPersistent</var> is the basic class for the streaming system. Since it
- is compiled in the <var>{$M+}</var> state, the compiler generates RTTI
- (Run-Time Type Information) for it and all classes that descend from it.
- This information can be used to stream all properties of classes.
- </p>
- <p>
- It also introduces functionality to assign the contents of 2 classes to
- each other.
- </p>
- </descr>
- <seealso>
- <link id="TComponent"/>
- </seealso>
- </element>
- <element name="TPersistent.AssignError"> <!-- Procedure -->
- <short>Raises an <var>EConvertError</var> when an error occurs during
- assignment.</short>
- <descr>
- <var>AssignError</var> raises an <var>EConvertError</var> exception with
- the classnames of the <var>Source</var> and destination classes. It is used
- when two incompatible classes are assigned to each other.
- </descr>
- <seealso>
- <link id="TPersistent.Assign">Assign</link>
- <link id="TPersistent.AssignTo">AssignTo</link>
- </seealso>
- </element>
- <element name="TPersistent.AssignTo"> <!-- Procedure -->
- <short>Generic assignment function.</short>
- <descr>
- <p>
- <var>AssignTo</var> is the generic function to assign the class' contents to
- another class. This method must be overridden by descendent classes to
- actually assign the content of the source instance to the destination
- instance.
- </p>
- <p>
- The <link id="TPersistent"/> implementation of <var>Assignto</var> raises
- an <var>EConvertError</var> exception. This is done for the following
- reason: If the source class doesn't know how to assign itself to the
- destination class (using <var>AssignTo</var>), the destination class may
- know how get the data from the source class (using <link
- id="TPersistent.Assign">Assign</link>). If all descendent methods are
- implemented correctly, then if neither of the two classes knows how to
- assign their contents to each other, execution will end up at <link
- id="TPersistent.Assign"/>, which will simply execute
- </p>
- <code>
- Dest.AssignTo(Self);
- </code>
- <p>
- If neither of the classes knows how to assign to/from each other, then
- execution will end up at the <var>TPersistent</var> implementation of
- <var>AssignTo</var>, and an exception will be raised.
- </p>
- </descr>
- <seealso>
- <link id="TPersistent.Assign">Assign</link>
- </seealso>
- </element>
- <element name="TPersistent.DefineProperties"> <!-- Procedure -->
- <short>Declare non-published properties that need to be streamed.</short>
- <descr>
- <p>
- <var>DefineProperties</var> must be overridden by descendent classes to
- indicate to the streaming system which non-published properties must
- also be streamed.
- </p>
- <p>
- The streaming systems stores only published properties in the stream.
- Sometimes it is necessary to store additional data in the stream, data
- which is not published. This can be done by overriding the
- <var>DefineProperties</var> method. The <var>Filer</var> object is the
- class that is responsible for writing all properties to the stream.
- </p>
- <p>
- To define new properties, two methods of the <link id="TFiler"/> class
- should be used:
- </p>
- <ol>
- <li><link id="TFiler.DefineProperty">DefineProperty</link>, to define a
- property which can be represented as text.</li>
- <li><link id="TFiler.DefineBinaryProperty">DefineProperty</link>, to define a
- property which contains binary data.</li>
- </ol>
- <p>
- On order for the streaming to work correctly, a call to the inherited
- <var>DefineProperties</var> is also needed, so ancestor objects also
- get the possibility to read or write their private data to the stream.
- Failure to call the inherited method will result in component properties not
- being streamed correctly.
- </p>
- </descr>
- <seealso>
- <link id="TFiler.DefineProperties"/>
- <link id="TFiler"/>
- </seealso>
- </element>
- <element name="TPersistent.GetOwner"> <!-- Function -->
- <short>Returns the owner of the component.</short>
- <descr>
- <var>GetOwner</var> returns the owning component of the classes instane.
- The <var>TPersistent</var> implementation of <var>GetOwner</var> returns
- <var>Nil</var>. <link id="TComponent"/> overrides this method.
- </descr>
- <seealso>
- <link id="TComponent"/>
- </seealso>
- </element>
- <element name="TPersistent.Destroy"> <!-- Destructor -->
- <short>Destroys the <var>TPersistent</var> instance. </short>
- <descr>
- <var>Destroy</var> disposes of the persistent object. This method should
- never be called directly. Instead the <var>Free</var> method should be used.
- </descr>
- </element>
- <element name="TPersistent.Assign"> <!-- Procedure -->
- <short>Assign the contents of one class to another.</short>
- <descr>
- <p>
- <var>Assign</var> copies the contents of <var>Source</var> to
- <var>Self</var>, if the classes of the destination and source classes are
- compatible.
- </p>
- <p>
- The <var>TPersistent</var> implementation of <var>Assign</var> does nothing
- but calling the <link id="TPersistent.AssignTo">AssignTo</link> method of
- source. This means that if the destination class does not know how to assign
- the contents of the source class, the source class instance is asked to assign
- itself to the destination class. This means that it is necessary to
- implement only one of the two methods so that two classes can be assiged to
- one another.
- </p>
- <remark>
- <p>
- In general, a statement of the form
- </p>
- <code>
- Destination:=Source;
- </code>
- <p>
- (where <var>Destination</var> and <var>Source</var> are classes) does not
- achieve the same as a statement of the form
- </p>
- <code>
- Destination.Assign(Source);
- </code>
- <p>After the former statement, both <var>Source</var> and
- <var>Destination</var> will point to the same object. The latter statemtent
- will copy the <i>contents</i> of the <var>Source</var> class to the
- <var>Destination</var> class.
- </p>
- </remark>
- </descr>
- <seealso>
- <link id="TPersistent.AssignTo">AssignTo</link>
- </seealso>
- </element>
- <element name="TPersistent.GetNamePath"> <!-- Function -->
- <short>Returns a string that can be used to identify the class instance.</short>
- <descr>
- <p>
- <var>GetNamePath</var> returns a string that can be used to identify the
- class instance. This can be used to display a name for this instance in a
- Object designer.
- </p>
- <p>
- <var>GetNamePath</var> constructs a name by recursively prepending the
- <var>Classname</var> of the <var>Owner</var> instance to the
- <var>Classname</var> of this instance, separated by a dot.
- </p>
- </descr>
- <seealso>
- <link id="TPersistent.GetOwner"/>
- </seealso>
- </element>
- <element name="TPersistentClass"> <!-- "class of" type -->
- <short>Class reference type for <link id="TPersistent"/>.</short>
- <descr>
- <var>TPersistentClass</var> is the class reference type for the <link id="TPersistent"/> class.
- </descr>
- <seealso>
- <link id="TPersistent"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TCollectionItem
- *********************************************************************
- -->
- <element name="TCollectionItem"> <!-- Class -->
- <short>Basic object that is managed by a <link id="TCollection"/> class.</short>
- <descr>
- <p><var>TCollectionItem</var> and <link id='TCollection'/> form a pair of base
- classes that manage a collection of named objects. The
- <var>TCollectionItem</var> is the named object that is managed, it
- represents one item in the collection. An item in the collection is
- represented by two properties: <link id="TCollectionItem.DisplayName"/>,
- <link id="TCollection.Index"/> and <link id="TCollectionItem.ID"/>.
- </p>
- <p>A <var>TCollectionItem</var> object is never created directly. To manage
- a set of named items, it is necessary to make a descendent of
- <var>TCollectionItem</var> to which needed properties and methods are
- added. This descendant can then be managed with a <link id="TCollection"/>
- class. The managing collection will create and destroy it's items by itself,
- it should therefore never be necessary to create <var>TCollectionItem</var>
- descendents manually.
- </p>
- </descr>
- <seealso>
- <link id="TCollection"/>
- </seealso>
- </element>
- <element name="TCollectionItem.Changed"> <!-- Procedure -->
- <short>Method to notify the managing collection that the name or index of
- this item has changed.
- </short>
- <descr>
- This method is called when the <link id="TCollectionItem.DisplayName"/> is
- set or when the <link id="TCollectionItem.Index"/> is changed.
- </descr>
- <seealso>
- <link id="TCollectionItem.Id"/>
- <link id="TCollectionItem.Index"/>
- <link id="TCollection.Update"/>
- </seealso>
- </element>
- <element name="TCollectionItem.GetNamePath"> <!-- Function -->
- <short>Returns the namepath of this collection item.</short>
- <descr>
- <var>GetNamePath</var> overrides the <link id="TPersistent.GetNamePath"/>
- method to return the name of the managing collection and appends its <link
- id="TCollectionItem.Index"/> property.
- </descr>
- <seealso>
- <link id="TCollectionItem.Collection"/>
- <link id="TPersistent.GetNamePath"/>
- <link id="TCollectionItem.Index"/>
- </seealso>
- </element>
- <element name="TCollectionItem.GetOwner"> <!-- Function -->
- <short>Returns the managing collection.</short>
- <descr>
- <var>TCollectionItem</var> overrides <link id="TPersistent.GetOwner"/> to
- and returns the <link id="TCollectionItem.Collection"/> that manages it.
- </descr>
- <seealso>
- <link id="TPersistent.GetOwner"/>
- <link id="TCollectionItem.Collection"/>
- </seealso>
- </element>
- <element name="TCollectionItem.GetDisplayName"> <!-- Function -->
- <short>Returns the <link id="TCollectionItem.DisplayName"/> of the
- collectionitem</short>
- <descr>
- <p>
- <var>GetDisplayName</var> returns the value of the
- <link id="TCollectionItem.DisplayName"/> property.
- By default, this is the classname of the actual <var>TCollectionItem</var> descendant.
- </p>
- <p>
- Descendants of <var>TCollectionItem</var> can and should override this
- method to return a more meaningful value.
- </p>
- </descr>
- <seealso>
- <link id="TCollectionItem.DisplayName"/>
- </seealso>
- </element>
- <element name="TCollectionItem.SetIndex"> <!-- Procedure -->
- <short>Write method for the <link id="TCollectionItem.Index"/> property.</short>
- <descr>
- <var>SetIndex</var> implements the write handler for the <link
- id="TCollectionItem.Index"/> property. It requests the managing collection to
- move this item to the desired index <var>value</var>.
- </descr>
- <seealso>
- <link id="TCollectionItem.Index"/>
- </seealso>
- </element>
- <element name="TCollectionItem.SetDisplayName"> <!-- Procedure -->
- <short>Write method for the <link id="TCollectionItem.DisplayName"/> property</short>
- <descr>
- <p><var>SetDisplayName</var> is the write method for the <link
- id="TCollectionItem.DisplayName"/> property. It does nothing but notifying
- the managing collection that the displayname has changed. It does NOT store
- the actual <var>Value</var>.
- </p>
- <p>
- Descendants of <var>TCollectionItem</var> should override this method to
- store the actual displayname if this is required.
- </p>
- </descr>
- <seealso>
- <link id="TCollectionItem.DisplayName"/>
- </seealso>
- </element>
- <element name="TCollectionItem.Create"> <!-- Constructor -->
- <short>Creates a new instance of this collection item.</short>
- <descr>
- <var>Create</var> instantiates a new item in a <link id="TCollection"/>. It
- is called by the <link id="TCollection.Add"/> function and should under
- normal circumstances never be called directly.
- called
- </descr>
- <seealso>
- <link id="TCollectionItem.Destroy"/>
- </seealso>
- </element>
- <element name="TCollectionItem.Destroy"> <!-- Destructor -->
- <short>Destroyes this collection item.</short>
- <descr>
- <p><var>Destroy</var> removes the item from the managing collection
- and Destroys the item instance.
- </p>
- <p>
- This is the only way to remove items from a collection;
- </p>
- </descr>
- <seealso>
- <link id="TCollectionItem.Create"/>
- </seealso>
- </element>
- <element name="TCollectionItem.Collection"> <!-- Property -->
- <short>Pointer to the collection managing this item.</short>
- <descr>
- <var>Collection</var> points to the collection managing this item. This
- property can be set to point to a new collection. If this is done, the old
- collection will be notified that the item should no longer be managed, and
- the new collection is notified that it should manage this item as well.
- </descr>
- <seealso>
- <link id="TCollection"/>
- </seealso>
- </element>
- <element name="TCollectionItem.ID"> <!-- Property -->
- <short>Initial index of this item.</short>
- <descr>
- <p><var>ID</var> is the initial value of <link id="TCollectionItem.Index"/>;
- it doesn't change after the index changes. It can be used to uniquely
- identify the item. The <var>ID</var> property doesn't change as items are
- added and removed from the collection.
- </p>
- <p>
- While the <link id="TCollectionItem.Index"/> property forms a continuous
- series, <var>ID</var> does not. If items are removed from the collection,
- their <var>ID</var> is not used again, leaving gaps. Only when the
- collection is initialiiy created, the <var>ID</var> and <var>Index</var>
- properties will be equal.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.Items"/>
- <link id="TCollectionItem.Index"/>
- </seealso>
- </element>
- <element name="TCollectionItem.Index"> <!-- Property -->
- <short>Index of the item in its managing collection <link id="TCollection.Items"/> property.</short>
- <descr>
- <p>
- <var>Index</var> is the current index of the item in its managing
- collection's <link id="TCollection.Items"/> property. This property may
- change as items are added and removed from the collection.
- </p>
- <p>The index of an item is zero-based, i.e. the first item has index zero.
- The last item has index <var>Count-1</var> where <var>Count</var> is the
- number of items in the collection.
- </p>
- <p>
- The <var>Index</var> property of the items in a collection form a continuous
- series ranging from <var>0</var> to <var>Count-1</var>. The <link
- id="TCollectionItem.ID"/> property does not form a continuous series, but
- can also be used to identify an item.
- </p>
- </descr>
- <seealso>
- <link id="TCollectionItem.ID"/>
- <link id="TCollection.Items"/>
- </seealso>
- </element>
- <element name="TCollectionItem.DisplayName"> <!-- Property -->
- <short>Name of the item, displayed in the object inspector.</short>
- <descr>
- <p>
- <var>DisplayName</var> contains the name of this item as shown in the object
- inspector. For <var>TCollectionItem</var> this returns always the class name
- of the managing collection, followed by the index of the item.
- </p>
- <p><var>TCollectionItem</var> does not implement any functionality to store
- the <var>DisplayName</var> property. The property can be set, but this will
- have no effect other than that the managing collection is notified of a
- change. The actual displayname will remain unchanged. To store the
- <var>DisplayName</var> property,<var>TCollectionItem</var> descendants
- should override the <link id="TCollectionItem.SetDisplayName"/> and
- <link id="TCollectionItem.GetDisplayName"/> to add storage functionality.
- </p>
- </descr>
- <seealso>
- <link id="TCollectionItem.Index"/>
- <link id="TCollectionItem.ID"/>
- <link id="TCollectionItem.GetDisplayName"/>
- <link id="TCollectionItem.SetDisplayName"/>
- </seealso>
- </element>
- <element name="TCollectionItemClass"> <!-- "class of" type -->
- <short>Class reference for <link id="TCollectionItem"/>.</short>
- <descr>
- <var>TCollectionItemClass</var> is used by the
- <link id="TCollection.ItemClass"/> property of <link id="TCollection"/> to
- identify the descendent class of <link id="TCollectionItem"/> which should
- be created and managed.
- </descr>
- <seealso>
- <link id="TCollectionItem"/>
- <link id="TCollection.ItemClass"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TCollection
- *********************************************************************
- -->
- <element name="TCollection"> <!-- Class -->
- <short>Base class to manage collections of named objects.</short>
- <descr>
- <p><var>TCollection</var> implements functionality to manage a collection
- of named objects. Each of these objects needs to be a descendent of the
- <link id="TCollectionItem"/> class. Exactly which type of object is managed
- can be seen from the <link id="TCollection.ItemClass"/> property.
- </p>
- <p>
- Normally, no <var>TCollection</var> is created directly. Instead, a
- descendents of <var>TCollection</var> and <link id="TCollectionItem"/>
- are created as a pair.
- </p>
- </descr>
- <seealso>
- <link id="TCollectionItem"/>
- </seealso>
- </element>
- <element name="TCollection.GetAttrCount"> <!-- Function -->
- <short>Returns the count of attributes associated with each item.</short>
- <descr>
- <p>
- <var>GetAttrCount</var> returns 0 in the <var>TCollection</var>
- implementation. It can be used to determine the number of attributes
- associated with each collection item. Descendent objects should override
- this method to return the number of attributes.
- </p>
- <p>This method is provided for compatibility with Delphi only and is not
- used in Free Pascal.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.GetAttr"/>
- <link id="TCollection.GetItemAttr"/>
- </seealso>
- </element>
- <element name="TCollection.GetAttr"> <!-- Function -->
- <short>Returns an attribute of the collection.</short>
- <descr>
- <p>This method is provided for compatibility with Delphi only and is not
- used in Free Pascal.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.GetAttrCount"/>
- <link id="TCollection.GetItemAttr"/>
- </seealso>
- </element>
- <element name="TCollection.GetItemAttr"> <!-- Function -->
- <short>Returns the attributes of an item.</short>
- <descr>
- <p>This method is provided for compatibility with Delphi only and is not
- used in Free Pascal.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.GetAttr"/>
- <link id="TCollection.GetAttrCount"/>
- </seealso>
- </element>
- <element name="TCollection.GetNamePath"> <!-- Function -->
- <short>Overrides <link id="TPersistent.GetNamePath"/> to return a proper
- pathname.</short>
- <descr>
- <p>
- <var>GetNamePath</var> returns the name path for this collection. If the
- following conditions are satisfied:
- </p>
- <ol>
- <li>There is an owner object.</li>
- <li>The owner object returns a non-empty name path.</li>
- <li>The <link id="TCollection.Propname"/> property is not empty</li>
- </ol>
- <p>
- collection has an owner and the owning object has a name, then the function
- returns the owner name, followed by the propname. If one of the conditions
- is not satisfied, then the classname is returned.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.GetOwner"/>
- <link id="TCollection.Propname"/>
- </seealso>
- </element>
- <element name="TCollection.Changed"> <!-- Procedure -->
- <short>Procedure called if an item is added to or removed from the collection.</short>
- <descr>
- <var>Changed</var> is called if a change takes place in the collection
- managed by the class. If the update count ghas reached zero, it
- calls <link id="TCollection.Update"/> with a nil argument.
- </descr>
- <seealso>
- <link id="TCollection.Update"/>
- <link id="TCollection.Add"/>
- <link id="TCollection.Clear"/>
- </seealso>
- </element>
- <element name="TCollection.GetItem"> <!-- Function -->
- <short>Read handler for the <link id="TCollection.Items"/> property.</short>
- <descr>
- <var>GetItem</var> is the read handler for the <link
- id="TCollection.Items"/> property. It returns the <var>Index</var>-th
- element from the list of objects.
- </descr>
- <errors>
- If <var>Index</var> is outside the allowed range, then an <link
- id="EListError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TCollection.Items"/>
- <link id="TCollection.Count"/>
- <link id="TCollection.SetItem"/>
- </seealso>
- </element>
- <element name="TCollection.SetItem"> <!-- Procedure -->
- <short>Write handler for the <link id="TCollection.Items"/> property.</short>
- <descr>
- <var>SetItem</var> implements the write handler for the <link
- id="TCollection.Items"/> property. It assignes <var>Value</var> to the
- <var>Index</var>-th element in the array. For this to work properly, the
- <link id="TPersistent.Assign"/> method of the <var>Item</var> must work
- correctly.
- </descr>
- <errors>
- If <var>Index</var> is outside the allowed range, then an <link
- id="EListError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TCollection.Items"/>
- <link id="TCollection.Count"/>
- <link id="TCollection.GetItem"/>
- </seealso>
- </element>
- <element name="TCollection.SetItemName"> <!-- Procedure -->
- <short>Virtual method to set the name of the specified item</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TCollection.SetPropName"> <!-- Procedure -->
- <short>Write handler for the <link id="TCollection.PropName"/> property</short>
- <descr>
- <var>SetPropName</var> must be overridden by descendent objects to set the
- <link id="TCollection.PropName"/> property to a suitable value. By default,
- <var>SetPropName</var> sets the <var>PropName</var> property to empty.
- </descr>
- <seealso>
- <link id="TCollection.PropName"/>
- </seealso>
- </element>
- <element name="TCollection.Update"> <!-- Procedure -->
- <short>Hander called when an item in the collection has changed.</short>
- <descr>
- <p><var>Update</var> is called in the following cases:
- </p>
- <ol>
- <li>An item is added to or removed from the collection.</li>
- <li>An item is moved in the list, i.e. its <link id="TCollectionItem.Index"/>
- property changes.</li>
- <li>An item's <link id="TCollectionItem.DisplayName"/> property
- changes.</li>
- </ol>
- <p>
- Descendent classes can override this method to perform additional actions
- when the collection changes. The <var>Item</var> parameter indicates the
- item that was changed. This can be <var>Nil</var>
- </p>
- </descr>
- <seealso>
- <link id="TCollection.Changed"/>
- </seealso>
- </element>
- <element name="TCollection.PropName"> <!-- Property -->
- <short>Name of the property that this collection represents.</short>
- <descr>
- <var>PropName</var> indicates the name of the property that this collection
- is supposed to represent. By default, this is the empty string. Descendents
- can override this property to return the name of the property that is
- represented by this collection.
- </descr>
- <seealso>
- <link id="TCollection.SetPropName"/>
- <link id="TCollection.GetPropName"/>
- </seealso>
- </element>
- <element name="TCollection.Create"> <!-- Constructor -->
- <short>Creates a new collection.</short>
- <descr>
- <var>Create</var> instantiates a new instance of the <var>TCollection</var>
- class which will manage objects of class <var>AItemClass</var>.
- It creates the list used to hold all objects, and stores the
- <var>AItemClass</var> for the adding of new objects to the collection.
- </descr>
- <seealso>
- <link id="TCollection.ItemClass"/>
- <link id="TCollection.Destroy"/>
- </seealso>
- </element>
- <element name="TCollection.Destroy"> <!-- Destructor -->
- <short>Destroys the collection and frees all the objects it manages.</short>
- <descr>
- <p>
- <var>Destroy</var> first clears the collection, and then frees all memory
- allocated to this instance.
- </p>
- <p>
- Don't call <var>Destroy</var> directly, call <var>Free</var> instead.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.Create"/>
- </seealso>
- </element>
- <element name="TCollection.Add"> <!-- Function -->
- <short>Creates and adds a new item to the collection.</short>
- <descr>
- <var>Add</var> instantiates a new item of class <link
- id="TCollection.ItemClass"/> and adds it to the list. The newly created
- object is returned.
- </descr>
- <seealso>
- <link id="TCollection.ItemClass"/>
- <link id="TCollection.Clear"/>
- </seealso>
- </element>
- <element name="TCollection.Assign"> <!-- Procedure -->
- <short>Assigns one collection to another.</short>
- <descr>
- <p>
- <var>Assign</var> assigns the contents of one collection to another.
- It does this by clearing the items list, and adding as much elements as
- there are in the <var>Source</var> collection; it assigns to each created
- element the contents of it's counterpart in the <var>Source</var> element.
- </p>
- <p>
- Two collections cannot be assigned to each other if instances of the
- <var>ItemClass</var> classes cannot be assigned to each other.
- </p>
- </descr>
- <errors>
- If the objects in the collections cannot be assigned to one another, then
- an <var>EConvertError</var> is raised.
- </errors>
- <seealso>
- <link id="TPersistent.Assign"/>
- <link id="TCollectionItem"/>
- </seealso>
- </element>
- <element name="TCollection.BeginUpdate"> <!-- Procedure -->
- <short>Start an update batch.</short>
- <descr>
- <p>
- <var>BeginUpdate</var> is called at the beginning of a batch update. It
- raises the update count with 1.
- </p>
- <p>
- Call <var>BeginUpdate</var> at the beginning of a series of operations that
- will change the state of the collection. This will avoid the call to
- <link id="TCollection.Update"/> for each operation.
- At the end of the operations, a corresponding call to <var>EndUpdate</var>
- must be made. It is best to do this in the context of a
- <var>Try ... finally</var> block:
- </p>
- <code>
- With MyCollection Do
- try
- BeginUpdate;
- // Some Lengthy operations
- finally
- EndUpdate;
- end;
- </code>
- <p>
- This insures that the number of calls to <var>BeginUpdate</var> always
- matches the number of calls to <link id="TCollection.EndUpdate"/>, even in
- case of an exception.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.EndUpdate"/>
- <link id="TCollection.Changed"/>
- <link id="TCollection.Update"/>
- </seealso>
- </element>
- <element name="TCollection.Clear"> <!-- Procedure -->
- <short>Removes all items from the collection.</short>
- <descr>
- <var>Clear</var> will clear the collection, i.e. each item in the collection
- is destroyed and removed from memory.
- After a call to <var>Clear</var>, <var>Count</var> is zero.
- </descr>
- <seealso>
- <link id="TCollection.Add"/>
- <link id="TCollectionItem.Destroy"/>
- <link id="TCollection.Destroy"/>
- </seealso>
- </element>
- <element name="TCollection.EndUpdate"> <!-- Procedure -->
- <short>Ends an update batch.</short>
- <descr>
- <var>EndUpdate</var> signals the end of a series of operations that change
- the state of the collection, possibly triggering an update event.
- It does this by decreasing the update count with 1 and calling <link
- id="TCollection.Changed"/> it should always be used in conjunction with
- <link id="TCollection.BeginUpdate"/>, preferably in the <var>Finally</var>
- section of a <var>Try ... Finally</var> block.
- </descr>
- <seealso>
- <link id="TCollection.BeginUpdate"/>
- <link id="TCollection.Changed"/>
- <link id="TCollection.Update"/>
- </seealso>
- </element>
- <element name="TCollection.FindItemID"> <!-- Function -->
- <short>Searches for an Item in the collection, based on its
- <link id="TCollectionItem.ID"/> property.</short>
- <descr>
- <p>
- <var>FindItemID</var> searches through the collection for the item that has
- a value of <var>ID</var> for its <link id="TCollectionItem.ID"/> property,
- and returns the found item. If no such item is found in the collection,
- <var>Nil</var> is returned.
- </p>
- <p>The routine performs a linear search, so this can be slow on very large
- collections.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.Items"/>
- <link id="TCollectionItem.ID"/>
- </seealso>
- </element>
- <element name="TCollection.Count"> <!-- Property -->
- <short>Number of items in the collection.</short>
- <descr>
- <p>
- <var>Count</var> contains the number of items in the collection.
- </p>
- <remark>
- The items in the collection are identified by their <link
- id="TCollectionItem.Index"/> property, which is a zero-based index, meaning
- that it can take values between <var>0</var> and <var>Count</var>.
- </remark>
- </descr>
- <seealso>
- <link id="TCollectionItem.Index"/>
- <link id="TCollection.Items"/>
- </seealso>
- </element>
- <element name="TCollection.ItemClass"> <!-- Property -->
- <short>Class pointer for each item in the collection.</short>
- <descr>
- <var>ItemClass</var> is the class pointer with which each new item in the
- collection is created. It is the value that was passed to the collection's
- constructor when it was created, and does not change during the lifetime of
- the collection.
- </descr>
- <seealso>
- <link id="TCollectionItem"/>
- <link id="TCollection.Items"/>
- </seealso>
- </element>
- <element name="TCollection.Items"> <!-- Property -->
- <short>Indexed array of items in the collection.</short>
- <descr>
- <p>
- <var>Items</var> provides indexed access to the items in the collection.
- Since the array is zero-based, <var>Index</var> should be an integer
- between <var>0</var> and <var>Count-1</var>.
- </p>
- <p>It is possible to set or retrieve an element in the array. When setting
- an element of the array, the object that is assigned should be compatible
- with the class of the objects in the collection, as given by the
- <link id="TCollection.ItemClass"/> property.
- </p>
- <p>Adding an element to the array can be done with the <link
- id="TCollection.Add"/> method. The array can be cleared with the <link
- id="TCollection.Clear"/> method. Removing an element of the array should
- be done by freeing that element.
- </p>
- </descr>
- <seealso>
- <link id="TCollection.Count"/>
- <link id="TCollection.ItemClass"/>
- <link id="TCollection.Clear"/>
- <link id="TCollection.Add"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- IStringsAdapter
- *********************************************************************
- -->
- <element name="IStringsAdapter"> <!-- Class -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TStrings
- *********************************************************************
- -->
- <element name="TStrings"> <!-- Class -->
- <short>Class to manage arrays or collections of strings</short>
- <descr>
- <p><var>TStrings</var> implements an abstract class to manage an array of
- strings. It introduces methods to set and retrieve strings in the array,
- searching for a particular string, concatenating the strings and so on.
- It also allows an arbitrary object to be associated with each string.
- </p>
- <p>
- It also introduces methods to manage a series of <var>name=value</var>
- settings, as found in many configuration files.
- </p>
- <p>An instance of <var>TStrings</var> is never created directly, instead a
- descendent class such as <link id="TStringList"/> should be created. This is
- because <var>TStrings</var> is an abstract class which does not implement
- all methods; <var>TStrings</var> also doesn't store any strings, this is the
- functionality introduced in descendents such as <link id="TStringList"/>.
- </p>
- </descr>
- <seealso>
- <link id="TStringList"/>
- </seealso>
- </element>
- <element name="TStrings.DefineProperties"> <!-- Procedure -->
- <short>Method to stream the contents of the string collection</short>
- <descr>
- <var>DefineProperties</var> allows the contents of the string collection
- to be streamed. As such, it overrides <link id="TPersistent.DefineProperties"/>
- </descr>
- <seealso>
- <link id="TPersistent.DefineProperties"/>
- </seealso>
- </element>
- <element name="TStrings.Error"> <!-- Procedure -->
- <short>Raises an <link id="EStringListError"/> exception.</short>
- <descr>
- <p>
- <var>Error</var> raises an <link id="EStringListError"/> exception. It passes
- <var>Msg</var> as a format with <var>Data</var> as the only argument.
- </p>
- <p> This method can be used by descendent objects to raise an error.</p>
- </descr>
- <seealso>
- <link id="EStringListError"/>
- </seealso>
- </element>
- <element name="TStrings.Get"> <!-- Function -->
- <short>Abstract read handler for the <link id="TStrings.Strings"/> property.</short>
- <descr>
- <p>
- <var>Get</var> is the abstract read handler for the <link id="TStrings.Strings"/>
- property. This is an abstract method, hence it is not implemented in
- <var>TStrings</var>.
- </p>
- <p>
- Descendent classes, such as <link id="TStringList"/> must override this
- method and implement a routine that retrieves the <var>Index</var>-th string
- in the list. <var>Index</var> should have a value between <var>0</var> and
- <var>Count-1</var>, in all other cases an error should be raised using
- <link id="TStrings.Error"/>.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Strings"/>
- <link id="TStrings.Put"/>
- <link id="TStrings.GetObject"/>
- </seealso>
- </element>
- <element name="TStrings.GetCapacity"> <!-- Function -->
- <short>Abstract Read handler for the <link id="TStrings.Capacity"/> property.</short>
- <descr>
- <p>
- <var>GetCapacity</var> is the read handler for the <link
- id="TStrings.Capacity"/> property. The implementation in <var>TStrings</var>
- will return 0.
- </p>
- <p>Descendent classes can override this method. It should return the
- current number of strings that can be held by the stringlist before
- it attempts to expand it's storage space.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Capacity"/>
- <link id="TStrings.SetCapacity"/>
- </seealso>
- </element>
- <element name="TStrings.GetCount"> <!-- Function -->
- <short>Abstract read handler for the <link id="TStrings.Count"/> property.</short>
- <descr>
- <p>
- <var>GetCount</var> is the abstract read handler for the <link
- id="TStrings.Count"/> property. This is an abstract method, hence it is not implemented in
- <var>TStrings</var>.
- </p>
- <p>
- Descendent classes must override this method. It should return the
- current number of strings in the list. (empty strings included).
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Count"/>
- </seealso>
- </element>
- <element name="TStrings.GetObject"> <!-- Function -->
- <short>Abstract read handler for the <link id="TStrings.Objects"/> property.</short>
- <descr>
- <p>
- <var>GetObject</var> is the read handler for the <link
- id="TStrings.Objects"/> property. The <var>TStrings</var> implementation of
- this method ignores the <var>Index</var> argument and simply
- returns <var>Nil</var>.
- </p>
- <p>
- Descendent classes that should support object storage should override this
- method and return the object associated to the <var>Index</var>-th string
- in the list. <var>Index</var> should have a value between <var>0</var> and
- <var>Count-1</var>. If <var>Index</var> is outside the allowed range, an
- error should be raised using <link id="TStrings.Error"/>.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Objects"/>
- <link id="TStrings.PutObject"/>
- <link id="TStrings.Get"/>
- </seealso>
- </element>
- <element name="TStrings.GetTextStr"> <!-- Function -->
- <short>Read handler for the <link id="TStrings.Text"/> property.</short>
- <descr>
- <p><var>GetTextStr</var> is the read handler for the <link id="TStrings.Text"/>
- property. It simply concatenates all strings in the list with a linefeed between
- them, and returns the resulting string.
- </p>
- <p>
- Descendent classes may override this method to implement an efficienter
- algorithm which is more suitable to their storage method.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Text"/>
- <link id="TStrings.SetTextStr"/>
- </seealso>
- </element>
- <element name="TStrings.Put"> <!-- Procedure -->
- <short>Write handler for the <link id="TStrings.Strings"/> property.</short>
- <descr>
- <p>
- <var>Put</var> is the write handler for the <link id="TStrings.Strings"/>
- property. It does this by saving the object associated to the
- <var>Index</var>-th string, deleting the <var>Index</var>-th string, and
- inserting <var>S</var> and the saved object at position <var>Index</var>
- with <link id="TStrings.InsertObject"/>
- </p>
- <p>
- Descendent classes may wish to override <var>Put</var> to implement a more
- efficient method.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Strings"/>
- <link id="TStrings.Get"/>
- <link id="TStrings.PutObject"/>
- </seealso>
- </element>
- <element name="TStrings.PutObject"> <!-- Procedure -->
- <short>Write handler for the <link id="TStrings.Objects"/> property.</short>
- <descr>
- <p>
- <var>PutObject</var> is the write handler for the <link
- id="TStrings.Objects"/> property. The <var>TStrings</var> implementation of
- <var>PutObject</var> does nothing.
- </p>
- <p>
- Descendent objects that should support Object storage must override this
- method to store the <var>AObject</var> so that it is associated with the
- <var>Index</var>-th string in the list. <var>Index</var> should have a value
- between <var>0</var> and <var>Count-1</var>. If the value of
- <var>Index</var> is out of range, an error should be raised using <link
- id="TStrings.Error"/>.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Objects"/>
- <link id="TStrings.GetObject"/>
- <link id="TStrings.Put"/>
- </seealso>
- </element>
- <element name="TStrings.SetCapacity"> <!-- Procedure -->
- <short>Write handler for the <link id="TStrings.Capacity"/> property.</short>
- <descr>
- <p>
- <var>SetCapacity</var> is the write handler for the <link
- id="TStrings.Capacity"/> property. The <var>TStrings</var> implementation
- of <var>SetCapacity</var> does nothing.
- </p>
- <p>
- Descendent classes can override this method to set the current capacity of
- the stringlist to <var>NewCapacity</var>. The capacity is the number of strings the list can hold
- before it tries to expand its storage space. <var>NewCapacity</var> should
- be no less than <var>Count</var>.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Capacity"/>
- <link id="TStrings.GetCapacity"/>
- </seealso>
- </element>
- <element name="TStrings.SetTextStr"> <!-- Procedure -->
- <short>Write handler for the <link id="TStrings.Text"/> property.</short>
- <descr>
- <p>
- <var>SetTextStr</var> is the write method for the <link id="TStrings.Text"/>
- property. It does nothing other than calling <link id="TStrings.SetText"/>.
- </p>
- <p>
- Descendent classes may override this method to implement a more efficient
- algoritm that fits their storage method better.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Text"/>
- <link id="TStrings.GetTextStr"/>
- </seealso>
- </element>
- <element name="TStrings.SetUpdateState"> <!-- Procedure -->
- <short>Sets the update state. </short>
- <descr>
- <p>
- <var>SetUpdateState</var> sets the update state to <var>Updating</var>. The
- <var>TStrings</var> implementation of <var>SetUpdateState</var> does
- nothing.
- </p>
- <p>
- Descendent objects may override this method to implement optimizations. If
- <var>Updating</var> is <var>True</var> then the list of strings is about to
- be updated (possibly many times). If it is <var>False</var> no more updates
- will take place till the next <var>SetUpdateState</var> call.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.BeginUpdate"/>
- <link id="TStrings.EndUpdate"/>
- </seealso>
- </element>
- <element name="TStrings.Destroy"> <!-- Destructor -->
- <short>Frees all strings and objects, and removes the list from memory.</short>
- <descr>
- <var>Destroy</var> is the destructor of <var>TStrings</var> it does nothing
- except calling the inherited destructor.
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStrings.Add"> <!-- Function -->
- <short>Add a string to the list</short>
- <descr>
- <var>Add</var> adds <var>S</var> at the end of the list and returns the
- index of <var>S</var> in the list (which should equal <link id="Tstrings.Count"/>
- </descr>
- <seealso>
- <link id="TStrings.Items"/>
- <link id="TStrings.AddObject"/>"
- <link id="TStrings.Insert"/>
- <link id="TStrings.Delete"/>
- <link id="TStrings.Strings"/>
- <link id="TStrings.Count"/>
- </seealso>
- </element>
- <element name="TStrings.AddObject"> <!-- Function -->
- <short>Add a string and associated object to the list.</short>
- <descr>
- <p>
- <var>AddObject</var> adds <var>S</var> to the list of strings, and
- associates <var>AObject</var> with it. It returns the index of <var>S</var>.
- </p>
- <remark>
- An object added to the list is not automatically destroyed by the list of
- the list is destroyed or the string it is associated with is deleted. It is
- the responsibility of the application to destroy any objects associated with
- strings.
- </remark>
- </descr>
- <seealso>
- <link id="TStrings.Add"/>
- <link id="Tstrings.Items"/>
- <link id="TStrings.Objects"/>
- <link id="Tstrings.InsertObject"/>
- </seealso>
- </element>
- <element name="TStrings.Append"> <!-- Procedure -->
- <short>Add a string to the list.</short>
- <descr>
- <var>Append</var> does the same as <link id="TStrings.Add"/>, only it does
- not return the index of the inserted string.
- </descr>
- <seealso>
- <link id="TStrings.Add"/>
- </seealso>
- </element>
- <element name="TStrings.AddStrings"> <!-- Procedure -->
- <short>Add contents of another stringlist to this list.</short>
- <descr>
- <var>AddStrings</var> adds the contents of <var>TheStrings</var> to the
- stringlist. Any associated objects are added as well.
- </descr>
- <seealso>
- <link id="TStrings.Add"/>
- <link id="TStrings.Assign"/>
- </seealso>
- </element>
- <element name="TStrings.Assign"> <!-- Procedure -->
- <short>Assign the contents of another stringlist to this one.</short>
- <descr>
- <var>Assign</var> replaces the contents of the stringlist with the contents
- of <var>Source</var> if <var>Source</var> is also of type
- <var>TStrings</var>. Any associated objects are copied as well.
- </descr>
- <seealso>
- <link id="TStrings.Add"/>
- <link id="TStrings.AddStrings"/>
- <link id="TPersistent.Assign"/>
- </seealso>
- </element>
- <element name="TStrings.BeginUpdate"> <!-- Procedure -->
- <short>Mark the beginning of an update batch.</short>
- <descr>
- <p>
- <var>BeginUpdate</var> increases the update count by one. It is advisable to
- call <var>BeginUpdate</var> before lengthy operations on the stringlist. At
- the end of these operation, <link id="TStrings.EndUpdate"/> should be
- called to mark the end of the operation. Descendent classes may use this
- information to perform optmizations. e.g. updating the screen only once
- after many strings were added to the list.
- </p>
- <p>
- All <var>TStrings</var> methods that modify the string list call
- <var>BeginUpdate</var> before the actual operation, and call
- <var>endUpdate</var> when the operation is finished. Descendent classes
- should also call these methods when modifying the string list.
- </p>
- <remark>
- <p>
- Always put the corresponding call to <link id="TStrings.EndUpdate"/> in the
- context of a <var>Finally</var> block, to ensure that the update count is
- always descreased at the end of the operation, even if an exception
- occurred:
- </p>
- <code>
- With MyStrings do
- try
- BeginUpdate;
- // Some lengthy operation.
- Finally
- EndUpdate
- end;
- </code>
- </remark>
- </descr>
- <seealso>
- <link id="TStrings.EndUpdate"/>
- </seealso>
- </element>
- <element name="TStrings.Clear"> <!-- Procedure -->
- <short>Removes all strings and associated objects from the list.</short>
- <descr>
- <p>
- <var>Clear</var> will remove all strings and their associated objects from
- the list. After a call to clear, <link id="TStrings.Count"/> is zero.
- </p>
- <p>
- Since it is an abstract method, <var>TStrings</var> itself does not implement
- <var>Clear</var>. Descendent classes such as <link
- id="TStringList"/> implement this method.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Items"/>
- <link id="TStrings.Delete"/>
- <link id="TStrings.Count"/>"
- </seealso>
- </element>
- <element name="TStrings.Delete"> <!-- Procedure -->
- <short>Delete a string from the list.</short>
- <descr>
- <p>
- <var>Delete</var> deletes the string at position <var>Index</var> from the
- list. The associated object is also removed from the list, but not
- destroyed. <var>Index</var> is zero-based, and should be in the range
- <var>0</var> to <var>Count-1</var>.
- </p>
- <p>
- Since it is an abstract method, <var>TStrings</var> itself does not implement
- <var>Delete</var>. Descendent classes such as <link
- id="TStringList"/> implement this method.
- </p>
- </descr>
- <errors>
- If <var>Index</var> is not in the allowed range, an <link
- id="EStringListError"/> is raised.
- </errors>
- <seealso>
- <link id="TStrings.Insert"/>
- <link id="TStrings.Items"/>
- <link id="TStrings.Clear"/>
- </seealso>
- </element>
- <element name="TStrings.EndUpdate"> <!-- Procedure -->
- <short>Mark the end of an update batch.</short>
- <descr>
- <p>
- <var>EndUpdate</var> should be called at the end of a lengthy operation on
- the stringlist, but only if there was a call to <var>BeginUpdate</var> before
- the operation was started. It is best to put the call to
- <var>EndUpdate</var> in the context of a <var>Finally</var> block, so it
- will be called even if an exception occurs.
- </p>
- <p>
- For more information, see <link id="TStrings.BeginUpdate"/>.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.BeginUpdate"/>
- </seealso>
- </element>
- <element name="TStrings.Equals"> <!-- Function -->
- <short>Compares the contents of two stringlists.</short>
- <descr>
- <p>
- <var>Equals</var> compares the contents of the stringlist with the contents
- of <var>TheStrings</var>. If the contents match, i.e. the stringlist contain
- an equal amount of strings, and all strings match, then <var>True</var> is
- returned. If the number of strings in the lists is is unequal, or they
- contain one or more different strings, <var>False</var> is returned.
- </p>
- <remark>
- <ol>
- <li>The strings are compared case-insensitively.</li>
- <li>The associated objects are not compared</li>
- </ol>
- </remark>
- </descr>
- <seealso>
- <link id="Tstrings.Items"/>
- <link id="TStrings.Count"/>
- <link id="TStrings.Assign"/>
- </seealso>
- </element>
- <element name="TStrings.Exchange"> <!-- Procedure -->
- <short>Exchanges two strings in the list.</short>
- <descr>
- <p>
- <var>Exchange</var> exchanges the strings at positions <var>Index1</var>
- and <var>Index2</var>. The associated objects are also exchanged.
- </p>
- <p>
- Both indexes must be in the range of valid indexes, i.e. must have a
- value between <var>0</var> and <var>Count-1</var>.
- </p>
- </descr>
- <errors>
- If either <var>Index1</var> or <var>Index2</var> is not in the range of valid
- indexes, an <link id="EStringListError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStrings.Move"/>
- <link id="TStrings.Strings"/>
- <link id="TStrings.Count"/>
- </seealso>
- </element>
- <element name="TStrings.GetText"> <!-- Function -->
- <short>Returns the contents as a PChar</short>
- <descr>
- <p>
- <var>GetText</var> allocates a memory buffer and compies the contents of the
- stringlist to this buffer as a series of strings, separated by an
- end-of-line marker. The buffer is zero terminated.
- </p>
- <remark>
- The caller is responsible for freeing the returned memory buffer.
- </remark>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStrings.IndexOf"> <!-- Function -->
- <short>Find a string in the list and return its position.</short>
- <descr>
- <p>
- <var>IndexOf</var> searches the list for <var>S</var>. The search is
- case-insensitive. If a matching entry is found, its position is returned.
- if no matching string is found, <var>-1</var> is returned.
- </p>
- <remark>
- <ol>
- <li>Only the first occurrence of the string is returned.</li>
- <li>The returned position is zero-based, i.e. 0 indicates the first string
- in the list.</li>
- </ol>
- </remark>
- </descr>
- <seealso>
- <link id="TStrings.IndexOfObject"/>
- <link id="TStrings.IndexOfName"/>
- <link id="TStrings.Strings"/>
- </seealso>
- </element>
- <element name="TStrings.IndexOfName"> <!-- Function -->
- <short>Finds the index of a name in the name-value pairs.</short>
- <descr>
- <p>
- <var>IndexOfName</var> searches in the list of strings for a name-value pair
- with name part <var>Name</var>. If such a pair is found, it returns the
- index of the pair in the stringlist. If no such pair is found, the function
- returns <var>-1</var>. The search is done case-insensitive.
- </p>
- <remark>
- <ol>
- <li>Only the first occurrence of a matching name-value pair is returned.</li>
- <li>The returned position is zero-based, i.e. 0 indicates the first string
- in the list.</li>
- </ol>
- </remark>
- </descr>
- <seealso>
- <link id="TStrings.IndexOf"/>
- <link id="TStrings.IndexOfObject"/>
- <link id="TStrings.Strings"/>
- </seealso>
- </element>
- <element name="TStrings.IndexOfObject"> <!-- Function -->
- <short>Finds an object in the list and returns its index.</short>
- <descr>
- <p>
- <var>IndexOfObject</var> searchs through the list of strings till it find a
- string associated with <var>AObject</var>, and returns the index of this
- string. If no such string is found, <var>-1</var> is returned.
- </p>
- <remark>
- <ol>
- <li>Only the first occurrence of a string with associated object
- <var>AObject</var> is returned; if more strings in the list can be
- associated with <var>AObject</var>, they will not be found by this routine.</li>
- <li>The returned position is zero-based, i.e. 0 indicates the first string
- in the list.</li>
- </ol>
- </remark>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStrings.Insert"> <!-- Procedure -->
- <short>Insert a string in the list.</short>
- <descr>
- <p>
- <var>Insert</var> inserts the string <var>S</var> at position
- <var>Index</var> in the list. <var>Index</var> is a zero-based position,
- and can have values from <var>0</var> to <var>Count</var>. If
- <var>Index</var> equals <var>Count</var> then the string is appended to the
- list.
- </p>
- <remark>
- <ol>
- <li>All methods that add strings to the list use <var>Insert</var> to add
- a string to the list.</li>
- <li>If the string has an associated object, use <link
- id="TStrings.InsertObject"/> instead.</li>
- </ol>
- </remark>
- </descr>
- <errors>
- If <var>Index</var> is less than zero or larger than <var>Count</var> then
- an <link id="EStringListError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStrings.Add"/>
- <link id="TStrings.InsertObject"/>
- <link id="TStrings.Append"/>
- <link id="TStrings.Delete"/>
- </seealso>
- </element>
- <element name="TStrings.InsertObject"> <!-- Procedure -->
- <short>Insert a string and associated object in the list.</short>
- <descr>
- <p>
- <var>InsertObject</var> inserts the string <var>S</var> and its associated
- object<var>AObject</var> at position <var>Index</var> in the list.
- <var>Index</var> is a zero-based position, and can have values from
- <var>0</var> to <var>Count</var>. If <var>Index</var> equals
- <var>Count</var> then the string is appended to the list.
- </p>
- </descr>
- <errors>
- If <var>Index</var> is less than zero or larger than <var>Count</var> then
- an <link id="EStringListError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStrings.Insert"/>
- <link id="TStrings.AddObject"/>
- <link id="TStrings.Append"/>
- <link id="TStrings.Delete"/>
- </seealso>
- </element>
- <element name="TStrings.LoadFromFile"> <!-- Procedure -->
- <short>Load the contents of a file as a series of strings.</short>
- <descr>
- <p>
- <var>LoadFromFile</var> loads the contents of a file into the stringlist.
- Each line in the file (as marked by the end-of-line marker of the
- particular OS the application runs on) becomes one string in the stringlist.
- This action replaces
- the contents of the stringlist, it does not append the strings to the
- current content.
- </p>
- <p>
- <var>LoadFromFile</var> simply creates a <link id="TFileStream">file
- stream</link> with the given filename, and then executes
- <link id="TStrings.LoadfromStream"/>; after that the file stream object
- is destroyed again.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.LoadFromStream"/>
- <link id="TStrings.SaveToFile"/>
- <link id="Tstrings.SaveToStream"/>
- </seealso>
- </element>
- <element name="TStrings.LoadFromStream"> <!-- Procedure -->
- <short>Load the contents of a stream as a series of strings.</short>
- <descr>
- <var>LoadFromStream</var> loads the contents of <var>Stream</var>
- into the stringlist.
- Each line in the stream (as marked by the end-of-line marker of the
- particular OS the application runs on) becomes one string in the stringlist.
- This action replaces
- the contents of the stringlist, it does not append the strings to the
- current content.
- </descr>
- <seealso>
- <link id="TStrings.LoadFromFile"/>
- <link id="TStrings.SaveToFile"/>
- <link id="Tstrings.SaveToStream"/>
- </seealso>
- </element>
- <element name="TStrings.Move"> <!-- Procedure -->
- <short>Move a string from one place in the list to another.</short>
- <descr>
- <p>
- <var>Move</var> moves the string at position <var>CurIndex</var> so
- it has position <var>NewIndex</var> after the move operation. The object
- associated to the string is also moved. <var>CurIndex</var> and
- <var>NewIndex</var> should be in the range of <var>0</var> to
- <var>Count-1</var>.
- </p>
- <remark>
- <p>
- <var>NewIndex</var> is <em>not</em> the position in the stringlist before
- the move operation starts. The move operation
- </p>
- <ol>
- <li> removes the string from position <var>CurIndex</var></li>
- <li> inserts the string at position <var>NewIndex</var></li>
- </ol>
- <p>
- This may not lead to the desired result if <var>NewIndex</var> is bigger
- than <var>CurIndex</var>. Consider the following example:
- </p>
- <code>
- With MyStrings do
- begin
- Clear;
- Add('String 0');
- Add('String 1');
- Add('String 2');
- Add('String 3');
- Add('String 4');
- Move(1,3);
- end;
- </code>
- <p>
- After the <var>Move</var> operation has completed, 'String 1' will be between 'String 3'
- and 'String 4'.
- </p>
- </remark>
- </descr>
- <errors>
- If either <var>CurIndex</var> or <var>NewIndex</var> is outside the allowed
- range, an <link id="EStringListError"/> is raised.
- </errors>
- <seealso>
- <link id="TStrings.Exchange"/>
- </seealso>
- </element>
- <element name="TStrings.SaveToFile"> <!-- Procedure -->
- <short>Save the contents of the list to a file.</short>
- <descr>
- <p>
- <var>SaveToFile</var> saves the contents of the stringlist to the file with
- name <var>FileName</var>. It writes the strings to the file, separated by
- end-of-line markers, so each line in the file will contain 1 string from the
- stringlist.
- </p>
- <p>
- <var>SaveToFile</var> creates a <link id="TFileStream">file stream</link>
- with name <var>FileName</var>, calls <link id="TStrings.SaveToStream"/>
- and then destroys the file stream object.
- </p>
- </descr>
- <errors>
- An <link id="EStreamError"/> exception can be raised if the file <var>FileName</var> cannot be opened,
- or if it cannot be written to.
- </errors>
- <seealso>
- <link id="TStrings.SaveToStream"/>
- <link id="Tstrings.LoadFromStream"/>
- <link id="TStrings.LoadFromFile"/>
- </seealso>
- </element>
- <element name="TStrings.SaveToStream"> <!-- Procedure -->
- <short>Save the contents of the string to a stream.</short>
- <descr>
- <p>
- <var>SaveToStream</var> saves the contents of the stringlist to
- <var>Stream</var>. It writes the strings to the stream, separated by
- end-of-line markers, so each 'line' in the stream will contain 1 string from the
- stringlist.
- </p>
- </descr>
- <errors>
- An <link id="EStreamError"/> exception can be raised if the stream cannot be written to.
- </errors>
- <seealso>
- <link id="TStrings.SaveToFile"/>
- <link id="Tstrings.LoadFromStream"/>
- <link id="TStrings.LoadFromFile"/>
- </seealso>
- </element>
- <element name="TStrings.SetText"> <!-- Procedure -->
- <short>Set the contents of the list from a PChar.</short>
- <descr>
- <var>SetText</var> parses the contents of <var>TheText</var> and fills the
- stringlist based on the contents. It regards <var>TheText</var> as a series
- of strings, separated by end-of-line markers. Each of these strings is added
- to the stringlist.
- </descr>
- <seealso>
- <link id="TStrings.Text"/>
- </seealso>
- </element>
- <element name="TStrings.Capacity"> <!-- Property -->
- <short>Capacity of the list, i.e. number of strings that the list can
- currently hold before it tries to expand.</short>
- <descr>
- <p>
- <var>Capacity</var> is the number of strings that the list can hold before
- it tries to allocate more memory.
- </p>
- <p><var>TStrings</var> returns <link id="TStrings.Count"/> when read. Trying
- to set the capacity has no effect. Descendent classes such as
- <link id="TStringlist"/> can override this property such that it actually
- sets the new capacity.
- </p>
- </descr>
- <seealso>
- <link id="TStringList"/>
- <link id="TStrings.Count"/>
- </seealso>
- </element>
- <element name="TStrings.CommaText"> <!-- Property -->
- <short>Contents of the list as a comma-separated string.</short>
- <descr>
- <p>
- <var>CommaText</var> represents the stringlist as a single string,
- consisting of a comma-separated concatenation of the strings in the list.
- If one of the strings contains spaces, comma's or quotes it will be enclosed by
- double quotes. Any double quotes in a string will be doubled. For instance
- the following strings:
- </p>
- <pre>
- Comma,string
- Quote"string
- Space string
- NormalSttring
- </pre>
- <p>
- is converted to
- </p>
- <code>
- "Comma,string","Quote""String","Space string",NormalString
- </code>
- <p>
- Conversely, when setting the <var>CommaText</var> property, the text will be parsed
- according to the rules outlined above, and the strings will be set
- accordingly. Note that spaces will in this context be regarded as string
- separators, unless the string as a whole is contained in double quotes.
- Spaces that occur next to a delimiter will be ignored.
- The following string:
- </p>
- <pre>
- "Comma,string" , "Quote""String",Space string,, NormalString
- </pre>
- <p>
- Will be converted to
- </p>
- <pre>
- Comma,String
- Quote"String
- Space
- String
- NormalString
- </pre>
- </descr>
- <seealso>
- <link id="TStrings.Text"/>
- <link id="TStrings.SetText"/>
- </seealso>
- </element>
- <element name="TStrings.Count"> <!-- Property -->
- <short>Number of strings in the list.</short>
- <descr>
- <p>
- <var>Count</var> is the current number of strings in the list.
- <var>TStrings</var> does not implement this property; descendent classes
- should override the property read handler to return the correct value.
- </p>
- <p>
- Strings in the list are always uniquely identified by their
- <var>Index</var>; the index of a string is zero-based, i.e. it's supported
- range is <var>0</var> to <var>Count-1</var>. trying to access a string with
- an index larger than or equal to <var>Count</var> will result in an error.
- Code that iterates over the list in a stringlist should always take into
- account the zero-based character of the list index.
- </p>
- </descr>
- <seealso>
- <link id="TStrings.Strings"/>
- <link id="TStrings.Objects"/>
- <link id="TStrings.Capacity"/>
- </seealso>
- </element>
- <element name="TStrings.Names"> <!-- Property -->
- <short>Name parts of the name-value pairs in the list.</short>
- <descr>
- <p>
- <var>Names</var> provides indexed access to the names of teh name-value
- pairs in the list. It returns the name part of the <var>Index</var>-th
- string in the list.
- </p>
- <remark>
- The index is not an index based on the number of name-value pairs in the
- list. It is the name part of the name-value pair a string <var>Index</var>
- in the list. If the string at position <var>Index</var> is not a name-value
- pair (i.e. does not contain the equal sign (=)), then an empty name is
- returned.
- </remark>
- </descr>
- <seealso>
- <link id="TStrings.Values"/>
- <link id="TStrings.IndexOfName"/>
- </seealso>
- </element>
- <element name="TStrings.Objects"> <!-- Property -->
- <short>Indexed access to the objects associated with the strings in the
- list.</short>
- <descr>
- <p>
- <var>Objects</var> provides indexed access to the objects associated to
- the strings in the list. <var>Index</var> is a zero-based index and
- must be in the range of <var>0</var> to <var>Count-1</var>.
- </p>
- <p>
- Setting the <var>objects</var> property will not free the previously associated object,
- if there was one. The caller is repsonsible for freeing the object that
- was previously associated to the string.
- </p>
- <p>
- <var>TStrings</var> does not implement any storage for objects. Reading the
- <var>Objects</var> property will always return <var>Nil</var>, Setting the
- property will have no effect. It is the responsability of the descendent
- classes to provide storage for the associated objects.
- </p>
- </descr>
- <errors>
- If an <var>Index</var> outside the valid range is specified, an <link
- id="EStringListError"/> exception will be raised.
- </errors>
- <seealso>
- <link id="TStrings.Strings"/>
- <link id="TStrings.IndexOfObject"/>
- <link id="TStrings.Names"/>
- <link id="TStrings.Values"/>
- </seealso>
- </element>
- <element name="TStrings.Values"> <!-- Property -->
- <short>Value parts of the name-value pairs in the list.</short>
- <descr>
- <p>
- <var>Values</var> represents the value parts of the name-value pairs in the
- list.
- </p>
- <p>
- When reading this property, if there is a name-value pair in the list
- of strings that has name part <var>Name</var>, then the corresponding value
- is returned. If there is no such pair, an empty string is returned.
- </p>
- <p>
- When writing this value, first it is checked whether there exists a
- name-value pair in the list with name <var>Name</var>. If such a pair is
- found, it's value part is overwritten with the specified value. If no
- such pair is found, a new name-value pair is added with the specified
- <var>Name</var> and value.
- </p>
- <remark>
- <ol>
- <li>Names are compared case-insensitively.</li>
- <li>Any character, including whitespace, up till the first equal (=) sign
- in a string is considered part of the name.</li>
- </ol>
- </remark>
- </descr>
- <seealso>
- <link id="TStrings.Names"/>
- <link id="TStrings.Strings"/>
- <link id="TStrings.Objects"/>
- </seealso>
- </element>
- <element name="TStrings.Strings"> <!-- Property -->
- <short>Indexed access to teh strings in the list.</short>
- <descr>
- <p>
- <var>Strings</var> is the default property of <var>TStrings</var>. It
- provides indexed read-write access to the list of strings. Reading it will
- return the string at position <var>Index</var> in the list. Writing it will
- set the string at position <var>Index</var>.
- </p>
- <p>
- <var>Index</var> is the position of the string in the list. It is
- zero-based, i.e. valued values range from <var>0</var> (the first string in
- the list) till <var>Count-1</var> (the last string in the list).
- When browsing through the strings in the list, this fact must be taken into
- account.
- </p>
- <p>
- To access the objects associated with the strings in the list, use the <link
- id="TStrings.Objects"/> property. The name parts of name-value pairs can be
- accessed with the <link id="TStrings.Names"/> property, and the values can
- be set or read through the <link id="TStrings.Values"/> property.
- </p>
- <p>
- Searching through the list can be done using the <link
- id="TStrings.IndexOf"/> method.
- </p>
- </descr>
- <errors>
- If <var>Index</var> is outside the allowed range, an <link
- id="EStringListError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStrings.Count"/>
- <link id="TStrings.Objects"/>
- <link id="TStrings.Names"/>
- <link id="TStrings.Values"/>
- <link id="TStrings.IndexOf"/>
- </seealso>
- </element>
- <element name="TStrings.Text"> <!-- Property -->
- <short>Contents of the list as one big string.</short>
- <descr>
- <p>
- <var>Text</var> returns, when read, the contents of the stringlist as one
- big string consisting of all strings in the list, separated by an
- end-of-line marker. When this property is set, the string will be cut into
- smaller strings, based on the positions of end-of-line markers in the
- string. Any previous content of the stringlist will be lost.
- </p>
- <remark>
- If any of the strings in the list contains an end-of-line marker, then the
- resulting string will appear to contain more strings than actually present
- in the list. To avoid this ambiguity, use the <link id="TStrings.CommaText"/>
- property instead.
- </remark>
- </descr>
- <seealso>
- <link id="TStrings.Strings"/>
- <link id="TStrings.Count"/>
- <link id="TStrings.CommaText"/>
- </seealso>
- </element>
- <element name="TStrings.StringsAdapter"> <!-- Property -->
- <short>Not implemented in Free Pascal.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TDuplicates"> <!-- Enumeration type -->
- <short>Type to describe what to do with duplicate values in a <link
- id="TStringlist"/>.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TDuplicates.dupIgnore"> <!-- Enumeration value -->
- <short>Duplicate values will not be be added to the list, but no error will
- be triggered.</short>
- <seealso>
- </seealso>
- </element>
- <element name="TDuplicates.dupAccept"> <!-- Enumeration value -->
- <short>Duplicate values can be added to the list.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TDuplicates.dupError"> <!-- Enumeration value -->
- <short>If an attempt is made to add a duplicate value to the list, an
- <link id="EStringListError"/> exception is raised.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="PStringItem"> <!-- Pointer type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringItem"> <!-- Record type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringItem.FString"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringItem.FObject"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="PStringItemList"> <!-- Pointer type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringItemList"> <!-- Array type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TStringList
- *********************************************************************
- -->
- <element name="TStringList"> <!-- Class -->
- <short>Standard implementation of the <link id="TStrings"/> class.</short>
- <descr>
- <p>
- <var>TStringList</var> is a descendent class of <link id="TStrings"/> that
- implements all of the abstract methods introduced there. It also introduces
- some additional methods:
- </p>
- <ul>
- <li>Sort the list, or keep the list sorted at all times</li>
- <li>Special handling of duplicates in sorted lists</li>
- <li>Notification of changes in the list</li>
- </ul>
- </descr>
- <seealso>
- <link id="TStrings"/>
- <link id="TStrings.Duplicates"/>
- <link id="TStrings.Sorted"/>
- </seealso>
- </element>
- <element name="TStringList.Changed"> <!-- Procedure -->
- <short>Called when the list of strings was modified.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.Changing"> <!-- Procedure -->
- <short>Called when the list is changing.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.Get"> <!-- Function -->
- <short>Overrides the standard read handler for the <link id="TStrings.Strings"/> property.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.GetCapacity"> <!-- Function -->
- <short>Overrides the standard read handler for the <link
- id="TStrings.Capacity"/> property.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.GetCount"> <!-- Function -->
- <short>Overrides the standard read handler for the <link
- id="TStrings.Count"/> property.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.GetObject"> <!-- Function -->
- <short>Overrides the standard read handler for the <link
- id="TStrings.Objects"/> property.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.Put"> <!-- Procedure -->
- <short>Overrides the standard write handler for the <link
- id="TStrings.Strings"/> property.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.PutObject"> <!-- Procedure -->
- <short>Overrides the standard write handler for the <link
- id="TStrings.Objects"/> property.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.SetCapacity"> <!-- Procedure -->
- <short>Overrides the standard write handler for the <link
- id="TStrings.Capacity"/> property.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.SetUpdateState"> <!-- Procedure -->
- <short>Overrides the standard <link id="TStrings.SetUpdateState"/>
- call.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.Destroy"> <!-- Destructor -->
- <short>Destroys the stringlist.</short>
- <descr>
- <p>
- <var>Destroy</var> clears the stringlist, release all memory allocated for
- the storage of the strings, and then calls the inherited destroy method.
- </p>
- <remark>
- Any objects associated to strings in the list will <em>not</em> be
- destroyed; it is the responsability of the caller to destroy all objects
- associated with strings in the list.
- </remark>
- </descr>
- </element>
- <element name="TStringList.Add"> <!-- Function -->
- <short>Implements the <link id="TStrings.Add"/> function.</short>
- <descr>
- <p>
- <var>Add</var> will add <var>S</var> to the list. If the list is sorted and
- the string <var>S</var> is already present in the list and
- <link id="TStringList.Duplicates"/> is <var>dupError</var> then an <link
- id="EStringListError"/> exception is raised. If <var>Duplicates</var> is
- set to <var>dupIgnore</var> then the return value is underfined.
- </p>
- <p>
- If the list is sorted, new strings will not necessarily be added to the end
- of the list, rather they will be inserted at their alphabetical position.
- </p>
- </descr>
- <errors>
- If the list is sorted and the string <var>S</var> is already present in the list and
- <link id="TStringList.Duplicates"/> is <var>dupError</var> then an <link
- id="EStringListError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStringList.Insert"/>
- <link id="TStringList.Duplicates"/>
- </seealso>
- </element>
- <element name="TStringList.Clear"> <!-- Procedure -->
- <short>Implements the <link id="TStrings.Add"/> function.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.Delete"> <!-- Procedure -->
- <short>Implements the <link id="TStrings.Delete"/> function.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.Exchange"> <!-- Procedure -->
- <short>Implements the <link id="TStrings.Exchange"/> function.</short>
- <descr>
- <p>
- <var>Exchange</var> will exchange two items in the list as described in
- <link id="TStrings.Exchange"/>.
- </p>
- <remark>
- <var>Exchange</var> will not check whether the list os sorted or not;
- if <var>Exchange</var> is called on a sorted list and the strings are not
- identical, the sort order of the list will be destroyed.
- </remark>
- </descr>
- <seealso>
- <link id="TStringList.Sorted"/>
- <link id="TStrings.Exchange"/>
- </seealso>
- </element>
- <element name="TStringList.Find"> <!-- Function -->
- <short>Locates the index for a given string in sorted lists.</short>
- <descr>
- <p>
- <var>Find</var> returns <var>True</var> if the string <var>S</var> is present in the
- list. Upon exit, the <var>Index</var> parameter will contain the position of
- the string in the list. If the string is not found, the function will return
- <var>False</var> and <var>Index</var> will contain the position where the
- string will be inserted if it is added to the list.
- </p>
- <remark>
- <ol>
- <li> Use this method only on sorted lists. For unsorted lists, use <link
- id="TStringList.IndexOf"/> instead.</li>
- <li>Find uses a binary search method to locate the string</li>
- </ol>
- </remark>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.IndexOf"> <!-- Function -->
- <short>Overrides the <link id="TStrings.IndexOf"/> property.</short>
- <descr>
- <var>IndexOf</var> overrides the ancestor method <link
- id="TStrings.indexOf"/>. It tries to optimize the
- search by executing a binary search if the list is sorted. The function
- returns the position of <var>S</var> if it is found in the list, or -1 if
- the string is not found in the list.
- </descr>
- <seealso>
- <link id="TStrings.IndexOf"/>
- <link id="TStringList.Find"/>
- </seealso>
- </element>
- <element name="TStringList.Insert"> <!-- Procedure -->
- <short>Overrides the <link id="TStrings.Insert"/> method.</short>
- <descr>
- <var>Insert</var> will insert the string <var>S</var> at position
- <var>Index</var> in the list. If the list is sorted, an <link
- id="EStringListError"/> exception will be raised instead. <var>Index</var>
- is a zero-based position.
- </descr>
- <errors>
- If <var>Index</var> contains an invalid value (less than zero or larger than
- <var>Count</var>, or the list is sorted, an <link id="EStringListError"/>
- exception will be raised.
- </errors>
- <seealso>
- <link id="TStringList.Add"/>
- <link id="TStrings.Insert"/>
- <link id="TStringList.InsertObject"/>
- </seealso>
- </element>
- <element name="TStringList.Sort"> <!-- Procedure -->
- <short>Sorts the strings in the list.</short>
- <descr>
- <var>Sort</var> will sort the strings in the list using the quicksort
- algorithm. If the list has its <link id="TStringList.Sorted"/> property set
- to <var>True</var> then nothing will be done.
- </descr>
- <seealso>
- <link id="TStringList.Sorted"/>
- </seealso>
- </element>
- <element name="TStringList.Duplicates"> <!-- Property -->
- <short>Describes the behaviour of a sorted list with respect to duplicate
- strings.</short>
- <descr>
- <p>
- <var>Duplicates</var> describes what to do in case a duplicate value is
- added to the list:
- </p>
- <table>
- <tr><td>dupIgnore</td><td><printshort id="TDuplicates.dupIgnore"/></td></tr>
- <tr><td>dupError</td><td><printshort id="TDuplicates.dupError"/></td></tr>
- <tr><td>dupAccept</td><td><printshort id="TDuplicates.dupAccept"/></td></tr>
- </table>
- <p>
- If the stringlist is not sorted, the <var>Duplicates</var> setting is
- ignored.
- </p>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringList.Sorted"> <!-- Property -->
- <short>Determines whether the list is sorted or not.</short>
- <descr>
- <p>
- <var>Sorted</var> can be set to <var>True</var> in order to cause the list
- of strings to be sorted. Further additions to the list will be inserted at
- the correct position so the list remains sorted at all times. Setting the
- property to <var>False</var> has no immediate effect, but will allow strings
- to be inserted at any position.
- </p>
- <remark>
- <ol>
- <li>
- When <var>Sorted</var> is <var>True</var>, <link id="TStringList.Insert"/>
- cannot be used. For sorted lists, <link id="TStringList.Add"/> should be
- used instead.</li>
- <li>If <var>Sorted</var> is <var>True</var>, the <link
- id="TStringList.Duplicates"/> setting has effect. This setting is ignored
- when <var>Sorted</var> is <var>False</var>.</li>
- </ol>
- </remark>
- </descr>
- <seealso>
- <link id="TStringList.Sort"/>
- <link id="TStringList.Duplicates"/>
- <link id="TStringList.Add"/>
- <link id="TstringList.Insert"/>
- </seealso>
- </element>
- <element name="TStringList.OnChange"> <!-- Property -->
- <short>Event triggered after the list was modified.</short>
- <descr>
- <p>
- <var>OnChange</var> can be assigned to respond to changes that have occurred
- in the list. The handler is called whenever strings are added, moved,
- modified or deleted from the list.
- </p>
- <p>
- The <var>Onchange</var> event is triggered after the modification took place.
- When the modification is about to happen, an <link
- id="TstringList.OnChanging"/> event occurs.
- </p>
- </descr>
- <seealso>
- <link id="TStringList.OnChanging"/>
- </seealso>
- </element>
- <element name="TStringList.OnChanging"> <!-- Property -->
- <short>Event triggered when the list is about to be modified.</short>
- <descr>
- <p>
- <var>OnChanging</var> can be assigned to respond to changes that will occurred
- in the list. The handler is called whenever strings will be added, moved,
- modified or deleted from the list.
- </p>
- <p>
- The <var>Onchanging</var> event is triggered before the modification will
- take place. When the modification has happened, an <link
- id="TstringList.OnChange"/> event occurs.
- </p>
- </descr>
- <seealso>
- <link id="TStringList.OnChange"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TStream
- *********************************************************************
- -->
- <element name="TStream"> <!-- Class -->
- <short>Base class for streams.</short>
- <descr>
- <p>
- <var>TStream</var> is the base class for all streaming classes. It defines
- abstract methods for <link id="TStream.Read">reading</link>, <link
- id="TStream.Write">writing</link> from and to streams, as well as functions to
- determine the size of the stream as well as the current position of the
- stream.
- </p>
- <p>Descendent classes such as <link id="TMemoryStream"/> or <link
- id="TFileStream"/> then implement these abstract methods to write streams to
- memory or file.
- </p>
- </descr>
- <seealso>
- <link id="TMemoryStream"/>
- <link id="TFileStream"/>
- <link id="TStringStream"/>
- </seealso>
- </element>
- <element name="TStream.SetSize"> <!-- Procedure -->
- <short>Sets the size of the stream</short>
- <descr>
- <var>SetSize</var> is the write handler for the <link id="TStream.Size"/>
- property. The <var>TStream</var> implementation of <var>SetSize</var> does
- nothing, but descendent classes may override this methods to allow
- programmers to set the size of the stream.
- </descr>
- <seealso>
- <link id="TStream.GetSize"/>
- <link id="TStream.Size"/>
- </seealso>
- </element>
- <element name="TStream.Read"> <!-- Function -->
- <short>Reads data from the stream to a buffer and returns the number of
- bytes read.</short>
- <descr>
- <p>
- <var>Read</var> attempts to read <var>Count</var> from the stream to
- <var>Buffer</var> and returns the number of bytes actually read.
- </p>
- <p>This method should be used when the number of bytes is not determined.
- If a specific number of bytes is expected, use <link
- id="TSTream.ReadBuffer"/> instead.
- </p>
- <p>
- <var>Read</var> is an abstract method that is overridden by descendent
- classes to do the actual reading.
- </p>
- </descr>
- <errors>
- Descendent classes that do not allow reading from the stream may raise an
- exception when the <var>Read</var> is used.
- </errors>
- <seealso>
- <link id="TStream.Write"/>
- <link id="TStream.ReadBuffer"/>
- </seealso>
- </element>
- <element name="TStream.Write"> <!-- Function -->
- <short>Writes data from the stream to the buffer and returns the number of
- bytes written.</short>
- <descr>
- <p>
- <var>Write</var> attempts to write <var>Count</var> bytes from
- <var>Buffer</var> to the stream. It returns the actual number of bytes
- written to the stream.
- </p>
- <p>This method should be used when the number of bytes that should be
- written is not determined. If a specific number of bytes should be
- written, use <link id="TSTream.WriteBuffer"/> instead.
- </p>
- <p>
- <var>Write</var> is an abstract method that is overridden by descendent
- classes to do the actual writinging.
- </p>
- </descr>
- <errors>
- Descendent classes that do not allow writing to the stream may raise an
- exception when <var>Write</var> is used.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStream.WriteBuffer"/>
- </seealso>
- </element>
- <element name="TStream.Seek"> <!-- Function -->
- <short>Sets the current position in the stream</short>
- <descr>
- <p>
- <var>Seek</var> sets the position of the stream to <var>Offset</var> bytes
- from <var>Origin</var>. <var>Origin</var> can have one of the following
- values:
- </p>
- <table>
- <tr><td>Constant</td><td>Meaning</td></tr>
- <tr><td>soFromBeginning</td><td>Set the position relative to the start of
- the stream.</td></tr>
- <tr><td>soFromCurrent</td><td>Set the position relative to the beginning of
- the stream.</td></tr>
- <tr><td>soFromEnd</td><td>Set the position relative to the end of the
- stream.</td></tr>
- </table>
- <p>
- <var>Offset</var> should be negative when the origin is <var>SoFromEnd</var>.
- It should be positive for <var>soFromBeginning</var> and can have both signs
- for <var>soFromCurrent</var>
- </p>
- <p>
- This is an abstract method, which must be overridden by descendent classes.
- They may choose not to implement this method for all values of
- <var>Origin</var> and <var>Offset</var>.
- </p>
- </descr>
- <errors>
- An exception may be raised if this method is called with an invalid pair of
- <var>Offset</var>,<var>Origin</var> values. e.g. a negative
- <var>offset</var> for <var>soFromBeginning</var>.
- </errors>
- <seealso>
- <link id="TStream.Position"/>
- </seealso>
- </element>
- <element name="TStream.ReadBuffer"> <!-- Procedure -->
- <short>Reads data from the stream to a buffer</short>
- <descr>
- <p>
- <var>ReadBuffer</var> reads <var>Count</var> bytes of the stream into
- <var>Buffer</var>. If the stream does not contain <var>Count</var> bytes,
- then an exception is raised.
- </p>
- <p>
- <var>ReadBuffer</var> should be used to read in a fixed number of bytes,
- such as when reading structures or the content of variables. If the number
- of bytes is not determined, use <link id="TStream.Read"/> instead.
- <var>ReadBuffer</var> uses <var>Read</var> internally to do the actual
- reading.
- </p>
- </descr>
- <errors>
- If the stream does not allow to read <var>Count</var> bytes, then an
- exception is raised.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStream.WriteBuffer"/>
- </seealso>
- </element>
- <element name="TStream.WriteBuffer"> <!-- Procedure -->
- <short>Writes data from the stream to the buffer</short>
- <descr>
- <p>
- <var>WriteBuffer</var> writes <var>Count</var> bytes to the stream from
- <var>Buffer</var>. If the stream does not allow <var>Count</var> bytes to be
- written, then an exception is raised.
- </p>
- <p>
- <var>WriteBuffer</var> should be used to read in a fixed number of bytes,
- such as when writing structures or the content of variables. If the number
- of bytes is not determined, use <link id="TStream.Write"/> instead.
- <var>WriteBuffer</var> uses <var>Write</var> internally to do the actual
- reading.
- </p>
- </descr>
- <errors>
- If the stream does not allow to write <var>Count</var> bytes, then an
- exception is raised.
- </errors>
- <seealso>
- <link id="TStream.Write"/>
- <link id="TStream.ReadBuffer"/>
- </seealso>
- </element>
- <element name="TStream.CopyFrom"> <!-- Function -->
- <short>Copy data from one stream to another</short>
- <descr>
- <p>
- <var>CopyFrom</var> reads <var>Count</var> bytes from <var>Source</var> and
- writes them to the current stream. This updates the current position in the
- stream. After the action is completed, the number of bytes copied is
- returned.
- </p>
- <p>
- This can be used to quickly copy data from one stream to another or to copy
- the whole contents of the stream.
- </p>
- </descr>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStream.Write"/>
- </seealso>
- </element>
- <element name="TStream.ReadComponent"> <!-- Function -->
- <short>Reads component data from a stream</short>
- <descr>
- <p>
- <var>ReadComponent</var> reads a component state from the stream and
- transfers this state to <var>Instance</var>. If <var>Instance</var> is nil,
- then it is created first based on the type stored in the stream.
- <var>ReadComponent</var> returns the component as it is read from the stream.
- </p>
- <p>
- <var>ReadComponent</var> simply creates a <link id="TReader"/> object and
- calls its <link id="TReader.ReadRootComponent">ReadRootComponent</link>
- method.
- </p>
- </descr>
- <errors>
- If an error occurs during the reading of the component, an <link
- id="EFilerError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStream.WriteComponent"/>
- <link id="TStream.ReadComponentRes"/>
- <link id="TReader.ReadRootComponent"/>
- </seealso>
- </element>
- <element name="TStream.ReadComponentRes"> <!-- Function -->
- <short>Reads component data and resource header from a stream</short>
- <descr>
- <p>
- <var>ReadComponentRes</var> reads a resource header from the stream, and then
- calls <link id="TStream.ReadComponent">ReadComponent</link> to read the
- component state from the stream into <var>Instance</var>.
- </p>
- <p>
- This method is usually called by the global streaming method when
- instantiating forms and datamodules as created by an IDE. It should be used
- mainly on Windows, to store components in Windows resources.
- </p>
- </descr>
- <errors>
- If an error occurs during the reading of the component, an <link
- id="EFilerError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStream.ReadComponent"/>
- <link id="TStream.WriteComponentRes"/>
- </seealso>
- </element>
- <element name="TStream.WriteComponent"> <!-- Procedure -->
- <short>Write component data to the stream</short>
- <descr>
- <p>
- <var>WriteComponent</var> writes the published properties of
- <var>Instance</var> to the stream, so they can later be read with <link
- id="TStream.ReadComponent"/>. This method is intended to be used by an IDE,
- to preserve the state of a form or datamodule as designed in the IDE.
- </p>
- <p>
- <var>WriteComponent</var> simply calls <link
- id="TStream.WriteDescendent">WriteDescendent</link> with <var>Nil</var>
- ancestor.
- </p>
- </descr>
- <seealso>
- <link id="TStream.ReadComponent"/>
- <link id="TStream.WriteComponentRes"/>
- </seealso>
- </element>
- <element name="TStream.WriteComponentRes"> <!-- Procedure -->
- <short>Write resource header and component data to a stream</short>
- <descr>
- <p>
- <var>WriteComponentRes</var> writes a <var>ResName</var> resource header
- to the stream and then calls <link id="TStream.WriteComponent">WriteComponent</link>
- to write the published properties of <var>Instance</var> to the stream.
- </p>
- <p>
- This method is intened for use by an IDE that can use it to store forms or
- datamodules as designed in a Windows resource stream.
- </p>
- </descr>
- <seealso>
- <link id="TStream.WriteComponent"/>
- <link id="TStream.ReadComponentRes"/>
- </seealso>
- </element>
- <element name="TStream.WriteDescendent"> <!-- Procedure -->
- <short>Write component data to a stream, relative to an ancestor</short>
- <descr>
- <p>
- <var>WriteDescendent</var> writes the state of <var>Instance</var> to the
- stream where it differs from <var>Ancestor</var>, i.e. only the changed
- properties are written to the stream.
- </p>
- <p>
- <var>WriteDescendent</var> creates a <link id="TWriter"/> object and calls
- its <link id="TWriter.WriteDescendent">WriteDescendent</link> object. The
- writer is passed a <link id="TBinaryObjectWriter">binary driver
- object</link> by default.
- </p>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStream.WriteDescendentRes"> <!-- Procedure -->
- <short>Write resource header and component data to a stream, relative to an ancestor</short>
- <descr>
- <p>
- <var>WriteDescendentRes</var> writes a <var>ResName</var> resource header,
- and then calls <link id="TStream.WriteDescendent">WriteDescendent</link> to
- write the state of <var>Instance</var> to the
- stream where it differs from <var>Ancestor</var>, i.e. only the changed
- properties are written to the stream.
- </p>
- <p>
- This method is intened for use by an IDE that can use it to store forms or
- datamodules as designed in a Windows resource stream.
- </p>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStream.WriteResourceHeader"> <!-- Procedure -->
- <short>Write resource header to the stream</short>
- <descr>
- <p>
- <var>WriteResourceHeader</var> writes a resource-file header for a resource
- called <var>ResName</var>. It returns in <var>FixupInfo</var> the argument
- that should be passed on to <link id="TStream.FixupResourceHeader"/>.
- </p>
- <p>
- <var>WriteResourceHeader</var> should not be used directly. It is called by
- the <link id="TStream.WriteComponentRes"/> and
- <link id="TStream.WriteDescendentRes"/>
- methods.
- </p>
- </descr>
- <seealso>
- <link id="TStream.FixupResourceHeader"/>
- <link id="TStream.WriteComponentRes"/>
- <link id="TStream.WriteDescendentRes"/>
- </seealso>
- </element>
- <element name="TStream.FixupResourceHeader"> <!-- Procedure -->
- <short>Not implemented in FPC</short>
- <descr>
- <p>
- <var>FixupResourceHeader</var> is used to write the size of the resource
- after a component was written to stream. The size is determined from the
- current position, and it is written at position <var>FixupInfo</var>. After
- that the current position is restored.
- </p>
- <p>
- <var>FixupResourceHeader</var> should never be called directly; it is
- handled by the streaming system.
- </p>
- </descr>
- <seealso>
- <link id="TStream.WriteResourceHeader"/>
- <link id="TStream.WriteComponentRes"/>
- <link id="TStream.WriteDescendentRes"/>
- </seealso>
- </element>
- <element name="TStream.ReadResHeader"> <!-- Procedure -->
- <short>Read a resource header from the stream.</short>
- <descr>
- <p>
- <var>ReadResourceHeader</var> reads a reasource file header from the stream.
- It positions the stream just beyond the header.
- </p>
- <p>
- <var>ReadResourceHeader</var> should not be called directly, it is called by
- the streaming system when needed.
- </p>
- </descr>
- <errors>
- If the resource header is invalid an <link id="EInvalidImage"/> exception is
- raised.
- </errors>
- <seealso>
- <link id="TStream.ReadComponentRes"/>
- <link id="EInvalidImage"/>
- </seealso>
- </element>
- <element name="TStream.ReadByte"> <!-- Function -->
- <short>Read a byte from the stream and return its value.</short>
- <descr>
- <var>ReadByte</var> reads one byte from the stream and returns its value.
- </descr>
- <errors>
- If the byte cannot be read, a <link id="EStreamError"/> exception will be
- raised. This is a utility function which symply calls the
- <link id="TStream.Read">Read</link> function.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStream.WriteByte"/>
- <link id="TStream.ReadWord"/>
- <link id="TStream.ReadDWord"/>
- <link id="TStream.ReadAnsiString"/>
- </seealso>
- </element>
- <element name="TStream.ReadWord"> <!-- Function -->
- <short>Read a word from the stream and return its value.</short>
- <descr>
- <var>ReadWord</var> reads one Word (i.e. 2 bytes) from the stream
- and returns its value. This is a utility function which symply calls the
- <link id="TStream.Read">Read</link> function.
- </descr>
- <errors>
- If the word cannot be read, a <link id="EStreamError"/> exception will be
- raised.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStream.WriteWord"/>
- <link id="TStream.ReadByte"/>
- <link id="TStream.ReadDWord"/>
- <link id="TStream.ReadAnsiString"/>
- </seealso>
- </element>
- <element name="TStream.ReadDWord"> <!-- Function -->
- <short>Read a DWord from the stream and return its value.</short>
- <descr>
- <var>ReadDWord</var> reads one DWord (i.e. 4 bytes) from the stream
- and returns its value. This is a utility function which simply calls the
- <link id="TStream.Read">Read</link> function.
- </descr>
- <errors>
- If the DWord cannot be read, a <link id="EStreamError"/> exception will be
- raised.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStream.WriteDWord"/>
- <link id="TStream.ReadByte"/>
- <link id="TStream.ReadWord"/>
- <link id="TStream.ReadAnsiString"/>
- </seealso>
- </element>
- <element name="TStream.ReadAnsiString"> <!-- Function -->
- <short>Read an ansistring from the stream and return its value.</short>
- <descr>
- <var>ReadAnsiString</var> reads an ansistring from the stream
- and returns its value. This is a utility function which simply calls the
- read function several times.
- The Ansistring should be stored as 4 bytes (a DWord) representing the length
- of the string, and then the string value itself.
- The <link id="TStream.WriteAnsiString">WriteAnsiString</link> function
- writes an ansistring in such a format.
- </descr>
- <errors>
- If the AnsiString cannot be read, a <link id="EStreamError"/> exception will be
- raised.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStream.WriteAnsiString"/>
- <link id="TStream.ReadByte"/>
- <link id="TStream.ReadWord"/>
- <link id="TStream.ReadDWord"/>
- </seealso>
- </element>
- <element name="TStream.WriteByte"> <!-- Procedure -->
- <short>Write a byte to the stream.</short>
- <descr>
- <var>WriteByte</var> writes the byte <var>B</var> to the stream. This is a
- utility function which simply calls the <link
- id="TStream.Write">Write</link> function.
- The byte can be read from the stream using the <link
- id="TStream.ReadByte">ReadByte</link> function.
- </descr>
- <errors>
- If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
- </errors>
- <seealso>
- <link id="TStream.Write"/>
- <link id="TStream.ReadByte"/>
- <link id="TStream.WriteWord"/>
- <link id="TStream.WriteDWord"/>
- <link id="TStream.WriteAnsiString"/>
- </seealso>
- </element>
- <element name="TStream.WriteWord"> <!-- Procedure -->
- <short>Write a word to the stream.</short>
- <descr>
- <var>WriteWord</var> writes the word <var>W</var> (i.e. 2 bytes) to the stream. This is a
- utility function which simply calls the <link
- id="TStream.Write">Write</link> function.
- The word can be read from the stream using the <link
- id="TStream.ReadWord">ReadWord</link> function.
- </descr>
- <errors>
- If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
- </errors>
- <seealso>
- <link id="TStream.Write"/>
- <link id="TStream.ReadWord"/>
- <link id="TStream.WriteByte"/>
- <link id="TStream.WriteDWord"/>
- <link id="TStream.WriteAnsiString"/>
- </seealso>
- </element>
- <element name="TStream.WriteDWord"> <!-- Procedure -->
- <short>Write a DWord to the stream.</short>
- <descr>
- <var>WriteDWord</var> writes the DWord <var>D</var> (i.e. 4 bytes) to the stream. This is a
- utility function which simply calls the <link
- id="TStream.Write">Write</link> function.
- The DWord can be read from the stream using the <link
- id="TStream.ReadDWord">ReadDWord</link> function.
- </descr>
- <errors>
- If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
- </errors>
- <seealso>
- <link id="TStream.Write"/>
- <link id="TStream.ReadDWord"/>
- <link id="TStream.WriteByte"/>
- <link id="TStream.WriteWord"/>
- <link id="TStream.WriteAnsiString"/>
- </seealso>
- </element>
- <element name="TStream.WriteAnsiString"> <!-- Procedure -->
- <short>Write an ansistring to the stream.</short>
- <descr>
- <var>WriteAnsiString</var> writes the AnsiString <var>S</var> (i.e. 4 bytes) to the stream. This is a
- utility function which simply calls the <link
- id="TStream.Write">Write</link> function.
- The ansistring is written as a 4 byte length specifier, followed by the
- ansistring's content.
- The ansistring can be read from the stream using the <link
- id="TStream.ReadAnsiString">ReadAnsiString</link> function.
- </descr>
- <errors>
- If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
- </errors>
- <seealso>
- <link id="TStream.Write"/>
- <link id="TStream.ReadAnsiString"/>
- <link id="TStream.WriteByte"/>
- <link id="TStream.WriteWord"/>
- <link id="TStream.WriteDWord"/>
- </seealso>
- </element>
- <element name="TStream.Position"> <!-- Property -->
- <short>The current position in the stream.</short>
- <descr>
- <p>
- <var>Position</var> can be read to determine the current position in the
- stream. It can be written to to set the (absolute) position in the stream.
- The position is zero-based, so to set the position at the beginning of the
- stream, the position must be set to zero.
- </p>
- <remark>
- Not all <var>TStream</var> descendants support setting the position in the
- stream, so this should be used with care.
- </remark>
- </descr>
- <errors>
- Some descendents may raise an <link id="EStreamError"/> exception if they
- do not support setting the stream position.
- </errors>
- <seealso>
- <link id="TStream.Size"/>
- <link id="TStream.Seek"/>
- </seealso>
- </element>
- <element name="TStream.Size"> <!-- Property -->
- <short>The current size of the stream.</short>
- <descr>
- <p>
- <var>Size</var> can be read to determine the stream size or to set the
- stream size.
- </p>
- <remark>
- Not all descendents of <var>TStream</var> support getting or setting the
- stream size; they may raise an exception if the <var>Size</var> property
- is read or set.
- </remark>
- </descr>
- <seealso>
- <link id="TStream.Position"/>
- <link id="TStream.Seek"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- THandleStream
- *********************************************************************
- -->
- <element name="THandleStream"> <!-- Class -->
- <short>Base clas for streams that are identified by an OS handle.</short>
- <descr>
- <p>
- <var>THandleStream</var> is an abstract descendent of the <link
- id="TStream"/>
- class that provides methods for a stream to handle all reading and writing
- to and from a handle, provided by the underlying OS. To this end, it
- overrides the <link id="THandleStream.Read">Read</link> and <link
- id="THandleStream.Write">Write</link> methods of TStream.
- </p>
- <remark>
- <ul>
- <li>
- <var>ThandleStream</var> does not obtain a handle from the OS by itself,
- it just handles reading and writing to such a handle by wrapping the system
- calls for reading and writing;
- Descendent classes should obtain a handle from the OS by themselves and pass it on in the inherited
- constructor.</li>
- <li>
- Contrary to Delphi, no seek is implemented for <var>THandleStream</var>,
- since pipes and sockets do not support this. The seek is implemented in
- descendent methods that support it.
- </li>
- </ul>
- </remark>
- </descr>
- <seealso>
- <link id="TStream"/>
- <link id="TFileStream"/>
- </seealso>
- </element>
- <element name="THandleStream.Create"> <!-- Constructor -->
- <short>Create a handlestream from an OS Handle.</short>
- <descr>
- <var>Create</var> creates a new instance of a <var>THandleStream</var>
- class. It stores <var>AHandle</var> in an internal variable and
- then calls the inherited constructor.
- </descr>
- <seealso>
- <link id="TStream"/>
- </seealso>
- </element>
- <element name="THandleStream.Read"> <!-- Function -->
- <short>Overrides standard read method.</short>
- <descr>
- <p>
- <var>Read</var> implements the abstract <link id="TStream.Read">Read</link>
- method of <var>TStream</var>. It uses the <link
- id="THandleStream.Handle">Handle</link> property to read the
- <var>Count</var> bytes into <var>Buffer</var>
- </p>
- <p>
- If no error occurs while reading, the number of bytes actually read will be
- returned.
- </p>
- </descr>
- <errors>
- If the operating system reports an error while reading from the handle, -1
- is returned.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="THandleStream.Write"/>
- <link id="THandleStream.Handle"/>
- </seealso>
- </element>
- <element name="THandleStream.Write"> <!-- Function -->
- <short>Overrides standard write method.</short>
- <descr>
- <p>
- <var>Write</var> implements the abstract <link id="TStream.Write">Write</link>
- method of <var>TStream</var>. It uses the <link
- id="THandleStream.Handle">Handle</link> property to write the
- <var>Count</var> bytes from <var>Buffer</var>.
- </p>
- <p>
- If no error occurs while writing, the number of bytes actually written will be
- returned.
- </p>
- </descr>
- <errors>
- If the operating system reports an error while writing to handle, -1
- is returned.
- </errors>
- <seealso>
- <link id="TStream.Read"/>
- <link id="THandleStream.Write"/>
- <link id="THandleStream.Handle"/>
- </seealso>
- </element>
- <element name="THandleStream.Handle"> <!-- Property -->
- <short>The OS handle of the stream.</short>
- <descr>
- <var>Handle</var> represents the Operating system handle to which reading
- and writing is done. The handle can be read only, i.e. it cannot be set
- after the <var>THandlestream</var> instance was created. It should be
- passed to the constructor <link id="THandleStream.Create"/>
- </descr>
- <seealso>
- <link id="THandleStream"/>
- <link id="THandleStream.Create"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TFileStream
- *********************************************************************
- -->
- <element name="TFileStream"> <!-- Class -->
- <short>Stream that stores its data in a named file on disk.</short>
- <descr>
- <p>
- <var>TFileStream</var> is a <link id="TStream"/> descdendent that
- stores or reads it's data from a named file in the filesystem of
- the operating system.
- </p>
- <p>
- To this end, it overrides some of the abstract methods in <var>TStream</var>
- and implements them for the case of files on disk, and it adds the <link
- id="TFileStream.Filename">FileName</link> property to the list of public
- properties.
- </p>
- </descr>
- <seealso>
- <link id="TFileStream.Create"/>
- <link id="TStream"/>
- </seealso>
- </element>
- <element name="TFileStream.SetSize"> <!-- Procedure -->
- <short>Sets the size of the file stream.</short>
- <descr>
- <p>
- <var>SetSize</var> sets the size of the file at <var>NewSize</var> bytes.
- Errors returned by the operating system call will be silently ignored.
- </p>
- <p>
- This is the protected write method of the public <link id="TStream.Size"/>
- property.
- </p>
- </descr>
- <seealso>
- <link id="TStream.Size"/>
- </seealso>
- </element>
- <element name="TFileStream.Create"> <!-- Constructor -->
- <short>Creates a file stream.</short>
- <descr>
- <p>
- <var>Create</var> creates a new instance of a <var>TFileStream</var> class.
- It opens the file <var>AFileName</var> with mode <var>Mode</var>, which can
- have one of the following values:
- </p>
- <table>
- <tr>
- <td>fmCreate</td><td><printshort id="fmCreate"/></td>
- </tr>
- <tr>
- <td>fmOpenRead</td><td><printshort id="fmOpenRead"/></td>
- </tr>
- <tr>
- <td>fmOpenWrite</td><td><printshort id="fmOpenWrite"/></td>
- </tr>
- <tr>
- <td>fmOpenReadWrite</td><td><printshort id="fmOpenReadWrite"/></td>
- </tr>
- </table>
- <p>
- After the file has been opened in the requested mode and a handle has been
- obtained from the operating system, the inherited constructor is called.
- </p>
- </descr>
- <errors>
- If the file could not be opened in the requested mode, an <link
- id="EFOpenError"/> exception is raised.
- </errors>
- <seealso>
- <link id="TStream"/>
- <link id="TFileStream.FileName"/>
- <link id="THandleStream.Create"/>
- </seealso>
- </element>
- <element name="TFileStream.Destroy"> <!-- Destructor -->
- <short>Destroys the file stream.</short>
- <descr>
- <p>
- <var>Destroy</var> closes the file (causing possible buffered data to be
- written to disk) and then calls the inherited destructor.
- </p>
- <p>
- Do not call <var>destroy</var> directly, instead call the <var>Free</var>
- method. Destroy does not check whether <var>Self</var> is nil, while
- <var>Free</var> does.
- </p>
- </descr>
- <seealso>
- <link id="TFileStream.Create"/>
- </seealso>
- </element>
- <element name="TFileStream.Seek"> <!-- Function -->
- <short>Overrides the standard method.</short>
- <descr>
- <p>
- <var>Seek</var> attempts to set the position of the stream at
- <var>Offset</var> bytes from <var>Origin</var>. <var>Offset</var> can have
- any integer value which would set the position within the boundaries of the
- file, and thus the valid range depends on the value of <var>Origin</var>.
- <var>Origin</var> can have one of the following values:
- </p>
- <table>
- <tr>
- <td>soFromBeginning</td><td><printshort id="soFromBeginning"/></td>
- </tr>
- <tr>
- <td>soFromCurrent</td><td><printshort id="soFromCurrent"/></td>
- </tr>
- <tr>
- <td>soFromEnd</td><td><printshort id="soFromEnd"/></td>
- </tr>
- </table>
- <p>
- <var>Seek</var> returns the new position in the file, or -1 on error.
- </p>
- </descr>
- <errors>
- On error, -1 is returned, and the position is not changed.
- </errors>
- <seealso>
- <link id="TStream.Position"/>
- <link id="TStream.Size"/>
- </seealso>
- </element>
- <element name="TFileStream.FileName"> <!-- Property -->
- <short>The filename of the stream.</short>
- <descr>
- <var>FileName</var> is the name of the file that the stream reads from or writes
- to. It is the name as passed in the constructor of the stream; it cannot be
- changed. To write to another file, the stream must be freed and created
- again with the new filename.
- </descr>
- <seealso>
- <link id="TFileStream.Create"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TCustomMemoryStream
- *********************************************************************
- -->
- <element name="TCustomMemoryStream"> <!-- Class -->
- <short>Abstract stream that stores its data in memory.</short>
- <descr>
- <p>
- <var>TCustomMemoryStream</var> is the parent class for streams that stored
- their data in memory. It introduces all needed functions to handle reading
- from and navigating through the memory, and introduces a
- <link id="TCustomMemoryStream.Memory">Memory</link> property which points to
- the memory area where the stream data is kept.
- </p>
- <p>
- The only thing which <var>TCustomMemoryStream</var> does not do is obtain
- memory to store data when writing data or the writing of data. This
- functionality is implemented in descendent streams such as <link
- id='TMemoryStream'/>. The reason for this approach is that this way it is
- possible to create e.g. read-only descendents of
- <var>TCustomMemoryStream</var> that point to a fixed part in memory which
- can be read from, but not written to.
- </p>
- <remark>
- Since <var>TCustomMemoryStream</var> is an abstract class, do not create
- instances of <var>TMemoryStream</var> directly. Instead,
- create instances of descendents such as <link id="TMemoryStream"/>.
- </remark>
- </descr>
- <seealso>
- <link id="TMemoryStream"/>
- <link id="TStream"/>
- </seealso>
- </element>
- <element name="TCustomMemoryStream.SetPointer"> <!-- Procedure -->
- <short>Sets the internal memory pointer and size of the memory block.</short>
- <descr>
- <p>
- <var>SetPointer</var> updates the internal memory pointer and the size of
- the memory area pointed to.
- </p>
- <p>
- Descendent memory streams should call this method whenever they set or reset
- the memory the stream should read from or write to.
- </p>
- </descr>
- <seealso>
- <link id="TCustomMemoryStream.Memory"/>
- <link id="TStream.Size"/>
- </seealso>
- </element>
- <element name="TCustomMemoryStream.Read"> <!-- Function -->
- <short>Reads <var>Count</var> bytes from the stream into <var>buffer</var>.</short>
- <descr>
- <p>
- <var>Read</var> reads <var>Count</var> bytes from the stream into the memory
- pointed to by <var>buffer</var>. It returns the number of bytes actually
- read.
- </p>
- <p>
- This method overrides the abstract <link id="TStream.Read"/> method of <link
- id="TStream"/>. It will read as much bytes as are still available in the
- memory area pointer to by <link id="TCustomMemoryStream.Memory">Memory</link>.
- After the bytes are read, the internal stream position is updated.
- </p>
- </descr>
- <seealso>
- <link id="TCustomMemoryStream.Memory"/>
- <link id="TStream.Read"/>
- </seealso>
- </element>
- <element name="TCustomMemoryStream.Seek"> <!-- Function -->
- <short>Sets a new position in the stream.</short>
- <descr>
- <var>Seek</var> overrides the abstract <link id="TStream.Seek"/> method.
- It simply updates the internal stream position, and returns the new
- position.
- </descr>
- <errors>
- No checking is done whether the new position is still a valid position, i.e.
- whether the position is still within the range <var>0..Size</var>.
- Attempting a seek outside the valid memory range of the stream may result in
- an exception at the next read or write operation.
- </errors>
- <seealso>
- <link id="TStream.Position"/>
- <link id="TStream.Size"/>
- <link id="TCustomMemoryStream.Memory"/>
- </seealso>
- </element>
- <element name="TCustomMemoryStream.SaveToStream"> <!-- Procedure -->
- <short>Writes the contents of the memory stream to another stream.</short>
- <descr>
- <p>
- <var>SaveToStream</var> writes the contents of the memory stream to
- <var>Stream</var>. The content of <var>Stream</var> is not cleared first.
- The current position of the memory stream is not changed by this action.
- </p>
- <remark>
- <p>
- This method will work much faster than the use of the
- <link id="TStream.CopyFrom"/> method:
- </p>
- <code>
- Seek(0,soFromBeginning);
- Stream.CopyFrom(Self,Size);
- </code>
- <p>
- because the <var>CopyFrom</var> method copies the contents in blocks, while
- <var>SaveToStream</var> writes the contents of the memory as one big block.
- </p>
- </remark>
- </descr>
- <errors>
- If an error occurs when writing to <var>Stream</var> an <link
- id="EStreamError"/> exception will be raised.
- </errors>
- <seealso>
- <link id="TCustomMemoryStream.SaveToFile"/>
- <link id="TStream.CopyFrom"/>
- </seealso>
- </element>
- <element name="TCustomMemoryStream.SaveToFile"> <!-- Procedure -->
- <short>Writes the contents of the stream to a file.</short>
- <descr>
- <p>
- <var>SaveToFile</var> writes the contents of the stream to a file with name
- <var>FileName</var>.
- It simply creates a filestream and writes the contents of the memorystream
- to this file stream using <link id="TCustomMemoryStream.SaveToStream"/>.
- </p>
- <remark>
- <p>
- This method will work much faster than the use of the <link
- id="TStream.CopyFrom"/> method:
- </p>
- <code>
- Stream:=TFileStream.Create(fmCreate,FileName);
- Seek(0,soFromBeginning);
- Stream.CopyFrom(Self,Size);
- </code>
- <p>
- because the <var>CopyFrom</var> method copies the contents in blocks, while
- <var>SaveToFile</var> writes the contents of the memory as one big block.
- </p>
- </remark>
- </descr>
- <errors>
- If an error occurs when creating or writing to the file, an <link
- id="EStreamError"/> exception may occur.
- </errors>
- <seealso>
- <link id="TCustomMemoryStream.SaveToStream"/>
- <link id="TFileStream"/>
- <link id="TStream.CopyFrom"/>
- </seealso>
- </element>
- <element name="TCustomMemoryStream.Memory"> <!-- Property -->
- <short>Pointer to the data kept in the memory stream.</short>
- <descr>
- <p>
- <var>Memory</var> points to the memory area where stream keeps it's data.
- The property is read-only, so the pointer cannot be set this way.
- </p>
- <remark>
- Do not write to the memory pointed to by <var>Memory</var>, since the memory
- content may be read-only, and thus writing to it may cause errors.
- </remark>
- </descr>
- <seealso>
- <link id="TStream.Size"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TMemoryStream
- *********************************************************************
- -->
- <element name="TMemoryStream"> <!-- Class -->
- <short>Standard implementation of a stream that stores its data in memory</short>
- <descr>
- <p>
- <var>TMemoryStream</var> is a <link id="TStream"/> descendent that stores
- it's data in memory. It descends directly from <link id="TCustomMemoryStream"/>
- and implements the necessary to allocate and de-allocate memory diretly from
- the heap. It implements the <link id="TMemoryStream.Write">Write</link> method
- which is missing in <var>TCustomMemoryStream</var>.
- </p>
- <p>
- <var>TMemoryStream</var> also introduces methods to load the contents of
- another stream or a file into the memory stream.
- </p>
- <p>
- It is not necessary to do any memory management manually, as the stream
- will allocate or de-allocate memory as needed. When the stream is freed, all
- allocated memory will be freed as well.
- </p>
- </descr>
- <seealso>
- <link id="TCustomMemoryStream"/>
- <link id="TStream"/>
- </seealso>
- </element>
- <element name="TMemoryStream.Realloc"> <!-- Function -->
- <short>Sets the new capacity for the memory stream</short>
- <descr>
- <p>
- <var>SetCapacity</var> sets the capacity of the memory stream, i.e.
- does the actual allocation or de-allocation of memory for the stream. It
- allocates at least <var>NewCapacity</var> bytes on the heap, moves the
- current contents of the stream to this location (as much as fits in) and
- returns the new memory location.
- Extra allocated memory is not initialized, i.e. may contain garbage.
- </p>
- <p>
- Memory is allocated in blocks of 4 Kb; this can be changed by overriding
- the method.
- </p>
- </descr>
- <seealso>
- <link id="TMemoryStream.Capacity"/>
- </seealso>
- </element>
- <element name="TMemoryStream.Capacity"> <!-- Property -->
- <short>Current capacity of the stream.</short>
- <descr>
- <p>
- <var>Capacity</var> is the current capacity of the stream, this is the
- current size of the memory allocated to the stream. This is not necessarily
- equal to the size of the stream, but will always be larger than or equal to
- the size of the stream. When writing to the stream, the <link
- id="TMemoryStream.Write"/> sets the capacity to the needed value.
- </p>
- <p>
- If a lot of write operations will occur, performance may be improved by
- setting the capacity to a large value, so less reallocations of memory will
- occur while writing to the stream.
- </p>
- </descr>
- <seealso>
- <link id="TMemoryStream.ReAlloc"/>
- </seealso>
- </element>
- <element name="TMemoryStream.Destroy"> <!-- Destructor -->
- <short>Frees any allocated memory and destroys the memory stream.</short>
- <descr>
- <var>Free</var> clears the memory stream, thus in effect freeing any memory
- allocated for it, and then frees the memory stream.
- </descr>
- </element>
- <element name="TMemoryStream.Clear"> <!-- Procedure -->
- <short>Zeroes the position, capacity and size of the stream.</short>
- <descr>
- <var>Clear</var> sets the position and size to 0, and sets the capacity of
- the stream to 0, thus freeing all memory allocated for the stream.
- </descr>
- <seealso>
- <link id="TStream.Size"/>
- <link id="TStream.Position"/>
- <link id="TCustomMemoryStream.Memory"/>
- </seealso>
- </element>
- <element name="TMemoryStream.LoadFromStream"> <!-- Procedure -->
- <short>Loads the contents of a stream into memory.</short>
- <descr>
- <p>
- <var>LoadFromStream</var> loads the contents of <var>Stream</var> into
- the memorybuffer of the stream. Any previous contents of the memory
- stream are overwritten. Memory is allocated as needed.
- </p>
- <remark>
- <p>
- The <var>LoadFromStream</var> uses the <link id="TStream.Size">Size</link>
- property of <var>Stream</var> to determine how much memory must be
- allocated. Some streams do not allow the stream size to be determined, so
- care must be taken when using this method.
- </p>
- <p>
- This method will work much faster than the use of the <link
- id="TStream.CopyFrom"/> method:
- </p>
- <code>
- Seek(0,soFromBeginning);
- CopyFrom(Stream,Stream.Size);
- </code>
- <p>
- because the <var>CopyFrom</var> method copies the contents in blocks, while
- <var>LoadFromStream</var> reads the contents of the stream as one big block.
- </p>
- </remark>
- </descr>
- <errors>
- If an error occurs when reading from the stream, an <link
- id="EStreamError"/> may occur.
- </errors>
- <seealso>
- <link id="TStream.CopyFrom"/>
- <link id="TMemoryStream.LoadFromFile"/>
- </seealso>
- </element>
- <element name="TMemoryStream.LoadFromFile"> <!-- Procedure -->
- <short>Loads the contents of a file into memory.</short>
- <descr>
- <p>
- <var>LoadFromFile</var> loads the contents of the file with name
- <var>FileName</var> into the memory stream. The current contents of the
- memory stream is replaced by the contents of the file. Memory is allocated
- as needed.
- </p>
- <p>
- The <var>LoadFromFile</var> method simply creates a filestream and then
- calls the <link id="TMemoryStream.LoadFromStream"/> method.
- </p>
- </descr>
- If an error occurs when creating or reading from the stream, an <link
- id="EStreamError"/> may occur.
- <seealso>
- <link id="TMemoryStream.LoadFromStream"/>
- </seealso>
- </element>
- <element name="TMemoryStream.SetSize"> <!-- Procedure -->
- <short>Sets the size for the memory stream.</short>
- <descr>
- <var>SetSize</var> sets the size of the memory stream to <var>NewSize</var>.
- This will set the capacity of the stream to <var>NewSize</var> and correct
- the current position in the stream when needed.
- </descr>
- <seealso>
- <link id="TStream.Position"/>
- <link id="TStream.Size"/>
- </seealso>
- </element>
- <element name="TMemoryStream.Write"> <!-- Function -->
- <short>Writes data to the stream's memory.</short>
- <descr>
- <p>
- <var>Write</var> writes <var>Count</var> bytes from <var>Buffer</var>
- to the stream's memory, starting at the current position in the stream.
- If more memory is needed than currently allocated, more memory will be
- allocated. Any contents in the memory stream at the current position will be
- overwritten. The function returns the number of bytes actually written
- (which should under normal circumstances always equal <var>Count</var>).
- </p>
- <p>
- This method overrides the abstract <link id="TStream.Write"/> method.
- </p>
- </descr>
- <errors>
- If no more memory could be allocated, then an exception will be raised.
- </errors>
- <seealso>
- <link id="TCustomMemoryStream.Read"/>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TStringStream
- *********************************************************************
- -->
- <element name="TStringStream"> <!-- Class -->
- <short>Stream that stores its data in a string.</short>
- <descr>
- <p>
- <var>TStringStream</var> stores its data in an ansistring. The contents of
- this string is available as the
- <link id="TStringStream.DataString">DataString</link> property. It also
- introduces some methods to read or write parts of the stringstream's data
- as a string.
- </p>
- <p>The main purpose of a <var>TStringSTream</var> is to be able to treat a
- string as a stream from which can be read.
- </p>
- </descr>
- <seealso>
- <link id="TStream"/>
- <link id="TStringStream.DataString"/>
- <link id="TStringStream.ReadString"/>
- <link id="TStringStream.WriteString"/>
- </seealso>
- </element>
- <element name="TStringStream.SetSize"> <!-- Procedure -->
- <short>Sets the size of the stream.</short>
- <descr>
- <var>SetSize</var> sets the size of the stream to <var>newsize</var>.
- It does this by setting the size of the ansisting in which the stream
- is stored. <var>NewSize</var> can have any value greater than or equal to
- zero.
- </descr>
- <errors>
- In case there is not enough memory, an exception may be raised.
- </errors>
- <seealso>
- <link id="TStream.Size"/>
- </seealso>
- </element>
- <element name="TStringStream.Create"> <!-- Constructor -->
- <short>Creates a new stringstream and sets its initial content.</short>
- <descr>
- <var>Create</var> creates a new <var>TStringStream</var> instance and
- sets its initial content to <var>Astring</var>. The position is still 0 but
- the size of the stream will equal the length of the string.
- </descr>
- <seealso>
- <link id="TStringStream.DataString"/>
- </seealso>
- </element>
- <element name="TStringStream.Read"> <!-- Function -->
- <short>Reads from the stream.</short>
- <descr>
- <var>Read</var> implements the abstract <link id="TStream.Read">Read</link>
- from <link id="TStream"/>. It tries to read <var>Count</var> bytes into
- <var>Buffer</var>. It returns the number of bytes actually read. The
- position of the stream is advanced with the number of bytes actually read;
- When the reading has reached the end of the <link
- id="TStringSTream.DataString">DataString</link>, then the reading stops,
- i.e. it is not possible to read beyond the end of the datastring.
- </descr>
- <seealso>
- <link id="TStream.Read"/>
- <link id="TStringStream.Write"/>
- <link id="TStringStream.DataString"/>
- </seealso>
- </element>
- <element name="TStringStream.ReadString"> <!-- Function -->
- <short>Reads a string of length <var>Count</var></short>
- <descr>
- <p>
- <var>ReadString<var> reads <var>Count</var> bytes from the stream and
- returns the read bytes as a string. If less than <var>Count</var> bytes
- were available, the string has as many characters as bytes could be read.
- </p>
- <p>The <var>ReadString</var> method is a wrapper around the <link
- id="TStringStream.Read">Read</link> method. It does not do the same stringas
- the <link id="TStream.ReadAnsiString"/> method, which first reads a length
- integer to determine the length of the string to be read.
- </descr>
- <seealso>
- <link id="TStringStream.Read"/>
- <link id="TStream.ReadAnsiString"/>
- </seealso>
- </element>
- <element name="TStringStream.Seek"> <!-- Function -->
- <short>Sets the position in the stream.</short>
- <descr>
- <var>Seek</var> implements the abstract <link id="TStream.Seek">Seek</link>
- method.
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringStream.Write"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringStream.WriteString"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStringStream.DataString"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TResourceStream
- *********************************************************************
- -->
- <element name="TResourceStream"> <!-- Class -->
- <short>Stream that reads its data from a resource object.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TResourceStream.Initialize"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TResourceStream.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TResourceStream.CreateFromID"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TResourceStream.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TResourceStream.Write"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TValueType"> <!-- Enumeration type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TValueType.vaNull"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaList"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaInt8"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaInt16"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaInt32"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaExtended"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaString"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaIdent"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaFalse"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaTrue"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaBinary"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaSet"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaLString"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaNil"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaCollection"> <!-- Enumeration value -->
- <short></short>
- </element>
- <element name="TValueType.vaSingle"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TValueType.vaCurrency"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TValueType.vaDate"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TValueType.vaWString"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TValueType.vaInt64"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFilerFlag"> <!-- Enumeration type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFilerFlag.ffInherited"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFilerFlag.ffChildPos"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFilerFlag.ffInline"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFilerFlags"> <!-- Set type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReaderProc"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriterProc"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TStreamProc"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TFiler
- *********************************************************************
- -->
- <element name="TFiler"> <!-- Class -->
- <short>Class responsible for streaming of components.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.FRoot"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.FLookupRoot"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.FAncestor"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.FIgnoreChildren"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.SetRoot"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.DefineProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.DefineBinaryProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.Root"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.LookupRoot"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.Ancestor"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFiler.IgnoreChildren"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentClass"> <!-- "class of" type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TAbstractObjectReader
- *********************************************************************
- -->
- <element name="TAbstractObjectReader"> <!-- Class -->
- <short>Abstract driver class to read stored component data.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.NextValue"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadValue"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.BeginRootComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.BeginComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.BeginProperty"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadBinary"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadFloat"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadSingle"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadDate"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadIdent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadInt8"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadInt16"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadInt32"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadInt64"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadSet"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadStr"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.ReadString"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.SkipComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectReader.SkipValue"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TBinaryObjectReader
- *********************************************************************
- -->
- <element name="TBinaryObjectReader"> <!-- Class -->
- <short>Driver class which reads component data stored in binary format.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.FStream"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.FBuffer"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.FBufSize"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.FBufPos"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.FBufEnd"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.Read"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.SkipProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.SkipSetBody"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.NextValue"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadValue"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.BeginRootComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.BeginComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.BeginProperty"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadBinary"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadFloat"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadSingle"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadDate"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadIdent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadInt8"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadInt16"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadInt32"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadInt64"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadSet"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadStr"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.ReadString"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.SkipComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectReader.SkipValue"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFindMethodEvent"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TSetNameEvent"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReferenceNameEvent"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAncestorNotFoundEvent"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReadComponentsProc"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReaderError"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFindComponentClassEvent"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TCreateComponentEvent"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TReader
- *********************************************************************
- -->
- <element name="TReader"> <!-- Class -->
- <short>Generic reader object which reads component data from any given source.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FDriver"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOwner"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FParent"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FFixups"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FLoaded"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOnFindMethod"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOnSetName"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOnReferenceName"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOnAncestorNotFound"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOnError"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOnFindComponentClass"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FOnCreateComponent"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FPropName"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FCanHandleExcepts"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.DoFixupReferences"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FreeFixups"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FindComponentClass"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.Error"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FindMethod"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadPropValue"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.PropertyError"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadData"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.PropName"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.CanHandleExceptions"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.BeginReferences"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.CheckValue"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.DefineProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.DefineBinaryProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.EndOfList"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.EndReferences"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.FixupReferences"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.NextValue"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadBoolean"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadChar"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadCollection"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadComponent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadComponents"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadFloat"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadSingle"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadDate"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadIdent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadInteger"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadInt64"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadListBegin"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadListEnd"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadRootComponent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadString"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.ReadValue"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.CopyValue"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.Owner"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.Parent"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.OnError"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.OnFindMethod"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.OnSetName"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.OnReferenceName"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.OnAncestorNotFound"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.OnCreateComponent"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TReader.OnFindComponentClass"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TAbstractObjectWriter
- *********************************************************************
- -->
- <element name="TAbstractObjectWriter"> <!-- Class -->
- <short>Abstract driver class for writing component data.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.BeginCollection"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.BeginComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.BeginList"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.EndList"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.BeginProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.EndProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteBinary"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteBoolean"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteFloat"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteSingle"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteDate"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteIdent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteInteger"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteMethodName"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteSet"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TAbstractObjectWriter.WriteString"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TBinaryObjectWriter
- *********************************************************************
- -->
- <element name="TBinaryObjectWriter"> <!-- Class -->
- <short>Driver class which stores component data in binary form.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.FStream"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.FBuffer"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.FBufSize"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.FBufPos"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.FBufEnd"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.FSignatureWritten"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.FlushBuffer"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.Write"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteValue"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteStr"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.BeginCollection"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.BeginComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.BeginList"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.EndList"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.BeginProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.EndProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteBinary"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteBoolean"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteFloat"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteSingle"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteDate"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteIdent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteInteger"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteMethodName"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteSet"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TBinaryObjectWriter.WriteString"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TTextObjectWriter
- *********************************************************************
- -->
- <element name="TTextObjectWriter"> <!-- Class -->
- <short>Driver class which stores component data in text format.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFindAncestorEvent"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TWriter
- *********************************************************************
- -->
- <element name="TWriter"> <!-- Class -->
- <short>Object to write component data to an arbitrary format.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FDriver"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FDestroyDriver"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FRootAncestor"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FPropPath"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FAncestorList"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FAncestorPos"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FChildPos"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.FOnFindAncestor"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.AddToAncestorList"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteComponentData"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.SetRoot"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteBinary"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteProperties"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.DefineProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.DefineBinaryProperty"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteBoolean"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteCollection"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteChar"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteDescendent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteFloat"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteSingle"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteDate"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteIdent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteInteger"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteInteger"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteListBegin"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteListEnd"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteRootComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.WriteString"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.RootAncestor"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.OnFindAncestor"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TWriter.Driver"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TParser
- *********************************************************************
- -->
- <element name="TParser"> <!-- Class -->
- <short>Class to parse the contents of a stream containing text data.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FStream"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FOrigin"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FBuffer"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FBufPtr"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FBufEnd"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FSourcePtr"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FSourceEnd"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FTokenPtr"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FStringPtr"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FSourceLine"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FSaveChar"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.FToken"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.ReadBuffer"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.SkipBlanks"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.CheckToken"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.CheckTokenSymbol"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.Error"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.ErrorFmt"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.ErrorStr"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.HexToBinary"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.NextToken"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.SourcePos"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.TokenComponentIdent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.TokenFloat"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.TokenInt"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.TokenString"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.TokenSymbolIs"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.SourceLine"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TParser.Token"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- EThread
- *********************************************************************
- -->
- <element name="EThread"> <!-- Class -->
- <short>Thread error exception.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadMethod"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority"> <!-- Enumeration type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority.tpIdle"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority.tpLowest"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority.tpLower"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority.tpNormal"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority.tpHigher"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority.tpHighest"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThreadPriority.tpTimeCritical"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TThread
- *********************************************************************
- -->
- <element name="TThread"> <!-- Class -->
- <short>Basic thread class, which starts a new thread.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FHandle"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FThreadID"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FTerminated"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FSuspended"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FFreeOnTerminate"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FFinished"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FReturnValue"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FOnTerminate"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FMethod"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FSynchronizeException"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.CallOnTerminate"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.GetPriority"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.SetPriority"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.SetSuspended"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.DoTerminate"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Execute"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Synchronize"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.ReturnValue"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Terminated"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FStackPointer"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FStackSize"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FCallExitProcess"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Resume"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Suspend"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Terminate"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.WaitFor"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.FreeOnTerminate"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Handle"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Priority"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.Suspended"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.ThreadID"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TThread.OnTerminate"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TOperation"> <!-- Enumeration type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TOperation.opInsert"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TOperation.opRemove"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState"> <!-- Set type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csLoading"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csReading"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csWriting"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csDestroying"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csDesigning"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csAncestor"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csUpdating"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csFixups"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csFreeNotification"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csInline"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentState.csDesignInstance"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentStyle"> <!-- Set type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentStyle.csInheritable"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponentStyle.csCheckPropAvail"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TGetChildProc"> <!-- Procedure type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!--
- *********************************************************************
- TComponent
- *********************************************************************
- -->
- <element name="TComponent"> <!-- Class -->
- <short>Base class for all components that need owner-owned functionality.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FOwner"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FName"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FTag"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FComponents"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FFreeNotifies"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FDesignInfo"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FVCLComObject"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FComponentState"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetComponent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetComponentCount"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetComponentIndex"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Insert"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ReadLeft"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ReadTop"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Remove"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SetComponentIndex"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SetReference"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.WriteLeft"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.WriteTop"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FComponentStyle"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ChangeName"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.DefineProperties"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetChildren"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetChildOwner"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetChildParent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetNamePath"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetOwner"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Loaded"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Notification"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ReadState"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SetAncestor"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SetDesigning"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SetName"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SetChildOrder"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SetParentComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Updating"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Updated"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.UpdateRegistry"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ValidateRename"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ValidateContainer"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ValidateInsert"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.WriteState"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Create"> <!-- Constructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Destroy"> <!-- Destructor -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.DestroyComponents"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Destroying"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FindComponent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FreeNotification"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.FreeOnRelease"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.GetParentComponent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.HasParent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.InsertComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.RemoveComponent"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.SafeCallException"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Components"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ComponentCount"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ComponentIndex"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ComponentState"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.ComponentStyle"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.DesignInfo"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Owner"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.VCLComObject"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Name"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TComponent.Tag"> <!-- Property -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TActiveXRegType"> <!-- Enumeration type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TActiveXRegType.axrComponentOnly"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TActiveXRegType.axrIncludeDescendants"> <!-- Enumeration value -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterComponentsProc"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterNoIconProc"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="Point"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="SmallPoint"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="Rect"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="Bounds"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterClass"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterClasses"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterClassAlias"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="UnRegisterClass"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="UnRegisterClasses"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="UnRegisterModuleClasses"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="FindClass"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="GetClass"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterComponents"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterNoIcon"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterNonActiveX"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TIdentMapEntry"> <!-- Record type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TIdentMapEntry.Value"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TIdentMapEntry.Name"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TIdentToInt"> <!-- Function type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TIntToIdent"> <!-- Function type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="TFindGlobalComponent"> <!-- Function type -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="MainThreadID"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="FindGlobalComponent"> <!-- Variable -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RegisterIntegerConsts"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="IdentToInt"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="IntToIdent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="InitInheritedComponent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="InitComponentRes"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="ReadComponentRes"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="ReadComponentResEx"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="ReadComponentResFile"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="WriteComponentResFile"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="GlobalFixupReferences"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="GetFixupReferenceNames"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="GetFixupInstanceNames"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RedirectFixupReferences"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RemoveFixupReferences"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="RemoveFixups"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="FindNestedComponent"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="BeginGlobalLoading"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="NotifyGlobalLoading"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="EndGlobalLoading"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="CollectionsEqual"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="ObjectBinaryToText"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="ObjectTextToBinary"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="ObjectResourceToText"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="ObjectTextToResource"> <!-- Procedure -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <element name="LineStart"> <!-- Function -->
- <short></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!-- Template for copy&paste:
- <element name="">
- <short>
- </short>
- <descr>
- </descr>
- </element>
- -->
- </module>
- </fpdoc-descriptions>
|