classes.xml 347 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837
  1. <?xml version="1.0" encoding="ISO8859-1"?>
  2. <fpdoc-descriptions>
  3. <package name="rtl">
  4. <module name="classes">
  5. <short>Basic classes for RTL </short>
  6. <descr>
  7. <p>This documentation describes the FPC <file>classes</file> unit.
  8. The <file>Classes</file> unit contains basic classes for the Free Component
  9. Library (FCL):
  10. </p>
  11. <ul>
  12. <li> a <link id="TList"/> class for maintaining lists of pointers, </li>
  13. <li> <link id='TStringList'/> for lists of strings, </li>
  14. <li> <link id='TCollection'/> to manage collections of objects </li>
  15. <li> <link id="TStream"/> classes to support streaming.</li>
  16. </ul>
  17. <p>
  18. Furthermore it introduces methods for object persistence, and classes
  19. that understand an owner-owned relationship, with automatic memory
  20. management.
  21. </p>
  22. </descr>
  23. <element name="TRTLCriticalSection">
  24. <short>A class for managing multiple threads</short>
  25. <descr>This class is not yet implemented.</descr>
  26. </element>
  27. <element name="HRSRC">
  28. <short>Type to manage resources</short>
  29. <descr>This type is provided for Delphi compatibilty, it is used for resource
  30. streams.
  31. </descr>
  32. </element>
  33. <element name="PStringItem">
  34. <short>
  35. Pointer to a <link id="TStringItem"/> record.
  36. </short>
  37. </element>
  38. <element name="TStringItem">
  39. <short>
  40. The <var>TStringItem</var> is used to store the string and object items in a
  41. <link id="TStringList"/> string list instance. It should never be used
  42. directly.
  43. </short>
  44. <seealso>
  45. <link id="TStringList"/>
  46. </seealso>
  47. </element>
  48. <element name="TStringItem.FString">
  49. <short>
  50. Contains the string.
  51. </short>
  52. </element>
  53. <element name="TStringItem.FObject">
  54. <short>
  55. Contains the object, if any.
  56. </short>
  57. </element>
  58. <element name="THandle">
  59. <short>Type to manage streams.</short>
  60. <descr>This type is used as the handle for <link
  61. id='THandleStream'>THandleStream</link> stream descendents</descr>
  62. </element>
  63. <element name="TComponentName">
  64. <short>Special type for component names.</short>
  65. <descr>Names of components are of type <var>TComponentName</var>. By
  66. specifying a different type, the Object inspector can handle this property
  67. differently than a standard string property.
  68. </descr>
  69. </element>
  70. <element name="IUnknown">
  71. <short><var>IUnknown</var> Interface</short>
  72. <descr>IUknown is not yet implemented since interfaces are not yet supported
  73. by FPC.
  74. </descr>
  75. </element>
  76. <element name="TGUID">
  77. <short>Special type for GUID's.</short>
  78. <descr>FPC doesn't support GUID yet.
  79. </descr>
  80. </element>
  81. <element name="HMODULE">
  82. <short>Special type for handling modules.</short>
  83. <descr>
  84. FPC doesn't support modules yet, so this is a dummy type.
  85. </descr>
  86. </element>
  87. <element name="TPoint">
  88. <short>Special type to handle a fake <link id='TComponent'/>
  89. position</short>
  90. <descr>
  91. <p>This record describes a coordinate. It is used to handle the <link
  92. id='TComponent.Top'>Top</link> and <link id='TComponent.Left'>Left</link>
  93. properties of <link id='TComponent'/>.
  94. </p>
  95. <p>
  96. <var>X</var> represents the X-Coordinate of the point described by the record.
  97. <var>Y</var> represents the Y-Coordinate of the point described by the record.
  98. </p>
  99. </descr>
  100. </element>
  101. <element name="TSmallPoint">
  102. <short>Type to describe point in a small plane.</short>
  103. <descr>Same as <link id='TPoint'/>, only the X and Y ranges are limited to
  104. 2-byte integers instead of 4-byte integers.
  105. </descr>
  106. </element>
  107. <element name="TRect">
  108. <short>Descibes a rectangle</short>
  109. <descr>
  110. <var>TRect</var> describes a rectangle in space with its upper-left (in
  111. (<var>Top</var>,<var>Left></var>)) and lower-right (in (<var>Bottom</var>
  112. ,<var>Right</var>)) corners.
  113. </descr>
  114. </element>
  115. <element name="MaxListSize">
  116. <short>
  117. Maximum number of elemens in list.
  118. </short>
  119. <descr>
  120. This constant sets the maximum number of elements in a <link id='TList'/>.
  121. </descr>
  122. </element>
  123. <element name="scShift">
  124. <short>
  125. Indicates Shift key in a keyboard shortcut.
  126. </short>
  127. </element>
  128. <element name="scCtrl">
  129. <short>
  130. indicates CTRL key in a keyboard shortcut.
  131. </short>
  132. </element>
  133. <element name="scAlt">
  134. <short>
  135. Indicates ALT key in a keyboard shortcut.
  136. </short>
  137. </element>
  138. <element name="scNone">
  139. <short>
  140. Indicates no special key is presed in a keyboard shortcut.
  141. </short>
  142. </element>
  143. <element name="soFromBeginning">
  144. <short>
  145. <link id='TStream.Seek'>Seek</link> starts relative to the stream origin.
  146. </short>
  147. </element>
  148. <element name="soFromCurrent">
  149. <short>
  150. <link id='TStream.Seek'>Seek</link> starts relative to the current position in
  151. the stream.
  152. </short>
  153. </element>
  154. <element name="soFromEnd">
  155. <short>
  156. <link id='TStream.Seek'>Seek</link> starts relative to the stream end.
  157. </short>
  158. </element>
  159. <element name="fmCreate">
  160. <short>
  161. <link id='TFileStream.Create'/> creates a new file if needed.
  162. </short>
  163. </element>
  164. <element name="fmOpenRead">
  165. <short>
  166. <link id='TFileStream.Create'/> opens a file with read-only access.
  167. </short>
  168. </element>
  169. <element name="fmOpenWrite">
  170. <short>
  171. <link id='TFileStream.Create'/> opens a file with write-only access.
  172. </short>
  173. </element>
  174. <element name="fmOpenReadWrite">
  175. <short>
  176. <link id='TFileStream.Create'/> opens a file with read-write access.
  177. </short>
  178. </element>
  179. <element name="toEof">
  180. <short>
  181. Token returned by <link id='TParser.Token'/>, meaning the end of the input stream was reached.
  182. </short>
  183. </element>
  184. <element name="toEof">
  185. <short>
  186. Value returned by <link id='TParser.Token'/> when the end of the input stream was reached.
  187. </short>
  188. </element>
  189. <element name="toSymbol">
  190. <short>
  191. Value returned by <link id='TParser.Token'/> when a symbol was found in the input stream.
  192. </short>
  193. </element>
  194. <element name="toString">
  195. <short>
  196. Value returned by <link id='TParser.Token'/> when a string was found in the
  197. input stream.
  198. </short>
  199. </element>
  200. <element name="toInteger">
  201. <short>
  202. Value returned by <link id='TParser.Token'/> when an integer was found in the
  203. input stream.
  204. </short>
  205. </element>
  206. <element name="toFloat">
  207. <short>
  208. Value returned by <link id='TParser.Token'/> when a floating point value was found in the
  209. input stream.
  210. </short>
  211. </element>
  212. <element name="FilerSignature">
  213. <short>
  214. Constant that is found at the start of a binary stream containing a
  215. streamed component.
  216. </short>
  217. </element>
  218. <element name="TAlignment">
  219. <short>Type to specify text alignment in controls that display text.</short>
  220. <descr>
  221. <p>
  222. The <var>TAlignment</var> type is used to specify the alignment of
  223. the text in controls that display a text.
  224. </p>
  225. </descr>
  226. </element>
  227. <element name="TAlignment.taLeftJustify">
  228. <short>Text is displayed aligned to the left
  229. </short>
  230. </element>
  231. <element name="TAlignment.taCenter">
  232. <short>Text is displayed centered.
  233. </short>
  234. </element>
  235. <element name="TAlignment.taRightJustify">
  236. <short>Text is displayed aligned to the right.
  237. </short>
  238. </element>
  239. <element name="TShiftState">
  240. <short>
  241. Indicates what special keys were pressed in combination with a normal key
  242. </short>
  243. <descr>
  244. <p>
  245. This type is used when describing a shortcut key or when describing what
  246. special keys are pressed on a keyboard when a key event is generated.
  247. </p>
  248. <p>
  249. The set contains the special keys that can be used in combination with a
  250. 'normal' key.
  251. </p>
  252. </descr>
  253. </element>
  254. <element name="TShiftState.ssShift">
  255. <short>Either left or right shift key</short>
  256. </element>
  257. <element name="TShiftState.ssAlt">
  258. <short>Either left or right ALT key</short>
  259. </element>
  260. <element name="TShiftState.ssCTRL">
  261. <short>Either left or right CTRL key</short>
  262. </element>
  263. <element name="TShiftState.ssLeft">
  264. <short>Either left or right shift key</short>
  265. </element>
  266. <element name="TShiftState.ssRight">
  267. <short></short>
  268. </element>
  269. <element name="TShiftState.ssMiddle">
  270. <short></short>
  271. </element>
  272. <element name="TShiftState.ssDouble">
  273. <short></short>
  274. </element>
  275. <element name="TShiftState.ssMeta">
  276. <short>The META key</short>
  277. </element>
  278. <element name="TShiftState.ssSuper">
  279. <short></short>
  280. </element>
  281. <element name="TShiftState.ssHyper">
  282. <short></short>
  283. </element>
  284. <element name="TShiftState.ssAltGr">
  285. <short>The AltGr (right Alt) key</short>
  286. </element>
  287. <element name="TShiftState.ssCaps">
  288. <short>The CapsLock key</short>
  289. </element>
  290. <element name="TShiftState.ssNum">
  291. <short>The NumLock key</short>
  292. </element>
  293. <element name="TShiftState.ssScroll">
  294. <short>The ScrollLock key</short>
  295. </element>
  296. <element name="TNotifyEvent">
  297. <short>
  298. Standard event handler type.
  299. </short>
  300. <descr>
  301. Most event handlers are implemented as a property of type
  302. <var>TNotifyEvent</var>. When this is set to a certain method of a class,
  303. when the event occurs, the method will be called, and the class that generated
  304. the event will pass itself along as the <var>Sender</var> argument.
  305. </descr>
  306. <seealso>
  307. <link id="THelpEvent"/>
  308. <link id="TGetStrProc"/>
  309. </seealso>
  310. </element>
  311. <element name="THelpEvent">
  312. <short>
  313. Special event for display of online help.
  314. </short>
  315. <descr>
  316. This event is used for display of online help.
  317. </descr>
  318. <seealso>
  319. <link id="TNotifyEvent"/>
  320. <link id="TGetStrProc"/>
  321. </seealso>
  322. </element>
  323. <element name="TGetStrProc">
  324. <short>
  325. Event for retrieving string values.
  326. </short>
  327. <descr>
  328. This event is used as a callback to retrieve string values. It is used,
  329. among other things, to pass along string properties in property editors.
  330. </descr>
  331. <seealso>
  332. <link id="THelpEvent"/>
  333. <link id="TNotifyEvent"/>
  334. </seealso>
  335. </element>
  336. <element name="EStreamError">
  337. <short>
  338. Exception raised when an error occurs during read or write operations on a
  339. stream.
  340. </short>
  341. <descr>
  342. <p>
  343. An <var>EStreamError</var> is raised when an error occurs during reading
  344. from or writng to a stream: Possible causes are
  345. </p>
  346. <ol>
  347. <li>Not enough data is available in the stream.</li>
  348. <li>Trying to seek beyond the beginning or end of the stream.</li>
  349. <li>Trying to set the capacity of a memory stream and no memory is
  350. available.</li>
  351. <li>Trying to write to a resource stream.</li>
  352. </ol>
  353. </descr>
  354. <seealso>
  355. <link id="EFCreateError"/>
  356. </seealso>
  357. </element>
  358. <element name="EFCreateError">
  359. <short>
  360. Exception raised when an error occurred during creation of a <link id="TFileStream"/>
  361. stream.
  362. </short>
  363. <descr>
  364. When the operating system reports an error during creation of a new file in
  365. the <link id="TFileStream.Create">Filestream Constructor</link>, a
  366. <var>EFCreateError</var> is raised.
  367. </descr>
  368. <seealso>
  369. <link id="EStreamError"/>
  370. <link id="EFOpenError"/>
  371. </seealso>
  372. </element>
  373. <element name="EFOpenError">
  374. <short>
  375. Exception raised when an error occurred during creation of a <link id="TFileStream"/>
  376. </short>
  377. <descr>
  378. When the operating system reports an error during the opening of a file in
  379. the <link id="TFileStream.Create">Filestream Constructor</link>, a
  380. <var>EFOpenError</var> is raised.
  381. </descr>
  382. <seealso>
  383. <link id="EStreamError"/>
  384. <link id="EFCreateError"/>
  385. </seealso>
  386. </element>
  387. <element name="EFilerError">
  388. <short>
  389. Exception raised by the component streaming system if an error occurs.
  390. </short>
  391. <descr>
  392. This class serves as an ancestor class for exceptions that are raised
  393. when an error occurs during component streaming.
  394. A <var>EFilerError</var> exception is raised when a class is registered
  395. twice.
  396. </descr>
  397. <seealso>
  398. <link id="EStreamError"/>
  399. <link id="EReadError"/>
  400. </seealso>
  401. </element>
  402. <element name="EReadError">
  403. <short>
  404. Exception raised if an error occurs while reading from a stream.
  405. </short>
  406. <descr>
  407. <p>If an error occurs when reading from a stream, a <var>EReadError</var>
  408. exception is raised. Possible causes for this are:</p>
  409. <ol>
  410. <li> Not enough data is available when reading from a stream</li>
  411. <li> The stream containing a component's data contains invalid data.
  412. this will occurr only when reading a component from a stream.</li>
  413. </ol>
  414. </descr>
  415. <seealso>
  416. <link id="EFilerError"/>
  417. <link id="EWriteError"/>
  418. </seealso>
  419. </element>
  420. <element name="EWriteError">
  421. <short>
  422. Exception raised when an error occurs during writing to a stream.
  423. </short>
  424. <descr>
  425. <p>If an error occurs when writing to a stream, a <var>EWriteError</var>
  426. exception is raised. Possible causes for this are:
  427. </p>
  428. <ol>
  429. <li> The stream doesn't allow writing.</li>
  430. <li> An error occurred when writing a property to a stream.</li>
  431. </ol>
  432. </descr>
  433. <seealso>
  434. <link id="EFilerError"/>
  435. <link id="EReadError"/>
  436. </seealso>
  437. </element>
  438. <element name="EClassNotFound">
  439. <short>
  440. Exception raised when an unknown class is referenced in a streamed
  441. component.
  442. </short>
  443. <descr>
  444. When the streaming system needs to create a component, it looks for the
  445. class pointer (VMT) in the list of registered classes by its name. If this
  446. name is not found, then an <var>EClassNotFound</var> is raised.
  447. </descr>
  448. <seealso>
  449. <link id="EFilerError"/>
  450. </seealso>
  451. </element>
  452. <element name="EMethodNotFound">
  453. <short>
  454. This exception is no longer used.
  455. </short>
  456. <descr>
  457. This exception is no longer used in the streaming system. This error is
  458. replaced by a <link id="EReadError"/>.
  459. </descr>
  460. <seealso>
  461. <link id="EFilerError"/>
  462. <link id="EReadError"/>
  463. </seealso>
  464. </element>
  465. <element name="EInvalidImage">
  466. <short>
  467. Exception raised when the resource header needed for streaming of a
  468. component is invalid.
  469. </short>
  470. <descr>
  471. This exception is not used by Free Pascal but is provided for Delphi
  472. compatibility.
  473. </descr>
  474. </element>
  475. <element name="EResNotFound">
  476. <short>
  477. Exception raised when a resource, needed to initialize a component, is not found.
  478. </short>
  479. <descr>
  480. This exception is not used by Free Pascal but is provided for Delphi
  481. compatibility.
  482. </descr>
  483. </element>
  484. <element name="EListError">
  485. <short>
  486. Exception raised when an error occurs in lists handling.
  487. </short>
  488. <descr>
  489. <p>
  490. If an error occurs in one of the <link id='TList'/> or <link id='TStrings'/>
  491. methods, then a <var>EListError</var> exception is raised. This can occur in
  492. one of the following cases:
  493. </p>
  494. <ol>
  495. <li>There is not enough memory to expand the list.</li>
  496. <li>The list tried to grow beyond its maximal capacity.</li>
  497. <li>An attempt was made to reduce the capacity of the list below the
  498. current element count.</li>
  499. <li>An attempt was made to set the list count to a negative value.</li>
  500. <li>A non-existent element of the list was referenced. (i.e. the list index
  501. was out of bounds)</li>
  502. <li>An attempt was made to move an item to a position outside the list's
  503. bounds.</li>
  504. </ol>
  505. </descr>
  506. <seealso>
  507. <link id="TList"/>,
  508. <link id="TStrings"/>
  509. </seealso>
  510. </element>
  511. <element name="EBitsError">
  512. <short>
  513. Exception raised when an error occurs in a method of <link id="TBits"/>.
  514. </short>
  515. <descr>
  516. When an index of a bit in a <link id="TBits"/> is out of the valid range
  517. (<var>0</var> to <var>Count-1</var>) then a <var>EBitsError</var> exception
  518. is raised.
  519. </descr>
  520. </element>
  521. <element name="EStringListError">
  522. <short>
  523. Exception raised when an error occurs in a method of <link id="TStrings"/>.
  524. </short>
  525. <descr>
  526. <p>
  527. When an error occurs in one of the methods of <link id="TStrings"/> then
  528. an <var>EStringListError</var> is raised. This can have one of the following
  529. causes:
  530. </p>
  531. <ol>
  532. <li>There is not enough memory to expand the list.</li>
  533. <li>The list tried to grow beyond its maximal capacity.</li>
  534. <li>A non-existent element of the list was referenced. (i.e. the list index
  535. was out of bounds)</li>
  536. <li>An attempt was made to add a duplicate entry to a <link
  537. id="TStringList"/> when <link id="TStringList.AllowDuplicates"/> is
  538. <var>False</var>.</li>
  539. </ol>
  540. </descr>
  541. <seealso>
  542. <link id="TStrings"/>
  543. <link id="TStringList"/>
  544. </seealso>
  545. </element>
  546. <element name="EComponentError">
  547. <short>
  548. Exception raised when an error occurs in the component registration
  549. routines.
  550. </short>
  551. <descr>
  552. <p>
  553. When an error occurs during the registration of a component, or when naming
  554. a component, then a <var>EComponentError</var> is raised. Possible causes
  555. are:
  556. </p>
  557. <ol>
  558. <li>An name with an illegal character was assigned to a component.</li>
  559. <li>A component with the same name and owner already exists.</li>
  560. <li>The component registration system isn't set up properly.</li>
  561. </ol>
  562. </descr>
  563. <seealso>
  564. <link id="TComponent"/>
  565. <link id="TComponent.Name"/>
  566. </seealso>
  567. </element>
  568. <element name="EParserError">
  569. <short>
  570. Exception raised when an error occurs during the parsing of streams.
  571. </short>
  572. <descr>
  573. When an error occurs during the parsing of a stream, an <var>EParserError</var>
  574. is raised. Usually this indicates that an invalid token was found on the
  575. input stream, or the token read from the stream wasn't the expected token.
  576. </descr>
  577. <seealso>
  578. <link id="TParser"/>
  579. </seealso>
  580. </element>
  581. <element name="EOutOfResources">
  582. <short>
  583. Exception raised when the system is out of resources.
  584. </short>
  585. <descr>
  586. This exception is not used in Free Pascal, it is defined for Delphi
  587. compatibiliy purposes only.
  588. </descr>
  589. </element>
  590. <element name="EInvalidOperation">
  591. <short>
  592. Exception raised when an invalid operation is performed. Obsolete.
  593. </short>
  594. <descr>
  595. This exception is not used in Free Pascal, it is defined for Delphi
  596. compatibiliy purposes only.
  597. </descr>
  598. </element>
  599. <!--
  600. **********************************************************************
  601. TList
  602. **********************************************************************
  603. -->
  604. <element name="TList">
  605. <short>Class to manage collections of pointers.</short>
  606. <descr>
  607. <p>
  608. <var>TList</var> is a class that can be used to manage collections of
  609. pointers. It introduces methods and properties to store the pointers, search
  610. in the list of pointers, sort them. It manages its memory by itself, no
  611. intervention for that is needed. It has an event notification mechanism
  612. which allows to notify of list changes. This slows down some of
  613. <var>TList</var> mechanisms, and if no notification is used,
  614. <link id="TFPList"/> may be used instead.
  615. </p>
  616. <p>
  617. To manage collections of strings, it is better to use a <link
  618. id="TStrings"/> descendent such as <link id="TStringList"/>. To manage
  619. general objects, a <link id="TCollection"/> class exists, from which a
  620. descendent can be made to manage collections of various kinds.
  621. </p>
  622. </descr>
  623. <seealso>
  624. <link id="TStrings"/>
  625. <link id="TCollection"/>
  626. </seealso>
  627. </element>
  628. <element name="TList.Create">
  629. <short>Class to manage collections of pointers.</short>
  630. <descr>
  631. <p>
  632. <var>TList.Create</var> creates a new instance of <var>TList</var>.
  633. It clears the list and prepares it for use.
  634. </p>
  635. </descr>
  636. <seealso>
  637. <link id="TList"/>
  638. <link id="TList.Destroy"/>
  639. </seealso>
  640. </element>
  641. <!-- To be documented later on maybe ?
  642. function Get(Index: Integer): Pointer;
  643. <element name="">
  644. <short>
  645. </short>
  646. <descr>
  647. </descr>
  648. </element>
  649. procedure Grow; virtual;
  650. <element name="">
  651. <short>
  652. </short>
  653. <descr>
  654. </descr>
  655. </element>
  656. procedure Put(Index: Integer; Item: Pointer);
  657. <element name="">
  658. <short>
  659. </short>
  660. <descr>
  661. </descr>
  662. </element>
  663. procedure SetCapacity(NewCapacity: Integer);
  664. <element name="">
  665. <short>
  666. </short>
  667. <descr>
  668. </descr>
  669. </element>
  670. procedure SetCount(NewCount: Integer);
  671. <element name="">
  672. <short>
  673. </short>
  674. <descr>
  675. </descr>
  676. </element>
  677. -->
  678. <element name="TList.Destroy">
  679. <short>
  680. Destroys the list and releases the memory used to store the list elements.
  681. </short>
  682. <descr>
  683. <var>Destroy</var> destroys the list and releases the memory used to store
  684. the list elements. The elements themselves are in no way touched, i.e. any
  685. meomory they point to must be explicitly released before calling the
  686. destructor.
  687. </descr>
  688. </element>
  689. <element name="TList.Add">
  690. <short>
  691. Adds a new pointer to the list.
  692. </short>
  693. <descr>
  694. <p>
  695. <var>Add</var> adds a new pointer to the list after the last pointer (i.e.
  696. at position <var>Count</var>, thus increasing the item count with 1.
  697. If the list is at full capacity, the capacity of the list is expanded,
  698. using the <link id="TList.Grow">Grow</link> method.
  699. </p>
  700. <p>
  701. To insert a pointer at a certain position in the list, use the <link
  702. id="TList.Insert">Insert</link> method instead.
  703. </p>
  704. </descr>
  705. <seealso>
  706. <link id="TList.Delete">Delete</link>
  707. <link id="TList.Grow">Grow</link>
  708. <link id="TList.Insert">Insert</link>
  709. </seealso>
  710. </element>
  711. <element name="TList.Clear">
  712. <short>
  713. Clears the pointer list.
  714. </short>
  715. <descr>
  716. <var>Clear</var> removes all pointers from the list, and sets the capacity to
  717. 0, thus freeing any memory allocated to maintain the list.
  718. </descr>
  719. <seealso>
  720. <link id="TList.Destroy">Destroy</link>
  721. </seealso>
  722. </element>
  723. <!-- procedure Delete(Index: Integer); -->
  724. <element name="TList.Delete">
  725. <short>
  726. Removes a pointer from the list.
  727. </short>
  728. <descr>
  729. <p><var>Delete</var> removes the pointer at position <var>Index</var> from the
  730. list, shifting all following pointers one position up (or to the left).
  731. </p>
  732. <p>
  733. The memory the pointer is pointing to is <i>not</i> deallocated.
  734. </p>
  735. </descr>
  736. </element>
  737. <element name="TList.Error">
  738. <short>
  739. Raises an <link id="EListError"/> exception.
  740. </short>
  741. <descr>
  742. <var>Error</var> raises an <link id="EListError"/> exception, with a message
  743. formatted with <var>Msg</var> and <var>Data</var>.
  744. </descr>
  745. </element>
  746. <!-- procedure Exchange(Index1, Index2: Integer); -->
  747. <element name="TList.Exchange">
  748. <short>
  749. Exchanges two pointers in the list.
  750. </short>
  751. <descr>
  752. <var>Exchange</var> exchanges the pointers at positions <var>Index1</var>
  753. and <var>Index2</var>. Both pointers must be withing the current range of
  754. the list, or an <link id="EListError"/> exception will be raised.
  755. </descr>
  756. </element>
  757. <element name="TList.Expand">
  758. <short>
  759. Increases the capacity of the list if needed.
  760. </short>
  761. <descr>
  762. <p>
  763. <var>Expand</var> increases the capacity of the list if the current element
  764. count matches the current list capacity.
  765. </p>
  766. <p>
  767. The capacity is increased according to the following algorithm:
  768. </p>
  769. <ol>
  770. <li>If the capacity is less than 3, the capacity is increased with 4.</li>
  771. <li>If the capacity is larger than 3 and less than 8, the capacity is increased with 8.</li>
  772. <li>If the capacity is larger than 8, the capacity is increased with 16.</li>
  773. </ol>
  774. <p>
  775. The return value is <var>Self</var>.
  776. </p>
  777. </descr>
  778. <seealso>
  779. <link id="TList.Capacity">Capacity</link>
  780. <!-- <link id="Tlist.SetCapacity"> -->
  781. </seealso>
  782. </element>
  783. <element name="TList.First">
  784. <short>
  785. Returns the first non-nil pointer in the list.
  786. </short>
  787. <descr>
  788. <p>
  789. <var>First</var> returns the value of the first non-nil pointer in the
  790. list.
  791. </p>
  792. <p> If there are no pointers in the list or all pointers equal
  793. <var>Nil</var>, then <var>Nil</var> is returned.
  794. </p>
  795. </descr>
  796. <seealso>
  797. <link id="TList.Last">Last</link>
  798. </seealso>
  799. </element>
  800. <!-- function IndexOf(Item: Pointer): Integer; -->
  801. <element name="TList.IndexOf">
  802. <short>
  803. Returns the index of a given pointer.
  804. </short>
  805. <descr>
  806. <p>
  807. <var>IndexOf</var> searches for the pointer <var>Item</var> in the list
  808. of pointers, and returns the index of the pointer, if found.
  809. </p>
  810. <p>
  811. If no pointer with the value <var>Item</var> was found, -1 is returned.
  812. </p>
  813. </descr>
  814. </element>
  815. <element name="TList.Insert">
  816. <short>
  817. Inserts a new pointer in the list at a given position.
  818. </short>
  819. <descr>
  820. <p>
  821. <var>Insert</var> inserts pointer <var>Item</var> at position
  822. <var>Index</var> in the list. All pointers starting from <var>Index</var>
  823. are shifted to the right.
  824. </p>
  825. <p>
  826. If <var>Index</var> is not a valid position, then a <link id="EListError"/>
  827. exception is raised.
  828. </p>
  829. </descr>
  830. <seealso>
  831. <link id="TList.Add">Add</link>
  832. <link id="Tlist.Delete">Delete</link>
  833. </seealso>
  834. </element>
  835. <element name="TList.Insert.Item">
  836. <short> Pointer to be inserted.</short>
  837. </element>
  838. <element name="TList.Insert.Index">
  839. <short> Position where to insert</short>
  840. </element>
  841. <!-- function Last: Pointer; -->
  842. <element name="TList.Last">
  843. <short>
  844. Returns the last non-nil pointer in the list.
  845. </short>
  846. <descr>
  847. <p>
  848. <var>Last</var> returns the value of the last non-nil pointer in the
  849. list.
  850. </p>
  851. <p> If there are no pointers in the list or all pointers equal
  852. <var>Nil</var>, then <var>Nil</var> is returned.
  853. </p>
  854. </descr>
  855. <seealso>
  856. <link id="TList.First">First</link>
  857. </seealso>
  858. </element>
  859. <!-- procedure Move(CurIndex, NewIndex: Integer); -->
  860. <element name="TList.Move">
  861. <short>
  862. Moves a pointer from one position in the list to another.
  863. </short>
  864. <descr>
  865. <p>
  866. <var>Move</var> moves the pointer at position <var>CurIndex</var>
  867. to position <var>NewIndex</var>. This is done by storing the value
  868. at position <var>CurIndex</var>, deleting the pointer at position
  869. <var>CurIndex</var>, and reinserting the value at position
  870. <var>NewIndex</var>
  871. </p>
  872. <p>
  873. If <var>CurIndex</var> or <var>Newindex</var> are not inside the valid
  874. range of indices, an <link id="EListError"/> exception is raised.
  875. </p>
  876. </descr>
  877. <seealso>
  878. <link id="TList.Exchange">Exchange</link>
  879. </seealso>
  880. </element>
  881. <!-- function Remove(Item: Pointer): Integer; -->
  882. <element name="TList.Remove">
  883. <short>
  884. Removes a value from the list.
  885. </short>
  886. <descr>
  887. <var>Remove</var> searches <var>Item</var> in the list, and, if it finds it,
  888. deletes the item from the list. Only the first occurrence of <var>Item</var>
  889. is removed.
  890. </descr>
  891. <seealso>
  892. <link id="TList.Delete">Delete</link>
  893. <link id="TList.IndexOf">IndexOf</link>
  894. <link id="Tlist.Insert">Insert</link>
  895. </seealso>
  896. </element>
  897. <!-- procedure Pack; -->
  898. <element name="TList.Pack">
  899. <short>
  900. Removes <var>Nil</var> pointers from the list and frees unused memory.
  901. </short>
  902. <descr>
  903. <var>Pack</var> removes all <var>nil</var> pointers from the list.
  904. The capacity of the list is then set to the number of pointers in the list.
  905. This method can be used to free unused memory if the list has grown to
  906. very large sizes and has a lot of unneeded nil pointers in it.
  907. </descr>
  908. <seealso>
  909. <link id="TList.Clear"/>
  910. </seealso>
  911. </element>
  912. <!-- procedure Sort(Compare: TListSortCompare); -->
  913. <element name="TList.Sort">
  914. <short>
  915. Sorts the pointers in the list.
  916. </short>
  917. <descr>
  918. <p>
  919. <var>Sort></var> sorts the pointers in the list. Two pointers are compared
  920. by passing them to the <var>Compare</var> function. The result of this
  921. function determines how the pointers will be sorted:
  922. </p>
  923. <ul>
  924. <li> If the result of this function is negative, the first pointer is
  925. assumed to be 'less' than the second and will be moved before the second
  926. in the list.</li>
  927. <li> If the function result is positive, the first pointer is assumed to
  928. be 'greater than' the second and will be moved after the second in the
  929. list.</li>
  930. <li> if the function result is zero, the pointers are assumed to be 'equal'
  931. and no moving will take place. </li>
  932. </ul>
  933. <p>
  934. The sort is done using a quicksort algorithm.
  935. </p>
  936. </descr>
  937. </element>
  938. <!-- property Capacity: Integer read FCapacity write SetCapacity; -->
  939. <element name="TList.Capacity">
  940. <short>
  941. Current capacity (i.e. number of pointers that can be stored) of the list.
  942. </short>
  943. <descr>
  944. <p><var>Capacity</var> contains the number of pointers the list can store
  945. before it starts to grow.
  946. </p>
  947. <p>
  948. If a new pointer is added to the list using <link id="TList.Add">add</link>
  949. or <link id="TList.Insert">insert</link>, and there is not enough memory to
  950. store the new pointer, then the list will try to allocate more memory to
  951. store the new pointer. Since this is a time consuming operation, it is
  952. important that this operation be performed as little as possible. If
  953. it is known how many pointers there will be before filling the list, it is
  954. a good idea to set the capacity first before filling. This ensures that the
  955. list doesn't need to grow, and will speed up filling the list.
  956. </p>
  957. </descr>
  958. <seealso>
  959. <link id="TList.SetCapacity">SetCapacity</link>
  960. <link id="TList.Count">Count</link>
  961. </seealso>
  962. </element>
  963. <!-- property Count: Integer read FCount write SetCount; -->
  964. <element name="Tlist.Count">
  965. <short>
  966. Current number of pointers in the list.
  967. </short>
  968. <descr>
  969. <var>Count</var> is the current number of (possibly <var>Nil</var>) pointers
  970. in the list. Since the list is zero-based, the index of the largest pointer
  971. is <var>Count-1</var>.
  972. </descr>
  973. <link id="TList.Capacity">Capacity</link>
  974. </element>
  975. <!-- property Items[Index: Integer]: Pointer read Get write Put; default; -->
  976. <element name="TList.Items">
  977. <short>
  978. Probides access to the pointers in the list.
  979. </short>
  980. <descr>
  981. <p><var>Items</var> is used to access the pointers in the list. It is the
  982. default property of the <var>TList</var> class, so it can be omitted.
  983. </p>
  984. <p>
  985. The list is zero-based, so Index must be in the range <var>0</var> to
  986. <var>Count-1</var>.
  987. </p>
  988. </descr>
  989. </element>
  990. <!-- property List: PPointerList read FList; -->
  991. <element name="TList.List">
  992. <short>
  993. Memory array where pointers are stored.
  994. </short>
  995. <descr>
  996. <var>List</var> points to the memory space where the pointers are stored.
  997. This can be used to quickly copy the list of pinters to another location.
  998. </descr>
  999. </element>
  1000. <!--
  1001. **********************************************************************
  1002. TFPList
  1003. **********************************************************************
  1004. -->
  1005. <element name="TFPList">
  1006. <short>Class to manage collections of pointers.</short>
  1007. <descr>
  1008. <p>
  1009. <var>TFPList</var> is a class that can be used to manage collections of
  1010. pointers. It introduces methods and properties to store the pointers, search
  1011. in the list of pointers, sort them. It manages its memory by itself, no
  1012. intervention for that is needed. Contrary to <link id="TList"/>,
  1013. <var>TFPList</var> has no notification mechanism. If no notification
  1014. mechanism is used, it is better to use <var>TFPList</var> instead of
  1015. <var>TList</var>, as the performance of <var>TFPList</var> is much higher.
  1016. </p>
  1017. <p>
  1018. To manage collections of strings, it is better to use a <link
  1019. id="TStrings"/> descendent such as <link id="TStringList"/>. To manage
  1020. general objects, a <link id="TCollection"/> class exists, from which a
  1021. descendent can be made to manage collections of various kinds.
  1022. </p>
  1023. </descr>
  1024. <seealso>
  1025. <link id="TStrings"/>
  1026. <link id="TCollection"/>
  1027. </seealso>
  1028. </element>
  1029. <element name="TFPList.Assign">
  1030. <short>Assigns all items of a list to this list.</short>
  1031. <descr>
  1032. <var>Assign</var> clears the list and adds all pointers in
  1033. <var>Obj</var> to the list.
  1034. </descr>
  1035. <seealso>
  1036. <link id="TFPList.Add"/>
  1037. <link id="TFPList.Clear"/>
  1038. </seealso>
  1039. </element>
  1040. <element name="TFPList.Extract">
  1041. <short>Remove the first occurrence of a pointer from the list.</short>
  1042. <descr>
  1043. <var>Extract</var> searches for the first occurrence of <var>Item</var> in
  1044. the list and deletes it from the list. If <var>Item</var> was found, it's
  1045. value is returned. If <var>Item</var> was not found, <var>Nil</var> is returned.
  1046. </descr>
  1047. <seealso>
  1048. <link id="TFPList.Delete"/>
  1049. </seealso>
  1050. </element>
  1051. <!-- To be documented later on maybe ?
  1052. function Get(Index: Integer): Pointer;
  1053. <element name="">
  1054. <short>
  1055. </short>
  1056. <descr>
  1057. </descr>
  1058. </element>
  1059. procedure Grow; virtual;
  1060. <element name="">
  1061. <short>
  1062. </short>
  1063. <descr>
  1064. </descr>
  1065. </element>
  1066. procedure Put(Index: Integer; Item: Pointer);
  1067. <element name="">
  1068. <short>
  1069. </short>
  1070. <descr>
  1071. </descr>
  1072. </element>
  1073. procedure SetCapacity(NewCapacity: Integer);
  1074. <element name="">
  1075. <short>
  1076. </short>
  1077. <descr>
  1078. </descr>
  1079. </element>
  1080. procedure SetCount(NewCount: Integer);
  1081. <element name="">
  1082. <short>
  1083. </short>
  1084. <descr>
  1085. </descr>
  1086. </element>
  1087. -->
  1088. <element name="TFPList.Destroy">
  1089. <short>
  1090. Destroys the list and releases the memory used to store the list elements.
  1091. </short>
  1092. <descr>
  1093. <var>Destroy</var> destroys the list and releases the memory used to store
  1094. the list elements. The elements themselves are in no way touched, i.e. any
  1095. meomory they point to must be explicitly released before calling the
  1096. destructor.
  1097. </descr>
  1098. </element>
  1099. <element name="TFPList.Add">
  1100. <short>
  1101. Adds a new pointer to the list.
  1102. </short>
  1103. <descr>
  1104. <p>
  1105. <var>Add</var> adds a new pointer to the list after the last pointer (i.e.
  1106. at position <var>Count</var>, thus increasing the item count with 1.
  1107. If the list is at full capacity, the capacity of the list is expanded,
  1108. using the <link id="TFPList.Grow">Grow</link> method.
  1109. </p>
  1110. <p>
  1111. To insert a pointer at a certain position in the list, use the <link
  1112. id="TFPList.Insert">Insert</link> method instead.
  1113. </p>
  1114. </descr>
  1115. <seealso>
  1116. <link id="TFPList.Delete">Delete</link>
  1117. <link id="TFPList.Grow">Grow</link>
  1118. <link id="TFPList.Insert">Insert</link>
  1119. </seealso>
  1120. </element>
  1121. <element name="TFPList.Clear">
  1122. <short>
  1123. Clears the pointer list.
  1124. </short>
  1125. <descr>
  1126. <var>Clear</var> removes all pointers from the list, and sets the capacity to
  1127. 0, thus freeing any memory allocated to maintain the list.
  1128. </descr>
  1129. <seealso>
  1130. <link id="TFPList.Destroy">Destroy</link>
  1131. </seealso>
  1132. </element>
  1133. <!-- procedure Delete(Index: Integer); -->
  1134. <element name="TFPList.Delete">
  1135. <short>
  1136. Removes a pointer from the list.
  1137. </short>
  1138. <descr>
  1139. <p><var>Delete</var> removes the pointer at position <var>Index</var> from the
  1140. list, shifting all following pointers one position up (or to the left).
  1141. </p>
  1142. <p>
  1143. The memory the pointer is pointing to is <i>not</i> deallocated.
  1144. </p>
  1145. </descr>
  1146. </element>
  1147. <element name="TFPList.Error">
  1148. <short>
  1149. Raises an <link id="EListError"/> exception.
  1150. </short>
  1151. <descr>
  1152. <var>Error</var> raises an <link id="EListError"/> exception, with a message
  1153. formatted with <var>Msg</var> and <var>Data</var>.
  1154. </descr>
  1155. </element>
  1156. <!-- procedure Exchange(Index1, Index2: Integer); -->
  1157. <element name="TFPList.Exchange">
  1158. <short>
  1159. Exchanges two pointers in the list.
  1160. </short>
  1161. <descr>
  1162. <var>Exchange</var> exchanges the pointers at positions <var>Index1</var>
  1163. and <var>Index2</var>. Both pointers must be withing the current range of
  1164. the list, or an <link id="EListError"/> exception will be raised.
  1165. </descr>
  1166. </element>
  1167. <element name="TFPList.Expand">
  1168. <short>
  1169. Increases the capacity of the list if needed.
  1170. </short>
  1171. <descr>
  1172. <p>
  1173. <var>Expand</var> increases the capacity of the list if the current element
  1174. count matches the current list capacity.
  1175. </p>
  1176. <p>
  1177. The capacity is increased according to the following algorithm:
  1178. </p>
  1179. <ol>
  1180. <li>If the capacity is less than 3, the capacity is increased with 4.</li>
  1181. <li>If the capacity is larger than 3 and less than 8, the capacity is increased with 8.</li>
  1182. <li>If the capacity is larger than 8, the capacity is increased with 16.</li>
  1183. </ol>
  1184. <p>
  1185. The return value is <var>Self</var>.
  1186. </p>
  1187. </descr>
  1188. <seealso>
  1189. <link id="TFPList.Capacity">Capacity</link>
  1190. <!-- <link id="TFPList.SetCapacity"> -->
  1191. </seealso>
  1192. </element>
  1193. <element name="TFPList.First">
  1194. <short>
  1195. Returns the first non-nil pointer in the list.
  1196. </short>
  1197. <descr>
  1198. <p>
  1199. <var>First</var> returns the value of the first non-nil pointer in the
  1200. list.
  1201. </p>
  1202. <p> If there are no pointers in the list or all pointers equal
  1203. <var>Nil</var>, then <var>Nil</var> is returned.
  1204. </p>
  1205. </descr>
  1206. <seealso>
  1207. <link id="TFPList.Last">Last</link>
  1208. </seealso>
  1209. </element>
  1210. <!-- function IndexOf(Item: Pointer): Integer; -->
  1211. <element name="TFPList.IndexOf">
  1212. <short>
  1213. Returns the index of a given pointer.
  1214. </short>
  1215. <descr>
  1216. <p>
  1217. <var>IndexOf</var> searches for the pointer <var>Item</var> in the list
  1218. of pointers, and returns the index of the pointer, if found.
  1219. </p>
  1220. <p>
  1221. If no pointer with the value <var>Item</var> was found, -1 is returned.
  1222. </p>
  1223. </descr>
  1224. </element>
  1225. <element name="TFPList.Insert">
  1226. <short>
  1227. Inserts a new pointer in the list at a given position.
  1228. </short>
  1229. <descr>
  1230. <p>
  1231. <var>Insert</var> inserts pointer <var>Item</var> at position
  1232. <var>Index</var> in the list. All pointers starting from <var>Index</var>
  1233. are shifted to the right.
  1234. </p>
  1235. <p>
  1236. If <var>Index</var> is not a valid position, then a <link id="EListError"/>
  1237. exception is raised.
  1238. </p>
  1239. </descr>
  1240. <seealso>
  1241. <link id="TFPList.Add">Add</link>
  1242. <link id="TFPList.Delete">Delete</link>
  1243. </seealso>
  1244. </element>
  1245. <element name="TFPList.Insert.Item">
  1246. <short> Pointer to be inserted.</short>
  1247. </element>
  1248. <element name="TFPList.Insert.Index">
  1249. <short> Position where to insert</short>
  1250. </element>
  1251. <!-- function Last: Pointer; -->
  1252. <element name="TFPList.Last">
  1253. <short>
  1254. Returns the last non-nil pointer in the list.
  1255. </short>
  1256. <descr>
  1257. <p>
  1258. <var>Last</var> returns the value of the last non-nil pointer in the
  1259. list.
  1260. </p>
  1261. <p> If there are no pointers in the list or all pointers equal
  1262. <var>Nil</var>, then <var>Nil</var> is returned.
  1263. </p>
  1264. </descr>
  1265. <seealso>
  1266. <link id="TFPList.First">First</link>
  1267. </seealso>
  1268. </element>
  1269. <!-- procedure Move(CurIndex, NewIndex: Integer); -->
  1270. <element name="TFPList.Move">
  1271. <short>
  1272. Moves a pointer from one position in the list to another.
  1273. </short>
  1274. <descr>
  1275. <p>
  1276. <var>Move</var> moves the pointer at position <var>CurIndex</var>
  1277. to position <var>NewIndex</var>. This is done by storing the value
  1278. at position <var>CurIndex</var>, deleting the pointer at position
  1279. <var>CurIndex</var>, and reinserting the value at position
  1280. <var>NewIndex</var>
  1281. </p>
  1282. <p>
  1283. If <var>CurIndex</var> or <var>Newindex</var> are not inside the valid
  1284. range of indices, an <link id="EListError"/> exception is raised.
  1285. </p>
  1286. </descr>
  1287. <seealso>
  1288. <link id="TFPList.Exchange">Exchange</link>
  1289. </seealso>
  1290. </element>
  1291. <!-- function Remove(Item: Pointer): Integer; -->
  1292. <element name="TFPList.Remove">
  1293. <short>
  1294. Removes a value from the list.
  1295. </short>
  1296. <descr>
  1297. <var>Remove</var> searches <var>Item</var> in the list, and, if it finds it,
  1298. deletes the item from the list. Only the first occurrence of <var>Item</var>
  1299. is removed.
  1300. </descr>
  1301. <seealso>
  1302. <link id="TFPList.Delete">Delete</link>
  1303. <link id="TFPList.IndexOf">IndexOf</link>
  1304. <link id="TFPList.Insert">Insert</link>
  1305. </seealso>
  1306. </element>
  1307. <!-- procedure Pack; -->
  1308. <element name="TFPList.Pack">
  1309. <short>
  1310. Removes <var>Nil</var> pointers from the list and frees unused memory.
  1311. </short>
  1312. <descr>
  1313. <var>Pack</var> removes all <var>nil</var> pointers from the list.
  1314. The capacity of the list is then set to the number of pointers in the list.
  1315. This method can be used to free unused memory if the list has grown to
  1316. very large sizes and has a lot of unneeded nil pointers in it.
  1317. </descr>
  1318. <seealso>
  1319. <link id="TFPList.Clear"/>
  1320. </seealso>
  1321. </element>
  1322. <!-- procedure Sort(Compare: TFPListSortCompare); -->
  1323. <element name="TFPList.Sort">
  1324. <short>
  1325. Sorts the pointers in the list.
  1326. </short>
  1327. <descr>
  1328. <p>
  1329. <var>Sort></var> sorts the pointers in the list. Two pointers are compared
  1330. by passing them to the <var>Compare</var> function. The result of this
  1331. function determines how the pointers will be sorted:
  1332. </p>
  1333. <ul>
  1334. <li> If the result of this function is negative, the first pointer is
  1335. assumed to be 'less' than the second and will be moved before the second
  1336. in the list.</li>
  1337. <li> If the function result is positive, the first pointer is assumed to
  1338. be 'greater than' the second and will be moved after the second in the
  1339. list.</li>
  1340. <li> if the function result is zero, the pointers are assumed to be 'equal'
  1341. and no moving will take place. </li>
  1342. </ul>
  1343. <p>
  1344. The sort is done using a quicksort algorithm.
  1345. </p>
  1346. </descr>
  1347. </element>
  1348. <!-- property Capacity: Integer read FCapacity write SetCapacity; -->
  1349. <element name="TFPList.Capacity">
  1350. <short>
  1351. Current capacity (i.e. number of pointers that can be stored) of the list.
  1352. </short>
  1353. <descr>
  1354. <p><var>Capacity</var> contains the number of pointers the list can store
  1355. before it starts to grow.
  1356. </p>
  1357. <p>
  1358. If a new pointer is added to the list using <link id="TFPList.Add">add</link>
  1359. or <link id="TFPList.Insert">insert</link>, and there is not enough memory to
  1360. store the new pointer, then the list will try to allocate more memory to
  1361. store the new pointer. Since this is a time consuming operation, it is
  1362. important that this operation be performed as little as possible. If
  1363. it is known how many pointers there will be before filling the list, it is
  1364. a good idea to set the capacity first before filling. This ensures that the
  1365. list doesn't need to grow, and will speed up filling the list.
  1366. </p>
  1367. </descr>
  1368. <seealso>
  1369. <link id="TFPList.SetCapacity">SetCapacity</link>
  1370. <link id="TFPList.Count">Count</link>
  1371. </seealso>
  1372. </element>
  1373. <!-- property Count: Integer read FCount write SetCount; -->
  1374. <element name="TFPList.Count">
  1375. <short>
  1376. Current number of pointers in the list.
  1377. </short>
  1378. <descr>
  1379. <var>Count</var> is the current number of (possibly <var>Nil</var>) pointers
  1380. in the list. Since the list is zero-based, the index of the largest pointer
  1381. is <var>Count-1</var>.
  1382. </descr>
  1383. <link id="TFPList.Capacity">Capacity</link>
  1384. </element>
  1385. <!-- property Items[Index: Integer]: Pointer read Get write Put; default; -->
  1386. <element name="TFPList.Items">
  1387. <short>
  1388. Probides access to the pointers in the list.
  1389. </short>
  1390. <descr>
  1391. <p><var>Items</var> is used to access the pointers in the list. It is the
  1392. default property of the <var>TFPList</var> class, so it can be omitted.
  1393. </p>
  1394. <p>
  1395. The list is zero-based, so Index must be in the range <var>0</var> to
  1396. <var>Count-1</var>.
  1397. </p>
  1398. </descr>
  1399. </element>
  1400. <!-- property List: PPointerList read FList; -->
  1401. <element name="TFPList.List">
  1402. <short>
  1403. Memory array where pointers are stored.
  1404. </short>
  1405. <descr>
  1406. <var>List</var> points to the memory space where the pointers are stored.
  1407. This can be used to quickly copy the list of pinters to another location.
  1408. </descr>
  1409. </element>
  1410. <!--
  1411. **********************************************************************
  1412. ThreadList
  1413. **********************************************************************
  1414. -->
  1415. <element name="TThreadList"> <!-- Class -->
  1416. <short>Thread-safe list object (not yet implemented).</short>
  1417. <descr>This class is not yet implemented in Free Pascal.</descr>
  1418. <errors></errors>
  1419. <seealso></seealso>
  1420. </element>
  1421. <element name="TThreadList.Create"> <!-- Constructor -->
  1422. <short>Creates a new thread-safe list.</short>
  1423. <descr>This class is not yet implemented in Free Pascal.</descr>
  1424. <errors></errors>
  1425. <seealso></seealso>
  1426. </element>
  1427. <element name="TThreadList.Destroy"> <!-- Destructor -->
  1428. <short>Destroys the list instance.</short>
  1429. <descr>This class is not yet implemented in Free Pascal.</descr>
  1430. <errors></errors>
  1431. <seealso></seealso>
  1432. </element>
  1433. <element name="TThreadList.Add"> <!-- Procedure -->
  1434. <short>Adds an element to the list.</short>
  1435. <descr>This class is not yet implemented in Free Pascal.</descr>
  1436. <errors></errors>
  1437. <seealso></seealso>
  1438. </element>
  1439. <element name="TThreadList.Clear"> <!-- Procedure -->
  1440. <short>Removes all emements from the list.</short>
  1441. <descr>This class is not yet implemented in Free Pascal.</descr>
  1442. <errors></errors>
  1443. <seealso></seealso>
  1444. </element>
  1445. <element name="TThreadList.LockList"> <!-- Function -->
  1446. <short>Locks the list for exclusive access.</short>
  1447. <descr>This class is not yet implemented in Free Pascal.</descr>
  1448. <errors></errors>
  1449. <seealso></seealso>
  1450. </element>
  1451. <element name="TThreadList.Remove"> <!-- Procedure -->
  1452. <short>Removes an item from the list.</short>
  1453. <descr>This class is not yet implemented in Free Pascal.</descr>
  1454. <errors></errors>
  1455. <seealso></seealso>
  1456. </element>
  1457. <element name="TThreadList.UnlockList"> <!-- Procedure -->
  1458. <short>Unlocks the list after it was locked.</short>
  1459. <descr>This class is not yet implemented in Free Pascal.</descr>
  1460. <errors></errors>
  1461. <seealso></seealso>
  1462. </element>
  1463. <!--
  1464. **********************************************************************
  1465. TBits helpers
  1466. **********************************************************************
  1467. -->
  1468. <element name="BITSHIFT"> <!-- Constant -->
  1469. <short>Used to calculate the size of a bits array</short>
  1470. <seealso>
  1471. <link id="TBits"/>
  1472. <link id="TBits.Size"/>
  1473. </seealso>
  1474. </element>
  1475. <element name="MASK"> <!-- Constant -->
  1476. <short>Bitmask with all bits on.</short>
  1477. <seealso>
  1478. <link id="TBits"/>
  1479. </seealso>
  1480. </element>
  1481. <element name="MaxBitRec"> <!-- Constant -->
  1482. <short>Maximum number of bit records in TBits.</short>
  1483. <seealso>
  1484. <link id="TBits"/>
  1485. </seealso>
  1486. </element>
  1487. <element name="MaxBitFlags"> <!-- Constant -->
  1488. <short>Maximum number of bits in TBits collection.</short>
  1489. <seealso>
  1490. <link id="TBits"/>
  1491. </seealso>
  1492. </element>
  1493. <element name="TBitArray"> <!-- Array type -->
  1494. <short>Array to store bits.</short>
  1495. <seealso>
  1496. <link id="TBits"/>
  1497. </seealso>
  1498. </element>
  1499. <!--
  1500. **********************************************************************
  1501. TBis
  1502. **********************************************************************
  1503. -->
  1504. <element name="TBits"> <!-- Class -->
  1505. <short>Class to store collections of bits (binary values that can be 0 or 1)</short>
  1506. <descr>
  1507. <p><var>TBits</var> can be used to store collections of bits in an indexed
  1508. array. This is especially useful for storing collections of booleans:
  1509. Normally the size of a boolean is the size of the smallest enumerated type,
  1510. i.e. 1 byte. Since a bit can take 2 values it can be used to store a boolean
  1511. as well. Since TBits can store 8 bits in a byte, it takes 8 times less space
  1512. to store an array of booleans in a TBits class then it would take to stoe
  1513. them in a conventional array.
  1514. </p>
  1515. <p><var>TBits</var> introduces methods to store and retrieve bit values,
  1516. apply masks, and search for bits.
  1517. </p>
  1518. </descr>
  1519. </element>
  1520. <element name="TBits.Create"> <!-- Constructor -->
  1521. <short>Creates a new bits collection.</short>
  1522. <descr>
  1523. <p>
  1524. <var>Create</var> creates a new bit collection with initial size <var>TheSize</var>.
  1525. The size of the collection can be changed later on.
  1526. </p>
  1527. <p>All bits are initially set to zero.</p>
  1528. </descr>
  1529. <seealso>
  1530. <link id="TBits.Destroy">Destroy</link>
  1531. </seealso>
  1532. </element>
  1533. <element name="TBits.Destroy"> <!-- Destructor -->
  1534. <short>Destroys a bit collection</short>
  1535. <descr>
  1536. <p>
  1537. <var>Destroy</var> destroys a previously created bit collection and
  1538. releases all memory used to store the bit collection.
  1539. </p>
  1540. <p>
  1541. <var>Destroy</var> should never be called directly, <var>Free</var>
  1542. should be used instead.
  1543. </p>
  1544. </descr>
  1545. <errors>
  1546. None.
  1547. </errors>
  1548. <seealso>
  1549. <link id="TBits.Create">Create</link>
  1550. </seealso>
  1551. </element>
  1552. <element name="TBits.getFSize"> <!-- Function -->
  1553. <short>Returns the number of records used to store the bits.</short>
  1554. <descr>
  1555. <var>GetFSize</var> returns the number of records used to store the current
  1556. number of bits.
  1557. </descr>
  1558. <errors>
  1559. None.
  1560. </errors>
  1561. <seealso>
  1562. <link id="TBits.Size">Size</link>
  1563. </seealso>
  1564. </element>
  1565. <element name="TBits.seton"> <!-- Procedure -->
  1566. <short>Turn a particular bit on.</short>
  1567. <descr>
  1568. <var>SetOn</var> turns on the bit at position <var>bit</var>, i.e. sets it
  1569. to 1.
  1570. If <var>bit</var> is at a position bigger than the current size, the collection
  1571. is expanded to the required size using <link id="TBits.grow">Grow</link>.
  1572. </descr>
  1573. <errors>
  1574. If <var>bit</var> is larger than the maximum allowed bits array size or
  1575. is negative, an <link id="EBitsError"/> exception is raised.
  1576. </errors>
  1577. <seealso>
  1578. <link id="TBits.Bits">Bits</link>
  1579. <link id="TBits.clear">Clear</link>
  1580. </seealso>
  1581. </element>
  1582. <element name="TBits.clear"> <!-- Procedure -->
  1583. <short>Clears a particular bit.</short>
  1584. <descr>
  1585. <var>Clear</var> clears the bit at position <var>bit</var>. If the array
  1586. If <var>bit</var> is at a position bigger than the current size, the collection
  1587. is expanded to the required size using <link id="TBits.grow">Grow</link>.
  1588. </descr>
  1589. <errors>
  1590. If <var>bit</var> is larger than the maximum allowed bits array size or
  1591. is negative, an <link id="EBitsError"/> exception is raised.
  1592. </errors>
  1593. <seealso>
  1594. <link id="TBits.Bits">Bits</link>
  1595. <link id="TBits.clear">seton</link>
  1596. </seealso>
  1597. </element>
  1598. <element name="TBits.clearall"> <!-- Procedure -->
  1599. <short>Clears all bits in the array.</short>
  1600. <descr>
  1601. <var>ClearAll</var> clears all bits in the array, i.e. sets them to zero. <var>
  1602. ClearAll</var> works faster than clearing all individual bits, since it
  1603. uses the packed nature of the bits.
  1604. </descr>
  1605. <errors>
  1606. None.
  1607. </errors>
  1608. <seealso>
  1609. <link id="TBits.Bits">Bits</link>
  1610. <link id="TBits.clear">clear</link>
  1611. </seealso>
  1612. </element>
  1613. <element name="TBits.andbits"> <!-- Procedure -->
  1614. <short>Performs an <var>and</var> operation on the bits.</short>
  1615. <descr>
  1616. <var>andbits</var> performs an <var>and</var> operation on the bits in
  1617. the array with the bits of array <var>BitSet</var>. If <var>BitSet</var>
  1618. contains less bits than the current array, then all bits which have no
  1619. counterpart in <var>BitSet</var> are cleared.
  1620. </descr>
  1621. <errors>
  1622. None.
  1623. </errors>
  1624. <seealso>
  1625. <link id="TBits.clearall">ClearAll</link>
  1626. <link id="TBits.orbits">OrBits</link>
  1627. <link id="TBits.xorbits">XOrBits</link>
  1628. <link id="TBits.notbits">NotBits</link>
  1629. </seealso>
  1630. </element>
  1631. <element name="TBits.orbits"> <!-- Procedure -->
  1632. <short>Performs an <var>or</var> operation on the bits.</short>
  1633. <descr>
  1634. <p>
  1635. <var>andbits</var> performs an <var>or</var> operation on the bits in
  1636. the array with the bits of array <var>BitSet</var>.
  1637. </p>
  1638. <p>
  1639. If <var>BitSet</var>
  1640. contains less bits than the current array, then all bits which have no
  1641. counterpart in <var>BitSet</var> are left untouched.
  1642. </p>
  1643. <p>
  1644. If the current array contains less bits than <var>BitSet</var> then it is
  1645. grown to the size of <var>BitSet</var> before the <var>or</var> operation is
  1646. performed.
  1647. </p>
  1648. </descr>
  1649. <errors>
  1650. None.
  1651. </errors>
  1652. <seealso>
  1653. <link id="TBits.clearall">ClearAll</link>
  1654. <link id="TBits.andbits">andBits</link>
  1655. <link id="TBits.xorbits">XOrBits</link>
  1656. <link id="TBits.notbits">NotBits</link>
  1657. </seealso>
  1658. </element>
  1659. <element name="TBits.xorbits"> <!-- Procedure -->
  1660. <short>Performs a <var>xor</var> operation on the bits.</short>
  1661. <descr>
  1662. <p><var>XorBits</var> performs a <var>xor</var> operation on the bits in
  1663. the array with the bits of array <var>BitSet</var>.
  1664. </p>
  1665. <p>If <var>BitSet</var>
  1666. contains less bits than the current array, then all bits which have no
  1667. counterpart in <var>BitSet</var> are left untouched.
  1668. </p>
  1669. <p>
  1670. If the current array contains less bits than <var>BitSet</var> then it is
  1671. grown to the size of <var>BitSet</var> before the <var>xor</var> operation is
  1672. performed.
  1673. </p>
  1674. </descr>
  1675. <errors>
  1676. None.
  1677. </errors>
  1678. <seealso>
  1679. <link id="TBits.clearall">ClearAll</link>
  1680. <link id="TBits.andbits">andBits</link>
  1681. <link id="TBits.orbits">OrBits</link>
  1682. <link id="TBits.notbits">NotBits</link>
  1683. </seealso>
  1684. </element>
  1685. <element name="TBits.notbits"> <!-- Procedure -->
  1686. <short>Performs a <var>not</var> operation on the bits.</short>
  1687. <descr>
  1688. <p><var>NotBits</var> performs a <var>not</var> operation on the bits in
  1689. the array with the bits of array <var>Bitset</var>.
  1690. </p>
  1691. <p>If <var>BitSet</var>
  1692. contains less bits than the current array, then all bits which have no
  1693. counterpart in <var>BitSet</var> are left untouched.
  1694. </p>
  1695. </descr>
  1696. <errors>
  1697. None.
  1698. </errors>
  1699. <seealso>
  1700. <link id="TBits.clearall">ClearAll</link>
  1701. <link id="TBits.andbits">andBits</link>
  1702. <link id="TBits.orbits">OrBits</link>
  1703. <link id="TBits.xorbits">XOrBits</link>
  1704. </seealso>
  1705. </element>
  1706. <element name="TBits.get"> <!-- Function -->
  1707. <short>Retrieve the value of a particular bit</short>
  1708. <descr>
  1709. <var>Get</var> returns <var>True</var> if the bit at position <var>bit</var>
  1710. is set, or <var>False</var> if it is not set.
  1711. </descr>
  1712. <errors>
  1713. If <var>bit</var> is not a valid bit index then an <link id="EBitsError"/>
  1714. exception is raised.
  1715. </errors>
  1716. <seealso>
  1717. <link id="TBits.Bits">Bits</link>
  1718. <link id="TBits.FindFirstBit">FindFirstBit</link>
  1719. <link id="TBits.seton">seton</link>
  1720. </seealso>
  1721. </element>
  1722. <element name="TBits.grow"> <!-- Procedure -->
  1723. <short>Expands the bits array to the requested size.</short>
  1724. <descr>
  1725. <var>Grow</var> expands the bit array so it can at least contain
  1726. <var>nbit</var> bits. If <var>nbit</var> is less than the current size,
  1727. nothing happens.
  1728. </descr>
  1729. <errors>
  1730. If there is not enough memory to complete the operation, then an
  1731. <link id="EBitsError"/>is raised.
  1732. </errors>
  1733. <seealso>
  1734. <link id="TBits.Size">Size</link>
  1735. </seealso>
  1736. </element>
  1737. <element name="TBits.equals"> <!-- Function -->
  1738. <short>Determines whether the bits of 2 arrays are equal.</short>
  1739. <descr>
  1740. <p><var>equals</var> returns <var>True</var> if all the bits in <var>BitSet</var>
  1741. are the same as the ones in the current BitSet; if not, <var>False</var> is
  1742. returned.
  1743. </p>
  1744. <p>
  1745. If the sizes of the two BitSets are different, the arrays are still reported
  1746. equal when all the bits in the larger set, which are not present in the smaller
  1747. set, are zero.
  1748. </p>
  1749. </descr>
  1750. <errors>
  1751. None.
  1752. </errors>
  1753. <seealso>
  1754. <link id="TBits.clearall">ClearAll</link>
  1755. <link id="TBits.andbits">andBits</link>
  1756. <link id="TBits.orbits">OrBits</link>
  1757. <link id="TBits.xorbits">XOrBits</link>
  1758. </seealso>
  1759. </element>
  1760. <element name="TBits.SetIndex"> <!-- Procedure -->
  1761. <short>Sets the start position for <link
  1762. id="TBits.FindNextBit">FindNextBit</link> and <link
  1763. id="TBits.FindPrevBit">FindPrevBit</link></short>
  1764. <descr>
  1765. <p>
  1766. <var>SetIndex</var> sets the search start position for<link
  1767. id="TBits.FindNextBit">FindNextBit</link> and
  1768. <link id="TBits.FindPrevBit">FindPrevBit</link> to <var>Index</var>.
  1769. This means that these calls will start searching from position
  1770. <var>Index</var>.
  1771. </p>
  1772. <p>This mechanism provides an alternative to <link
  1773. id="TBits.FindFirstBit">FindFirstBit</link> which can also be used to
  1774. position for the <var>FindNextBit</var> and <var>FindPrevBit</var> calls.
  1775. </p>
  1776. </descr>
  1777. <errors>
  1778. None.
  1779. </errors>
  1780. <seealso>
  1781. <link id="TBits.FindNextBit">FindNextBit</link>
  1782. <link id="TBits.FindPrevBit">FindPrevBit</link>
  1783. <link id="TBits.FindFirstBit">FindFirstBit</link>
  1784. <link id="TBits.OpenBit">OpenBit</link>
  1785. </seealso>
  1786. </element>
  1787. <element name="TBits.FindFirstBit"> <!-- Function -->
  1788. <short>Find first bit with a particular value</short>
  1789. <descr>
  1790. <p>
  1791. <var>FindFirstBit</var> searches for the first bit with value
  1792. <var>State</var>. It returns the position of this bit, or <var>-1</var> if
  1793. no such bit was found.
  1794. </p>
  1795. <p>The search starts at position 0 in the array. If the first search
  1796. returned a positive result, the found position is saved, and the
  1797. <link id="TBits.FindNextBit">FindNextBit</link> and <link
  1798. id="TBits.FindPrevBit">FindPrevBit</link> will use this position to resume the
  1799. search. To start a search from a certain position, the start position can be
  1800. set with the <link id="TBits.SetIndex">SetIndex</link> instead.
  1801. </p>
  1802. </descr>
  1803. <errors>
  1804. None.
  1805. </errors>
  1806. <seealso>
  1807. <link id="TBits.FindNextBit">FindNextBit</link>
  1808. <link id="TBits.FindPrevBit">FindPrevBit</link>
  1809. <link id="TBits.OpenBit">OpenBit</link>
  1810. <link id="TBits.SetIndex">SetIndex</link>
  1811. </seealso>
  1812. </element>
  1813. <element name="TBits.FindNextBit"> <!-- Function -->
  1814. <short>Searches the next bit with a particular value.</short>
  1815. <descr>
  1816. <p>
  1817. <var>FindNextBit</var> resumes a previously started search. It searches for
  1818. the next bit with the value specified in the <link
  1819. id="TBits.FindFirstBit">FindFirstBit</link>. The search is done towards the
  1820. end of the array and starts at the position last reported by one of the
  1821. <var>Find</var> calls or at the position set with <link id="TBits.SetIndex">
  1822. SetIndex</link>.
  1823. </p>
  1824. <p>
  1825. If another bit with the same value is found, its position
  1826. is returned. If no more bits with the same value are present in the array,
  1827. <var>-1</var> is returned.
  1828. </p>
  1829. </descr>
  1830. <errors>
  1831. None.
  1832. </errors>
  1833. <seealso>
  1834. <link id="TBits.FindFirstBit">FindFirstBit</link>
  1835. <link id="TBits.FindPrevBit">FindPrevBit</link>
  1836. <link id="TBits.OpenBit">OpenBit</link>
  1837. <link id="TBits.SetIndex">SetIndex</link>
  1838. </seealso>
  1839. </element>
  1840. <element name="TBits.FindPrevBit"> <!-- Function -->
  1841. <short>Searches the previous bit with a particular value.</short>
  1842. <descr>
  1843. <p>
  1844. <var>FindPrevBit</var> resumes a previously started search. It searches for
  1845. the previous bit with the value specified in the <link
  1846. id="TBits.FindFirstBit">FindFirstBit</link>. The search is done towards the
  1847. beginning of the array and starts at the position last reported by one of the
  1848. <var>Find</var> calls or at the position set with <link id="TBits.SetIndex">
  1849. SetIndex</link>.
  1850. </p>
  1851. <p>
  1852. If another bit with the same value is found, its position
  1853. is returned. If no more bits with the same value are present in the array,
  1854. <var>-1</var> is returned.
  1855. </p>
  1856. </descr>
  1857. <errors>
  1858. None.
  1859. </errors>
  1860. <seealso>
  1861. <link id="TBits.FindFirstBit">FindFirstBit</link>
  1862. <link id="TBits.FindNextBit">FindNextBit</link>
  1863. <link id="TBits.OpenBit">OpenBit</link>
  1864. <link id="TBits.SetIndex">SetIndex</link>
  1865. </seealso>
  1866. </element>
  1867. <element name="TBits.OpenBit"> <!-- Function -->
  1868. <short>Returns the position of the first bit that is set to <var>False</var>.</short>
  1869. <descr>
  1870. <var>OpenBit</var> returns the position of the first bit whose value is
  1871. <var>0</var> (<var>False</var>), or <var>-1</var> if no open bit was found.
  1872. This call is equivalent to
  1873. <var>FindFirstBit(False)</var>, except that it doesn't set the position for
  1874. the next searches.
  1875. </descr>
  1876. <errors>
  1877. None.
  1878. </errors>
  1879. <seealso>
  1880. <link id="TBits.FindFirstBit">FindNextBit</link>
  1881. <link id="TBits.FindPrevBit">FindPrevBit</link>
  1882. <link id="TBits.FindFirstBit">FindFirstBit</link>
  1883. <link id="TBits.SetIndex">SetIndex</link>
  1884. </seealso>
  1885. </element>
  1886. <element name="TBits.Bits"> <!-- Property -->
  1887. <short>Access to all bits in the array.</short>
  1888. <descr>
  1889. <var>Bits</var> allows indexed access to all of the bits in the array. It
  1890. gives <var>True</var> if the bit is <var>1</var>, <var>False</var>
  1891. otherwise; Assigning to this property will set, respectively clear the bit.
  1892. </descr>
  1893. <errors>
  1894. If an index is specified which is out of the allowed range then an <link
  1895. id="EBitsError"/> exception is raised.
  1896. </errors>
  1897. <seealso>
  1898. <link id="TBits.Size">Size</link>
  1899. </seealso>
  1900. </element>
  1901. <element name="TBits.Size"> <!-- Property -->
  1902. <short>Current size of the array of bits.</short>
  1903. <descr>
  1904. <var>Size</var> is the current size of the bit array. Setting this property
  1905. will adjust the size; this is equivalent to calling <var>Grow(Value-1)</var>
  1906. </descr>
  1907. <errors>
  1908. If an invalid size (negative or too large) is specified, a <link
  1909. id="EBitsError"/> exception is raised.
  1910. </errors>
  1911. <seealso>
  1912. <link id="TBits.Bits">Bits</link>
  1913. </seealso>
  1914. </element>
  1915. <!--
  1916. *********************************************************************
  1917. TPersistent
  1918. *********************************************************************
  1919. -->
  1920. <element name="TPersistent"> <!-- Class -->
  1921. <short>Base class for streaming system and persistent properties.</short>
  1922. <descr>
  1923. <p><var>TPersistent</var> is the basic class for the streaming system. Since it
  1924. is compiled in the <var>{$M+}</var> state, the compiler generates RTTI
  1925. (Run-Time Type Information) for it and all classes that descend from it.
  1926. This information can be used to stream all properties of classes.
  1927. </p>
  1928. <p>
  1929. It also introduces functionality to assign the contents of 2 classes to
  1930. each other.
  1931. </p>
  1932. </descr>
  1933. <seealso>
  1934. <link id="TComponent"/>
  1935. </seealso>
  1936. </element>
  1937. <element name="TPersistent.AssignError"> <!-- Procedure -->
  1938. <short>Raises an <var>EConvertError</var> when an error occurs during
  1939. assignment.</short>
  1940. <descr>
  1941. <var>AssignError</var> raises an <var>EConvertError</var> exception with
  1942. the classnames of the <var>Source</var> and destination classes. It is used
  1943. when two incompatible classes are assigned to each other.
  1944. </descr>
  1945. <seealso>
  1946. <link id="TPersistent.Assign">Assign</link>
  1947. <link id="TPersistent.AssignTo">AssignTo</link>
  1948. </seealso>
  1949. </element>
  1950. <element name="TPersistent.AssignTo"> <!-- Procedure -->
  1951. <short>Generic assignment function.</short>
  1952. <descr>
  1953. <p>
  1954. <var>AssignTo</var> is the generic function to assign the class' contents to
  1955. another class. This method must be overridden by descendent classes to
  1956. actually assign the content of the source instance to the destination
  1957. instance.
  1958. </p>
  1959. <p>
  1960. The <link id="TPersistent"/> implementation of <var>Assignto</var> raises
  1961. an <var>EConvertError</var> exception. This is done for the following
  1962. reason: If the source class doesn't know how to assign itself to the
  1963. destination class (using <var>AssignTo</var>), the destination class may
  1964. know how get the data from the source class (using <link
  1965. id="TPersistent.Assign">Assign</link>). If all descendent methods are
  1966. implemented correctly, then if neither of the two classes knows how to
  1967. assign their contents to each other, execution will end up at <link
  1968. id="TPersistent.Assign"/>, which will simply execute
  1969. </p>
  1970. <code>
  1971. Dest.AssignTo(Self);
  1972. </code>
  1973. <p>
  1974. If neither of the classes knows how to assign to/from each other, then
  1975. execution will end up at the <var>TPersistent</var> implementation of
  1976. <var>AssignTo</var>, and an exception will be raised.
  1977. </p>
  1978. </descr>
  1979. <seealso>
  1980. <link id="TPersistent.Assign">Assign</link>
  1981. </seealso>
  1982. </element>
  1983. <element name="TPersistent.DefineProperties"> <!-- Procedure -->
  1984. <short>Declare non-published properties that need to be streamed.</short>
  1985. <descr>
  1986. <p>
  1987. <var>DefineProperties</var> must be overridden by descendent classes to
  1988. indicate to the streaming system which non-published properties must
  1989. also be streamed.
  1990. </p>
  1991. <p>
  1992. The streaming systems stores only published properties in the stream.
  1993. Sometimes it is necessary to store additional data in the stream, data
  1994. which is not published. This can be done by overriding the
  1995. <var>DefineProperties</var> method. The <var>Filer</var> object is the
  1996. class that is responsible for writing all properties to the stream.
  1997. </p>
  1998. <p>
  1999. To define new properties, two methods of the <link id="TFiler"/> class
  2000. should be used:
  2001. </p>
  2002. <ol>
  2003. <li><link id="TFiler.DefineProperty">DefineProperty</link>, to define a
  2004. property which can be represented as text.</li>
  2005. <li><link id="TFiler.DefineBinaryProperty">DefineProperty</link>, to define a
  2006. property which contains binary data.</li>
  2007. </ol>
  2008. <p>
  2009. On order for the streaming to work correctly, a call to the inherited
  2010. <var>DefineProperties</var> is also needed, so ancestor objects also
  2011. get the possibility to read or write their private data to the stream.
  2012. Failure to call the inherited method will result in component properties not
  2013. being streamed correctly.
  2014. </p>
  2015. </descr>
  2016. <seealso>
  2017. <link id="TFiler.DefineProperties"/>
  2018. <link id="TFiler"/>
  2019. </seealso>
  2020. </element>
  2021. <element name="TPersistent.GetOwner"> <!-- Function -->
  2022. <short>Returns the owner of the component.</short>
  2023. <descr>
  2024. <var>GetOwner</var> returns the owning component of the classes instane.
  2025. The <var>TPersistent</var> implementation of <var>GetOwner</var> returns
  2026. <var>Nil</var>. <link id="TComponent"/> overrides this method.
  2027. </descr>
  2028. <seealso>
  2029. <link id="TComponent"/>
  2030. </seealso>
  2031. </element>
  2032. <element name="TPersistent.Destroy"> <!-- Destructor -->
  2033. <short>Destroys the <var>TPersistent</var> instance. </short>
  2034. <descr>
  2035. <var>Destroy</var> disposes of the persistent object. This method should
  2036. never be called directly. Instead the <var>Free</var> method should be used.
  2037. </descr>
  2038. </element>
  2039. <element name="TPersistent.Assign"> <!-- Procedure -->
  2040. <short>Assign the contents of one class to another.</short>
  2041. <descr>
  2042. <p>
  2043. <var>Assign</var> copies the contents of <var>Source</var> to
  2044. <var>Self</var>, if the classes of the destination and source classes are
  2045. compatible.
  2046. </p>
  2047. <p>
  2048. The <var>TPersistent</var> implementation of <var>Assign</var> does nothing
  2049. but calling the <link id="TPersistent.AssignTo">AssignTo</link> method of
  2050. source. This means that if the destination class does not know how to assign
  2051. the contents of the source class, the source class instance is asked to assign
  2052. itself to the destination class. This means that it is necessary to
  2053. implement only one of the two methods so that two classes can be assiged to
  2054. one another.
  2055. </p>
  2056. <remark>
  2057. <p>
  2058. In general, a statement of the form
  2059. </p>
  2060. <code>
  2061. Destination:=Source;
  2062. </code>
  2063. <p>
  2064. (where <var>Destination</var> and <var>Source</var> are classes) does not
  2065. achieve the same as a statement of the form
  2066. </p>
  2067. <code>
  2068. Destination.Assign(Source);
  2069. </code>
  2070. <p>After the former statement, both <var>Source</var> and
  2071. <var>Destination</var> will point to the same object. The latter statemtent
  2072. will copy the <i>contents</i> of the <var>Source</var> class to the
  2073. <var>Destination</var> class.
  2074. </p>
  2075. </remark>
  2076. </descr>
  2077. <seealso>
  2078. <link id="TPersistent.AssignTo">AssignTo</link>
  2079. </seealso>
  2080. </element>
  2081. <element name="TPersistent.GetNamePath"> <!-- Function -->
  2082. <short>Returns a string that can be used to identify the class instance.</short>
  2083. <descr>
  2084. <p>
  2085. <var>GetNamePath</var> returns a string that can be used to identify the
  2086. class instance. This can be used to display a name for this instance in a
  2087. Object designer.
  2088. </p>
  2089. <p>
  2090. <var>GetNamePath</var> constructs a name by recursively prepending the
  2091. <var>Classname</var> of the <var>Owner</var> instance to the
  2092. <var>Classname</var> of this instance, separated by a dot.
  2093. </p>
  2094. </descr>
  2095. <seealso>
  2096. <link id="TPersistent.GetOwner"/>
  2097. </seealso>
  2098. </element>
  2099. <element name="TPersistentClass"> <!-- "class of" type -->
  2100. <short>Class reference type for <link id="TPersistent"/>.</short>
  2101. <descr>
  2102. <var>TPersistentClass</var> is the class reference type for the <link id="TPersistent"/> class.
  2103. </descr>
  2104. <seealso>
  2105. <link id="TPersistent"/>
  2106. </seealso>
  2107. </element>
  2108. <!--
  2109. *********************************************************************
  2110. TCollectionItem
  2111. *********************************************************************
  2112. -->
  2113. <element name="TCollectionItem"> <!-- Class -->
  2114. <short>Basic object that is managed by a <link id="TCollection"/> class.</short>
  2115. <descr>
  2116. <p><var>TCollectionItem</var> and <link id='TCollection'/> form a pair of base
  2117. classes that manage a collection of named objects. The
  2118. <var>TCollectionItem</var> is the named object that is managed, it
  2119. represents one item in the collection. An item in the collection is
  2120. represented by two properties: <link id="TCollectionItem.DisplayName"/>,
  2121. <link id="TCollection.Index"/> and <link id="TCollectionItem.ID"/>.
  2122. </p>
  2123. <p>A <var>TCollectionItem</var> object is never created directly. To manage
  2124. a set of named items, it is necessary to make a descendent of
  2125. <var>TCollectionItem</var> to which needed properties and methods are
  2126. added. This descendant can then be managed with a <link id="TCollection"/>
  2127. class. The managing collection will create and destroy it's items by itself,
  2128. it should therefore never be necessary to create <var>TCollectionItem</var>
  2129. descendents manually.
  2130. </p>
  2131. </descr>
  2132. <seealso>
  2133. <link id="TCollection"/>
  2134. </seealso>
  2135. </element>
  2136. <element name="TCollectionItem.Changed"> <!-- Procedure -->
  2137. <short>Method to notify the managing collection that the name or index of
  2138. this item has changed.
  2139. </short>
  2140. <descr>
  2141. This method is called when the <link id="TCollectionItem.DisplayName"/> is
  2142. set or when the <link id="TCollectionItem.Index"/> is changed.
  2143. </descr>
  2144. <seealso>
  2145. <link id="TCollectionItem.Id"/>
  2146. <link id="TCollectionItem.Index"/>
  2147. <link id="TCollection.Update"/>
  2148. </seealso>
  2149. </element>
  2150. <element name="TCollectionItem.GetNamePath"> <!-- Function -->
  2151. <short>Returns the namepath of this collection item.</short>
  2152. <descr>
  2153. <var>GetNamePath</var> overrides the <link id="TPersistent.GetNamePath"/>
  2154. method to return the name of the managing collection and appends its <link
  2155. id="TCollectionItem.Index"/> property.
  2156. </descr>
  2157. <seealso>
  2158. <link id="TCollectionItem.Collection"/>
  2159. <link id="TPersistent.GetNamePath"/>
  2160. <link id="TCollectionItem.Index"/>
  2161. </seealso>
  2162. </element>
  2163. <element name="TCollectionItem.GetOwner"> <!-- Function -->
  2164. <short>Returns the managing collection.</short>
  2165. <descr>
  2166. <var>TCollectionItem</var> overrides <link id="TPersistent.GetOwner"/> to
  2167. and returns the <link id="TCollectionItem.Collection"/> that manages it.
  2168. </descr>
  2169. <seealso>
  2170. <link id="TPersistent.GetOwner"/>
  2171. <link id="TCollectionItem.Collection"/>
  2172. </seealso>
  2173. </element>
  2174. <element name="TCollectionItem.GetDisplayName"> <!-- Function -->
  2175. <short>Returns the <link id="TCollectionItem.DisplayName"/> of the
  2176. collectionitem</short>
  2177. <descr>
  2178. <p>
  2179. <var>GetDisplayName</var> returns the value of the
  2180. <link id="TCollectionItem.DisplayName"/> property.
  2181. By default, this is the classname of the actual <var>TCollectionItem</var> descendant.
  2182. </p>
  2183. <p>
  2184. Descendants of <var>TCollectionItem</var> can and should override this
  2185. method to return a more meaningful value.
  2186. </p>
  2187. </descr>
  2188. <seealso>
  2189. <link id="TCollectionItem.DisplayName"/>
  2190. </seealso>
  2191. </element>
  2192. <element name="TCollectionItem.SetIndex"> <!-- Procedure -->
  2193. <short>Write method for the <link id="TCollectionItem.Index"/> property.</short>
  2194. <descr>
  2195. <var>SetIndex</var> implements the write handler for the <link
  2196. id="TCollectionItem.Index"/> property. It requests the managing collection to
  2197. move this item to the desired index <var>value</var>.
  2198. </descr>
  2199. <seealso>
  2200. <link id="TCollectionItem.Index"/>
  2201. </seealso>
  2202. </element>
  2203. <element name="TCollectionItem.SetDisplayName"> <!-- Procedure -->
  2204. <short>Write method for the <link id="TCollectionItem.DisplayName"/> property</short>
  2205. <descr>
  2206. <p><var>SetDisplayName</var> is the write method for the <link
  2207. id="TCollectionItem.DisplayName"/> property. It does nothing but notifying
  2208. the managing collection that the displayname has changed. It does NOT store
  2209. the actual <var>Value</var>.
  2210. </p>
  2211. <p>
  2212. Descendants of <var>TCollectionItem</var> should override this method to
  2213. store the actual displayname if this is required.
  2214. </p>
  2215. </descr>
  2216. <seealso>
  2217. <link id="TCollectionItem.DisplayName"/>
  2218. </seealso>
  2219. </element>
  2220. <element name="TCollectionItem.Create"> <!-- Constructor -->
  2221. <short>Creates a new instance of this collection item.</short>
  2222. <descr>
  2223. <var>Create</var> instantiates a new item in a <link id="TCollection"/>. It
  2224. is called by the <link id="TCollection.Add"/> function and should under
  2225. normal circumstances never be called directly.
  2226. called
  2227. </descr>
  2228. <seealso>
  2229. <link id="TCollectionItem.Destroy"/>
  2230. </seealso>
  2231. </element>
  2232. <element name="TCollectionItem.Destroy"> <!-- Destructor -->
  2233. <short>Destroyes this collection item.</short>
  2234. <descr>
  2235. <p><var>Destroy</var> removes the item from the managing collection
  2236. and Destroys the item instance.
  2237. </p>
  2238. <p>
  2239. This is the only way to remove items from a collection;
  2240. </p>
  2241. </descr>
  2242. <seealso>
  2243. <link id="TCollectionItem.Create"/>
  2244. </seealso>
  2245. </element>
  2246. <element name="TCollectionItem.Collection"> <!-- Property -->
  2247. <short>Pointer to the collection managing this item.</short>
  2248. <descr>
  2249. <var>Collection</var> points to the collection managing this item. This
  2250. property can be set to point to a new collection. If this is done, the old
  2251. collection will be notified that the item should no longer be managed, and
  2252. the new collection is notified that it should manage this item as well.
  2253. </descr>
  2254. <seealso>
  2255. <link id="TCollection"/>
  2256. </seealso>
  2257. </element>
  2258. <element name="TCollectionItem.ID"> <!-- Property -->
  2259. <short>Initial index of this item.</short>
  2260. <descr>
  2261. <p><var>ID</var> is the initial value of <link id="TCollectionItem.Index"/>;
  2262. it doesn't change after the index changes. It can be used to uniquely
  2263. identify the item. The <var>ID</var> property doesn't change as items are
  2264. added and removed from the collection.
  2265. </p>
  2266. <p>
  2267. While the <link id="TCollectionItem.Index"/> property forms a continuous
  2268. series, <var>ID</var> does not. If items are removed from the collection,
  2269. their <var>ID</var> is not used again, leaving gaps. Only when the
  2270. collection is initialiiy created, the <var>ID</var> and <var>Index</var>
  2271. properties will be equal.
  2272. </p>
  2273. </descr>
  2274. <seealso>
  2275. <link id="TCollection.Items"/>
  2276. <link id="TCollectionItem.Index"/>
  2277. </seealso>
  2278. </element>
  2279. <element name="TCollectionItem.Index"> <!-- Property -->
  2280. <short>Index of the item in its managing collection <link id="TCollection.Items"/> property.</short>
  2281. <descr>
  2282. <p>
  2283. <var>Index</var> is the current index of the item in its managing
  2284. collection's <link id="TCollection.Items"/> property. This property may
  2285. change as items are added and removed from the collection.
  2286. </p>
  2287. <p>The index of an item is zero-based, i.e. the first item has index zero.
  2288. The last item has index <var>Count-1</var> where <var>Count</var> is the
  2289. number of items in the collection.
  2290. </p>
  2291. <p>
  2292. The <var>Index</var> property of the items in a collection form a continuous
  2293. series ranging from <var>0</var> to <var>Count-1</var>. The <link
  2294. id="TCollectionItem.ID"/> property does not form a continuous series, but
  2295. can also be used to identify an item.
  2296. </p>
  2297. </descr>
  2298. <seealso>
  2299. <link id="TCollectionItem.ID"/>
  2300. <link id="TCollection.Items"/>
  2301. </seealso>
  2302. </element>
  2303. <element name="TCollectionItem.DisplayName"> <!-- Property -->
  2304. <short>Name of the item, displayed in the object inspector.</short>
  2305. <descr>
  2306. <p>
  2307. <var>DisplayName</var> contains the name of this item as shown in the object
  2308. inspector. For <var>TCollectionItem</var> this returns always the class name
  2309. of the managing collection, followed by the index of the item.
  2310. </p>
  2311. <p><var>TCollectionItem</var> does not implement any functionality to store
  2312. the <var>DisplayName</var> property. The property can be set, but this will
  2313. have no effect other than that the managing collection is notified of a
  2314. change. The actual displayname will remain unchanged. To store the
  2315. <var>DisplayName</var> property,<var>TCollectionItem</var> descendants
  2316. should override the <link id="TCollectionItem.SetDisplayName"/> and
  2317. <link id="TCollectionItem.GetDisplayName"/> to add storage functionality.
  2318. </p>
  2319. </descr>
  2320. <seealso>
  2321. <link id="TCollectionItem.Index"/>
  2322. <link id="TCollectionItem.ID"/>
  2323. <link id="TCollectionItem.GetDisplayName"/>
  2324. <link id="TCollectionItem.SetDisplayName"/>
  2325. </seealso>
  2326. </element>
  2327. <element name="TCollectionItemClass"> <!-- "class of" type -->
  2328. <short>Class reference for <link id="TCollectionItem"/>.</short>
  2329. <descr>
  2330. <var>TCollectionItemClass</var> is used by the
  2331. <link id="TCollection.ItemClass"/> property of <link id="TCollection"/> to
  2332. identify the descendent class of <link id="TCollectionItem"/> which should
  2333. be created and managed.
  2334. </descr>
  2335. <seealso>
  2336. <link id="TCollectionItem"/>
  2337. <link id="TCollection.ItemClass"/>
  2338. </seealso>
  2339. </element>
  2340. <!--
  2341. *********************************************************************
  2342. TCollection
  2343. *********************************************************************
  2344. -->
  2345. <element name="TCollection"> <!-- Class -->
  2346. <short>Base class to manage collections of named objects.</short>
  2347. <descr>
  2348. <p><var>TCollection</var> implements functionality to manage a collection
  2349. of named objects. Each of these objects needs to be a descendent of the
  2350. <link id="TCollectionItem"/> class. Exactly which type of object is managed
  2351. can be seen from the <link id="TCollection.ItemClass"/> property.
  2352. </p>
  2353. <p>
  2354. Normally, no <var>TCollection</var> is created directly. Instead, a
  2355. descendents of <var>TCollection</var> and <link id="TCollectionItem"/>
  2356. are created as a pair.
  2357. </p>
  2358. </descr>
  2359. <seealso>
  2360. <link id="TCollectionItem"/>
  2361. </seealso>
  2362. </element>
  2363. <element name="TCollection.GetAttrCount"> <!-- Function -->
  2364. <short>Returns the count of attributes associated with each item.</short>
  2365. <descr>
  2366. <p>
  2367. <var>GetAttrCount</var> returns 0 in the <var>TCollection</var>
  2368. implementation. It can be used to determine the number of attributes
  2369. associated with each collection item. Descendent objects should override
  2370. this method to return the number of attributes.
  2371. </p>
  2372. <p>This method is provided for compatibility with Delphi only and is not
  2373. used in Free Pascal.
  2374. </p>
  2375. </descr>
  2376. <seealso>
  2377. <link id="TCollection.GetAttr"/>
  2378. <link id="TCollection.GetItemAttr"/>
  2379. </seealso>
  2380. </element>
  2381. <element name="TCollection.GetAttr"> <!-- Function -->
  2382. <short>Returns an attribute of the collection.</short>
  2383. <descr>
  2384. <p>This method is provided for compatibility with Delphi only and is not
  2385. used in Free Pascal.
  2386. </p>
  2387. </descr>
  2388. <seealso>
  2389. <link id="TCollection.GetAttrCount"/>
  2390. <link id="TCollection.GetItemAttr"/>
  2391. </seealso>
  2392. </element>
  2393. <element name="TCollection.GetItemAttr"> <!-- Function -->
  2394. <short>Returns the attributes of an item.</short>
  2395. <descr>
  2396. <p>This method is provided for compatibility with Delphi only and is not
  2397. used in Free Pascal.
  2398. </p>
  2399. </descr>
  2400. <seealso>
  2401. <link id="TCollection.GetAttr"/>
  2402. <link id="TCollection.GetAttrCount"/>
  2403. </seealso>
  2404. </element>
  2405. <element name="TCollection.GetNamePath"> <!-- Function -->
  2406. <short>Overrides <link id="TPersistent.GetNamePath"/> to return a proper
  2407. pathname.</short>
  2408. <descr>
  2409. <p>
  2410. <var>GetNamePath</var> returns the name path for this collection. If the
  2411. following conditions are satisfied:
  2412. </p>
  2413. <ol>
  2414. <li>There is an owner object.</li>
  2415. <li>The owner object returns a non-empty name path.</li>
  2416. <li>The <link id="TCollection.Propname"/> property is not empty</li>
  2417. </ol>
  2418. <p>
  2419. collection has an owner and the owning object has a name, then the function
  2420. returns the owner name, followed by the propname. If one of the conditions
  2421. is not satisfied, then the classname is returned.
  2422. </p>
  2423. </descr>
  2424. <seealso>
  2425. <link id="TCollection.GetOwner"/>
  2426. <link id="TCollection.Propname"/>
  2427. </seealso>
  2428. </element>
  2429. <element name="TCollection.Changed"> <!-- Procedure -->
  2430. <short>Procedure called if an item is added to or removed from the collection.</short>
  2431. <descr>
  2432. <var>Changed</var> is called if a change takes place in the collection
  2433. managed by the class. If the update count ghas reached zero, it
  2434. calls <link id="TCollection.Update"/> with a nil argument.
  2435. </descr>
  2436. <seealso>
  2437. <link id="TCollection.Update"/>
  2438. <link id="TCollection.Add"/>
  2439. <link id="TCollection.Clear"/>
  2440. </seealso>
  2441. </element>
  2442. <element name="TCollection.GetItem"> <!-- Function -->
  2443. <short>Read handler for the <link id="TCollection.Items"/> property.</short>
  2444. <descr>
  2445. <var>GetItem</var> is the read handler for the <link
  2446. id="TCollection.Items"/> property. It returns the <var>Index</var>-th
  2447. element from the list of objects.
  2448. </descr>
  2449. <errors>
  2450. If <var>Index</var> is outside the allowed range, then an <link
  2451. id="EListError"/> exception is raised.
  2452. </errors>
  2453. <seealso>
  2454. <link id="TCollection.Items"/>
  2455. <link id="TCollection.Count"/>
  2456. <link id="TCollection.SetItem"/>
  2457. </seealso>
  2458. </element>
  2459. <element name="TCollection.SetItem"> <!-- Procedure -->
  2460. <short>Write handler for the <link id="TCollection.Items"/> property.</short>
  2461. <descr>
  2462. <var>SetItem</var> implements the write handler for the <link
  2463. id="TCollection.Items"/> property. It assignes <var>Value</var> to the
  2464. <var>Index</var>-th element in the array. For this to work properly, the
  2465. <link id="TPersistent.Assign"/> method of the <var>Item</var> must work
  2466. correctly.
  2467. </descr>
  2468. <errors>
  2469. If <var>Index</var> is outside the allowed range, then an <link
  2470. id="EListError"/> exception is raised.
  2471. </errors>
  2472. <seealso>
  2473. <link id="TCollection.Items"/>
  2474. <link id="TCollection.Count"/>
  2475. <link id="TCollection.GetItem"/>
  2476. </seealso>
  2477. </element>
  2478. <element name="TCollection.SetItemName"> <!-- Procedure -->
  2479. <short>Virtual method to set the name of the specified item</short>
  2480. <descr>
  2481. </descr>
  2482. <seealso>
  2483. </seealso>
  2484. </element>
  2485. <element name="TCollection.SetPropName"> <!-- Procedure -->
  2486. <short>Write handler for the <link id="TCollection.PropName"/> property</short>
  2487. <descr>
  2488. <var>SetPropName</var> must be overridden by descendent objects to set the
  2489. <link id="TCollection.PropName"/> property to a suitable value. By default,
  2490. <var>SetPropName</var> sets the <var>PropName</var> property to empty.
  2491. </descr>
  2492. <seealso>
  2493. <link id="TCollection.PropName"/>
  2494. </seealso>
  2495. </element>
  2496. <element name="TCollection.Update"> <!-- Procedure -->
  2497. <short>Hander called when an item in the collection has changed.</short>
  2498. <descr>
  2499. <p><var>Update</var> is called in the following cases:
  2500. </p>
  2501. <ol>
  2502. <li>An item is added to or removed from the collection.</li>
  2503. <li>An item is moved in the list, i.e. its <link id="TCollectionItem.Index"/>
  2504. property changes.</li>
  2505. <li>An item's <link id="TCollectionItem.DisplayName"/> property
  2506. changes.</li>
  2507. </ol>
  2508. <p>
  2509. Descendent classes can override this method to perform additional actions
  2510. when the collection changes. The <var>Item</var> parameter indicates the
  2511. item that was changed. This can be <var>Nil</var>
  2512. </p>
  2513. </descr>
  2514. <seealso>
  2515. <link id="TCollection.Changed"/>
  2516. </seealso>
  2517. </element>
  2518. <element name="TCollection.PropName"> <!-- Property -->
  2519. <short>Name of the property that this collection represents.</short>
  2520. <descr>
  2521. <var>PropName</var> indicates the name of the property that this collection
  2522. is supposed to represent. By default, this is the empty string. Descendents
  2523. can override this property to return the name of the property that is
  2524. represented by this collection.
  2525. </descr>
  2526. <seealso>
  2527. <link id="TCollection.SetPropName"/>
  2528. <link id="TCollection.GetPropName"/>
  2529. </seealso>
  2530. </element>
  2531. <element name="TCollection.Create"> <!-- Constructor -->
  2532. <short>Creates a new collection.</short>
  2533. <descr>
  2534. <var>Create</var> instantiates a new instance of the <var>TCollection</var>
  2535. class which will manage objects of class <var>AItemClass</var>.
  2536. It creates the list used to hold all objects, and stores the
  2537. <var>AItemClass</var> for the adding of new objects to the collection.
  2538. </descr>
  2539. <seealso>
  2540. <link id="TCollection.ItemClass"/>
  2541. <link id="TCollection.Destroy"/>
  2542. </seealso>
  2543. </element>
  2544. <element name="TCollection.Destroy"> <!-- Destructor -->
  2545. <short>Destroys the collection and frees all the objects it manages.</short>
  2546. <descr>
  2547. <p>
  2548. <var>Destroy</var> first clears the collection, and then frees all memory
  2549. allocated to this instance.
  2550. </p>
  2551. <p>
  2552. Don't call <var>Destroy</var> directly, call <var>Free</var> instead.
  2553. </p>
  2554. </descr>
  2555. <seealso>
  2556. <link id="TCollection.Create"/>
  2557. </seealso>
  2558. </element>
  2559. <element name="TCollection.Add"> <!-- Function -->
  2560. <short>Creates and adds a new item to the collection.</short>
  2561. <descr>
  2562. <var>Add</var> instantiates a new item of class <link
  2563. id="TCollection.ItemClass"/> and adds it to the list. The newly created
  2564. object is returned.
  2565. </descr>
  2566. <seealso>
  2567. <link id="TCollection.ItemClass"/>
  2568. <link id="TCollection.Clear"/>
  2569. </seealso>
  2570. </element>
  2571. <element name="TCollection.Assign"> <!-- Procedure -->
  2572. <short>Assigns one collection to another.</short>
  2573. <descr>
  2574. <p>
  2575. <var>Assign</var> assigns the contents of one collection to another.
  2576. It does this by clearing the items list, and adding as much elements as
  2577. there are in the <var>Source</var> collection; it assigns to each created
  2578. element the contents of it's counterpart in the <var>Source</var> element.
  2579. </p>
  2580. <p>
  2581. Two collections cannot be assigned to each other if instances of the
  2582. <var>ItemClass</var> classes cannot be assigned to each other.
  2583. </p>
  2584. </descr>
  2585. <errors>
  2586. If the objects in the collections cannot be assigned to one another, then
  2587. an <var>EConvertError</var> is raised.
  2588. </errors>
  2589. <seealso>
  2590. <link id="TPersistent.Assign"/>
  2591. <link id="TCollectionItem"/>
  2592. </seealso>
  2593. </element>
  2594. <element name="TCollection.BeginUpdate"> <!-- Procedure -->
  2595. <short>Start an update batch.</short>
  2596. <descr>
  2597. <p>
  2598. <var>BeginUpdate</var> is called at the beginning of a batch update. It
  2599. raises the update count with 1.
  2600. </p>
  2601. <p>
  2602. Call <var>BeginUpdate</var> at the beginning of a series of operations that
  2603. will change the state of the collection. This will avoid the call to
  2604. <link id="TCollection.Update"/> for each operation.
  2605. At the end of the operations, a corresponding call to <var>EndUpdate</var>
  2606. must be made. It is best to do this in the context of a
  2607. <var>Try ... finally</var> block:
  2608. </p>
  2609. <code>
  2610. With MyCollection Do
  2611. try
  2612. BeginUpdate;
  2613. // Some Lengthy operations
  2614. finally
  2615. EndUpdate;
  2616. end;
  2617. </code>
  2618. <p>
  2619. This insures that the number of calls to <var>BeginUpdate</var> always
  2620. matches the number of calls to <link id="TCollection.EndUpdate"/>, even in
  2621. case of an exception.
  2622. </p>
  2623. </descr>
  2624. <seealso>
  2625. <link id="TCollection.EndUpdate"/>
  2626. <link id="TCollection.Changed"/>
  2627. <link id="TCollection.Update"/>
  2628. </seealso>
  2629. </element>
  2630. <element name="TCollection.Clear"> <!-- Procedure -->
  2631. <short>Removes all items from the collection.</short>
  2632. <descr>
  2633. <var>Clear</var> will clear the collection, i.e. each item in the collection
  2634. is destroyed and removed from memory.
  2635. After a call to <var>Clear</var>, <var>Count</var> is zero.
  2636. </descr>
  2637. <seealso>
  2638. <link id="TCollection.Add"/>
  2639. <link id="TCollectionItem.Destroy"/>
  2640. <link id="TCollection.Destroy"/>
  2641. </seealso>
  2642. </element>
  2643. <element name="TCollection.EndUpdate"> <!-- Procedure -->
  2644. <short>Ends an update batch.</short>
  2645. <descr>
  2646. <var>EndUpdate</var> signals the end of a series of operations that change
  2647. the state of the collection, possibly triggering an update event.
  2648. It does this by decreasing the update count with 1 and calling <link
  2649. id="TCollection.Changed"/> it should always be used in conjunction with
  2650. <link id="TCollection.BeginUpdate"/>, preferably in the <var>Finally</var>
  2651. section of a <var>Try ... Finally</var> block.
  2652. </descr>
  2653. <seealso>
  2654. <link id="TCollection.BeginUpdate"/>
  2655. <link id="TCollection.Changed"/>
  2656. <link id="TCollection.Update"/>
  2657. </seealso>
  2658. </element>
  2659. <element name="TCollection.FindItemID"> <!-- Function -->
  2660. <short>Searches for an Item in the collection, based on its
  2661. <link id="TCollectionItem.ID"/> property.</short>
  2662. <descr>
  2663. <p>
  2664. <var>FindItemID</var> searches through the collection for the item that has
  2665. a value of <var>ID</var> for its <link id="TCollectionItem.ID"/> property,
  2666. and returns the found item. If no such item is found in the collection,
  2667. <var>Nil</var> is returned.
  2668. </p>
  2669. <p>The routine performs a linear search, so this can be slow on very large
  2670. collections.
  2671. </p>
  2672. </descr>
  2673. <seealso>
  2674. <link id="TCollection.Items"/>
  2675. <link id="TCollectionItem.ID"/>
  2676. </seealso>
  2677. </element>
  2678. <element name="TCollection.Count"> <!-- Property -->
  2679. <short>Number of items in the collection.</short>
  2680. <descr>
  2681. <p>
  2682. <var>Count</var> contains the number of items in the collection.
  2683. </p>
  2684. <remark>
  2685. The items in the collection are identified by their <link
  2686. id="TCollectionItem.Index"/> property, which is a zero-based index, meaning
  2687. that it can take values between <var>0</var> and <var>Count</var>.
  2688. </remark>
  2689. </descr>
  2690. <seealso>
  2691. <link id="TCollectionItem.Index"/>
  2692. <link id="TCollection.Items"/>
  2693. </seealso>
  2694. </element>
  2695. <element name="TCollection.ItemClass"> <!-- Property -->
  2696. <short>Class pointer for each item in the collection.</short>
  2697. <descr>
  2698. <var>ItemClass</var> is the class pointer with which each new item in the
  2699. collection is created. It is the value that was passed to the collection's
  2700. constructor when it was created, and does not change during the lifetime of
  2701. the collection.
  2702. </descr>
  2703. <seealso>
  2704. <link id="TCollectionItem"/>
  2705. <link id="TCollection.Items"/>
  2706. </seealso>
  2707. </element>
  2708. <element name="TCollection.Items"> <!-- Property -->
  2709. <short>Indexed array of items in the collection.</short>
  2710. <descr>
  2711. <p>
  2712. <var>Items</var> provides indexed access to the items in the collection.
  2713. Since the array is zero-based, <var>Index</var> should be an integer
  2714. between <var>0</var> and <var>Count-1</var>.
  2715. </p>
  2716. <p>It is possible to set or retrieve an element in the array. When setting
  2717. an element of the array, the object that is assigned should be compatible
  2718. with the class of the objects in the collection, as given by the
  2719. <link id="TCollection.ItemClass"/> property.
  2720. </p>
  2721. <p>Adding an element to the array can be done with the <link
  2722. id="TCollection.Add"/> method. The array can be cleared with the <link
  2723. id="TCollection.Clear"/> method. Removing an element of the array should
  2724. be done by freeing that element.
  2725. </p>
  2726. </descr>
  2727. <seealso>
  2728. <link id="TCollection.Count"/>
  2729. <link id="TCollection.ItemClass"/>
  2730. <link id="TCollection.Clear"/>
  2731. <link id="TCollection.Add"/>
  2732. </seealso>
  2733. </element>
  2734. <!--
  2735. *********************************************************************
  2736. IStringsAdapter
  2737. *********************************************************************
  2738. -->
  2739. <element name="IStringsAdapter"> <!-- Class -->
  2740. <short>IStringsAdapter Interface declaration.</short>
  2741. <descr>Is not yet supported in Free Pascal.
  2742. </descr>
  2743. <seealso>
  2744. <link id="TStrings"/>
  2745. </seealso>
  2746. </element>
  2747. <!--
  2748. *********************************************************************
  2749. TStrings
  2750. *********************************************************************
  2751. -->
  2752. <element name="TStrings"> <!-- Class -->
  2753. <short>Class to manage arrays or collections of strings</short>
  2754. <descr>
  2755. <p><var>TStrings</var> implements an abstract class to manage an array of
  2756. strings. It introduces methods to set and retrieve strings in the array,
  2757. searching for a particular string, concatenating the strings and so on.
  2758. It also allows an arbitrary object to be associated with each string.
  2759. </p>
  2760. <p>
  2761. It also introduces methods to manage a series of <var>name=value</var>
  2762. settings, as found in many configuration files.
  2763. </p>
  2764. <p>An instance of <var>TStrings</var> is never created directly, instead a
  2765. descendent class such as <link id="TStringList"/> should be created. This is
  2766. because <var>TStrings</var> is an abstract class which does not implement
  2767. all methods; <var>TStrings</var> also doesn't store any strings, this is the
  2768. functionality introduced in descendents such as <link id="TStringList"/>.
  2769. </p>
  2770. </descr>
  2771. <seealso>
  2772. <link id="TStringList"/>
  2773. </seealso>
  2774. </element>
  2775. <element name="TStrings.DefineProperties"> <!-- Procedure -->
  2776. <short>Method to stream the contents of the string collection</short>
  2777. <descr>
  2778. <var>DefineProperties</var> allows the contents of the string collection
  2779. to be streamed. As such, it overrides <link id="TPersistent.DefineProperties"/>
  2780. </descr>
  2781. <seealso>
  2782. <link id="TPersistent.DefineProperties"/>
  2783. </seealso>
  2784. </element>
  2785. <element name="TStrings.Error"> <!-- Procedure -->
  2786. <short>Raises an <link id="EStringListError"/> exception.</short>
  2787. <descr>
  2788. <p>
  2789. <var>Error</var> raises an <link id="EStringListError"/> exception. It passes
  2790. <var>Msg</var> as a format with <var>Data</var> as the only argument.
  2791. </p>
  2792. <p> This method can be used by descendent objects to raise an error.</p>
  2793. </descr>
  2794. <seealso>
  2795. <link id="EStringListError"/>
  2796. </seealso>
  2797. </element>
  2798. <element name="TStrings.Get"> <!-- Function -->
  2799. <short>Abstract read handler for the <link id="TStrings.Strings"/> property.</short>
  2800. <descr>
  2801. <p>
  2802. <var>Get</var> is the abstract read handler for the <link id="TStrings.Strings"/>
  2803. property. This is an abstract method, hence it is not implemented in
  2804. <var>TStrings</var>.
  2805. </p>
  2806. <p>
  2807. Descendent classes, such as <link id="TStringList"/> must override this
  2808. method and implement a routine that retrieves the <var>Index</var>-th string
  2809. in the list. <var>Index</var> should have a value between <var>0</var> and
  2810. <var>Count-1</var>, in all other cases an error should be raised using
  2811. <link id="TStrings.Error"/>.
  2812. </p>
  2813. </descr>
  2814. <seealso>
  2815. <link id="TStrings.Strings"/>
  2816. <link id="TStrings.Put"/>
  2817. <link id="TStrings.GetObject"/>
  2818. </seealso>
  2819. </element>
  2820. <element name="TStrings.GetCapacity"> <!-- Function -->
  2821. <short>Abstract Read handler for the <link id="TStrings.Capacity"/> property.</short>
  2822. <descr>
  2823. <p>
  2824. <var>GetCapacity</var> is the read handler for the <link
  2825. id="TStrings.Capacity"/> property. The implementation in <var>TStrings</var>
  2826. will return 0.
  2827. </p>
  2828. <p>Descendent classes can override this method. It should return the
  2829. current number of strings that can be held by the stringlist before
  2830. it attempts to expand it's storage space.
  2831. </p>
  2832. </descr>
  2833. <seealso>
  2834. <link id="TStrings.Capacity"/>
  2835. <link id="TStrings.SetCapacity"/>
  2836. </seealso>
  2837. </element>
  2838. <element name="TStrings.GetCount"> <!-- Function -->
  2839. <short>Abstract read handler for the <link id="TStrings.Count"/> property.</short>
  2840. <descr>
  2841. <p>
  2842. <var>GetCount</var> is the abstract read handler for the <link
  2843. id="TStrings.Count"/> property. This is an abstract method, hence it is not implemented in
  2844. <var>TStrings</var>.
  2845. </p>
  2846. <p>
  2847. Descendent classes must override this method. It should return the
  2848. current number of strings in the list. (empty strings included).
  2849. </p>
  2850. </descr>
  2851. <seealso>
  2852. <link id="TStrings.Count"/>
  2853. </seealso>
  2854. </element>
  2855. <element name="TStrings.GetObject"> <!-- Function -->
  2856. <short>Abstract read handler for the <link id="TStrings.Objects"/> property.</short>
  2857. <descr>
  2858. <p>
  2859. <var>GetObject</var> is the read handler for the <link
  2860. id="TStrings.Objects"/> property. The <var>TStrings</var> implementation of
  2861. this method ignores the <var>Index</var> argument and simply
  2862. returns <var>Nil</var>.
  2863. </p>
  2864. <p>
  2865. Descendent classes that should support object storage should override this
  2866. method and return the object associated to the <var>Index</var>-th string
  2867. in the list. <var>Index</var> should have a value between <var>0</var> and
  2868. <var>Count-1</var>. If <var>Index</var> is outside the allowed range, an
  2869. error should be raised using <link id="TStrings.Error"/>.
  2870. </p>
  2871. </descr>
  2872. <seealso>
  2873. <link id="TStrings.Objects"/>
  2874. <link id="TStrings.PutObject"/>
  2875. <link id="TStrings.Get"/>
  2876. </seealso>
  2877. </element>
  2878. <element name="TStrings.GetTextStr"> <!-- Function -->
  2879. <short>Read handler for the <link id="TStrings.Text"/> property.</short>
  2880. <descr>
  2881. <p><var>GetTextStr</var> is the read handler for the <link id="TStrings.Text"/>
  2882. property. It simply concatenates all strings in the list with a linefeed between
  2883. them, and returns the resulting string.
  2884. </p>
  2885. <p>
  2886. Descendent classes may override this method to implement an efficienter
  2887. algorithm which is more suitable to their storage method.
  2888. </p>
  2889. </descr>
  2890. <seealso>
  2891. <link id="TStrings.Text"/>
  2892. <link id="TStrings.SetTextStr"/>
  2893. </seealso>
  2894. </element>
  2895. <element name="TStrings.Put"> <!-- Procedure -->
  2896. <short>Write handler for the <link id="TStrings.Strings"/> property.</short>
  2897. <descr>
  2898. <p>
  2899. <var>Put</var> is the write handler for the <link id="TStrings.Strings"/>
  2900. property. It does this by saving the object associated to the
  2901. <var>Index</var>-th string, deleting the <var>Index</var>-th string, and
  2902. inserting <var>S</var> and the saved object at position <var>Index</var>
  2903. with <link id="TStrings.InsertObject"/>
  2904. </p>
  2905. <p>
  2906. Descendent classes may wish to override <var>Put</var> to implement a more
  2907. efficient method.
  2908. </p>
  2909. </descr>
  2910. <seealso>
  2911. <link id="TStrings.Strings"/>
  2912. <link id="TStrings.Get"/>
  2913. <link id="TStrings.PutObject"/>
  2914. </seealso>
  2915. </element>
  2916. <element name="TStrings.PutObject"> <!-- Procedure -->
  2917. <short>Write handler for the <link id="TStrings.Objects"/> property.</short>
  2918. <descr>
  2919. <p>
  2920. <var>PutObject</var> is the write handler for the <link
  2921. id="TStrings.Objects"/> property. The <var>TStrings</var> implementation of
  2922. <var>PutObject</var> does nothing.
  2923. </p>
  2924. <p>
  2925. Descendent objects that should support Object storage must override this
  2926. method to store the <var>AObject</var> so that it is associated with the
  2927. <var>Index</var>-th string in the list. <var>Index</var> should have a value
  2928. between <var>0</var> and <var>Count-1</var>. If the value of
  2929. <var>Index</var> is out of range, an error should be raised using <link
  2930. id="TStrings.Error"/>.
  2931. </p>
  2932. </descr>
  2933. <seealso>
  2934. <link id="TStrings.Objects"/>
  2935. <link id="TStrings.GetObject"/>
  2936. <link id="TStrings.Put"/>
  2937. </seealso>
  2938. </element>
  2939. <element name="TStrings.SetCapacity"> <!-- Procedure -->
  2940. <short>Write handler for the <link id="TStrings.Capacity"/> property.</short>
  2941. <descr>
  2942. <p>
  2943. <var>SetCapacity</var> is the write handler for the <link
  2944. id="TStrings.Capacity"/> property. The <var>TStrings</var> implementation
  2945. of <var>SetCapacity</var> does nothing.
  2946. </p>
  2947. <p>
  2948. Descendent classes can override this method to set the current capacity of
  2949. the stringlist to <var>NewCapacity</var>. The capacity is the number of strings the list can hold
  2950. before it tries to expand its storage space. <var>NewCapacity</var> should
  2951. be no less than <var>Count</var>.
  2952. </p>
  2953. </descr>
  2954. <seealso>
  2955. <link id="TStrings.Capacity"/>
  2956. <link id="TStrings.GetCapacity"/>
  2957. </seealso>
  2958. </element>
  2959. <element name="TStrings.SetTextStr"> <!-- Procedure -->
  2960. <short>Write handler for the <link id="TStrings.Text"/> property.</short>
  2961. <descr>
  2962. <p>
  2963. <var>SetTextStr</var> is the write method for the <link id="TStrings.Text"/>
  2964. property. It does nothing other than calling <link id="TStrings.SetText"/>.
  2965. </p>
  2966. <p>
  2967. Descendent classes may override this method to implement a more efficient
  2968. algoritm that fits their storage method better.
  2969. </p>
  2970. </descr>
  2971. <seealso>
  2972. <link id="TStrings.Text"/>
  2973. <link id="TStrings.GetTextStr"/>
  2974. </seealso>
  2975. </element>
  2976. <element name="TStrings.SetUpdateState"> <!-- Procedure -->
  2977. <short>Sets the update state. </short>
  2978. <descr>
  2979. <p>
  2980. <var>SetUpdateState</var> sets the update state to <var>Updating</var>. The
  2981. <var>TStrings</var> implementation of <var>SetUpdateState</var> does
  2982. nothing.
  2983. </p>
  2984. <p>
  2985. Descendent objects may override this method to implement optimizations. If
  2986. <var>Updating</var> is <var>True</var> then the list of strings is about to
  2987. be updated (possibly many times). If it is <var>False</var> no more updates
  2988. will take place till the next <var>SetUpdateState</var> call.
  2989. </p>
  2990. </descr>
  2991. <seealso>
  2992. <link id="TStrings.BeginUpdate"/>
  2993. <link id="TStrings.EndUpdate"/>
  2994. </seealso>
  2995. </element>
  2996. <element name="TStrings.Destroy"> <!-- Destructor -->
  2997. <short>Frees all strings and objects, and removes the list from memory.</short>
  2998. <descr>
  2999. <var>Destroy</var> is the destructor of <var>TStrings</var> it does nothing
  3000. except calling the inherited destructor.
  3001. </descr>
  3002. <seealso>
  3003. </seealso>
  3004. </element>
  3005. <element name="TStrings.Add"> <!-- Function -->
  3006. <short>Add a string to the list</short>
  3007. <descr>
  3008. <var>Add</var> adds <var>S</var> at the end of the list and returns the
  3009. index of <var>S</var> in the list (which should equal <link id="Tstrings.Count"/>
  3010. </descr>
  3011. <seealso>
  3012. <link id="TStrings.Items"/>
  3013. <link id="TStrings.AddObject"/>"
  3014. <link id="TStrings.Insert"/>
  3015. <link id="TStrings.Delete"/>
  3016. <link id="TStrings.Strings"/>
  3017. <link id="TStrings.Count"/>
  3018. </seealso>
  3019. </element>
  3020. <element name="TStrings.AddObject"> <!-- Function -->
  3021. <short>Add a string and associated object to the list.</short>
  3022. <descr>
  3023. <p>
  3024. <var>AddObject</var> adds <var>S</var> to the list of strings, and
  3025. associates <var>AObject</var> with it. It returns the index of <var>S</var>.
  3026. </p>
  3027. <remark>
  3028. An object added to the list is not automatically destroyed by the list of
  3029. the list is destroyed or the string it is associated with is deleted. It is
  3030. the responsibility of the application to destroy any objects associated with
  3031. strings.
  3032. </remark>
  3033. </descr>
  3034. <seealso>
  3035. <link id="TStrings.Add"/>
  3036. <link id="Tstrings.Items"/>
  3037. <link id="TStrings.Objects"/>
  3038. <link id="Tstrings.InsertObject"/>
  3039. </seealso>
  3040. </element>
  3041. <element name="TStrings.Append"> <!-- Procedure -->
  3042. <short>Add a string to the list.</short>
  3043. <descr>
  3044. <var>Append</var> does the same as <link id="TStrings.Add"/>, only it does
  3045. not return the index of the inserted string.
  3046. </descr>
  3047. <seealso>
  3048. <link id="TStrings.Add"/>
  3049. </seealso>
  3050. </element>
  3051. <element name="TStrings.AddStrings"> <!-- Procedure -->
  3052. <short>Add contents of another stringlist to this list.</short>
  3053. <descr>
  3054. <var>AddStrings</var> adds the contents of <var>TheStrings</var> to the
  3055. stringlist. Any associated objects are added as well.
  3056. </descr>
  3057. <seealso>
  3058. <link id="TStrings.Add"/>
  3059. <link id="TStrings.Assign"/>
  3060. </seealso>
  3061. </element>
  3062. <element name="TStrings.Assign"> <!-- Procedure -->
  3063. <short>Assign the contents of another stringlist to this one.</short>
  3064. <descr>
  3065. <var>Assign</var> replaces the contents of the stringlist with the contents
  3066. of <var>Source</var> if <var>Source</var> is also of type
  3067. <var>TStrings</var>. Any associated objects are copied as well.
  3068. </descr>
  3069. <seealso>
  3070. <link id="TStrings.Add"/>
  3071. <link id="TStrings.AddStrings"/>
  3072. <link id="TPersistent.Assign"/>
  3073. </seealso>
  3074. </element>
  3075. <element name="TStrings.BeginUpdate"> <!-- Procedure -->
  3076. <short>Mark the beginning of an update batch.</short>
  3077. <descr>
  3078. <p>
  3079. <var>BeginUpdate</var> increases the update count by one. It is advisable to
  3080. call <var>BeginUpdate</var> before lengthy operations on the stringlist. At
  3081. the end of these operation, <link id="TStrings.EndUpdate"/> should be
  3082. called to mark the end of the operation. Descendent classes may use this
  3083. information to perform optmizations. e.g. updating the screen only once
  3084. after many strings were added to the list.
  3085. </p>
  3086. <p>
  3087. All <var>TStrings</var> methods that modify the string list call
  3088. <var>BeginUpdate</var> before the actual operation, and call
  3089. <var>endUpdate</var> when the operation is finished. Descendent classes
  3090. should also call these methods when modifying the string list.
  3091. </p>
  3092. <remark>
  3093. <p>
  3094. Always put the corresponding call to <link id="TStrings.EndUpdate"/> in the
  3095. context of a <var>Finally</var> block, to ensure that the update count is
  3096. always descreased at the end of the operation, even if an exception
  3097. occurred:
  3098. </p>
  3099. <code>
  3100. With MyStrings do
  3101. try
  3102. BeginUpdate;
  3103. // Some lengthy operation.
  3104. Finally
  3105. EndUpdate
  3106. end;
  3107. </code>
  3108. </remark>
  3109. </descr>
  3110. <seealso>
  3111. <link id="TStrings.EndUpdate"/>
  3112. </seealso>
  3113. </element>
  3114. <element name="TStrings.Clear"> <!-- Procedure -->
  3115. <short>Removes all strings and associated objects from the list.</short>
  3116. <descr>
  3117. <p>
  3118. <var>Clear</var> will remove all strings and their associated objects from
  3119. the list. After a call to clear, <link id="TStrings.Count"/> is zero.
  3120. </p>
  3121. <p>
  3122. Since it is an abstract method, <var>TStrings</var> itself does not implement
  3123. <var>Clear</var>. Descendent classes such as <link
  3124. id="TStringList"/> implement this method.
  3125. </p>
  3126. </descr>
  3127. <seealso>
  3128. <link id="TStrings.Items"/>
  3129. <link id="TStrings.Delete"/>
  3130. <link id="TStrings.Count"/>"
  3131. </seealso>
  3132. </element>
  3133. <element name="TStrings.Delete"> <!-- Procedure -->
  3134. <short>Delete a string from the list.</short>
  3135. <descr>
  3136. <p>
  3137. <var>Delete</var> deletes the string at position <var>Index</var> from the
  3138. list. The associated object is also removed from the list, but not
  3139. destroyed. <var>Index</var> is zero-based, and should be in the range
  3140. <var>0</var> to <var>Count-1</var>.
  3141. </p>
  3142. <p>
  3143. Since it is an abstract method, <var>TStrings</var> itself does not implement
  3144. <var>Delete</var>. Descendent classes such as <link
  3145. id="TStringList"/> implement this method.
  3146. </p>
  3147. </descr>
  3148. <errors>
  3149. If <var>Index</var> is not in the allowed range, an <link
  3150. id="EStringListError"/> is raised.
  3151. </errors>
  3152. <seealso>
  3153. <link id="TStrings.Insert"/>
  3154. <link id="TStrings.Items"/>
  3155. <link id="TStrings.Clear"/>
  3156. </seealso>
  3157. </element>
  3158. <element name="TStrings.EndUpdate"> <!-- Procedure -->
  3159. <short>Mark the end of an update batch.</short>
  3160. <descr>
  3161. <p>
  3162. <var>EndUpdate</var> should be called at the end of a lengthy operation on
  3163. the stringlist, but only if there was a call to <var>BeginUpdate</var> before
  3164. the operation was started. It is best to put the call to
  3165. <var>EndUpdate</var> in the context of a <var>Finally</var> block, so it
  3166. will be called even if an exception occurs.
  3167. </p>
  3168. <p>
  3169. For more information, see <link id="TStrings.BeginUpdate"/>.
  3170. </p>
  3171. </descr>
  3172. <seealso>
  3173. <link id="TStrings.BeginUpdate"/>
  3174. </seealso>
  3175. </element>
  3176. <element name="TStrings.Equals"> <!-- Function -->
  3177. <short>Compares the contents of two stringlists.</short>
  3178. <descr>
  3179. <p>
  3180. <var>Equals</var> compares the contents of the stringlist with the contents
  3181. of <var>TheStrings</var>. If the contents match, i.e. the stringlist contain
  3182. an equal amount of strings, and all strings match, then <var>True</var> is
  3183. returned. If the number of strings in the lists is is unequal, or they
  3184. contain one or more different strings, <var>False</var> is returned.
  3185. </p>
  3186. <remark>
  3187. <ol>
  3188. <li>The strings are compared case-insensitively.</li>
  3189. <li>The associated objects are not compared</li>
  3190. </ol>
  3191. </remark>
  3192. </descr>
  3193. <seealso>
  3194. <link id="Tstrings.Items"/>
  3195. <link id="TStrings.Count"/>
  3196. <link id="TStrings.Assign"/>
  3197. </seealso>
  3198. </element>
  3199. <element name="TStrings.Exchange"> <!-- Procedure -->
  3200. <short>Exchanges two strings in the list.</short>
  3201. <descr>
  3202. <p>
  3203. <var>Exchange</var> exchanges the strings at positions <var>Index1</var>
  3204. and <var>Index2</var>. The associated objects are also exchanged.
  3205. </p>
  3206. <p>
  3207. Both indexes must be in the range of valid indexes, i.e. must have a
  3208. value between <var>0</var> and <var>Count-1</var>.
  3209. </p>
  3210. </descr>
  3211. <errors>
  3212. If either <var>Index1</var> or <var>Index2</var> is not in the range of valid
  3213. indexes, an <link id="EStringListError"/> exception is raised.
  3214. </errors>
  3215. <seealso>
  3216. <link id="TStrings.Move"/>
  3217. <link id="TStrings.Strings"/>
  3218. <link id="TStrings.Count"/>
  3219. </seealso>
  3220. </element>
  3221. <element name="TStrings.GetText"> <!-- Function -->
  3222. <short>Returns the contents as a PChar</short>
  3223. <descr>
  3224. <p>
  3225. <var>GetText</var> allocates a memory buffer and compies the contents of the
  3226. stringlist to this buffer as a series of strings, separated by an
  3227. end-of-line marker. The buffer is zero terminated.
  3228. </p>
  3229. <remark>
  3230. The caller is responsible for freeing the returned memory buffer.
  3231. </remark>
  3232. </descr>
  3233. <seealso>
  3234. </seealso>
  3235. </element>
  3236. <element name="TStrings.IndexOf"> <!-- Function -->
  3237. <short>Find a string in the list and return its position.</short>
  3238. <descr>
  3239. <p>
  3240. <var>IndexOf</var> searches the list for <var>S</var>. The search is
  3241. case-insensitive. If a matching entry is found, its position is returned.
  3242. if no matching string is found, <var>-1</var> is returned.
  3243. </p>
  3244. <remark>
  3245. <ol>
  3246. <li>Only the first occurrence of the string is returned.</li>
  3247. <li>The returned position is zero-based, i.e. 0 indicates the first string
  3248. in the list.</li>
  3249. </ol>
  3250. </remark>
  3251. </descr>
  3252. <seealso>
  3253. <link id="TStrings.IndexOfObject"/>
  3254. <link id="TStrings.IndexOfName"/>
  3255. <link id="TStrings.Strings"/>
  3256. </seealso>
  3257. </element>
  3258. <element name="TStrings.IndexOfName"> <!-- Function -->
  3259. <short>Finds the index of a name in the name-value pairs.</short>
  3260. <descr>
  3261. <p>
  3262. <var>IndexOfName</var> searches in the list of strings for a name-value pair
  3263. with name part <var>Name</var>. If such a pair is found, it returns the
  3264. index of the pair in the stringlist. If no such pair is found, the function
  3265. returns <var>-1</var>. The search is done case-insensitive.
  3266. </p>
  3267. <remark>
  3268. <ol>
  3269. <li>Only the first occurrence of a matching name-value pair is returned.</li>
  3270. <li>The returned position is zero-based, i.e. 0 indicates the first string
  3271. in the list.</li>
  3272. </ol>
  3273. </remark>
  3274. </descr>
  3275. <seealso>
  3276. <link id="TStrings.IndexOf"/>
  3277. <link id="TStrings.IndexOfObject"/>
  3278. <link id="TStrings.Strings"/>
  3279. </seealso>
  3280. </element>
  3281. <element name="TStrings.IndexOfObject"> <!-- Function -->
  3282. <short>Finds an object in the list and returns its index.</short>
  3283. <descr>
  3284. <p>
  3285. <var>IndexOfObject</var> searchs through the list of strings till it find a
  3286. string associated with <var>AObject</var>, and returns the index of this
  3287. string. If no such string is found, <var>-1</var> is returned.
  3288. </p>
  3289. <remark>
  3290. <ol>
  3291. <li>Only the first occurrence of a string with associated object
  3292. <var>AObject</var> is returned; if more strings in the list can be
  3293. associated with <var>AObject</var>, they will not be found by this routine.</li>
  3294. <li>The returned position is zero-based, i.e. 0 indicates the first string
  3295. in the list.</li>
  3296. </ol>
  3297. </remark>
  3298. </descr>
  3299. <seealso>
  3300. </seealso>
  3301. </element>
  3302. <element name="TStrings.Insert"> <!-- Procedure -->
  3303. <short>Insert a string in the list.</short>
  3304. <descr>
  3305. <p>
  3306. <var>Insert</var> inserts the string <var>S</var> at position
  3307. <var>Index</var> in the list. <var>Index</var> is a zero-based position,
  3308. and can have values from <var>0</var> to <var>Count</var>. If
  3309. <var>Index</var> equals <var>Count</var> then the string is appended to the
  3310. list.
  3311. </p>
  3312. <remark>
  3313. <ol>
  3314. <li>All methods that add strings to the list use <var>Insert</var> to add
  3315. a string to the list.</li>
  3316. <li>If the string has an associated object, use <link
  3317. id="TStrings.InsertObject"/> instead.</li>
  3318. </ol>
  3319. </remark>
  3320. </descr>
  3321. <errors>
  3322. If <var>Index</var> is less than zero or larger than <var>Count</var> then
  3323. an <link id="EStringListError"/> exception is raised.
  3324. </errors>
  3325. <seealso>
  3326. <link id="TStrings.Add"/>
  3327. <link id="TStrings.InsertObject"/>
  3328. <link id="TStrings.Append"/>
  3329. <link id="TStrings.Delete"/>
  3330. </seealso>
  3331. </element>
  3332. <element name="TStrings.InsertObject"> <!-- Procedure -->
  3333. <short>Insert a string and associated object in the list.</short>
  3334. <descr>
  3335. <p>
  3336. <var>InsertObject</var> inserts the string <var>S</var> and its associated
  3337. object<var>AObject</var> at position <var>Index</var> in the list.
  3338. <var>Index</var> is a zero-based position, and can have values from
  3339. <var>0</var> to <var>Count</var>. If <var>Index</var> equals
  3340. <var>Count</var> then the string is appended to the list.
  3341. </p>
  3342. </descr>
  3343. <errors>
  3344. If <var>Index</var> is less than zero or larger than <var>Count</var> then
  3345. an <link id="EStringListError"/> exception is raised.
  3346. </errors>
  3347. <seealso>
  3348. <link id="TStrings.Insert"/>
  3349. <link id="TStrings.AddObject"/>
  3350. <link id="TStrings.Append"/>
  3351. <link id="TStrings.Delete"/>
  3352. </seealso>
  3353. </element>
  3354. <element name="TStrings.LoadFromFile"> <!-- Procedure -->
  3355. <short>Load the contents of a file as a series of strings.</short>
  3356. <descr>
  3357. <p>
  3358. <var>LoadFromFile</var> loads the contents of a file into the stringlist.
  3359. Each line in the file (as marked by the end-of-line marker of the
  3360. particular OS the application runs on) becomes one string in the stringlist.
  3361. This action replaces
  3362. the contents of the stringlist, it does not append the strings to the
  3363. current content.
  3364. </p>
  3365. <p>
  3366. <var>LoadFromFile</var> simply creates a <link id="TFileStream">file
  3367. stream</link> with the given filename, and then executes
  3368. <link id="TStrings.LoadfromStream"/>; after that the file stream object
  3369. is destroyed again.
  3370. </p>
  3371. </descr>
  3372. <seealso>
  3373. <link id="TStrings.LoadFromStream"/>
  3374. <link id="TStrings.SaveToFile"/>
  3375. <link id="Tstrings.SaveToStream"/>
  3376. </seealso>
  3377. </element>
  3378. <element name="TStrings.LoadFromStream"> <!-- Procedure -->
  3379. <short>Load the contents of a stream as a series of strings.</short>
  3380. <descr>
  3381. <var>LoadFromStream</var> loads the contents of <var>Stream</var>
  3382. into the stringlist.
  3383. Each line in the stream (as marked by the end-of-line marker of the
  3384. particular OS the application runs on) becomes one string in the stringlist.
  3385. This action replaces
  3386. the contents of the stringlist, it does not append the strings to the
  3387. current content.
  3388. </descr>
  3389. <seealso>
  3390. <link id="TStrings.LoadFromFile"/>
  3391. <link id="TStrings.SaveToFile"/>
  3392. <link id="Tstrings.SaveToStream"/>
  3393. </seealso>
  3394. </element>
  3395. <element name="TStrings.Move"> <!-- Procedure -->
  3396. <short>Move a string from one place in the list to another.</short>
  3397. <descr>
  3398. <p>
  3399. <var>Move</var> moves the string at position <var>CurIndex</var> so
  3400. it has position <var>NewIndex</var> after the move operation. The object
  3401. associated to the string is also moved. <var>CurIndex</var> and
  3402. <var>NewIndex</var> should be in the range of <var>0</var> to
  3403. <var>Count-1</var>.
  3404. </p>
  3405. <remark>
  3406. <p>
  3407. <var>NewIndex</var> is <em>not</em> the position in the stringlist before
  3408. the move operation starts. The move operation
  3409. </p>
  3410. <ol>
  3411. <li> removes the string from position <var>CurIndex</var></li>
  3412. <li> inserts the string at position <var>NewIndex</var></li>
  3413. </ol>
  3414. <p>
  3415. This may not lead to the desired result if <var>NewIndex</var> is bigger
  3416. than <var>CurIndex</var>. Consider the following example:
  3417. </p>
  3418. <code>
  3419. With MyStrings do
  3420. begin
  3421. Clear;
  3422. Add('String 0');
  3423. Add('String 1');
  3424. Add('String 2');
  3425. Add('String 3');
  3426. Add('String 4');
  3427. Move(1,3);
  3428. end;
  3429. </code>
  3430. <p>
  3431. After the <var>Move</var> operation has completed, 'String 1' will be between 'String 3'
  3432. and 'String 4'.
  3433. </p>
  3434. </remark>
  3435. </descr>
  3436. <errors>
  3437. If either <var>CurIndex</var> or <var>NewIndex</var> is outside the allowed
  3438. range, an <link id="EStringListError"/> is raised.
  3439. </errors>
  3440. <seealso>
  3441. <link id="TStrings.Exchange"/>
  3442. </seealso>
  3443. </element>
  3444. <element name="TStrings.SaveToFile"> <!-- Procedure -->
  3445. <short>Save the contents of the list to a file.</short>
  3446. <descr>
  3447. <p>
  3448. <var>SaveToFile</var> saves the contents of the stringlist to the file with
  3449. name <var>FileName</var>. It writes the strings to the file, separated by
  3450. end-of-line markers, so each line in the file will contain 1 string from the
  3451. stringlist.
  3452. </p>
  3453. <p>
  3454. <var>SaveToFile</var> creates a <link id="TFileStream">file stream</link>
  3455. with name <var>FileName</var>, calls <link id="TStrings.SaveToStream"/>
  3456. and then destroys the file stream object.
  3457. </p>
  3458. </descr>
  3459. <errors>
  3460. An <link id="EStreamError"/> exception can be raised if the file <var>FileName</var> cannot be opened,
  3461. or if it cannot be written to.
  3462. </errors>
  3463. <seealso>
  3464. <link id="TStrings.SaveToStream"/>
  3465. <link id="Tstrings.LoadFromStream"/>
  3466. <link id="TStrings.LoadFromFile"/>
  3467. </seealso>
  3468. </element>
  3469. <element name="TStrings.SaveToStream"> <!-- Procedure -->
  3470. <short>Save the contents of the string to a stream.</short>
  3471. <descr>
  3472. <p>
  3473. <var>SaveToStream</var> saves the contents of the stringlist to
  3474. <var>Stream</var>. It writes the strings to the stream, separated by
  3475. end-of-line markers, so each 'line' in the stream will contain 1 string from the
  3476. stringlist.
  3477. </p>
  3478. </descr>
  3479. <errors>
  3480. An <link id="EStreamError"/> exception can be raised if the stream cannot be written to.
  3481. </errors>
  3482. <seealso>
  3483. <link id="TStrings.SaveToFile"/>
  3484. <link id="Tstrings.LoadFromStream"/>
  3485. <link id="TStrings.LoadFromFile"/>
  3486. </seealso>
  3487. </element>
  3488. <element name="TStrings.SetText"> <!-- Procedure -->
  3489. <short>Set the contents of the list from a PChar.</short>
  3490. <descr>
  3491. <var>SetText</var> parses the contents of <var>TheText</var> and fills the
  3492. stringlist based on the contents. It regards <var>TheText</var> as a series
  3493. of strings, separated by end-of-line markers. Each of these strings is added
  3494. to the stringlist.
  3495. </descr>
  3496. <seealso>
  3497. <link id="TStrings.Text"/>
  3498. </seealso>
  3499. </element>
  3500. <element name="TStrings.Capacity"> <!-- Property -->
  3501. <short>Capacity of the list, i.e. number of strings that the list can
  3502. currently hold before it tries to expand.</short>
  3503. <descr>
  3504. <p>
  3505. <var>Capacity</var> is the number of strings that the list can hold before
  3506. it tries to allocate more memory.
  3507. </p>
  3508. <p><var>TStrings</var> returns <link id="TStrings.Count"/> when read. Trying
  3509. to set the capacity has no effect. Descendent classes such as
  3510. <link id="TStringlist"/> can override this property such that it actually
  3511. sets the new capacity.
  3512. </p>
  3513. </descr>
  3514. <seealso>
  3515. <link id="TStringList"/>
  3516. <link id="TStrings.Count"/>
  3517. </seealso>
  3518. </element>
  3519. <element name="TStrings.GetNameValue">
  3520. <short>Return both name and value of a name,value pair based on it's index.</short>
  3521. <descr></descr>
  3522. </element>
  3523. <element name="TStrings.Delimiter">
  3524. <short>Delimiter character used in <link id="#rtl.classes.TStrings.DelimitedText">DelimitedText</link>.</short>
  3525. <descr></descr>
  3526. </element>
  3527. <element name="TStrings.DelimitedText">
  3528. <short>Get or set all strings in the list in a delimited form.</short>
  3529. <descr></descr>
  3530. </element>
  3531. <element name="TStrings.QuoteChar">
  3532. <short>Quote character used in <link id="#rtl.classes.TStrings.DelimitedText">DelimitedText</link>.</short>
  3533. <descr></descr>
  3534. </element>
  3535. <element name="TStrings.NameValueSeparator">
  3536. <short>Value of the character used to separate name,value pairs</short>
  3537. <descr>
  3538. </descr>
  3539. </element>
  3540. <element name="TStrings.ValueFromIndex"><short></short>
  3541. <descr>Return the value part of a string based on it's index.</descr>
  3542. </element>
  3543. <element name="TStringList.CustomSort"><short></short>
  3544. <descr></descr>
  3545. </element>
  3546. <element name="TStringList.CaseSensitive"><short></short>
  3547. <descr>Indicates whether locating strings happens in a case sensitive manner.</descr>
  3548. </element>
  3549. <element name="TStrings.CommaText"> <!-- Property -->
  3550. <short>Contents of the list as a comma-separated string.</short>
  3551. <descr>
  3552. <p>
  3553. <var>CommaText</var> represents the stringlist as a single string,
  3554. consisting of a comma-separated concatenation of the strings in the list.
  3555. If one of the strings contains spaces, comma's or quotes it will be enclosed by
  3556. double quotes. Any double quotes in a string will be doubled. For instance
  3557. the following strings:
  3558. </p>
  3559. <pre>
  3560. Comma,string
  3561. Quote"string
  3562. Space string
  3563. NormalSttring
  3564. </pre>
  3565. <p>
  3566. is converted to
  3567. </p>
  3568. <code>
  3569. "Comma,string","Quote""String","Space string",NormalString
  3570. </code>
  3571. <p>
  3572. Conversely, when setting the <var>CommaText</var> property, the text will be parsed
  3573. according to the rules outlined above, and the strings will be set
  3574. accordingly. Note that spaces will in this context be regarded as string
  3575. separators, unless the string as a whole is contained in double quotes.
  3576. Spaces that occur next to a delimiter will be ignored.
  3577. The following string:
  3578. </p>
  3579. <pre>
  3580. "Comma,string" , "Quote""String",Space string,, NormalString
  3581. </pre>
  3582. <p>
  3583. Will be converted to
  3584. </p>
  3585. <pre>
  3586. Comma,String
  3587. Quote"String
  3588. Space
  3589. String
  3590. NormalString
  3591. </pre>
  3592. <p>
  3593. This is a special case of the <link id="DelimitedText"/> property where the
  3594. quote character is always the double quote, and the delimiter is always the
  3595. colon.
  3596. </p>
  3597. </descr>
  3598. <seealso>
  3599. <link id="TStrings.Text"/>
  3600. <link id="TStrings.SetText"/>
  3601. </seealso>
  3602. </element>
  3603. <element name="TStrings.Count"> <!-- Property -->
  3604. <short>Number of strings in the list.</short>
  3605. <descr>
  3606. <p>
  3607. <var>Count</var> is the current number of strings in the list.
  3608. <var>TStrings</var> does not implement this property; descendent classes
  3609. should override the property read handler to return the correct value.
  3610. </p>
  3611. <p>
  3612. Strings in the list are always uniquely identified by their
  3613. <var>Index</var>; the index of a string is zero-based, i.e. it's supported
  3614. range is <var>0</var> to <var>Count-1</var>. trying to access a string with
  3615. an index larger than or equal to <var>Count</var> will result in an error.
  3616. Code that iterates over the list in a stringlist should always take into
  3617. account the zero-based character of the list index.
  3618. </p>
  3619. </descr>
  3620. <seealso>
  3621. <link id="TStrings.Strings"/>
  3622. <link id="TStrings.Objects"/>
  3623. <link id="TStrings.Capacity"/>
  3624. </seealso>
  3625. </element>
  3626. <element name="TStrings.Names"> <!-- Property -->
  3627. <short>Name parts of the name-value pairs in the list.</short>
  3628. <descr>
  3629. <p>
  3630. <var>Names</var> provides indexed access to the names of teh name-value
  3631. pairs in the list. It returns the name part of the <var>Index</var>-th
  3632. string in the list.
  3633. </p>
  3634. <remark>
  3635. The index is not an index based on the number of name-value pairs in the
  3636. list. It is the name part of the name-value pair a string <var>Index</var>
  3637. in the list. If the string at position <var>Index</var> is not a name-value
  3638. pair (i.e. does not contain the equal sign (=)), then an empty name is
  3639. returned.
  3640. </remark>
  3641. </descr>
  3642. <seealso>
  3643. <link id="TStrings.Values"/>
  3644. <link id="TStrings.IndexOfName"/>
  3645. </seealso>
  3646. </element>
  3647. <element name="TStrings.Objects"> <!-- Property -->
  3648. <short>Indexed access to the objects associated with the strings in the
  3649. list.</short>
  3650. <descr>
  3651. <p>
  3652. <var>Objects</var> provides indexed access to the objects associated to
  3653. the strings in the list. <var>Index</var> is a zero-based index and
  3654. must be in the range of <var>0</var> to <var>Count-1</var>.
  3655. </p>
  3656. <p>
  3657. Setting the <var>objects</var> property will not free the previously associated object,
  3658. if there was one. The caller is repsonsible for freeing the object that
  3659. was previously associated to the string.
  3660. </p>
  3661. <p>
  3662. <var>TStrings</var> does not implement any storage for objects. Reading the
  3663. <var>Objects</var> property will always return <var>Nil</var>, Setting the
  3664. property will have no effect. It is the responsability of the descendent
  3665. classes to provide storage for the associated objects.
  3666. </p>
  3667. </descr>
  3668. <errors>
  3669. If an <var>Index</var> outside the valid range is specified, an <link
  3670. id="EStringListError"/> exception will be raised.
  3671. </errors>
  3672. <seealso>
  3673. <link id="TStrings.Strings"/>
  3674. <link id="TStrings.IndexOfObject"/>
  3675. <link id="TStrings.Names"/>
  3676. <link id="TStrings.Values"/>
  3677. </seealso>
  3678. </element>
  3679. <element name="TStrings.Values"> <!-- Property -->
  3680. <short>Value parts of the name-value pairs in the list.</short>
  3681. <descr>
  3682. <p>
  3683. <var>Values</var> represents the value parts of the name-value pairs in the
  3684. list.
  3685. </p>
  3686. <p>
  3687. When reading this property, if there is a name-value pair in the list
  3688. of strings that has name part <var>Name</var>, then the corresponding value
  3689. is returned. If there is no such pair, an empty string is returned.
  3690. </p>
  3691. <p>
  3692. When writing this value, first it is checked whether there exists a
  3693. name-value pair in the list with name <var>Name</var>. If such a pair is
  3694. found, it's value part is overwritten with the specified value. If no
  3695. such pair is found, a new name-value pair is added with the specified
  3696. <var>Name</var> and value.
  3697. </p>
  3698. <remark>
  3699. <ol>
  3700. <li>Names are compared case-insensitively.</li>
  3701. <li>Any character, including whitespace, up till the first equal (=) sign
  3702. in a string is considered part of the name.</li>
  3703. </ol>
  3704. </remark>
  3705. </descr>
  3706. <seealso>
  3707. <link id="TStrings.Names"/>
  3708. <link id="TStrings.Strings"/>
  3709. <link id="TStrings.Objects"/>
  3710. </seealso>
  3711. </element>
  3712. <element name="TStrings.Strings"> <!-- Property -->
  3713. <short>Indexed access to teh strings in the list.</short>
  3714. <descr>
  3715. <p>
  3716. <var>Strings</var> is the default property of <var>TStrings</var>. It
  3717. provides indexed read-write access to the list of strings. Reading it will
  3718. return the string at position <var>Index</var> in the list. Writing it will
  3719. set the string at position <var>Index</var>.
  3720. </p>
  3721. <p>
  3722. <var>Index</var> is the position of the string in the list. It is
  3723. zero-based, i.e. valued values range from <var>0</var> (the first string in
  3724. the list) till <var>Count-1</var> (the last string in the list).
  3725. When browsing through the strings in the list, this fact must be taken into
  3726. account.
  3727. </p>
  3728. <p>
  3729. To access the objects associated with the strings in the list, use the <link
  3730. id="TStrings.Objects"/> property. The name parts of name-value pairs can be
  3731. accessed with the <link id="TStrings.Names"/> property, and the values can
  3732. be set or read through the <link id="TStrings.Values"/> property.
  3733. </p>
  3734. <p>
  3735. Searching through the list can be done using the <link
  3736. id="TStrings.IndexOf"/> method.
  3737. </p>
  3738. </descr>
  3739. <errors>
  3740. If <var>Index</var> is outside the allowed range, an <link
  3741. id="EStringListError"/> exception is raised.
  3742. </errors>
  3743. <seealso>
  3744. <link id="TStrings.Count"/>
  3745. <link id="TStrings.Objects"/>
  3746. <link id="TStrings.Names"/>
  3747. <link id="TStrings.Values"/>
  3748. <link id="TStrings.IndexOf"/>
  3749. </seealso>
  3750. </element>
  3751. <element name="TStrings.Text"> <!-- Property -->
  3752. <short>Contents of the list as one big string.</short>
  3753. <descr>
  3754. <p>
  3755. <var>Text</var> returns, when read, the contents of the stringlist as one
  3756. big string consisting of all strings in the list, separated by an
  3757. end-of-line marker. When this property is set, the string will be cut into
  3758. smaller strings, based on the positions of end-of-line markers in the
  3759. string. Any previous content of the stringlist will be lost.
  3760. </p>
  3761. <remark>
  3762. If any of the strings in the list contains an end-of-line marker, then the
  3763. resulting string will appear to contain more strings than actually present
  3764. in the list. To avoid this ambiguity, use the <link id="TStrings.CommaText"/>
  3765. property instead.
  3766. </remark>
  3767. </descr>
  3768. <seealso>
  3769. <link id="TStrings.Strings"/>
  3770. <link id="TStrings.Count"/>
  3771. <link id="TStrings.CommaText"/>
  3772. </seealso>
  3773. </element>
  3774. <element name="TStrings.StringsAdapter"> <!-- Property -->
  3775. <short>Not implemented in Free Pascal.</short>
  3776. <descr>
  3777. </descr>
  3778. <seealso>
  3779. </seealso>
  3780. </element>
  3781. <element name="TDuplicates"> <!-- Enumeration type -->
  3782. <short>Type to describe what to do with duplicate values in a <link
  3783. id="TStringlist"/>.</short>
  3784. <descr>
  3785. </descr>
  3786. <seealso>
  3787. </seealso>
  3788. </element>
  3789. <element name="TDuplicates.dupIgnore"> <!-- Enumeration value -->
  3790. <short>Duplicate values will not be be added to the list, but no error will
  3791. be triggered.</short>
  3792. <seealso>
  3793. </seealso>
  3794. </element>
  3795. <element name="TDuplicates.dupAccept"> <!-- Enumeration value -->
  3796. <short>Duplicate values can be added to the list.</short>
  3797. <descr>
  3798. </descr>
  3799. <seealso>
  3800. </seealso>
  3801. </element>
  3802. <element name="TDuplicates.dupError"> <!-- Enumeration value -->
  3803. <short>If an attempt is made to add a duplicate value to the list, an
  3804. <link id="EStringListError"/> exception is raised.</short>
  3805. <descr>
  3806. </descr>
  3807. <seealso>
  3808. </seealso>
  3809. </element>
  3810. <element name="TStringItemList"> <!-- Array type -->
  3811. <short>Array of <link id="TStringItem"/> records.</short>
  3812. <descr>
  3813. This declaration is provided for Delphi compatibility, it is not used in
  3814. Free Pascal.
  3815. </descr>
  3816. </element>
  3817. <!--
  3818. *********************************************************************
  3819. TStringList
  3820. *********************************************************************
  3821. -->
  3822. <element name="TStringList"> <!-- Class -->
  3823. <short>Standard implementation of the <link id="TStrings"/> class.</short>
  3824. <descr>
  3825. <p>
  3826. <var>TStringList</var> is a descendent class of <link id="TStrings"/> that
  3827. implements all of the abstract methods introduced there. It also introduces
  3828. some additional methods:
  3829. </p>
  3830. <ul>
  3831. <li>Sort the list, or keep the list sorted at all times</li>
  3832. <li>Special handling of duplicates in sorted lists</li>
  3833. <li>Notification of changes in the list</li>
  3834. </ul>
  3835. </descr>
  3836. <seealso>
  3837. <link id="TStrings"/>
  3838. <link id="TStrings.Duplicates"/>
  3839. <link id="TStrings.Sorted"/>
  3840. </seealso>
  3841. </element>
  3842. <element name="TStringList.Changed"> <!-- Procedure -->
  3843. <short>Called when the list of strings was modified.</short>
  3844. <descr>
  3845. </descr>
  3846. <seealso>
  3847. </seealso>
  3848. </element>
  3849. <element name="TStringList.Changing"> <!-- Procedure -->
  3850. <short>Called when the list is changing.</short>
  3851. <descr>
  3852. </descr>
  3853. <seealso>
  3854. </seealso>
  3855. </element>
  3856. <element name="TStringList.Get"> <!-- Function -->
  3857. <short>Overrides the standard read handler for the <link id="TStrings.Strings"/> property.</short>
  3858. <descr>
  3859. </descr>
  3860. <seealso>
  3861. </seealso>
  3862. </element>
  3863. <element name="TStringList.GetCapacity"> <!-- Function -->
  3864. <short>Overrides the standard read handler for the <link
  3865. id="TStrings.Capacity"/> property.</short>
  3866. <descr>
  3867. </descr>
  3868. <seealso>
  3869. </seealso>
  3870. </element>
  3871. <element name="TStringList.GetCount"> <!-- Function -->
  3872. <short>Overrides the standard read handler for the <link
  3873. id="TStrings.Count"/> property.</short>
  3874. <descr>
  3875. </descr>
  3876. <seealso>
  3877. </seealso>
  3878. </element>
  3879. <element name="TStringList.GetObject"> <!-- Function -->
  3880. <short>Overrides the standard read handler for the <link
  3881. id="TStrings.Objects"/> property.</short>
  3882. <descr>
  3883. </descr>
  3884. <seealso>
  3885. </seealso>
  3886. </element>
  3887. <element name="TStringList.Put"> <!-- Procedure -->
  3888. <short>Overrides the standard write handler for the <link
  3889. id="TStrings.Strings"/> property.</short>
  3890. <descr>
  3891. </descr>
  3892. <seealso>
  3893. </seealso>
  3894. </element>
  3895. <element name="TStringList.PutObject"> <!-- Procedure -->
  3896. <short>Overrides the standard write handler for the <link
  3897. id="TStrings.Objects"/> property.</short>
  3898. <descr>
  3899. </descr>
  3900. <seealso>
  3901. </seealso>
  3902. </element>
  3903. <element name="TStringList.SetCapacity"> <!-- Procedure -->
  3904. <short>Overrides the standard write handler for the <link
  3905. id="TStrings.Capacity"/> property.</short>
  3906. <descr>
  3907. </descr>
  3908. <seealso>
  3909. </seealso>
  3910. </element>
  3911. <element name="TStringList.SetUpdateState"> <!-- Procedure -->
  3912. <short>Overrides the standard <link id="TStrings.SetUpdateState"/>
  3913. call.</short>
  3914. <descr>
  3915. </descr>
  3916. <seealso>
  3917. </seealso>
  3918. </element>
  3919. <element name="TStringList.Destroy"> <!-- Destructor -->
  3920. <short>Destroys the stringlist.</short>
  3921. <descr>
  3922. <p>
  3923. <var>Destroy</var> clears the stringlist, release all memory allocated for
  3924. the storage of the strings, and then calls the inherited destroy method.
  3925. </p>
  3926. <remark>
  3927. Any objects associated to strings in the list will <em>not</em> be
  3928. destroyed; it is the responsability of the caller to destroy all objects
  3929. associated with strings in the list.
  3930. </remark>
  3931. </descr>
  3932. </element>
  3933. <element name="TStringList.Add"> <!-- Function -->
  3934. <short>Implements the <link id="TStrings.Add"/> function.</short>
  3935. <descr>
  3936. <p>
  3937. <var>Add</var> will add <var>S</var> to the list. If the list is sorted and
  3938. the string <var>S</var> is already present in the list and
  3939. <link id="TStringList.Duplicates"/> is <var>dupError</var> then an <link
  3940. id="EStringListError"/> exception is raised. If <var>Duplicates</var> is
  3941. set to <var>dupIgnore</var> then the return value is underfined.
  3942. </p>
  3943. <p>
  3944. If the list is sorted, new strings will not necessarily be added to the end
  3945. of the list, rather they will be inserted at their alphabetical position.
  3946. </p>
  3947. </descr>
  3948. <errors>
  3949. If the list is sorted and the string <var>S</var> is already present in the list and
  3950. <link id="TStringList.Duplicates"/> is <var>dupError</var> then an <link
  3951. id="EStringListError"/> exception is raised.
  3952. </errors>
  3953. <seealso>
  3954. <link id="TStringList.Insert"/>
  3955. <link id="TStringList.Duplicates"/>
  3956. </seealso>
  3957. </element>
  3958. <element name="TStringList.Clear"> <!-- Procedure -->
  3959. <short>Implements the <link id="TStrings.Add"/> function.</short>
  3960. <descr>
  3961. </descr>
  3962. <seealso>
  3963. </seealso>
  3964. </element>
  3965. <element name="TStringList.Delete"> <!-- Procedure -->
  3966. <short>Implements the <link id="TStrings.Delete"/> function.</short>
  3967. <descr>
  3968. </descr>
  3969. <seealso>
  3970. </seealso>
  3971. </element>
  3972. <element name="TStringList.Exchange"> <!-- Procedure -->
  3973. <short>Implements the <link id="TStrings.Exchange"/> function.</short>
  3974. <descr>
  3975. <p>
  3976. <var>Exchange</var> will exchange two items in the list as described in
  3977. <link id="TStrings.Exchange"/>.
  3978. </p>
  3979. <remark>
  3980. <var>Exchange</var> will not check whether the list os sorted or not;
  3981. if <var>Exchange</var> is called on a sorted list and the strings are not
  3982. identical, the sort order of the list will be destroyed.
  3983. </remark>
  3984. </descr>
  3985. <seealso>
  3986. <link id="TStringList.Sorted"/>
  3987. <link id="TStrings.Exchange"/>
  3988. </seealso>
  3989. </element>
  3990. <element name="TStringList.Find"> <!-- Function -->
  3991. <short>Locates the index for a given string in sorted lists.</short>
  3992. <descr>
  3993. <p>
  3994. <var>Find</var> returns <var>True</var> if the string <var>S</var> is present in the
  3995. list. Upon exit, the <var>Index</var> parameter will contain the position of
  3996. the string in the list. If the string is not found, the function will return
  3997. <var>False</var> and <var>Index</var> will contain the position where the
  3998. string will be inserted if it is added to the list.
  3999. </p>
  4000. <remark>
  4001. <ol>
  4002. <li> Use this method only on sorted lists. For unsorted lists, use <link
  4003. id="TStringList.IndexOf"/> instead.</li>
  4004. <li>Find uses a binary search method to locate the string</li>
  4005. </ol>
  4006. </remark>
  4007. </descr>
  4008. <seealso>
  4009. </seealso>
  4010. </element>
  4011. <element name="TStringList.IndexOf"> <!-- Function -->
  4012. <short>Overrides the <link id="TStrings.IndexOf"/> property.</short>
  4013. <descr>
  4014. <var>IndexOf</var> overrides the ancestor method <link
  4015. id="TStrings.indexOf"/>. It tries to optimize the
  4016. search by executing a binary search if the list is sorted. The function
  4017. returns the position of <var>S</var> if it is found in the list, or -1 if
  4018. the string is not found in the list.
  4019. </descr>
  4020. <seealso>
  4021. <link id="TStrings.IndexOf"/>
  4022. <link id="TStringList.Find"/>
  4023. </seealso>
  4024. </element>
  4025. <element name="TStringList.Insert"> <!-- Procedure -->
  4026. <short>Overrides the <link id="TStrings.Insert"/> method.</short>
  4027. <descr>
  4028. <var>Insert</var> will insert the string <var>S</var> at position
  4029. <var>Index</var> in the list. If the list is sorted, an <link
  4030. id="EStringListError"/> exception will be raised instead. <var>Index</var>
  4031. is a zero-based position.
  4032. </descr>
  4033. <errors>
  4034. If <var>Index</var> contains an invalid value (less than zero or larger than
  4035. <var>Count</var>, or the list is sorted, an <link id="EStringListError"/>
  4036. exception will be raised.
  4037. </errors>
  4038. <seealso>
  4039. <link id="TStringList.Add"/>
  4040. <link id="TStrings.Insert"/>
  4041. <link id="TStringList.InsertObject"/>
  4042. </seealso>
  4043. </element>
  4044. <element name="TStringList.Sort"> <!-- Procedure -->
  4045. <short>Sorts the strings in the list.</short>
  4046. <descr>
  4047. <var>Sort</var> will sort the strings in the list using the quicksort
  4048. algorithm. If the list has its <link id="TStringList.Sorted"/> property set
  4049. to <var>True</var> then nothing will be done.
  4050. </descr>
  4051. <seealso>
  4052. <link id="TStringList.Sorted"/>
  4053. </seealso>
  4054. </element>
  4055. <element name="TStringList.Duplicates"> <!-- Property -->
  4056. <short>Describes the behaviour of a sorted list with respect to duplicate
  4057. strings.</short>
  4058. <descr>
  4059. <p>
  4060. <var>Duplicates</var> describes what to do in case a duplicate value is
  4061. added to the list:
  4062. </p>
  4063. <table>
  4064. <tr><td>dupIgnore</td><td><printshort id="TDuplicates.dupIgnore"/></td></tr>
  4065. <tr><td>dupError</td><td><printshort id="TDuplicates.dupError"/></td></tr>
  4066. <tr><td>dupAccept</td><td><printshort id="TDuplicates.dupAccept"/></td></tr>
  4067. </table>
  4068. <p>
  4069. If the stringlist is not sorted, the <var>Duplicates</var> setting is
  4070. ignored.
  4071. </p>
  4072. </descr>
  4073. <seealso>
  4074. </seealso>
  4075. </element>
  4076. <element name="TStringList.Sorted"> <!-- Property -->
  4077. <short>Determines whether the list is sorted or not.</short>
  4078. <descr>
  4079. <p>
  4080. <var>Sorted</var> can be set to <var>True</var> in order to cause the list
  4081. of strings to be sorted. Further additions to the list will be inserted at
  4082. the correct position so the list remains sorted at all times. Setting the
  4083. property to <var>False</var> has no immediate effect, but will allow strings
  4084. to be inserted at any position.
  4085. </p>
  4086. <remark>
  4087. <ol>
  4088. <li>
  4089. When <var>Sorted</var> is <var>True</var>, <link id="TStringList.Insert"/>
  4090. cannot be used. For sorted lists, <link id="TStringList.Add"/> should be
  4091. used instead.</li>
  4092. <li>If <var>Sorted</var> is <var>True</var>, the <link
  4093. id="TStringList.Duplicates"/> setting has effect. This setting is ignored
  4094. when <var>Sorted</var> is <var>False</var>.</li>
  4095. </ol>
  4096. </remark>
  4097. </descr>
  4098. <seealso>
  4099. <link id="TStringList.Sort"/>
  4100. <link id="TStringList.Duplicates"/>
  4101. <link id="TStringList.Add"/>
  4102. <link id="TstringList.Insert"/>
  4103. </seealso>
  4104. </element>
  4105. <element name="TStringList.OnChange"> <!-- Property -->
  4106. <short>Event triggered after the list was modified.</short>
  4107. <descr>
  4108. <p>
  4109. <var>OnChange</var> can be assigned to respond to changes that have occurred
  4110. in the list. The handler is called whenever strings are added, moved,
  4111. modified or deleted from the list.
  4112. </p>
  4113. <p>
  4114. The <var>Onchange</var> event is triggered after the modification took place.
  4115. When the modification is about to happen, an <link
  4116. id="TstringList.OnChanging"/> event occurs.
  4117. </p>
  4118. </descr>
  4119. <seealso>
  4120. <link id="TStringList.OnChanging"/>
  4121. </seealso>
  4122. </element>
  4123. <element name="TStringList.OnChanging"> <!-- Property -->
  4124. <short>Event triggered when the list is about to be modified.</short>
  4125. <descr>
  4126. <p>
  4127. <var>OnChanging</var> can be assigned to respond to changes that will occurred
  4128. in the list. The handler is called whenever strings will be added, moved,
  4129. modified or deleted from the list.
  4130. </p>
  4131. <p>
  4132. The <var>Onchanging</var> event is triggered before the modification will
  4133. take place. When the modification has happened, an <link
  4134. id="TstringList.OnChange"/> event occurs.
  4135. </p>
  4136. </descr>
  4137. <seealso>
  4138. <link id="TStringList.OnChange"/>
  4139. </seealso>
  4140. </element>
  4141. <!--
  4142. *********************************************************************
  4143. TStream
  4144. *********************************************************************
  4145. -->
  4146. <element name="TStream"> <!-- Class -->
  4147. <short>Base class for streams.</short>
  4148. <descr>
  4149. <p>
  4150. <var>TStream</var> is the base class for all streaming classes. It defines
  4151. abstract methods for <link id="TStream.Read">reading</link>, <link
  4152. id="TStream.Write">writing</link> from and to streams, as well as functions to
  4153. determine the size of the stream as well as the current position of the
  4154. stream.
  4155. </p>
  4156. <p>Descendent classes such as <link id="TMemoryStream"/> or <link
  4157. id="TFileStream"/> then implement these abstract methods to write streams to
  4158. memory or file.
  4159. </p>
  4160. </descr>
  4161. <seealso>
  4162. <link id="TMemoryStream"/>
  4163. <link id="TFileStream"/>
  4164. <link id="TStringStream"/>
  4165. </seealso>
  4166. </element>
  4167. <element name="TStream.SetSize"> <!-- Procedure -->
  4168. <short>Sets the size of the stream</short>
  4169. <descr>
  4170. <var>SetSize</var> is the write handler for the <link id="TStream.Size"/>
  4171. property. The <var>TStream</var> implementation of <var>SetSize</var> does
  4172. nothing, but descendent classes may override this methods to allow
  4173. programmers to set the size of the stream.
  4174. </descr>
  4175. <seealso>
  4176. <link id="TStream.GetSize"/>
  4177. <link id="TStream.Size"/>
  4178. </seealso>
  4179. </element>
  4180. <element name="TStream.Read"> <!-- Function -->
  4181. <short>Reads data from the stream to a buffer and returns the number of
  4182. bytes read.</short>
  4183. <descr>
  4184. <p>
  4185. <var>Read</var> attempts to read <var>Count</var> from the stream to
  4186. <var>Buffer</var> and returns the number of bytes actually read.
  4187. </p>
  4188. <p>This method should be used when the number of bytes is not determined.
  4189. If a specific number of bytes is expected, use <link
  4190. id="TSTream.ReadBuffer"/> instead.
  4191. </p>
  4192. <p>
  4193. <var>Read</var> is an abstract method that is overridden by descendent
  4194. classes to do the actual reading.
  4195. </p>
  4196. </descr>
  4197. <errors>
  4198. Descendent classes that do not allow reading from the stream may raise an
  4199. exception when the <var>Read</var> is used.
  4200. </errors>
  4201. <seealso>
  4202. <link id="TStream.Write"/>
  4203. <link id="TStream.ReadBuffer"/>
  4204. </seealso>
  4205. </element>
  4206. <element name="TStream.Write"> <!-- Function -->
  4207. <short>Writes data from a buffer to the stream and returns the number of
  4208. bytes written.</short>
  4209. <descr>
  4210. <p>
  4211. <var>Write</var> attempts to write <var>Count</var> bytes from
  4212. <var>Buffer</var> to the stream. It returns the actual number of bytes
  4213. written to the stream.
  4214. </p>
  4215. <p>This method should be used when the number of bytes that should be
  4216. written is not determined. If a specific number of bytes should be
  4217. written, use <link id="TSTream.WriteBuffer"/> instead.
  4218. </p>
  4219. <p>
  4220. <var>Write</var> is an abstract method that is overridden by descendent
  4221. classes to do the actual writinging.
  4222. </p>
  4223. </descr>
  4224. <errors>
  4225. Descendent classes that do not allow writing to the stream may raise an
  4226. exception when <var>Write</var> is used.
  4227. </errors>
  4228. <seealso>
  4229. <link id="TStream.Read"/>
  4230. <link id="TStream.WriteBuffer"/>
  4231. </seealso>
  4232. </element>
  4233. <element name="TStream.Seek"> <!-- Function -->
  4234. <short>Sets the current position in the stream</short>
  4235. <descr>
  4236. <p>
  4237. <var>Seek</var> sets the position of the stream to <var>Offset</var> bytes
  4238. from <var>Origin</var>. <var>Origin</var> can have one of the following
  4239. values:
  4240. </p>
  4241. <table>
  4242. <tr><td>Constant</td><td>Meaning</td></tr>
  4243. <tr><td>soFromBeginning</td><td>Set the position relative to the start of
  4244. the stream.</td></tr>
  4245. <tr><td>soFromCurrent</td><td>Set the position relative to the beginning of
  4246. the stream.</td></tr>
  4247. <tr><td>soFromEnd</td><td>Set the position relative to the end of the
  4248. stream.</td></tr>
  4249. </table>
  4250. <p>
  4251. <var>Offset</var> should be negative when the origin is <var>SoFromEnd</var>.
  4252. It should be positive for <var>soFromBeginning</var> and can have both signs
  4253. for <var>soFromCurrent</var>
  4254. </p>
  4255. <p>
  4256. This is an abstract method, which must be overridden by descendent classes.
  4257. They may choose not to implement this method for all values of
  4258. <var>Origin</var> and <var>Offset</var>.
  4259. </p>
  4260. </descr>
  4261. <errors>
  4262. An exception may be raised if this method is called with an invalid pair of
  4263. <var>Offset</var>,<var>Origin</var> values. e.g. a negative
  4264. <var>offset</var> for <var>soFromBeginning</var>.
  4265. </errors>
  4266. <seealso>
  4267. <link id="TStream.Position"/>
  4268. </seealso>
  4269. </element>
  4270. <element name="TStream.ReadBuffer"> <!-- Procedure -->
  4271. <short>Reads data from the stream to a buffer</short>
  4272. <descr>
  4273. <p>
  4274. <var>ReadBuffer</var> reads <var>Count</var> bytes of the stream into
  4275. <var>Buffer</var>. If the stream does not contain <var>Count</var> bytes,
  4276. then an exception is raised.
  4277. </p>
  4278. <p>
  4279. <var>ReadBuffer</var> should be used to read in a fixed number of bytes,
  4280. such as when reading structures or the content of variables. If the number
  4281. of bytes is not determined, use <link id="TStream.Read"/> instead.
  4282. <var>ReadBuffer</var> uses <var>Read</var> internally to do the actual
  4283. reading.
  4284. </p>
  4285. </descr>
  4286. <errors>
  4287. If the stream does not allow to read <var>Count</var> bytes, then an
  4288. exception is raised.
  4289. </errors>
  4290. <seealso>
  4291. <link id="TStream.Read"/>
  4292. <link id="TStream.WriteBuffer"/>
  4293. </seealso>
  4294. </element>
  4295. <element name="TStream.WriteBuffer"> <!-- Procedure -->
  4296. <short>Writes data from the stream to the buffer</short>
  4297. <descr>
  4298. <p>
  4299. <var>WriteBuffer</var> writes <var>Count</var> bytes to the stream from
  4300. <var>Buffer</var>. If the stream does not allow <var>Count</var> bytes to be
  4301. written, then an exception is raised.
  4302. </p>
  4303. <p>
  4304. <var>WriteBuffer</var> should be used to read in a fixed number of bytes,
  4305. such as when writing structures or the content of variables. If the number
  4306. of bytes is not determined, use <link id="TStream.Write"/> instead.
  4307. <var>WriteBuffer</var> uses <var>Write</var> internally to do the actual
  4308. reading.
  4309. </p>
  4310. </descr>
  4311. <errors>
  4312. If the stream does not allow to write <var>Count</var> bytes, then an
  4313. exception is raised.
  4314. </errors>
  4315. <seealso>
  4316. <link id="TStream.Write"/>
  4317. <link id="TStream.ReadBuffer"/>
  4318. </seealso>
  4319. </element>
  4320. <element name="TStream.CopyFrom"> <!-- Function -->
  4321. <short>Copy data from one stream to another</short>
  4322. <descr>
  4323. <p>
  4324. <var>CopyFrom</var> reads <var>Count</var> bytes from <var>Source</var> and
  4325. writes them to the current stream. This updates the current position in the
  4326. stream. After the action is completed, the number of bytes copied is
  4327. returned.
  4328. </p>
  4329. <p>
  4330. This can be used to quickly copy data from one stream to another or to copy
  4331. the whole contents of the stream.
  4332. </p>
  4333. </descr>
  4334. <seealso>
  4335. <link id="TStream.Read"/>
  4336. <link id="TStream.Write"/>
  4337. </seealso>
  4338. </element>
  4339. <element name="TStream.ReadComponent"> <!-- Function -->
  4340. <short>Reads component data from a stream</short>
  4341. <descr>
  4342. <p>
  4343. <var>ReadComponent</var> reads a component state from the stream and
  4344. transfers this state to <var>Instance</var>. If <var>Instance</var> is nil,
  4345. then it is created first based on the type stored in the stream.
  4346. <var>ReadComponent</var> returns the component as it is read from the stream.
  4347. </p>
  4348. <p>
  4349. <var>ReadComponent</var> simply creates a <link id="TReader"/> object and
  4350. calls its <link id="TReader.ReadRootComponent">ReadRootComponent</link>
  4351. method.
  4352. </p>
  4353. </descr>
  4354. <errors>
  4355. If an error occurs during the reading of the component, an <link
  4356. id="EFilerError"/> exception is raised.
  4357. </errors>
  4358. <seealso>
  4359. <link id="TStream.WriteComponent"/>
  4360. <link id="TStream.ReadComponentRes"/>
  4361. <link id="TReader.ReadRootComponent"/>
  4362. </seealso>
  4363. </element>
  4364. <element name="TStream.ReadComponentRes"> <!-- Function -->
  4365. <short>Reads component data and resource header from a stream</short>
  4366. <descr>
  4367. <p>
  4368. <var>ReadComponentRes</var> reads a resource header from the stream, and then
  4369. calls <link id="TStream.ReadComponent">ReadComponent</link> to read the
  4370. component state from the stream into <var>Instance</var>.
  4371. </p>
  4372. <p>
  4373. This method is usually called by the global streaming method when
  4374. instantiating forms and datamodules as created by an IDE. It should be used
  4375. mainly on Windows, to store components in Windows resources.
  4376. </p>
  4377. </descr>
  4378. <errors>
  4379. If an error occurs during the reading of the component, an <link
  4380. id="EFilerError"/> exception is raised.
  4381. </errors>
  4382. <seealso>
  4383. <link id="TStream.ReadComponent"/>
  4384. <link id="TStream.WriteComponentRes"/>
  4385. </seealso>
  4386. </element>
  4387. <element name="TStream.WriteComponent"> <!-- Procedure -->
  4388. <short>Write component data to the stream</short>
  4389. <descr>
  4390. <p>
  4391. <var>WriteComponent</var> writes the published properties of
  4392. <var>Instance</var> to the stream, so they can later be read with <link
  4393. id="TStream.ReadComponent"/>. This method is intended to be used by an IDE,
  4394. to preserve the state of a form or datamodule as designed in the IDE.
  4395. </p>
  4396. <p>
  4397. <var>WriteComponent</var> simply calls <link
  4398. id="TStream.WriteDescendent">WriteDescendent</link> with <var>Nil</var>
  4399. ancestor.
  4400. </p>
  4401. </descr>
  4402. <seealso>
  4403. <link id="TStream.ReadComponent"/>
  4404. <link id="TStream.WriteComponentRes"/>
  4405. </seealso>
  4406. </element>
  4407. <element name="TStream.WriteComponentRes"> <!-- Procedure -->
  4408. <short>Write resource header and component data to a stream</short>
  4409. <descr>
  4410. <p>
  4411. <var>WriteComponentRes</var> writes a <var>ResName</var> resource header
  4412. to the stream and then calls <link id="TStream.WriteComponent">WriteComponent</link>
  4413. to write the published properties of <var>Instance</var> to the stream.
  4414. </p>
  4415. <p>
  4416. This method is intened for use by an IDE that can use it to store forms or
  4417. datamodules as designed in a Windows resource stream.
  4418. </p>
  4419. </descr>
  4420. <seealso>
  4421. <link id="TStream.WriteComponent"/>
  4422. <link id="TStream.ReadComponentRes"/>
  4423. </seealso>
  4424. </element>
  4425. <element name="TStream.WriteDescendent"> <!-- Procedure -->
  4426. <short>Write component data to a stream, relative to an ancestor</short>
  4427. <descr>
  4428. <p>
  4429. <var>WriteDescendent</var> writes the state of <var>Instance</var> to the
  4430. stream where it differs from <var>Ancestor</var>, i.e. only the changed
  4431. properties are written to the stream.
  4432. </p>
  4433. <p>
  4434. <var>WriteDescendent</var> creates a <link id="TWriter"/> object and calls
  4435. its <link id="TWriter.WriteDescendent">WriteDescendent</link> object. The
  4436. writer is passed a <link id="TBinaryObjectWriter">binary driver
  4437. object</link> by default.
  4438. </p>
  4439. </descr>
  4440. <seealso>
  4441. </seealso>
  4442. </element>
  4443. <element name="TStream.WriteDescendentRes"> <!-- Procedure -->
  4444. <short>Write resource header and component data to a stream, relative to an ancestor</short>
  4445. <descr>
  4446. <p>
  4447. <var>WriteDescendentRes</var> writes a <var>ResName</var> resource header,
  4448. and then calls <link id="TStream.WriteDescendent">WriteDescendent</link> to
  4449. write the state of <var>Instance</var> to the
  4450. stream where it differs from <var>Ancestor</var>, i.e. only the changed
  4451. properties are written to the stream.
  4452. </p>
  4453. <p>
  4454. This method is intened for use by an IDE that can use it to store forms or
  4455. datamodules as designed in a Windows resource stream.
  4456. </p>
  4457. </descr>
  4458. <seealso>
  4459. </seealso>
  4460. </element>
  4461. <element name="TStream.WriteResourceHeader"> <!-- Procedure -->
  4462. <short>Write resource header to the stream</short>
  4463. <descr>
  4464. <p>
  4465. <var>WriteResourceHeader</var> writes a resource-file header for a resource
  4466. called <var>ResName</var>. It returns in <var>FixupInfo</var> the argument
  4467. that should be passed on to <link id="TStream.FixupResourceHeader"/>.
  4468. </p>
  4469. <p>
  4470. <var>WriteResourceHeader</var> should not be used directly. It is called by
  4471. the <link id="TStream.WriteComponentRes"/> and
  4472. <link id="TStream.WriteDescendentRes"/>
  4473. methods.
  4474. </p>
  4475. </descr>
  4476. <seealso>
  4477. <link id="TStream.FixupResourceHeader"/>
  4478. <link id="TStream.WriteComponentRes"/>
  4479. <link id="TStream.WriteDescendentRes"/>
  4480. </seealso>
  4481. </element>
  4482. <element name="TStream.FixupResourceHeader"> <!-- Procedure -->
  4483. <short>Not implemented in FPC</short>
  4484. <descr>
  4485. <p>
  4486. <var>FixupResourceHeader</var> is used to write the size of the resource
  4487. after a component was written to stream. The size is determined from the
  4488. current position, and it is written at position <var>FixupInfo</var>. After
  4489. that the current position is restored.
  4490. </p>
  4491. <p>
  4492. <var>FixupResourceHeader</var> should never be called directly; it is
  4493. handled by the streaming system.
  4494. </p>
  4495. </descr>
  4496. <seealso>
  4497. <link id="TStream.WriteResourceHeader"/>
  4498. <link id="TStream.WriteComponentRes"/>
  4499. <link id="TStream.WriteDescendentRes"/>
  4500. </seealso>
  4501. </element>
  4502. <element name="TStream.ReadResHeader"> <!-- Procedure -->
  4503. <short>Read a resource header from the stream.</short>
  4504. <descr>
  4505. <p>
  4506. <var>ReadResourceHeader</var> reads a reasource file header from the stream.
  4507. It positions the stream just beyond the header.
  4508. </p>
  4509. <p>
  4510. <var>ReadResourceHeader</var> should not be called directly, it is called by
  4511. the streaming system when needed.
  4512. </p>
  4513. </descr>
  4514. <errors>
  4515. If the resource header is invalid an <link id="EInvalidImage"/> exception is
  4516. raised.
  4517. </errors>
  4518. <seealso>
  4519. <link id="TStream.ReadComponentRes"/>
  4520. <link id="EInvalidImage"/>
  4521. </seealso>
  4522. </element>
  4523. <element name="TStream.ReadByte"> <!-- Function -->
  4524. <short>Read a byte from the stream and return its value.</short>
  4525. <descr>
  4526. <var>ReadByte</var> reads one byte from the stream and returns its value.
  4527. </descr>
  4528. <errors>
  4529. If the byte cannot be read, a <link id="EStreamError"/> exception will be
  4530. raised. This is a utility function which symply calls the
  4531. <link id="TStream.Read">Read</link> function.
  4532. </errors>
  4533. <seealso>
  4534. <link id="TStream.Read"/>
  4535. <link id="TStream.WriteByte"/>
  4536. <link id="TStream.ReadWord"/>
  4537. <link id="TStream.ReadDWord"/>
  4538. <link id="TStream.ReadAnsiString"/>
  4539. </seealso>
  4540. </element>
  4541. <element name="TStream.ReadWord"> <!-- Function -->
  4542. <short>Read a word from the stream and return its value.</short>
  4543. <descr>
  4544. <var>ReadWord</var> reads one Word (i.e. 2 bytes) from the stream
  4545. and returns its value. This is a utility function which symply calls the
  4546. <link id="TStream.Read">Read</link> function.
  4547. </descr>
  4548. <errors>
  4549. If the word cannot be read, a <link id="EStreamError"/> exception will be
  4550. raised.
  4551. </errors>
  4552. <seealso>
  4553. <link id="TStream.Read"/>
  4554. <link id="TStream.WriteWord"/>
  4555. <link id="TStream.ReadByte"/>
  4556. <link id="TStream.ReadDWord"/>
  4557. <link id="TStream.ReadAnsiString"/>
  4558. </seealso>
  4559. </element>
  4560. <element name="TStream.ReadDWord"> <!-- Function -->
  4561. <short>Read a DWord from the stream and return its value.</short>
  4562. <descr>
  4563. <var>ReadDWord</var> reads one DWord (i.e. 4 bytes) from the stream
  4564. and returns its value. This is a utility function which simply calls the
  4565. <link id="TStream.Read">Read</link> function.
  4566. </descr>
  4567. <errors>
  4568. If the DWord cannot be read, a <link id="EStreamError"/> exception will be
  4569. raised.
  4570. </errors>
  4571. <seealso>
  4572. <link id="TStream.Read"/>
  4573. <link id="TStream.WriteDWord"/>
  4574. <link id="TStream.ReadByte"/>
  4575. <link id="TStream.ReadWord"/>
  4576. <link id="TStream.ReadAnsiString"/>
  4577. </seealso>
  4578. </element>
  4579. <element name="TStream.ReadAnsiString"> <!-- Function -->
  4580. <short>Read an ansistring from the stream and return its value.</short>
  4581. <descr>
  4582. <var>ReadAnsiString</var> reads an ansistring from the stream
  4583. and returns its value. This is a utility function which simply calls the
  4584. read function several times.
  4585. The Ansistring should be stored as 4 bytes (a DWord) representing the length
  4586. of the string, and then the string value itself.
  4587. The <link id="TStream.WriteAnsiString">WriteAnsiString</link> function
  4588. writes an ansistring in such a format.
  4589. </descr>
  4590. <errors>
  4591. If the AnsiString cannot be read, a <link id="EStreamError"/> exception will be
  4592. raised.
  4593. </errors>
  4594. <seealso>
  4595. <link id="TStream.Read"/>
  4596. <link id="TStream.WriteAnsiString"/>
  4597. <link id="TStream.ReadByte"/>
  4598. <link id="TStream.ReadWord"/>
  4599. <link id="TStream.ReadDWord"/>
  4600. </seealso>
  4601. </element>
  4602. <element name="TStream.WriteByte"> <!-- Procedure -->
  4603. <short>Write a byte to the stream.</short>
  4604. <descr>
  4605. <var>WriteByte</var> writes the byte <var>B</var> to the stream. This is a
  4606. utility function which simply calls the <link
  4607. id="TStream.Write">Write</link> function.
  4608. The byte can be read from the stream using the <link
  4609. id="TStream.ReadByte">ReadByte</link> function.
  4610. </descr>
  4611. <errors>
  4612. If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
  4613. </errors>
  4614. <seealso>
  4615. <link id="TStream.Write"/>
  4616. <link id="TStream.ReadByte"/>
  4617. <link id="TStream.WriteWord"/>
  4618. <link id="TStream.WriteDWord"/>
  4619. <link id="TStream.WriteAnsiString"/>
  4620. </seealso>
  4621. </element>
  4622. <element name="TStream.WriteWord"> <!-- Procedure -->
  4623. <short>Write a word to the stream.</short>
  4624. <descr>
  4625. <var>WriteWord</var> writes the word <var>W</var> (i.e. 2 bytes) to the stream. This is a
  4626. utility function which simply calls the <link
  4627. id="TStream.Write">Write</link> function.
  4628. The word can be read from the stream using the <link
  4629. id="TStream.ReadWord">ReadWord</link> function.
  4630. </descr>
  4631. <errors>
  4632. If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
  4633. </errors>
  4634. <seealso>
  4635. <link id="TStream.Write"/>
  4636. <link id="TStream.ReadWord"/>
  4637. <link id="TStream.WriteByte"/>
  4638. <link id="TStream.WriteDWord"/>
  4639. <link id="TStream.WriteAnsiString"/>
  4640. </seealso>
  4641. </element>
  4642. <element name="TStream.WriteDWord"> <!-- Procedure -->
  4643. <short>Write a DWord to the stream.</short>
  4644. <descr>
  4645. <var>WriteDWord</var> writes the DWord <var>D</var> (i.e. 4 bytes) to the stream. This is a
  4646. utility function which simply calls the <link
  4647. id="TStream.Write">Write</link> function.
  4648. The DWord can be read from the stream using the <link
  4649. id="TStream.ReadDWord">ReadDWord</link> function.
  4650. </descr>
  4651. <errors>
  4652. If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
  4653. </errors>
  4654. <seealso>
  4655. <link id="TStream.Write"/>
  4656. <link id="TStream.ReadDWord"/>
  4657. <link id="TStream.WriteByte"/>
  4658. <link id="TStream.WriteWord"/>
  4659. <link id="TStream.WriteAnsiString"/>
  4660. </seealso>
  4661. </element>
  4662. <element name="TStream.WriteAnsiString"> <!-- Procedure -->
  4663. <short>Write an ansistring to the stream.</short>
  4664. <descr>
  4665. <var>WriteAnsiString</var> writes the AnsiString <var>S</var> (i.e. 4 bytes) to the stream. This is a
  4666. utility function which simply calls the <link
  4667. id="TStream.Write">Write</link> function.
  4668. The ansistring is written as a 4 byte length specifier, followed by the
  4669. ansistring's content.
  4670. The ansistring can be read from the stream using the <link
  4671. id="TStream.ReadAnsiString">ReadAnsiString</link> function.
  4672. </descr>
  4673. <errors>
  4674. If an error occurs when attempting to write, an <link id="EStreamError"/> exception will be raised.
  4675. </errors>
  4676. <seealso>
  4677. <link id="TStream.Write"/>
  4678. <link id="TStream.ReadAnsiString"/>
  4679. <link id="TStream.WriteByte"/>
  4680. <link id="TStream.WriteWord"/>
  4681. <link id="TStream.WriteDWord"/>
  4682. </seealso>
  4683. </element>
  4684. <element name="TStream.Position"> <!-- Property -->
  4685. <short>The current position in the stream.</short>
  4686. <descr>
  4687. <p>
  4688. <var>Position</var> can be read to determine the current position in the
  4689. stream. It can be written to to set the (absolute) position in the stream.
  4690. The position is zero-based, so to set the position at the beginning of the
  4691. stream, the position must be set to zero.
  4692. </p>
  4693. <remark>
  4694. Not all <var>TStream</var> descendants support setting the position in the
  4695. stream, so this should be used with care.
  4696. </remark>
  4697. </descr>
  4698. <errors>
  4699. Some descendents may raise an <link id="EStreamError"/> exception if they
  4700. do not support setting the stream position.
  4701. </errors>
  4702. <seealso>
  4703. <link id="TStream.Size"/>
  4704. <link id="TStream.Seek"/>
  4705. </seealso>
  4706. </element>
  4707. <element name="TStream.Size"> <!-- Property -->
  4708. <short>The current size of the stream.</short>
  4709. <descr>
  4710. <p>
  4711. <var>Size</var> can be read to determine the stream size or to set the
  4712. stream size.
  4713. </p>
  4714. <remark>
  4715. Not all descendents of <var>TStream</var> support getting or setting the
  4716. stream size; they may raise an exception if the <var>Size</var> property
  4717. is read or set.
  4718. </remark>
  4719. </descr>
  4720. <seealso>
  4721. <link id="TStream.Position"/>
  4722. <link id="TStream.Seek"/>
  4723. </seealso>
  4724. </element>
  4725. <!--
  4726. *********************************************************************
  4727. THandleStream
  4728. *********************************************************************
  4729. -->
  4730. <element name="THandleStream"> <!-- Class -->
  4731. <short>Base clas for streams that are identified by an OS handle.</short>
  4732. <descr>
  4733. <p>
  4734. <var>THandleStream</var> is an abstract descendent of the <link
  4735. id="TStream"/>
  4736. class that provides methods for a stream to handle all reading and writing
  4737. to and from a handle, provided by the underlying OS. To this end, it
  4738. overrides the <link id="THandleStream.Read">Read</link> and <link
  4739. id="THandleStream.Write">Write</link> methods of TStream.
  4740. </p>
  4741. <remark>
  4742. <ul>
  4743. <li>
  4744. <var>ThandleStream</var> does not obtain a handle from the OS by itself,
  4745. it just handles reading and writing to such a handle by wrapping the system
  4746. calls for reading and writing;
  4747. Descendent classes should obtain a handle from the OS by themselves and pass it on in the inherited
  4748. constructor.</li>
  4749. <li>
  4750. Contrary to Delphi, no seek is implemented for <var>THandleStream</var>,
  4751. since pipes and sockets do not support this. The seek is implemented in
  4752. descendent methods that support it.
  4753. </li>
  4754. </ul>
  4755. </remark>
  4756. </descr>
  4757. <seealso>
  4758. <link id="TStream"/>
  4759. <link id="TFileStream"/>
  4760. </seealso>
  4761. </element>
  4762. <element name="THandleStream.Create"> <!-- Constructor -->
  4763. <short>Create a handlestream from an OS Handle.</short>
  4764. <descr>
  4765. <var>Create</var> creates a new instance of a <var>THandleStream</var>
  4766. class. It stores <var>AHandle</var> in an internal variable and
  4767. then calls the inherited constructor.
  4768. </descr>
  4769. <seealso>
  4770. <link id="TStream"/>
  4771. </seealso>
  4772. </element>
  4773. <element name="THandleStream.Read"> <!-- Function -->
  4774. <short>Overrides standard read method.</short>
  4775. <descr>
  4776. <p>
  4777. <var>Read</var> implements the abstract <link id="TStream.Read">Read</link>
  4778. method of <var>TStream</var>. It uses the <link
  4779. id="THandleStream.Handle">Handle</link> property to read the
  4780. <var>Count</var> bytes into <var>Buffer</var>
  4781. </p>
  4782. <p>
  4783. If no error occurs while reading, the number of bytes actually read will be
  4784. returned.
  4785. </p>
  4786. </descr>
  4787. <errors>
  4788. If the operating system reports an error while reading from the handle, -1
  4789. is returned.
  4790. </errors>
  4791. <seealso>
  4792. <link id="TStream.Read"/>
  4793. <link id="THandleStream.Write"/>
  4794. <link id="THandleStream.Handle"/>
  4795. </seealso>
  4796. </element>
  4797. <element name="THandleStream.Write"> <!-- Function -->
  4798. <short>Overrides standard write method.</short>
  4799. <descr>
  4800. <p>
  4801. <var>Write</var> implements the abstract <link id="TStream.Write">Write</link>
  4802. method of <var>TStream</var>. It uses the <link
  4803. id="THandleStream.Handle">Handle</link> property to write the
  4804. <var>Count</var> bytes from <var>Buffer</var>.
  4805. </p>
  4806. <p>
  4807. If no error occurs while writing, the number of bytes actually written will be
  4808. returned.
  4809. </p>
  4810. </descr>
  4811. <errors>
  4812. If the operating system reports an error while writing to handle, -1
  4813. is returned.
  4814. </errors>
  4815. <seealso>
  4816. <link id="TStream.Read"/>
  4817. <link id="THandleStream.Write"/>
  4818. <link id="THandleStream.Handle"/>
  4819. </seealso>
  4820. </element>
  4821. <element name="THandleStream.Handle"> <!-- Property -->
  4822. <short>The OS handle of the stream.</short>
  4823. <descr>
  4824. <var>Handle</var> represents the Operating system handle to which reading
  4825. and writing is done. The handle can be read only, i.e. it cannot be set
  4826. after the <var>THandlestream</var> instance was created. It should be
  4827. passed to the constructor <link id="THandleStream.Create"/>
  4828. </descr>
  4829. <seealso>
  4830. <link id="THandleStream"/>
  4831. <link id="THandleStream.Create"/>
  4832. </seealso>
  4833. </element>
  4834. <!--
  4835. *********************************************************************
  4836. TFileStream
  4837. *********************************************************************
  4838. -->
  4839. <element name="TFileStream"> <!-- Class -->
  4840. <short>Stream that stores its data in a named file on disk.</short>
  4841. <descr>
  4842. <p>
  4843. <var>TFileStream</var> is a <link id="TStream"/> descdendent that
  4844. stores or reads it's data from a named file in the filesystem of
  4845. the operating system.
  4846. </p>
  4847. <p>
  4848. To this end, it overrides some of the abstract methods in <var>TStream</var>
  4849. and implements them for the case of files on disk, and it adds the <link
  4850. id="TFileStream.Filename">FileName</link> property to the list of public
  4851. properties.
  4852. </p>
  4853. </descr>
  4854. <seealso>
  4855. <link id="TFileStream.Create"/>
  4856. <link id="TStream"/>
  4857. </seealso>
  4858. </element>
  4859. <element name="TFileStream.SetSize"> <!-- Procedure -->
  4860. <short>Sets the size of the file stream.</short>
  4861. <descr>
  4862. <p>
  4863. <var>SetSize</var> sets the size of the file at <var>NewSize</var> bytes.
  4864. Errors returned by the operating system call will be silently ignored.
  4865. </p>
  4866. <p>
  4867. This is the protected write method of the public <link id="TStream.Size"/>
  4868. property.
  4869. </p>
  4870. </descr>
  4871. <seealso>
  4872. <link id="TStream.Size"/>
  4873. </seealso>
  4874. </element>
  4875. <element name="TFileStream.Create"> <!-- Constructor -->
  4876. <short>Creates a file stream.</short>
  4877. <descr>
  4878. <p>
  4879. <var>Create</var> creates a new instance of a <var>TFileStream</var> class.
  4880. It opens the file <var>AFileName</var> with mode <var>Mode</var>, which can
  4881. have one of the following values:
  4882. </p>
  4883. <table>
  4884. <tr>
  4885. <td>fmCreate</td><td><printshort id="fmCreate"/></td>
  4886. </tr>
  4887. <tr>
  4888. <td>fmOpenRead</td><td><printshort id="fmOpenRead"/></td>
  4889. </tr>
  4890. <tr>
  4891. <td>fmOpenWrite</td><td><printshort id="fmOpenWrite"/></td>
  4892. </tr>
  4893. <tr>
  4894. <td>fmOpenReadWrite</td><td><printshort id="fmOpenReadWrite"/></td>
  4895. </tr>
  4896. </table>
  4897. <p>
  4898. After the file has been opened in the requested mode and a handle has been
  4899. obtained from the operating system, the inherited constructor is called.
  4900. </p>
  4901. </descr>
  4902. <errors>
  4903. If the file could not be opened in the requested mode, an <link
  4904. id="EFOpenError"/> exception is raised.
  4905. </errors>
  4906. <seealso>
  4907. <link id="TStream"/>
  4908. <link id="TFileStream.FileName"/>
  4909. <link id="THandleStream.Create"/>
  4910. </seealso>
  4911. </element>
  4912. <element name="TFileStream.Destroy"> <!-- Destructor -->
  4913. <short>Destroys the file stream.</short>
  4914. <descr>
  4915. <p>
  4916. <var>Destroy</var> closes the file (causing possible buffered data to be
  4917. written to disk) and then calls the inherited destructor.
  4918. </p>
  4919. <p>
  4920. Do not call <var>destroy</var> directly, instead call the <var>Free</var>
  4921. method. Destroy does not check whether <var>Self</var> is nil, while
  4922. <var>Free</var> does.
  4923. </p>
  4924. </descr>
  4925. <seealso>
  4926. <link id="TFileStream.Create"/>
  4927. </seealso>
  4928. </element>
  4929. <element name="TFileStream.Seek"> <!-- Function -->
  4930. <short>Overrides the standard method.</short>
  4931. <descr>
  4932. <p>
  4933. <var>Seek</var> attempts to set the position of the stream at
  4934. <var>Offset</var> bytes from <var>Origin</var>. <var>Offset</var> can have
  4935. any integer value which would set the position within the boundaries of the
  4936. file, and thus the valid range depends on the value of <var>Origin</var>.
  4937. <var>Origin</var> can have one of the following values:
  4938. </p>
  4939. <table>
  4940. <tr>
  4941. <td>soFromBeginning</td><td><printshort id="soFromBeginning"/></td>
  4942. </tr>
  4943. <tr>
  4944. <td>soFromCurrent</td><td><printshort id="soFromCurrent"/></td>
  4945. </tr>
  4946. <tr>
  4947. <td>soFromEnd</td><td><printshort id="soFromEnd"/></td>
  4948. </tr>
  4949. </table>
  4950. <p>
  4951. <var>Seek</var> returns the new position in the file, or -1 on error.
  4952. </p>
  4953. </descr>
  4954. <errors>
  4955. On error, -1 is returned, and the position is not changed.
  4956. </errors>
  4957. <seealso>
  4958. <link id="TStream.Position"/>
  4959. <link id="TStream.Size"/>
  4960. </seealso>
  4961. </element>
  4962. <element name="TFileStream.FileName"> <!-- Property -->
  4963. <short>The filename of the stream.</short>
  4964. <descr>
  4965. <var>FileName</var> is the name of the file that the stream reads from or writes
  4966. to. It is the name as passed in the constructor of the stream; it cannot be
  4967. changed. To write to another file, the stream must be freed and created
  4968. again with the new filename.
  4969. </descr>
  4970. <seealso>
  4971. <link id="TFileStream.Create"/>
  4972. </seealso>
  4973. </element>
  4974. <!--
  4975. *********************************************************************
  4976. TCustomMemoryStream
  4977. *********************************************************************
  4978. -->
  4979. <element name="TCustomMemoryStream"> <!-- Class -->
  4980. <short>Abstract stream that stores its data in memory.</short>
  4981. <descr>
  4982. <p>
  4983. <var>TCustomMemoryStream</var> is the parent class for streams that stored
  4984. their data in memory. It introduces all needed functions to handle reading
  4985. from and navigating through the memory, and introduces a
  4986. <link id="TCustomMemoryStream.Memory">Memory</link> property which points to
  4987. the memory area where the stream data is kept.
  4988. </p>
  4989. <p>
  4990. The only thing which <var>TCustomMemoryStream</var> does not do is obtain
  4991. memory to store data when writing data or the writing of data. This
  4992. functionality is implemented in descendent streams such as <link
  4993. id='TMemoryStream'/>. The reason for this approach is that this way it is
  4994. possible to create e.g. read-only descendents of
  4995. <var>TCustomMemoryStream</var> that point to a fixed part in memory which
  4996. can be read from, but not written to.
  4997. </p>
  4998. <remark>
  4999. Since <var>TCustomMemoryStream</var> is an abstract class, do not create
  5000. instances of <var>TMemoryStream</var> directly. Instead,
  5001. create instances of descendents such as <link id="TMemoryStream"/>.
  5002. </remark>
  5003. </descr>
  5004. <seealso>
  5005. <link id="TMemoryStream"/>
  5006. <link id="TStream"/>
  5007. </seealso>
  5008. </element>
  5009. <element name="TCustomMemoryStream.SetPointer"> <!-- Procedure -->
  5010. <short>Sets the internal memory pointer and size of the memory block.</short>
  5011. <descr>
  5012. <p>
  5013. <var>SetPointer</var> updates the internal memory pointer and the size of
  5014. the memory area pointed to.
  5015. </p>
  5016. <p>
  5017. Descendent memory streams should call this method whenever they set or reset
  5018. the memory the stream should read from or write to.
  5019. </p>
  5020. </descr>
  5021. <seealso>
  5022. <link id="TCustomMemoryStream.Memory"/>
  5023. <link id="TStream.Size"/>
  5024. </seealso>
  5025. </element>
  5026. <element name="TCustomMemoryStream.Read"> <!-- Function -->
  5027. <short>Reads <var>Count</var> bytes from the stream into <var>buffer</var>.</short>
  5028. <descr>
  5029. <p>
  5030. <var>Read</var> reads <var>Count</var> bytes from the stream into the memory
  5031. pointed to by <var>buffer</var>. It returns the number of bytes actually
  5032. read.
  5033. </p>
  5034. <p>
  5035. This method overrides the abstract <link id="TStream.Read"/> method of <link
  5036. id="TStream"/>. It will read as much bytes as are still available in the
  5037. memory area pointer to by <link id="TCustomMemoryStream.Memory">Memory</link>.
  5038. After the bytes are read, the internal stream position is updated.
  5039. </p>
  5040. </descr>
  5041. <seealso>
  5042. <link id="TCustomMemoryStream.Memory"/>
  5043. <link id="TStream.Read"/>
  5044. </seealso>
  5045. </element>
  5046. <element name="TCustomMemoryStream.Seek"> <!-- Function -->
  5047. <short>Sets a new position in the stream.</short>
  5048. <descr>
  5049. <var>Seek</var> overrides the abstract <link id="TStream.Seek"/> method.
  5050. It simply updates the internal stream position, and returns the new
  5051. position.
  5052. </descr>
  5053. <errors>
  5054. No checking is done whether the new position is still a valid position, i.e.
  5055. whether the position is still within the range <var>0..Size</var>.
  5056. Attempting a seek outside the valid memory range of the stream may result in
  5057. an exception at the next read or write operation.
  5058. </errors>
  5059. <seealso>
  5060. <link id="TStream.Position"/>
  5061. <link id="TStream.Size"/>
  5062. <link id="TCustomMemoryStream.Memory"/>
  5063. </seealso>
  5064. </element>
  5065. <element name="TCustomMemoryStream.SaveToStream"> <!-- Procedure -->
  5066. <short>Writes the contents of the memory stream to another stream.</short>
  5067. <descr>
  5068. <p>
  5069. <var>SaveToStream</var> writes the contents of the memory stream to
  5070. <var>Stream</var>. The content of <var>Stream</var> is not cleared first.
  5071. The current position of the memory stream is not changed by this action.
  5072. </p>
  5073. <remark>
  5074. <p>
  5075. This method will work much faster than the use of the
  5076. <link id="TStream.CopyFrom"/> method:
  5077. </p>
  5078. <code>
  5079. Seek(0,soFromBeginning);
  5080. Stream.CopyFrom(Self,Size);
  5081. </code>
  5082. <p>
  5083. because the <var>CopyFrom</var> method copies the contents in blocks, while
  5084. <var>SaveToStream</var> writes the contents of the memory as one big block.
  5085. </p>
  5086. </remark>
  5087. </descr>
  5088. <errors>
  5089. If an error occurs when writing to <var>Stream</var> an <link
  5090. id="EStreamError"/> exception will be raised.
  5091. </errors>
  5092. <seealso>
  5093. <link id="TCustomMemoryStream.SaveToFile"/>
  5094. <link id="TStream.CopyFrom"/>
  5095. </seealso>
  5096. </element>
  5097. <element name="TCustomMemoryStream.SaveToFile"> <!-- Procedure -->
  5098. <short>Writes the contents of the stream to a file.</short>
  5099. <descr>
  5100. <p>
  5101. <var>SaveToFile</var> writes the contents of the stream to a file with name
  5102. <var>FileName</var>.
  5103. It simply creates a filestream and writes the contents of the memorystream
  5104. to this file stream using <link id="TCustomMemoryStream.SaveToStream"/>.
  5105. </p>
  5106. <remark>
  5107. <p>
  5108. This method will work much faster than the use of the <link
  5109. id="TStream.CopyFrom"/> method:
  5110. </p>
  5111. <code>
  5112. Stream:=TFileStream.Create(fmCreate,FileName);
  5113. Seek(0,soFromBeginning);
  5114. Stream.CopyFrom(Self,Size);
  5115. </code>
  5116. <p>
  5117. because the <var>CopyFrom</var> method copies the contents in blocks, while
  5118. <var>SaveToFile</var> writes the contents of the memory as one big block.
  5119. </p>
  5120. </remark>
  5121. </descr>
  5122. <errors>
  5123. If an error occurs when creating or writing to the file, an <link
  5124. id="EStreamError"/> exception may occur.
  5125. </errors>
  5126. <seealso>
  5127. <link id="TCustomMemoryStream.SaveToStream"/>
  5128. <link id="TFileStream"/>
  5129. <link id="TStream.CopyFrom"/>
  5130. </seealso>
  5131. </element>
  5132. <element name="TCustomMemoryStream.Memory"> <!-- Property -->
  5133. <short>Pointer to the data kept in the memory stream.</short>
  5134. <descr>
  5135. <p>
  5136. <var>Memory</var> points to the memory area where stream keeps it's data.
  5137. The property is read-only, so the pointer cannot be set this way.
  5138. </p>
  5139. <remark>
  5140. Do not write to the memory pointed to by <var>Memory</var>, since the memory
  5141. content may be read-only, and thus writing to it may cause errors.
  5142. </remark>
  5143. </descr>
  5144. <seealso>
  5145. <link id="TStream.Size"/>
  5146. </seealso>
  5147. </element>
  5148. <!--
  5149. *********************************************************************
  5150. TMemoryStream
  5151. *********************************************************************
  5152. -->
  5153. <element name="TMemoryStream"> <!-- Class -->
  5154. <short>Standard implementation of a stream that stores its data in memory</short>
  5155. <descr>
  5156. <p>
  5157. <var>TMemoryStream</var> is a <link id="TStream"/> descendent that stores
  5158. it's data in memory. It descends directly from <link id="TCustomMemoryStream"/>
  5159. and implements the necessary to allocate and de-allocate memory diretly from
  5160. the heap. It implements the <link id="TMemoryStream.Write">Write</link> method
  5161. which is missing in <var>TCustomMemoryStream</var>.
  5162. </p>
  5163. <p>
  5164. <var>TMemoryStream</var> also introduces methods to load the contents of
  5165. another stream or a file into the memory stream.
  5166. </p>
  5167. <p>
  5168. It is not necessary to do any memory management manually, as the stream
  5169. will allocate or de-allocate memory as needed. When the stream is freed, all
  5170. allocated memory will be freed as well.
  5171. </p>
  5172. </descr>
  5173. <seealso>
  5174. <link id="TCustomMemoryStream"/>
  5175. <link id="TStream"/>
  5176. </seealso>
  5177. </element>
  5178. <element name="TMemoryStream.Realloc"> <!-- Function -->
  5179. <short>Sets the new capacity for the memory stream</short>
  5180. <descr>
  5181. <p>
  5182. <var>SetCapacity</var> sets the capacity of the memory stream, i.e.
  5183. does the actual allocation or de-allocation of memory for the stream. It
  5184. allocates at least <var>NewCapacity</var> bytes on the heap, moves the
  5185. current contents of the stream to this location (as much as fits in) and
  5186. returns the new memory location.
  5187. Extra allocated memory is not initialized, i.e. may contain garbage.
  5188. </p>
  5189. <p>
  5190. Memory is allocated in blocks of 4 Kb; this can be changed by overriding
  5191. the method.
  5192. </p>
  5193. </descr>
  5194. <seealso>
  5195. <link id="TMemoryStream.Capacity"/>
  5196. </seealso>
  5197. </element>
  5198. <element name="TMemoryStream.Capacity"> <!-- Property -->
  5199. <short>Current capacity of the stream.</short>
  5200. <descr>
  5201. <p>
  5202. <var>Capacity</var> is the current capacity of the stream, this is the
  5203. current size of the memory allocated to the stream. This is not necessarily
  5204. equal to the size of the stream, but will always be larger than or equal to
  5205. the size of the stream. When writing to the stream, the <link
  5206. id="TMemoryStream.Write"/> sets the capacity to the needed value.
  5207. </p>
  5208. <p>
  5209. If a lot of write operations will occur, performance may be improved by
  5210. setting the capacity to a large value, so less reallocations of memory will
  5211. occur while writing to the stream.
  5212. </p>
  5213. </descr>
  5214. <seealso>
  5215. <link id="TMemoryStream.ReAlloc"/>
  5216. </seealso>
  5217. </element>
  5218. <element name="TMemoryStream.Destroy"> <!-- Destructor -->
  5219. <short>Frees any allocated memory and destroys the memory stream.</short>
  5220. <descr>
  5221. <var>Free</var> clears the memory stream, thus in effect freeing any memory
  5222. allocated for it, and then frees the memory stream.
  5223. </descr>
  5224. </element>
  5225. <element name="TMemoryStream.Clear"> <!-- Procedure -->
  5226. <short>Zeroes the position, capacity and size of the stream.</short>
  5227. <descr>
  5228. <var>Clear</var> sets the position and size to 0, and sets the capacity of
  5229. the stream to 0, thus freeing all memory allocated for the stream.
  5230. </descr>
  5231. <seealso>
  5232. <link id="TStream.Size"/>
  5233. <link id="TStream.Position"/>
  5234. <link id="TCustomMemoryStream.Memory"/>
  5235. </seealso>
  5236. </element>
  5237. <element name="TMemoryStream.LoadFromStream"> <!-- Procedure -->
  5238. <short>Loads the contents of a stream into memory.</short>
  5239. <descr>
  5240. <p>
  5241. <var>LoadFromStream</var> loads the contents of <var>Stream</var> into
  5242. the memorybuffer of the stream. Any previous contents of the memory
  5243. stream are overwritten. Memory is allocated as needed.
  5244. </p>
  5245. <remark>
  5246. <p>
  5247. The <var>LoadFromStream</var> uses the <link id="TStream.Size">Size</link>
  5248. property of <var>Stream</var> to determine how much memory must be
  5249. allocated. Some streams do not allow the stream size to be determined, so
  5250. care must be taken when using this method.
  5251. </p>
  5252. <p>
  5253. This method will work much faster than the use of the <link
  5254. id="TStream.CopyFrom"/> method:
  5255. </p>
  5256. <code>
  5257. Seek(0,soFromBeginning);
  5258. CopyFrom(Stream,Stream.Size);
  5259. </code>
  5260. <p>
  5261. because the <var>CopyFrom</var> method copies the contents in blocks, while
  5262. <var>LoadFromStream</var> reads the contents of the stream as one big block.
  5263. </p>
  5264. </remark>
  5265. </descr>
  5266. <errors>
  5267. If an error occurs when reading from the stream, an <link
  5268. id="EStreamError"/> may occur.
  5269. </errors>
  5270. <seealso>
  5271. <link id="TStream.CopyFrom"/>
  5272. <link id="TMemoryStream.LoadFromFile"/>
  5273. </seealso>
  5274. </element>
  5275. <element name="TMemoryStream.LoadFromFile"> <!-- Procedure -->
  5276. <short>Loads the contents of a file into memory.</short>
  5277. <descr>
  5278. <p>
  5279. <var>LoadFromFile</var> loads the contents of the file with name
  5280. <var>FileName</var> into the memory stream. The current contents of the
  5281. memory stream is replaced by the contents of the file. Memory is allocated
  5282. as needed.
  5283. </p>
  5284. <p>
  5285. The <var>LoadFromFile</var> method simply creates a filestream and then
  5286. calls the <link id="TMemoryStream.LoadFromStream"/> method.
  5287. </p>
  5288. </descr>
  5289. If an error occurs when creating or reading from the stream, an <link
  5290. id="EStreamError"/> may occur.
  5291. <seealso>
  5292. <link id="TMemoryStream.LoadFromStream"/>
  5293. </seealso>
  5294. </element>
  5295. <element name="TMemoryStream.SetSize"> <!-- Procedure -->
  5296. <short>Sets the size for the memory stream.</short>
  5297. <descr>
  5298. <var>SetSize</var> sets the size of the memory stream to <var>NewSize</var>.
  5299. This will set the capacity of the stream to <var>NewSize</var> and correct
  5300. the current position in the stream when needed.
  5301. </descr>
  5302. <seealso>
  5303. <link id="TStream.Position"/>
  5304. <link id="TStream.Size"/>
  5305. </seealso>
  5306. </element>
  5307. <element name="TMemoryStream.Write"> <!-- Function -->
  5308. <short>Writes data to the stream's memory.</short>
  5309. <descr>
  5310. <p>
  5311. <var>Write</var> writes <var>Count</var> bytes from <var>Buffer</var>
  5312. to the stream's memory, starting at the current position in the stream.
  5313. If more memory is needed than currently allocated, more memory will be
  5314. allocated. Any contents in the memory stream at the current position will be
  5315. overwritten. The function returns the number of bytes actually written
  5316. (which should under normal circumstances always equal <var>Count</var>).
  5317. </p>
  5318. <p>
  5319. This method overrides the abstract <link id="TStream.Write"/> method.
  5320. </p>
  5321. </descr>
  5322. <errors>
  5323. If no more memory could be allocated, then an exception will be raised.
  5324. </errors>
  5325. <seealso>
  5326. <link id="TCustomMemoryStream.Read"/>
  5327. </seealso>
  5328. </element>
  5329. <!--
  5330. *********************************************************************
  5331. TStringStream
  5332. *********************************************************************
  5333. -->
  5334. <element name="TStringStream"> <!-- Class -->
  5335. <short>Stream that stores its data in a string.</short>
  5336. <descr>
  5337. <p>
  5338. <var>TStringStream</var> stores its data in an ansistring. The contents of
  5339. this string is available as the
  5340. <link id="TStringStream.DataString">DataString</link> property. It also
  5341. introduces some methods to read or write parts of the stringstream's data
  5342. as a string.
  5343. </p>
  5344. <p>The main purpose of a <var>TStringSTream</var> is to be able to treat a
  5345. string as a stream from which can be read.
  5346. </p>
  5347. </descr>
  5348. <seealso>
  5349. <link id="TStream"/>
  5350. <link id="TStringStream.DataString"/>
  5351. <link id="TStringStream.ReadString"/>
  5352. <link id="TStringStream.WriteString"/>
  5353. </seealso>
  5354. </element>
  5355. <element name="TStringStream.SetSize"> <!-- Procedure -->
  5356. <short>Sets the size of the stream.</short>
  5357. <descr>
  5358. <var>SetSize</var> sets the size of the stream to <var>newsize</var>.
  5359. It does this by setting the size of the ansisting in which the stream
  5360. is stored. <var>NewSize</var> can have any value greater than or equal to
  5361. zero.
  5362. </descr>
  5363. <errors>
  5364. In case there is not enough memory, an exception may be raised.
  5365. </errors>
  5366. <seealso>
  5367. <link id="TStream.Size"/>
  5368. </seealso>
  5369. </element>
  5370. <element name="TStringStream.Create"> <!-- Constructor -->
  5371. <short>Creates a new stringstream and sets its initial content.</short>
  5372. <descr>
  5373. <var>Create</var> creates a new <var>TStringStream</var> instance and
  5374. sets its initial content to <var>Astring</var>. The position is still 0 but
  5375. the size of the stream will equal the length of the string.
  5376. </descr>
  5377. <seealso>
  5378. <link id="TStringStream.DataString"/>
  5379. </seealso>
  5380. </element>
  5381. <element name="TStringStream.Read"> <!-- Function -->
  5382. <short>Reads from the stream.</short>
  5383. <descr>
  5384. <var>Read</var> implements the abstract <link id="TStream.Read">Read</link>
  5385. from <link id="TStream"/>. It tries to read <var>Count</var> bytes into
  5386. <var>Buffer</var>. It returns the number of bytes actually read. The
  5387. position of the stream is advanced with the number of bytes actually read;
  5388. When the reading has reached the end of the <link
  5389. id="TStringSTream.DataString">DataString</link>, then the reading stops,
  5390. i.e. it is not possible to read beyond the end of the datastring.
  5391. </descr>
  5392. <seealso>
  5393. <link id="TStream.Read"/>
  5394. <link id="TStringStream.Write"/>
  5395. <link id="TStringStream.DataString"/>
  5396. </seealso>
  5397. </element>
  5398. <element name="TStringStream.ReadString"> <!-- Function -->
  5399. <short>Reads a string of length <var>Count</var></short>
  5400. <descr>
  5401. <p>
  5402. <var>ReadString</var> reads <var>Count</var> bytes from the stream and
  5403. returns the read bytes as a string. If less than <var>Count</var> bytes
  5404. were available, the string has as many characters as bytes could be read.
  5405. </p>
  5406. <p>The <var>ReadString</var> method is a wrapper around the <link
  5407. id="TStringStream.Read">Read</link> method. It does not do the same stringas
  5408. the <link id="TStream.ReadAnsiString"/> method, which first reads a length
  5409. integer to determine the length of the string to be read.
  5410. </p>
  5411. </descr>
  5412. <seealso>
  5413. <link id="TStringStream.Read"/>
  5414. <link id="TStream.ReadAnsiString"/>
  5415. </seealso>
  5416. </element>
  5417. <element name="TStringStream.Seek"> <!-- Function -->
  5418. <short>Sets the position in the stream.</short>
  5419. <descr>
  5420. <var>Seek</var> implements the abstract <link id="TStream.Seek">Seek</link>
  5421. method.
  5422. </descr>
  5423. <seealso>
  5424. </seealso>
  5425. </element>
  5426. <element name="TStringStream.Write"> <!-- Function -->
  5427. <short><var>Write</var> implements the abstract <link id="TStream.Write"/>
  5428. method.</short>
  5429. <descr>
  5430. </descr>
  5431. <seealso>
  5432. </seealso>
  5433. </element>
  5434. <element name="TStringStream.WriteString"> <!-- Procedure -->
  5435. <short><var>WriteString</var> writes a string to the stream.</short>
  5436. <descr>
  5437. </descr>
  5438. <seealso>
  5439. </seealso>
  5440. </element>
  5441. <element name="TStringStream.DataString"> <!-- Property -->
  5442. <short>Contains the contents of the stream in string form</short>
  5443. <descr>
  5444. </descr>
  5445. <seealso>
  5446. </seealso>
  5447. </element>
  5448. <!--
  5449. *********************************************************************
  5450. TResourceStream
  5451. *********************************************************************
  5452. -->
  5453. <element name="TResourceStream"> <!-- Class -->
  5454. <short>Stream that reads its data from a resource object.</short>
  5455. <descr>
  5456. </descr>
  5457. <seealso>
  5458. </seealso>
  5459. </element>
  5460. <element name="TResourceStream.Initialize"> <!-- Procedure -->
  5461. <short>Initializes the resource stream.</short>
  5462. <descr>
  5463. </descr>
  5464. <seealso>
  5465. </seealso>
  5466. </element>
  5467. <element name="TResourceStream.Create"> <!-- Constructor -->
  5468. <short>Creates a new instance of a resource stream.</short>
  5469. <descr>
  5470. </descr>
  5471. <seealso>
  5472. </seealso>
  5473. </element>
  5474. <element name="TResourceStream.CreateFromID"> <!-- Constructor -->
  5475. <short>Creates a new instance of a resource stream with resource</short>
  5476. <descr>
  5477. </descr>
  5478. <seealso>
  5479. </seealso>
  5480. </element>
  5481. <element name="TResourceStream.Destroy"> <!-- Destructor -->
  5482. <short>Destroys the instance of the resource stream.</short>
  5483. <descr>
  5484. </descr>
  5485. <seealso>
  5486. </seealso>
  5487. </element>
  5488. <element name="TResourceStream.Write"> <!-- Function -->
  5489. <short><var>Write</var> implements the abstract <link id="TStream.Write"/>
  5490. method.</short>
  5491. <descr>
  5492. </descr>
  5493. <seealso>
  5494. </seealso>
  5495. </element>
  5496. <element name="TValueType"> <!-- Enumeration type -->
  5497. <short>Enumerated type used to identify the kind of streamed property</short>
  5498. <descr>
  5499. </descr>
  5500. <seealso>
  5501. </seealso>
  5502. </element>
  5503. <element name="TValueType.vaNull"> <!-- Enumeration value -->
  5504. <short>Empty value. Ends a list.</short>
  5505. </element>
  5506. <element name="TValueType.vaList"> <!-- Enumeration value -->
  5507. <short>Identifies the start of a list of values</short>
  5508. </element>
  5509. <element name="TValueType.vaInt8"> <!-- Enumeration value -->
  5510. <short>Integer value, 8 bits long.</short>
  5511. </element>
  5512. <element name="TValueType.vaInt16"> <!-- Enumeration value -->
  5513. <short>Integer value, 16 bits long.</short>
  5514. </element>
  5515. <element name="TValueType.vaInt32"> <!-- Enumeration value -->
  5516. <short>Integer value, 32 bits long.</short>
  5517. </element>
  5518. <element name="TValueType.vaExtended"> <!-- Enumeration value -->
  5519. <short>Extended value.</short>
  5520. </element>
  5521. <element name="TValueType.vaString"> <!-- Enumeration value -->
  5522. <short>String value.</short>
  5523. </element>
  5524. <element name="TValueType.vaIdent"> <!-- Enumeration value -->
  5525. <short>Identifier.</short>
  5526. </element>
  5527. <element name="TValueType.vaFalse"> <!-- Enumeration value -->
  5528. <short>Boolean <var>False</var> value.</short>
  5529. </element>
  5530. <element name="TValueType.vaTrue"> <!-- Enumeration value -->
  5531. <short>Boolean <var>True</var> value.</short>
  5532. </element>
  5533. <element name="TValueType.vaBinary"> <!-- Enumeration value -->
  5534. <short>Binary data follows.</short>
  5535. </element>
  5536. <element name="TValueType.vaSet"> <!-- Enumeration value -->
  5537. <short>Set data follows.</short>
  5538. </element>
  5539. <element name="TValueType.vaLString"> <!-- Enumeration value -->
  5540. <short>Ansistring data follows.</short>
  5541. </element>
  5542. <element name="TValueType.vaNil"> <!-- Enumeration value -->
  5543. <short>Nil pointer.</short>
  5544. </element>
  5545. <element name="TValueType.vaCollection"> <!-- Enumeration value -->
  5546. <short>Collection follows</short>
  5547. </element>
  5548. <element name="TValueType.vaSingle"> <!-- Enumeration value -->
  5549. <short>Single type follows.</short>
  5550. </element>
  5551. <element name="TValueType.vaCurrency"> <!-- Enumeration value -->
  5552. <short>Currency value follows</short>
  5553. </element>
  5554. <element name="TValueType.vaDate"> <!-- Enumeration value -->
  5555. <short>Date value follows</short>
  5556. </element>
  5557. <element name="TValueType.vaWString"> <!-- Enumeration value -->
  5558. <short>Widestring value follows.</short>
  5559. </element>
  5560. <element name="TValueType.vaInt64"> <!-- Enumeration value -->
  5561. <short>Integer value, 64 bits long.</short>
  5562. </element>
  5563. <element name="TFilerFlag"> <!-- Enumeration type -->
  5564. <short>Flags used by the <link id="TFiler"/> class</short>
  5565. <descr>
  5566. The <var>TFiler</var> class uses this enumeration type to decide whether the
  5567. streamed object was streamed as part of an inherited form or not.
  5568. </descr>
  5569. <seealso>
  5570. <link id="TFiler"/>
  5571. </seealso>
  5572. </element>
  5573. <element name="TFilerFlag.ffInherited"> <!-- Enumeration value -->
  5574. <short>Stored object is an inherited object.</short>
  5575. </element>
  5576. <element name="TFilerFlag.ffChildPos"> <!-- Enumeration value -->
  5577. <short>The position of the child on it's parent is included.</short>
  5578. </element>
  5579. <element name="TFilerFlag.ffInline"> <!-- Enumeration value -->
  5580. <short>Used for frames.</short>
  5581. </element>
  5582. <element name="TFilerFlags"> <!-- Set type -->
  5583. <short>Set of <link id="TFilerFlag"/></short>
  5584. </element>
  5585. <element name="TReaderProc"> <!-- Procedure type -->
  5586. <short>Reader procedure used by <link id="TPersistent.DefineProperties">DefineProperties</link></short>
  5587. <descr>
  5588. The <var>TReaderProc</var> reader procedure is a callback procedure which
  5589. will be used by a <link id="TPersistent"/> descendent to read user
  5590. properties from a stream during the streaming process. The <var>Reader</var>
  5591. argument is the writer object which can be used read properties from the
  5592. stream.
  5593. </descr>
  5594. <seealso>
  5595. <Link id="TPersistent.DefineProperties"/>
  5596. </seealso>
  5597. </element>
  5598. <element name="TWriterProc"> <!-- Procedure type -->
  5599. <short>Writer procedure used by <link id="TPersistent.DefineProperties">DefineProperties</link></short>
  5600. <descr>
  5601. The <var>TWriterProc</var> writer procedure is a callback procedure which
  5602. will be used by a <link id="TPersistent"/> descendent to write user
  5603. properties from a stream during the streaming process. The <var>Writer</var>
  5604. argument is the writer object which can be used write properties to the
  5605. stream.
  5606. </descr>
  5607. <seealso>
  5608. <Link id="TPersistent.DefineProperties"/>
  5609. </seealso>
  5610. </element>
  5611. <element name="TStreamProc"> <!-- Procedure type -->
  5612. <short>Procedure type used in streaming.</short>
  5613. <descr>
  5614. </descr>
  5615. <seealso>
  5616. </seealso>
  5617. </element>
  5618. <!--
  5619. *********************************************************************
  5620. TFiler
  5621. *********************************************************************
  5622. -->
  5623. <element name="TFiler"> <!-- Class -->
  5624. <short>Class responsible for streaming of components.</short>
  5625. <descr>
  5626. </descr>
  5627. <seealso>
  5628. </seealso>
  5629. </element>
  5630. <element name="TFiler.SetRoot"> <!-- Procedure -->
  5631. <short>Sets the root component which is being streamed.</short>
  5632. <descr>
  5633. Sets the root component.
  5634. The root component is the initial component which is being streamed.
  5635. </descr>
  5636. <seealso>
  5637. </seealso>
  5638. </element>
  5639. <element name="TFiler.DefineProperty"> <!-- Procedure -->
  5640. <short></short>
  5641. <descr>
  5642. </descr>
  5643. <seealso>
  5644. </seealso>
  5645. </element>
  5646. <element name="TFiler.DefineBinaryProperty"> <!-- Procedure -->
  5647. <short></short>
  5648. <descr>
  5649. </descr>
  5650. <seealso>
  5651. </seealso>
  5652. </element>
  5653. <element name="TFiler.Root"> <!-- Property -->
  5654. <short>The root component is the initial component which is being streamed.
  5655. </short>
  5656. <descr>
  5657. The streaming process will stream a component and all the components which
  5658. it owns. The <var>Root</var> component is the component which is initially
  5659. streamed.
  5660. </descr>
  5661. <seealso>
  5662. <link id="TFiler.LookupRoot">LookupRoot</link>
  5663. </seealso>
  5664. </element>
  5665. <element name="TFiler.LookupRoot"> <!-- Property -->
  5666. <short>Component used to look up ancestor components.</short>
  5667. <descr>
  5668. When comparing inherited component's values against parent values, the
  5669. values are compared with the component in <var>LookupRoot</var>. Initially,
  5670. it is set to <link id="TFiler.Root">Root</link>.
  5671. </descr>
  5672. <seealso>
  5673. <link id="TFiler.Root">Root</link>
  5674. </seealso>
  5675. </element>
  5676. <element name="TFiler.Ancestor"> <!-- Property -->
  5677. <short>Ancestor component from which an inherited component is streamed.</short>
  5678. <descr>
  5679. When streaming a component, this is the parent component. Only properties
  5680. that differ from the parent's property value will be streamed.
  5681. </descr>
  5682. <seealso>
  5683. <link id="TFiler.Root">Root</link>
  5684. <link id="TFiler.LookupRoot">LookupRoot</link>
  5685. </seealso>
  5686. </element>
  5687. <element name="TFiler.IgnoreChildren"> <!-- Property -->
  5688. <short>Determines whether children will be streamed as well.</short>
  5689. <descr>
  5690. By default, all children (i.e. owned objects) will also be streamed when
  5691. streaming a component. This property can be used to prevent owned objects
  5692. from being streamed.
  5693. </descr>
  5694. </element>
  5695. <element name="TComponentClass"> <!-- "class of" type -->
  5696. <short>Class of TComponent</short>
  5697. <descr>
  5698. The <var>TComponentClass</var> type is used when constructing
  5699. <link id="TComponent"/> descendent instances and when registering
  5700. components.
  5701. </descr>
  5702. <seealso>
  5703. <link id="TComponent"/>
  5704. </seealso>
  5705. </element>
  5706. <!--
  5707. *********************************************************************
  5708. TAbstractObjectReader
  5709. *********************************************************************
  5710. -->
  5711. <element name="TAbstractObjectReader"> <!-- Class -->
  5712. <short>Abstract driver class to read stored component data.</short>
  5713. <descr>
  5714. <p>
  5715. The Free Pascal streaming mechanism, while compatible with Delphi's
  5716. mechanism, differs from it in the sense that the streaming mechanism uses
  5717. a driver class when streaming components. The <var>TAbstractObjectReader</var>
  5718. class is the base driver class for reading property values from streams.
  5719. It consists entirely of abstract methods, which must be implemented by
  5720. descendent classes.
  5721. </p>
  5722. <p>
  5723. Different streaming mechanisms can be implemented by making a descendent
  5724. from <var>TAbstractObjectReader</var>. The <link id="TBinaryObjectReader"/>
  5725. class is such a descendent class, which streams data in binary (Delphi
  5726. compatible) format.
  5727. </p>
  5728. <p>
  5729. All methods described in this class, mustbe implemented by descendent
  5730. classes.
  5731. </p>
  5732. </descr>
  5733. <seealso>
  5734. <link id="TBinaryObjectReader"/>
  5735. </seealso>
  5736. </element>
  5737. <element name="TAbstractObjectReader.NextValue"> <!-- Function -->
  5738. <short>Returns the type of the next value in the stream.</short>
  5739. <descr>
  5740. <p>
  5741. This function should return the type of the next value in the stream,
  5742. but should not read it, i.e. the stream position should not be altered by
  5743. this method. This is used to 'peek' in the stream what value is next.
  5744. </p>
  5745. </descr>
  5746. <seealso>
  5747. <link id="TAbstractObjectReader.ReadValue"/>
  5748. </seealso>
  5749. </element>
  5750. <element name="TAbstractObjectReader.ReadValue"> <!-- Function -->
  5751. <short>Reads the type of the next value.</short>
  5752. <descr>
  5753. This function returns the type of the next value in the stream and reads it.
  5754. i.e. after the call to this method, the stream is positioned to read the
  5755. value of the type returned by this function.
  5756. </descr>
  5757. <seealso>
  5758. <link id="TAbstractObjectReader.ReadValue"/>
  5759. </seealso>
  5760. </element>
  5761. <element name="TAbstractObjectReader.BeginRootComponent"> <!-- Procedure -->
  5762. <short>Starts the reading of the root component.</short>
  5763. <descr>
  5764. This function can be used to initialize the driver class for reading a
  5765. component. It is called once at the beginning of the read process, and
  5766. is immediatly followed by a call to <link
  5767. id="TAbstractObjectReader.BeginComponent">BeginComponent</link>.
  5768. </descr>
  5769. <seealso>
  5770. <link id="TAbstractObjectReader.BeginComponent"/>
  5771. </seealso>
  5772. </element>
  5773. <element name="TAbstractObjectReader.BeginComponent"> <!-- Procedure -->
  5774. <short>Marks the reading of a new component. </short>
  5775. <descr>
  5776. <p>
  5777. This method is called when the streaming process wants to start reading a
  5778. new component.
  5779. </p>
  5780. <p>
  5781. Descendent classes should override this method to read the start of a
  5782. component new component definition and return the needed arguments.
  5783. <var>Flags</var> should be filled with any flags that were found at the
  5784. component definition, as well as <var>AChildPos</var>. The
  5785. <var>CompClassName</var> should be filled with the class name of the
  5786. streamed component, and the <var>CompName</var> argument should be filled
  5787. with the name of the component.
  5788. </p>
  5789. </descr>
  5790. <seealso>
  5791. <link id="TAbstractObjectReader.BeginRootComponent"/>
  5792. <link id="TAbstractObjectReader.BeginProperty"/>
  5793. </seealso>
  5794. </element>
  5795. <element name="TAbstractObjectReader.BeginProperty"> <!-- Function -->
  5796. <short>Marks the reading of a property value.</short>
  5797. <descr>
  5798. <var>BeginProperty</var> is called by the streaming system when it wants to
  5799. read a new property. The return value of the function is the name of the
  5800. property which can be read from the stream.
  5801. </descr>
  5802. <seealso>
  5803. <link id="TAbstractObjectReader.BeginComponent"/>
  5804. </seealso>
  5805. </element>
  5806. <element name="TAbstractObjectReader.ReadBinary"> <!-- Procedure -->
  5807. <short>Read binary data from the stream.</short>
  5808. <descr>
  5809. <var>ReadBinary</var> is called when binary data should be read from the
  5810. stream
  5811. (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5812. returned a valuetype of <var>vaBinary</var>). The data should be stored in the <var>DestData</var> memory stream
  5813. by descendent classes.
  5814. </descr>
  5815. <seealso>
  5816. <link id="TAbstractObjectReader.ReadFloat"/>
  5817. <link id="TAbstractObjectReader.ReadDate"/>
  5818. <link id="TAbstractObjectReader.ReadSingle"/>
  5819. <link id="TAbstractObjectReader.ReadIdent"/>
  5820. <link id="TAbstractObjectReader.ReadInt8"/>
  5821. <link id="TAbstractObjectReader.ReadInt16"/>
  5822. <link id="TAbstractObjectReader.ReadInt32"/>
  5823. <link id="TAbstractObjectReader.ReadInt64"/>
  5824. <link id="TabstractObjectReader.ReadSet"/>
  5825. <link id="TabstractObjectReader.ReadStr"/>
  5826. <link id="TabstractObjectReader.ReadString"/>
  5827. </seealso>
  5828. </element>
  5829. <element name="TAbstractObjectReader.ReadFloat"> <!-- Function -->
  5830. <short>Read a float value from the stream.</short>
  5831. <descr>
  5832. <var>ReadFloat</var> is called by the streaming system when it wants to read
  5833. a float from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5834. returned a valuetype of <var>vaExtended</var>). The return value should be the value of the float.
  5835. </descr>
  5836. <seealso>
  5837. <link id="TAbstractObjectReader.ReadFloat"/>
  5838. <link id="TAbstractObjectReader.ReadDate"/>
  5839. <link id="TAbstractObjectReader.ReadSingle"/>
  5840. <link id="TAbstractObjectReader.ReadIdent"/>
  5841. <link id="TAbstractObjectReader.ReadInt8"/>
  5842. <link id="TAbstractObjectReader.ReadInt16"/>
  5843. <link id="TAbstractObjectReader.ReadInt32"/>
  5844. <link id="TAbstractObjectReader.ReadInt64"/>
  5845. <link id="TabstractObjectReader.ReadSet"/>
  5846. <link id="TabstractObjectReader.ReadStr"/>
  5847. <link id="TabstractObjectReader.ReadString"/>
  5848. </seealso>
  5849. </element>
  5850. <element name="TAbstractObjectReader.ReadSingle"> <!-- Function -->
  5851. <short>Read a single (real-type) value from the stream.</short>
  5852. <descr>
  5853. <var>ReadSingle</var> is called by the streaming system when it wants to read
  5854. a single-type float from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5855. returned a valuetype of <var>vaSingle</var>). The return value should be the value of
  5856. the float.
  5857. </descr>
  5858. <seealso>
  5859. <link id="TAbstractObjectReader.ReadFloat"/>
  5860. <link id="TAbstractObjectReader.ReadDate"/>
  5861. <link id="TAbstractObjectReader.ReadSingle"/>
  5862. <link id="TAbstractObjectReader.ReadIdent"/>
  5863. <link id="TAbstractObjectReader.ReadInt8"/>
  5864. <link id="TAbstractObjectReader.ReadInt16"/>
  5865. <link id="TAbstractObjectReader.ReadInt32"/>
  5866. <link id="TAbstractObjectReader.ReadInt64"/>
  5867. <link id="TabstractObjectReader.ReadSet"/>
  5868. <link id="TabstractObjectReader.ReadStr"/>
  5869. <link id="TabstractObjectReader.ReadString"/>
  5870. </seealso>
  5871. </element>
  5872. <element name="TAbstractObjectReader.ReadDate"> <!-- Function -->
  5873. <short>Read a date value from the stream.</short>
  5874. <descr>
  5875. <var>ReadDate</var> is called by the streaming system when it wants to read
  5876. a date/time value from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5877. returned a valuetype of <var>vaDate</var>). The return value should be the date/time
  5878. value. (This value can be stored as a float, since <var>TDateTime</var> is
  5879. nothing but a float.)
  5880. </descr>
  5881. <seealso>
  5882. <link id="TAbstractObjectReader.ReadFloat"/>
  5883. <link id="TAbstractObjectReader.ReadSingle"/>
  5884. <link id="TAbstractObjectReader.ReadIdent"/>
  5885. <link id="TAbstractObjectReader.ReadInt8"/>
  5886. <link id="TAbstractObjectReader.ReadInt16"/>
  5887. <link id="TAbstractObjectReader.ReadInt32"/>
  5888. <link id="TAbstractObjectReader.ReadInt64"/>
  5889. <link id="TabstractObjectReader.ReadSet"/>
  5890. <link id="TabstractObjectReader.ReadStr"/>
  5891. <link id="TabstractObjectReader.ReadString"/>
  5892. </seealso>
  5893. </element>
  5894. <element name="TAbstractObjectReader.ReadIdent"> <!-- Function -->
  5895. <short>Read an identifier from the stream.</short>
  5896. <descr>
  5897. <p>
  5898. <var>ReadIdent</var> is called by the streaming system if it expects to read
  5899. an identifier of type <var>ValueType</var> from the stream after a call to
  5900. <link id="TAbstractObjectReader.Readvalue">ReadValue</link> returned
  5901. <var>vaIdent</var>. The identifier
  5902. should be returned as a string. Note that in some cases the identifier does
  5903. not actually have to be in the stream;
  5904. </p>
  5905. <table>
  5906. <tr><td>ValueType</td><td>Expected value</td></tr>
  5907. <tr><td>vaIdent</td><td>Read from stream.</td></tr>
  5908. <tr><td>vaNil</td><td>'Nil'. This does not have to be read from the stream.</td></tr>
  5909. <tr><td>vaFalse</td><td>'False'. This does not have to be read from the stream.</td></tr>
  5910. <tr><td>vaTrue</td><td>'True'. This does not have to be read from the stream.</td></tr>
  5911. <tr><td>vaNull</td><td>'Null'. This does not have to be read from the stream.</td></tr>
  5912. </table>
  5913. </descr>
  5914. <seealso>
  5915. <link id="TAbstractObjectReader.ReadFloat"/>
  5916. <link id="TAbstractObjectReader.ReadDate"/>
  5917. <link id="TAbstractObjectReader.ReadSingle"/>
  5918. <link id="TAbstractObjectReader.ReadInt8"/>
  5919. <link id="TAbstractObjectReader.ReadInt16"/>
  5920. <link id="TAbstractObjectReader.ReadInt32"/>
  5921. <link id="TAbstractObjectReader.ReadInt64"/>
  5922. <link id="TabstractObjectReader.ReadSet"/>
  5923. <link id="TabstractObjectReader.ReadStr"/>
  5924. <link id="TabstractObjectReader.ReadString"/>
  5925. </seealso>
  5926. </element>
  5927. <element name="TAbstractObjectReader.ReadInt8"> <!-- Function -->
  5928. <short>Read an 8-bit integer from the stream.</short>
  5929. <descr>
  5930. <var>ReadInt8</var> is called by the streaming process if it expects to
  5931. read an integer value with a size of 8 bits (1 byte) from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5932. returned a valuetype of <var>vaInt8</var>).
  5933. The return value is the value if the integer. Note that the size of the
  5934. value in the stream does not actually have to be 1 byte.
  5935. </descr>
  5936. <seealso>
  5937. <link id="TAbstractObjectReader.ReadFloat"/>
  5938. <link id="TAbstractObjectReader.ReadDate"/>
  5939. <link id="TAbstractObjectReader.ReadSingle"/>
  5940. <link id="TAbstractObjectReader.ReadIdent"/>
  5941. <link id="TAbstractObjectReader.ReadInt16"/>
  5942. <link id="TAbstractObjectReader.ReadInt32"/>
  5943. <link id="TAbstractObjectReader.ReadInt64"/>
  5944. <link id="TabstractObjectReader.ReadSet"/>
  5945. <link id="TabstractObjectReader.ReadStr"/>
  5946. <link id="TabstractObjectReader.ReadString"/>
  5947. </seealso>
  5948. </element>
  5949. <element name="TAbstractObjectReader.ReadInt16"> <!-- Function -->
  5950. <short>Read a 16-bit integer from the stream.</short>
  5951. <descr>
  5952. <var>ReadInt16</var> is called by the streaming process if it expects to
  5953. read an integer value with a size of 16 bits (2 bytes) from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5954. returned a valuetype of <var>vaInt16</var>).
  5955. The return value is the value if the integer. Note that the size of the
  5956. value in the stream does not actually have to be 2 bytes.
  5957. </descr>
  5958. <seealso>
  5959. <link id="TAbstractObjectReader.ReadFloat"/>
  5960. <link id="TAbstractObjectReader.ReadDate"/>
  5961. <link id="TAbstractObjectReader.ReadSingle"/>
  5962. <link id="TAbstractObjectReader.ReadIdent"/>
  5963. <link id="TAbstractObjectReader.ReadInt8"/>
  5964. <link id="TAbstractObjectReader.ReadInt32"/>
  5965. <link id="TAbstractObjectReader.ReadInt64"/>
  5966. <link id="TabstractObjectReader.ReadSet"/>
  5967. <link id="TabstractObjectReader.ReadStr"/>
  5968. <link id="TabstractObjectReader.ReadString"/>
  5969. </seealso>
  5970. </element>
  5971. <element name="TAbstractObjectReader.ReadInt32"> <!-- Function -->
  5972. <short>Read a 32-bit integer from the stream.</short>
  5973. <descr>
  5974. <var>ReadInt32</var> is called by the streaming process if it expects to
  5975. read an integer value with a size of 32 bits (4 bytes) from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5976. returned a valuetype of <var>vaInt32</var>).
  5977. The return value is the value of the integer. Note that the size of the
  5978. value in the stream does not actually have to be 4 bytes.
  5979. </descr>
  5980. <seealso>
  5981. <link id="TAbstractObjectReader.ReadFloat"/>
  5982. <link id="TAbstractObjectReader.ReadDate"/>
  5983. <link id="TAbstractObjectReader.ReadSingle"/>
  5984. <link id="TAbstractObjectReader.ReadIdent"/>
  5985. <link id="TAbstractObjectReader.ReadInt8"/>
  5986. <link id="TAbstractObjectReader.ReadInt16"/>
  5987. <link id="TAbstractObjectReader.ReadInt64"/>
  5988. <link id="TabstractObjectReader.ReadSet"/>
  5989. <link id="TabstractObjectReader.ReadStr"/>
  5990. <link id="TabstractObjectReader.ReadString"/>
  5991. </seealso>
  5992. </element>
  5993. <element name="TAbstractObjectReader.ReadInt64"> <!-- Function -->
  5994. <short>Read a 64-bit integer from the stream.</short>
  5995. <descr>
  5996. <var>ReadInt64</var> is called by the streaming process if it expects to
  5997. read an int64 value with a size of 64 bits (8 bytes) from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  5998. returned a valuetype of <var>vaInt64</var>).
  5999. The return value is the value if the integer. Note that the size of the
  6000. value in the stream does not actually have to be 8 bytes.
  6001. </descr>
  6002. <seealso>
  6003. <link id="TAbstractObjectReader.ReadFloat"/>
  6004. <link id="TAbstractObjectReader.ReadDate"/>
  6005. <link id="TAbstractObjectReader.ReadSingle"/>
  6006. <link id="TAbstractObjectReader.ReadIdent"/>
  6007. <link id="TAbstractObjectReader.ReadInt8"/>
  6008. <link id="TAbstractObjectReader.ReadInt16"/>
  6009. <link id="TAbstractObjectReader.ReadInt32"/>
  6010. <link id="TabstractObjectReader.ReadSet"/>
  6011. <link id="TabstractObjectReader.ReadStr"/>
  6012. <link id="TabstractObjectReader.ReadString"/>
  6013. </seealso>
  6014. </element>
  6015. <element name="TAbstractObjectReader.ReadSet"> <!-- Function -->
  6016. <short>Reads a set from the stream.</short>
  6017. <descr>
  6018. <p>
  6019. This method is called by the streaming system if it expects to read a
  6020. set from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  6021. returned a valuetype of <var>vaSet</var>). The return value is the contents of the
  6022. set, encoded in a bitmask the following way:
  6023. </p>
  6024. <p>
  6025. For each (enumerated) value in the set, the bit corresponding to the
  6026. ordinal value of the enumerated value should be set. i.e.
  6027. as <var>1 shl ord(value)</var>.
  6028. </p>
  6029. </descr>
  6030. <seealso>
  6031. <link id="TAbstractObjectReader.ReadFloat"/>
  6032. <link id="TAbstractObjectReader.ReadDate"/>
  6033. <link id="TAbstractObjectReader.ReadSingle"/>
  6034. <link id="TAbstractObjectReader.ReadIdent"/>
  6035. <link id="TAbstractObjectReader.ReadInt8"/>
  6036. <link id="TAbstractObjectReader.ReadInt16"/>
  6037. <link id="TAbstractObjectReader.ReadInt32"/>
  6038. <link id="TAbstractObjectReader.ReadInt64"/>
  6039. <link id="TabstractObjectReader.ReadStr"/>
  6040. <link id="TabstractObjectReader.ReadString"/>
  6041. </seealso>
  6042. </element>
  6043. <element name="TAbstractObjectReader.ReadStr"> <!-- Function -->
  6044. <short>Read a shortstring from the stream</short>
  6045. <descr>
  6046. <var>ReadStr</var> is called by the streaming system if it expects to read a
  6047. shortstring from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  6048. returned a valuetype of <var>vaLString</var>,<var>vaWstring</var> or
  6049. <var>vaString</var>). The return value is the string.
  6050. </descr>
  6051. <seealso>
  6052. <link id="TAbstractObjectReader.ReadFloat"/>
  6053. <link id="TAbstractObjectReader.ReadDate"/>
  6054. <link id="TAbstractObjectReader.ReadSingle"/>
  6055. <link id="TAbstractObjectReader.ReadIdent"/>
  6056. <link id="TAbstractObjectReader.ReadInt8"/>
  6057. <link id="TAbstractObjectReader.ReadInt16"/>
  6058. <link id="TAbstractObjectReader.ReadInt32"/>
  6059. <link id="TAbstractObjectReader.ReadInt64"/>
  6060. <link id="TabstractObjectReader.ReadSet"/>
  6061. <link id="TabstractObjectReader.ReadString"/>
  6062. </seealso>
  6063. </element>
  6064. <element name="TAbstractObjectReader.ReadString"> <!-- Function -->
  6065. <short>Read a string of type <var>StringType</var> from the stream.</short>
  6066. <descr>
  6067. <var>ReadStr</var> is called by the streaming system if it expects to read a
  6068. string from the stream (i.e. after <link id="TAbstractObjectReader.ReadValue">ReadValue</link>
  6069. returned a valuetype of <var>vaLString</var>,<var>vaWstring</var> or
  6070. <var>vaString</var>). The return value is the string.
  6071. </descr>
  6072. <seealso>
  6073. <link id="TAbstractObjectReader.ReadFloat"/>
  6074. <link id="TAbstractObjectReader.ReadDate"/>
  6075. <link id="TAbstractObjectReader.ReadSingle"/>
  6076. <link id="TAbstractObjectReader.ReadIdent"/>
  6077. <link id="TAbstractObjectReader.ReadInt8"/>
  6078. <link id="TAbstractObjectReader.ReadInt16"/>
  6079. <link id="TAbstractObjectReader.ReadInt32"/>
  6080. <link id="TAbstractObjectReader.ReadInt64"/>
  6081. <link id="TabstractObjectReader.ReadSet"/>
  6082. <link id="TabstractObjectReader.ReadStr"/>
  6083. </seealso>
  6084. </element>
  6085. <element name="TAbstractObjectReader.SkipComponent"> <!-- Procedure -->
  6086. <short>Skip till the end of the component.</short>
  6087. <descr>
  6088. This method is used to skip the entire declaration of a component in the
  6089. stream. Each descendent of <var>TAbstractObjectReader</var> should implement
  6090. this in a way which is optimal for the implemented stream format.
  6091. </descr>
  6092. <seealso>
  6093. <link id="TAbstractObjectReader.BeginComponent"/>
  6094. <link id="TAbstractObjectReader.SkipValue"/>
  6095. </seealso>
  6096. </element>
  6097. <element name="TAbstractObjectReader.SkipValue"> <!-- Procedure -->
  6098. <short>Skip the current value.</short>
  6099. <descr>
  6100. <var>SkipValue</var> should be used when skipping a value in the stream;
  6101. The method should determine the type of the value which should be skipped
  6102. by itself, if this is necessary.
  6103. </descr>
  6104. <seealso>
  6105. <link id="TAbstractObjectReader.SkipComponent"/>
  6106. </seealso>
  6107. </element>
  6108. <!--
  6109. *********************************************************************
  6110. TBinaryObjectReader
  6111. *********************************************************************
  6112. -->
  6113. <element name="TBinaryObjectReader"> <!-- Class -->
  6114. <short>Driver class descendent which reads component data stored in binary format.</short>
  6115. <descr>
  6116. The <var>TBinaryObjectReader</var> class reads component data stored in
  6117. binary form in a file. For this, it overrides or implements all abstract
  6118. methods from <link id="TAbstractObjectReader"/>. No new functionality is
  6119. added by this class, it is a driver class for the streaming system.
  6120. </descr>
  6121. <seealso>
  6122. <link id="TAbstractObjectReader"/>
  6123. <link id="TBinaryObjectWriter"/>
  6124. </seealso>
  6125. </element>
  6126. <element name="TBinaryObjectReader.Create"> <!-- Constructor -->
  6127. <short>Creates a new binary data reader instance.</short>
  6128. <descr>
  6129. <var>Create</var> instantiates a new binary component data reader. The
  6130. <var>Stream</var> stream is the stream from which data will be read. The
  6131. <var>BufSize</var> argument is the size of the internal buffer that will be
  6132. used by the reader. This can be used to optimize the reading process.
  6133. </descr>
  6134. <seealso>
  6135. <link id="TAbstractObjectReader"/>
  6136. </seealso>
  6137. </element>
  6138. <element name="TBinaryObjectReader.Destroy"> <!-- Destructor -->
  6139. <short>Destroys the binary data reader.</short>
  6140. <descr>
  6141. <var>Destroy</var> frees the buffer allocated when the instance was created.
  6142. It also positions the stream on the last used position in the stream (the
  6143. buffering may cause the reader to read more bytes than were actually used.)
  6144. </descr>
  6145. <seealso>
  6146. <link id="TBinaryObjectReader.Create"/>
  6147. </seealso>
  6148. </element>
  6149. <element name="TFindMethodEvent"> <!-- Procedure type -->
  6150. <short>Occurs when the streaming process needs to locate a method</short>
  6151. <descr>
  6152. If a <link id="TReader"/> instance needs to locate a method and it doesn't
  6153. find it in the streamed form, then the <link
  6154. id="TReader.OnFindMethod">OnFindMethod</link> event handler will be called,
  6155. if one is installed. This event can be assigned in order to use different
  6156. locating methods. If a method is found, then its address should be returned
  6157. in <var>Address</var>. The <var>Error</var> should be set to <var>True</var>
  6158. if the reader should raise an exception after the event was handled. If it
  6159. is set to <var>False</var> no exception will be raised, even if no method
  6160. was found. On entry, <var>Error</var> will be set to <var>True</var>.
  6161. </descr>
  6162. </element>
  6163. <element name="TSetNameEvent"> <!-- Procedure type -->
  6164. <short>Occurs when the reader needs to set a component's name.</short>
  6165. <descr>
  6166. </descr>
  6167. <seealso>
  6168. </seealso>
  6169. </element>
  6170. <element name="TReferenceNameEvent"> <!-- Procedure type -->
  6171. <short>Occurs when a named object needs to be looked up.</short>
  6172. <descr>
  6173. </descr>
  6174. <seealso>
  6175. </seealso>
  6176. </element>
  6177. <element name="TAncestorNotFoundEvent"> <!-- Procedure type -->
  6178. <short>This event occurs when an ancestor component cannot be found.</short>
  6179. <descr>
  6180. </descr>
  6181. <seealso>
  6182. </seealso>
  6183. </element>
  6184. <element name="TReadComponentsProc"> <!-- Procedure type -->
  6185. <short>Callback type when reading a component from a stream</short>
  6186. <descr>
  6187. </descr>
  6188. <seealso>
  6189. </seealso>
  6190. </element>
  6191. <element name="TReaderError"> <!-- Procedure type -->
  6192. <short>Event handler type, called when an error occurs during the streaming.</short>
  6193. <descr>
  6194. </descr>
  6195. <seealso>
  6196. </seealso>
  6197. </element>
  6198. <element name="TFindComponentClassEvent"> <!-- Procedure type -->
  6199. <short>Event handler type, occurs when a component class pointer must be
  6200. found when reading a component from a stream.</short>
  6201. <descr>
  6202. </descr>
  6203. <seealso>
  6204. </seealso>
  6205. </element>
  6206. <element name="TCreateComponentEvent"> <!-- Procedure type -->
  6207. <short>Event handler type, occurs when a component instance must be created
  6208. when a component is read from a stream.</short>
  6209. <descr>
  6210. </descr>
  6211. <seealso>
  6212. </seealso>
  6213. </element>
  6214. <!--
  6215. *********************************************************************
  6216. TReader
  6217. *********************************************************************
  6218. -->
  6219. <element name="TReader"> <!-- Class -->
  6220. <short>Generic reader object which reads component data from any given source.</short>
  6221. <descr>
  6222. The <var>TReader</var> class is a reader class that implements generic
  6223. component streaming capabilities, independent of the format of the data in
  6224. the stream. It uses a driver class <link id="TAbstractObjectReader"/> to
  6225. do the actual reading of data. The interface of the <var>TReader</var> class
  6226. should be identical to the interface in Delphi.
  6227. </descr>
  6228. <seealso>
  6229. <link id="TFiler"/>
  6230. <link id="TWriter"/>
  6231. <link id="TAbstractObjectReader"/>
  6232. </seealso>
  6233. </element>
  6234. <element name="TReader.Error"> <!-- Function -->
  6235. <short>Calls an installed error handler and passes it <var>Message</var></short>
  6236. <descr>
  6237. <p>
  6238. <var>Error</var> returns <var>False</var> if no <link id="TReader.OnError"/>
  6239. handler is installed. If one is installed, then it will be called, passing
  6240. the reader instance, message, and function return value as parameters.
  6241. </p>
  6242. <p>
  6243. If the function result <var>False</var>, i.e. when there is no handler
  6244. installed or the handler restured <var>False</var>, then the calling code
  6245. will raise an exception.
  6246. </p>
  6247. </descr>
  6248. <seealso>
  6249. <link id="TReader.FindMethod"/>
  6250. </seealso>
  6251. </element>
  6252. <element name="TReader.FindMethod"> <!-- Function -->
  6253. <short>Return the address of a published method.</short>
  6254. <descr>
  6255. <p>
  6256. <var>FindMethod</var> will search for the method in <var>ARoot</var>. If it
  6257. isn't found there, then it will call a <var>OnFindMethod</var> handler, if
  6258. one is installed, passing it the method name <var>AMethodName</var>, the
  6259. result pointer and a variable which says whether an exception should be
  6260. raised if no method with name <var>AMethodName</var> is found.
  6261. </p>
  6262. <p>
  6263. If the method cannot be found and the <link
  6264. id="TReader.OnFindMethod">OnFindMethod</link> returns <var>True</var>, then
  6265. an exception will be raised.
  6266. </p>
  6267. </descr>
  6268. <seealso>
  6269. <link id="TReader.OnFindMethod"/>
  6270. <link id="TFindMethodEvent"/>
  6271. </seealso>
  6272. </element>
  6273. <element name="TReader.ReadProperty"> <!-- Procedure -->
  6274. <short>Read and process a property name</short>
  6275. <descr>
  6276. </descr>
  6277. <seealso>
  6278. </seealso>
  6279. </element>
  6280. <element name="TReader.ReadPropValue"> <!-- Procedure -->
  6281. <short>Reads a property value for <var>PropInfo</var>.</short>
  6282. <descr>
  6283. </descr>
  6284. <seealso>
  6285. </seealso>
  6286. </element>
  6287. <element name="TReader.PropertyError"> <!-- Procedure -->
  6288. <short>Skips a property value and raises an exception.</short>
  6289. <descr>
  6290. </descr>
  6291. <seealso>
  6292. </seealso>
  6293. </element>
  6294. <element name="TReader.ReadData"> <!-- Procedure -->
  6295. <short>Reads the components data after it has been created.</short>
  6296. <descr>
  6297. </descr>
  6298. <seealso>
  6299. </seealso>
  6300. </element>
  6301. <element name="TReader.PropName"> <!-- Property -->
  6302. <short>Name of the property being read at this moment.</short>
  6303. <descr>
  6304. </descr>
  6305. <seealso>
  6306. </seealso>
  6307. </element>
  6308. <element name="TReader.CanHandleExceptions"> <!-- Property -->
  6309. <short>Indicates whether the reader is handling exceptions at this stage.</short>
  6310. <descr>
  6311. </descr>
  6312. <seealso>
  6313. </seealso>
  6314. </element>
  6315. <element name="TReader.Create"> <!-- Constructor -->
  6316. <short>Creates a new reader class</short>
  6317. <descr>
  6318. </descr>
  6319. <seealso>
  6320. </seealso>
  6321. </element>
  6322. <element name="TReader.Destroy"> <!-- Destructor -->
  6323. <short>Destroys a reader class.</short>
  6324. <descr>
  6325. </descr>
  6326. <seealso>
  6327. </seealso>
  6328. </element>
  6329. <element name="TReader.BeginReferences"> <!-- Procedure -->
  6330. <short>Initializes the component referencing mechanism.</short>
  6331. <descr>
  6332. </descr>
  6333. <seealso>
  6334. </seealso>
  6335. </element>
  6336. <element name="TReader.CheckValue"> <!-- Procedure -->
  6337. <short>Raises an exception if the next value in the stream is not of type
  6338. <var>Value</var></short>
  6339. <descr>
  6340. </descr>
  6341. <seealso>
  6342. </seealso>
  6343. </element>
  6344. <element name="TReader.DefineProperty"> <!-- Procedure -->
  6345. <short>Reads a user-defined property from the stream.</short>
  6346. <descr>
  6347. </descr>
  6348. <seealso>
  6349. </seealso>
  6350. </element>
  6351. <element name="TReader.DefineBinaryProperty"> <!-- Procedure -->
  6352. <short>Reads a user-defined binary property from the stream.</short>
  6353. <descr>
  6354. </descr>
  6355. <seealso>
  6356. </seealso>
  6357. </element>
  6358. <element name="TReader.EndOfList"> <!-- Function -->
  6359. <short>Returns true if the stream contains an end-of-list marker.</short>
  6360. <descr>
  6361. </descr>
  6362. <seealso>
  6363. </seealso>
  6364. </element>
  6365. <element name="TReader.EndReferences"> <!-- Procedure -->
  6366. <short>Finalizes the component referencing mechanism.</short>
  6367. <descr>
  6368. </descr>
  6369. <seealso>
  6370. </seealso>
  6371. </element>
  6372. <element name="TReader.FixupReferences"> <!-- Procedure -->
  6373. <short>Tries to resolve all unresolved component references.</short>
  6374. <descr>
  6375. </descr>
  6376. <seealso>
  6377. </seealso>
  6378. </element>
  6379. <element name="TReader.NextValue"> <!-- Function -->
  6380. <short>Returns the type of the next value.</short>
  6381. <descr>
  6382. </descr>
  6383. <seealso>
  6384. </seealso>
  6385. </element>
  6386. <element name="TReader.ReadBoolean"> <!-- Function -->
  6387. <short>Reads a boolean from the stream.</short>
  6388. <descr>
  6389. </descr>
  6390. <seealso>
  6391. </seealso>
  6392. </element>
  6393. <element name="TReader.ReadChar"> <!-- Function -->
  6394. <short>Reads a character from the stream.</short>
  6395. <descr>
  6396. </descr>
  6397. <seealso>
  6398. </seealso>
  6399. </element>
  6400. <element name="TReader.ReadCollection"> <!-- Procedure -->
  6401. <short>Reads a collection from the stream.</short>
  6402. <descr>
  6403. </descr>
  6404. <seealso>
  6405. </seealso>
  6406. </element>
  6407. <element name="TReader.ReadComponent"> <!-- Function -->
  6408. <short>Starts reading a component from the stream.</short>
  6409. <descr>
  6410. </descr>
  6411. <seealso>
  6412. </seealso>
  6413. </element>
  6414. <element name="TReader.ReadComponents"> <!-- Procedure -->
  6415. <short>Starts reading child components from the stream.</short>
  6416. <descr>
  6417. </descr>
  6418. <seealso>
  6419. </seealso>
  6420. </element>
  6421. <element name="TReader.ReadFloat"> <!-- Function -->
  6422. <short>Reads a float from the stream.</short>
  6423. <descr>
  6424. </descr>
  6425. <seealso>
  6426. </seealso>
  6427. </element>
  6428. <element name="TReader.ReadSingle"> <!-- Function -->
  6429. <short>Reads a single-type real from the stream.</short>
  6430. <descr>
  6431. </descr>
  6432. <seealso>
  6433. </seealso>
  6434. </element>
  6435. <element name="TReader.ReadDate"> <!-- Function -->
  6436. <short>Reads a date from the stream</short>
  6437. <descr>
  6438. </descr>
  6439. <seealso>
  6440. </seealso>
  6441. </element>
  6442. <element name="TReader.ReadIdent"> <!-- Function -->
  6443. <short>Reads an identifier from the stream.</short>
  6444. <descr>
  6445. </descr>
  6446. <seealso>
  6447. </seealso>
  6448. </element>
  6449. <element name="TReader.ReadInteger"> <!-- Function -->
  6450. <short>Reads an integer from the stream</short>
  6451. <descr>
  6452. </descr>
  6453. <seealso>
  6454. </seealso>
  6455. </element>
  6456. <element name="TReader.ReadInt64"> <!-- Function -->
  6457. <short>Reads a 64-bit integer from the stream.</short>
  6458. <descr>
  6459. </descr>
  6460. <seealso>
  6461. </seealso>
  6462. </element>
  6463. <element name="TReader.ReadListBegin"> <!-- Procedure -->
  6464. <short>Checks for the beginning of a list.</short>
  6465. <descr>
  6466. </descr>
  6467. <seealso>
  6468. </seealso>
  6469. </element>
  6470. <element name="TReader.ReadListEnd"> <!-- Procedure -->
  6471. <short>Checks for the end of a list.</short>
  6472. <descr>
  6473. </descr>
  6474. <seealso>
  6475. </seealso>
  6476. </element>
  6477. <element name="TReader.ReadRootComponent"> <!-- Function -->
  6478. <short>Starts reading a root component.</short>
  6479. <descr>
  6480. </descr>
  6481. <seealso>
  6482. </seealso>
  6483. </element>
  6484. <element name="TReader.ReadString"> <!-- Function -->
  6485. <short>Reads a string from the stream.</short>
  6486. <descr>
  6487. </descr>
  6488. <seealso>
  6489. </seealso>
  6490. </element>
  6491. <element name="TReader.ReadValue"> <!-- Function -->
  6492. <short>Reads the next value type from the stream.</short>
  6493. <descr>
  6494. </descr>
  6495. <seealso>
  6496. </seealso>
  6497. </element>
  6498. <element name="TReader.CopyValue"> <!-- Procedure -->
  6499. <short>Copy a value to a writer.</short>
  6500. <descr>
  6501. </descr>
  6502. <seealso>
  6503. </seealso>
  6504. </element>
  6505. <element name="TReader.Owner"> <!-- Property -->
  6506. <short>Owner of the component being read</short>
  6507. <descr>
  6508. </descr>
  6509. <seealso>
  6510. </seealso>
  6511. </element>
  6512. <element name="TReader.Parent"> <!-- Property -->
  6513. <short>Parent of the component being read.</short>
  6514. <descr>
  6515. </descr>
  6516. <seealso>
  6517. </seealso>
  6518. </element>
  6519. <element name="TReader.Driver"> <!-- Property -->
  6520. <short>The driver in use for streaming the data.</short>
  6521. <descr>
  6522. </descr>
  6523. <seealso>
  6524. </seealso>
  6525. </element>
  6526. <element name="TReader.OnError"> <!-- Property -->
  6527. <short>Handler called when an error occurs.</short>
  6528. <descr>
  6529. </descr>
  6530. <seealso>
  6531. </seealso>
  6532. </element>
  6533. <element name="TReader.OnFindMethod"> <!-- Property -->
  6534. <short>Handler to find or change a method address.</short>
  6535. <descr>
  6536. </descr>
  6537. <seealso>
  6538. </seealso>
  6539. </element>
  6540. <element name="TReader.OnSetName"> <!-- Property -->
  6541. <short>Handler called when setting a component name.</short>
  6542. <descr>
  6543. </descr>
  6544. <seealso>
  6545. </seealso>
  6546. </element>
  6547. <element name="TReader.OnReferenceName"> <!-- Property -->
  6548. <short>Handler called when another component is referenced.</short>
  6549. <descr>
  6550. </descr>
  6551. <seealso>
  6552. </seealso>
  6553. </element>
  6554. <element name="TReader.OnAncestorNotFound"> <!-- Property -->
  6555. <short>Handler called when the ancestor component cannot be found.</short>
  6556. <descr>
  6557. </descr>
  6558. <seealso>
  6559. </seealso>
  6560. </element>
  6561. <element name="TReader.OnCreateComponent"> <!-- Property -->
  6562. <short>Handler called when a component needs to be created.</short>
  6563. <descr>
  6564. </descr>
  6565. <seealso>
  6566. </seealso>
  6567. </element>
  6568. <element name="TReader.OnFindComponentClass"> <!-- Property -->
  6569. <short>Handler called when a component class reference needs to be found.</short>
  6570. <descr>
  6571. </descr>
  6572. <seealso>
  6573. </seealso>
  6574. </element>
  6575. <!--
  6576. *********************************************************************
  6577. TAbstractObjectWriter
  6578. *********************************************************************
  6579. -->
  6580. <element name="TAbstractObjectWriter"> <!-- Class -->
  6581. <short>Abstract driver class for writing component data.</short>
  6582. <descr>
  6583. </descr>
  6584. <seealso>
  6585. </seealso>
  6586. </element>
  6587. <element name="TAbstractObjectWriter.BeginCollection"> <!-- Procedure -->
  6588. <short>Start writing a collection.</short>
  6589. <descr>
  6590. </descr>
  6591. <seealso>
  6592. </seealso>
  6593. </element>
  6594. <element name="TAbstractObjectWriter.BeginComponent"> <!-- Procedure -->
  6595. <short>Start writing a component</short>
  6596. <descr>
  6597. </descr>
  6598. <seealso>
  6599. </seealso>
  6600. </element>
  6601. <element name="TAbstractObjectWriter.BeginList"> <!-- Procedure -->
  6602. <short>Start writing a list.</short>
  6603. <descr>
  6604. </descr>
  6605. <seealso>
  6606. </seealso>
  6607. </element>
  6608. <element name="TAbstractObjectWriter.EndList"> <!-- Procedure -->
  6609. <short>Mark the end of a list.</short>
  6610. <descr>
  6611. </descr>
  6612. <seealso>
  6613. </seealso>
  6614. </element>
  6615. <element name="TAbstractObjectWriter.BeginProperty"> <!-- Procedure -->
  6616. <short>Start writing a property</short>
  6617. <descr>
  6618. </descr>
  6619. <seealso>
  6620. </seealso>
  6621. </element>
  6622. <element name="TAbstractObjectWriter.EndProperty"> <!-- Procedure -->
  6623. <short>Marks the end of writing of a property.</short>
  6624. <descr>
  6625. </descr>
  6626. <seealso>
  6627. </seealso>
  6628. </element>
  6629. <element name="TAbstractObjectWriter.WriteBinary"> <!-- Procedure -->
  6630. <short>Writes binary data to the stream.</short>
  6631. <descr>
  6632. </descr>
  6633. <seealso>
  6634. </seealso>
  6635. </element>
  6636. <element name="TAbstractObjectWriter.WriteBoolean"> <!-- Procedure -->
  6637. <short>Writes a boolean value to the stream.</short>
  6638. <descr>
  6639. </descr>
  6640. <seealso>
  6641. </seealso>
  6642. </element>
  6643. <element name="TAbstractObjectWriter.WriteFloat"> <!-- Procedure -->
  6644. <short>Writes a float value to the stream.</short>
  6645. <descr>
  6646. </descr>
  6647. <seealso>
  6648. </seealso>
  6649. </element>
  6650. <element name="TAbstractObjectWriter.WriteSingle"> <!-- Procedure -->
  6651. <short>Writes a single-type real value to the stream.</short>
  6652. <descr>
  6653. </descr>
  6654. <seealso>
  6655. </seealso>
  6656. </element>
  6657. <element name="TAbstractObjectWriter.WriteDate"> <!-- Procedure -->
  6658. <short>Writes a date type to the stream.</short>
  6659. <descr>
  6660. </descr>
  6661. <seealso>
  6662. </seealso>
  6663. </element>
  6664. <element name="TAbstractObjectWriter.WriteIdent"> <!-- Procedure -->
  6665. <short>Writes an identifier to the stream.</short>
  6666. <descr>
  6667. </descr>
  6668. <seealso>
  6669. </seealso>
  6670. </element>
  6671. <element name="TAbstractObjectWriter.WriteInteger"> <!-- Procedure -->
  6672. <short>Writes an integer value to the stream</short>
  6673. <descr>
  6674. </descr>
  6675. <seealso>
  6676. </seealso>
  6677. </element>
  6678. <element name="TAbstractObjectWriter.WriteMethodName"> <!-- Procedure -->
  6679. <short>Writes a methodname to the stream.</short>
  6680. <descr>
  6681. </descr>
  6682. <seealso>
  6683. </seealso>
  6684. </element>
  6685. <element name="TAbstractObjectWriter.WriteSet"> <!-- Procedure -->
  6686. <short>Writes a set value to the stream.</short>
  6687. <descr>
  6688. </descr>
  6689. <seealso>
  6690. </seealso>
  6691. </element>
  6692. <element name="TAbstractObjectWriter.WriteString"> <!-- Procedure -->
  6693. <short>Writes a string value to the stream.</short>
  6694. <descr>
  6695. </descr>
  6696. <seealso>
  6697. </seealso>
  6698. </element>
  6699. <!--
  6700. *********************************************************************
  6701. TBinaryObjectWriter
  6702. *********************************************************************
  6703. -->
  6704. <element name="TBinaryObjectWriter"> <!-- Class -->
  6705. <short>Driver class which stores component data in binary form.</short>
  6706. <descr>
  6707. </descr>
  6708. <seealso>
  6709. </seealso>
  6710. </element>
  6711. <element name="TBinaryObjectWriter.Create"> <!-- Constructor -->
  6712. <short>Creates a new instance of a binary object writer.</short>
  6713. <descr>
  6714. </descr>
  6715. <seealso>
  6716. </seealso>
  6717. </element>
  6718. <element name="TBinaryObjectWriter.Destroy"> <!-- Destructor -->
  6719. <short>Destroys an instance of the binary object writer.</short>
  6720. <descr>
  6721. </descr>
  6722. <seealso>
  6723. </seealso>
  6724. </element>
  6725. <element name="TBinaryObjectWriter.BeginCollection"
  6726. link="TAbstractObjectWriter.BeginCollection">
  6727. <short>Start writing a collection.</short>
  6728. </element>
  6729. <element name="TBinaryObjectWriter.BeginComponent"
  6730. link="TAbstractObjectWriter.BeginComponent"> <!-- Procedure -->
  6731. <short>Start writing a component</short>
  6732. </element>
  6733. <element name="TBinaryObjectWriter.BeginList"
  6734. link="TAbstractObjectWriter.BeginList"> <!-- Procedure -->
  6735. <short>Start writing a list.</short>
  6736. </element>
  6737. <element name="TBinaryObjectWriter.EndList"
  6738. link="TAbstractObjectWriter.EndList"> <!-- Procedure -->
  6739. <short>Mark the end of a list.</short>
  6740. </element>
  6741. <element name="TBinaryObjectWriter.BeginProperty"
  6742. link="TAbstractObjectWriter.BeginProperty"> <!-- Procedure -->
  6743. <short>Start writing a property</short>
  6744. </element>
  6745. <element name="TBinaryObjectWriter.EndProperty"
  6746. link="TAbstractObjectWriter.EndProperty"> <!-- Procedure -->
  6747. <short>Marks the end of writing of a property.</short>
  6748. </element>
  6749. <element name="TBinaryObjectWriter.WriteBinary"
  6750. link="TAbstractObjectWriter.WriteBinary"> <!-- Procedure -->
  6751. <short>Writes binary data to the stream.</short>
  6752. </element>
  6753. <element name="TBinaryObjectWriter.WriteBoolean"
  6754. link="TAbstractObjectWriter.WriteBoolean"> <!-- Procedure -->
  6755. <short>Writes a boolean value to the stream.</short>
  6756. </element>
  6757. <element name="TBinaryObjectWriter.WriteFloat"
  6758. link="TAbstractObjectWriter.WriteFloat"> <!-- Procedure -->
  6759. <short>Writes a float value to the stream.</short>
  6760. </element>
  6761. <element name="TBinaryObjectWriter.WriteSingle"
  6762. link="TAbstractObjectWriter.WriteSingle"> <!-- Procedure -->
  6763. <short>Writes a single-type real value to the stream.</short>
  6764. </element>
  6765. <element name="TBinaryObjectWriter.WriteDate"
  6766. link="TAbstractObjectWriter.WriteDate"> <!-- Procedure -->
  6767. <short>Writes a date type to the stream.</short>
  6768. </element>
  6769. <element name="TBinaryObjectWriter.WriteIdent"
  6770. link="TAbstractObjectWriter.WriteIdent"> <!-- Procedure -->
  6771. <short>Writes an identifier to the stream.</short>
  6772. </element>
  6773. <element name="TBinaryObjectWriter.WriteInteger"
  6774. link="TAbstractObjectWriter.WriteInteger"> <!-- Procedure -->
  6775. <short>Writes an integer value to the stream.</short>
  6776. </element>
  6777. <element name="TBinaryObjectWriter.WriteMethodName"
  6778. link="TAbstractObjectWriter.WriteMethodName"> <!-- Procedure -->
  6779. <short>Writes a methodname to the stream.</short>
  6780. </element>
  6781. <element name="TBinaryObjectWriter.WriteSet"
  6782. link="TAbstractObjectWriter.WriteSet"> <!-- Procedure -->
  6783. <short>Writes a set value to the stream.</short>
  6784. </element>
  6785. <element name="TBinaryObjectWriter.WriteString"
  6786. link="TAbstractObjectWriter.WriteString"> <!-- Procedure -->
  6787. <short>Writes a string value to the stream.</short>
  6788. </element>
  6789. <!--
  6790. *********************************************************************
  6791. TTextObjectWriter
  6792. *********************************************************************
  6793. -->
  6794. <element name="TTextObjectWriter"> <!-- Class -->
  6795. <short>Driver class which stores component data in text format.</short>
  6796. <descr>
  6797. Not yet implemented.
  6798. </descr>
  6799. <seealso>
  6800. </seealso>
  6801. </element>
  6802. <element name="TFindAncestorEvent"> <!-- Procedure type -->
  6803. <short>Event that occurs w</short>
  6804. <descr>
  6805. </descr>
  6806. <seealso>
  6807. </seealso>
  6808. </element>
  6809. <!--
  6810. *********************************************************************
  6811. TWriter
  6812. *********************************************************************
  6813. -->
  6814. <element name="TWriter"> <!-- Class -->
  6815. <short>Object to write component data to an arbitrary format.</short>
  6816. <descr>
  6817. </descr>
  6818. <seealso>
  6819. </seealso>
  6820. </element>
  6821. <element name="TWriter.SetRoot" link="TFiler.SetRoot"> <!-- Procedure -->
  6822. <short>Sets the root component</short>
  6823. </element>
  6824. <element name="TWriter.WriteBinary"> <!-- Procedure -->
  6825. <short>Writes binary data to the stream.</short>
  6826. <descr>
  6827. </descr>
  6828. <seealso>
  6829. </seealso>
  6830. </element>
  6831. <element name="TWriter.WriteProperty"> <!-- Procedure -->
  6832. <short>Writes one property to the stream.</short>
  6833. <descr>
  6834. </descr>
  6835. <seealso>
  6836. </seealso>
  6837. </element>
  6838. <element name="TWriter.WriteProperties"> <!-- Procedure -->
  6839. <short>Writes the published properties to the stream.</short>
  6840. <descr>
  6841. </descr>
  6842. <seealso>
  6843. </seealso>
  6844. </element>
  6845. <element name="TWriter.Create"> <!-- Constructor -->
  6846. <short>Creates a new Writer instance with a driver.</short>
  6847. <descr>
  6848. </descr>
  6849. <seealso>
  6850. </seealso>
  6851. </element>
  6852. <element name="TWriter.Create"> <!-- Constructor -->
  6853. <short>Creates a new Writer with a stream and bufsize.</short>
  6854. <descr>
  6855. </descr>
  6856. <seealso>
  6857. </seealso>
  6858. </element>
  6859. <element name="TWriter.Destroy"> <!-- Destructor -->
  6860. <short>Destroys the writer instance.</short>
  6861. <descr>
  6862. </descr>
  6863. <seealso>
  6864. </seealso>
  6865. </element>
  6866. <element name="TWriter.DefineProperty"> <!-- Procedure -->
  6867. <short>Callback used when defining and streaming custom properties.</short>
  6868. <descr>
  6869. </descr>
  6870. <seealso>
  6871. </seealso>
  6872. </element>
  6873. <element name="TWriter.DefineBinaryProperty"> <!-- Procedure -->
  6874. <short>Callback used when defining and streaming custom properties.</short>
  6875. <descr>
  6876. </descr>
  6877. <seealso>
  6878. </seealso>
  6879. </element>
  6880. <element name="TWriter.WriteBoolean"> <!-- Procedure -->
  6881. <short>Write boolean value to the stream.</short>
  6882. <descr>
  6883. </descr>
  6884. <seealso>
  6885. </seealso>
  6886. </element>
  6887. <element name="TWriter.WriteCollection"> <!-- Procedure -->
  6888. <short>Write a collection to the stream.</short>
  6889. <descr>
  6890. </descr>
  6891. <seealso>
  6892. </seealso>
  6893. </element>
  6894. <element name="TWriter.WriteComponent"> <!-- Procedure -->
  6895. <short>Stream a component to the stream.</short>
  6896. <descr>
  6897. </descr>
  6898. <seealso>
  6899. </seealso>
  6900. </element>
  6901. <element name="TWriter.WriteChar"> <!-- Procedure -->
  6902. <short>Write a character to the stream.</short>
  6903. <descr>
  6904. </descr>
  6905. <seealso>
  6906. </seealso>
  6907. </element>
  6908. <element name="TWriter.WriteDescendent"> <!-- Procedure -->
  6909. <short>Write a descendent component to the stream.</short>
  6910. <descr>
  6911. </descr>
  6912. <seealso>
  6913. </seealso>
  6914. </element>
  6915. <element name="TWriter.WriteFloat"> <!-- Procedure -->
  6916. <short>Write a float to the stream.</short>
  6917. <descr>
  6918. </descr>
  6919. <seealso>
  6920. </seealso>
  6921. </element>
  6922. <element name="TWriter.WriteSingle"> <!-- Procedure -->
  6923. <short>Write a single-type real to the stream.</short>
  6924. <descr>
  6925. </descr>
  6926. <seealso>
  6927. </seealso>
  6928. </element>
  6929. <element name="TWriter.WriteDate"> <!-- Procedure -->
  6930. <short>Write a date to the stream.</short>
  6931. <descr>
  6932. </descr>
  6933. <seealso>
  6934. </seealso>
  6935. </element>
  6936. <element name="TWriter.WriteIdent"> <!-- Procedure -->
  6937. <short>Write an identifier to the stream.</short>
  6938. <descr>
  6939. </descr>
  6940. <seealso>
  6941. </seealso>
  6942. </element>
  6943. <element name="TWriter.WriteInteger"> <!-- Procedure -->
  6944. <short>Write an integer to the stream.</short>
  6945. <descr>
  6946. </descr>
  6947. <seealso>
  6948. </seealso>
  6949. </element>
  6950. <element name="TWriter.WriteListBegin"> <!-- Procedure -->
  6951. <short>Write a start-of-list marker to the stream.</short>
  6952. <descr>
  6953. </descr>
  6954. <seealso>
  6955. </seealso>
  6956. </element>
  6957. <element name="TWriter.WriteListEnd"> <!-- Procedure -->
  6958. <short>Write an end-of-list marker to the stream.</short>
  6959. <descr>
  6960. </descr>
  6961. <seealso>
  6962. </seealso>
  6963. </element>
  6964. <element name="TWriter.WriteRootComponent"> <!-- Procedure -->
  6965. <short>Write a root component to the stream.</short>
  6966. <descr>
  6967. </descr>
  6968. <seealso>
  6969. </seealso>
  6970. </element>
  6971. <element name="TWriter.WriteString"> <!-- Procedure -->
  6972. <short>Write a string to the stream.</short>
  6973. <descr>
  6974. </descr>
  6975. <seealso>
  6976. </seealso>
  6977. </element>
  6978. <element name="TWriter.RootAncestor"> <!-- Property -->
  6979. <short>Ancestor of root component.</short>
  6980. <descr>
  6981. </descr>
  6982. <seealso>
  6983. </seealso>
  6984. </element>
  6985. <element name="TWriter.OnFindAncestor"> <!-- Property -->
  6986. <short>Event occurring when an ancestor component must be found.</short>
  6987. <descr>
  6988. </descr>
  6989. <seealso>
  6990. </seealso>
  6991. </element>
  6992. <element name="TWriter.Driver"> <!-- Property -->
  6993. <short>Driver used when writing to the stream.</short>
  6994. <descr>
  6995. </descr>
  6996. <seealso>
  6997. </seealso>
  6998. </element>
  6999. <!--
  7000. *********************************************************************
  7001. TParser
  7002. *********************************************************************
  7003. -->
  7004. <element name="TParser"> <!-- Class -->
  7005. <short>Class to parse the contents of a stream containing text data.</short>
  7006. <descr>
  7007. </descr>
  7008. <seealso>
  7009. </seealso>
  7010. </element>
  7011. <element name="TParser.Create"> <!-- Constructor -->
  7012. <short>Creates a new parser instance.</short>
  7013. <descr>
  7014. </descr>
  7015. <seealso>
  7016. </seealso>
  7017. </element>
  7018. <element name="TParser.Destroy"> <!-- Destructor -->
  7019. <short>Destroys the parser instance.</short>
  7020. <descr>
  7021. </descr>
  7022. <seealso>
  7023. </seealso>
  7024. </element>
  7025. <element name="TParser.CheckToken"> <!-- Procedure -->
  7026. <short>Checks whether the token if of the given type.</short>
  7027. <descr>
  7028. </descr>
  7029. <seealso>
  7030. </seealso>
  7031. </element>
  7032. <element name="TParser.CheckTokenSymbol"> <!-- Procedure -->
  7033. <short>Checks whether the token equals the given symbol</short>
  7034. <descr>
  7035. </descr>
  7036. <seealso>
  7037. </seealso>
  7038. </element>
  7039. <element name="TParser.Error"> <!-- Procedure -->
  7040. <short>Raises an <link id="EParserError"/> exception with the given message</short>
  7041. <descr>
  7042. </descr>
  7043. <seealso>
  7044. </seealso>
  7045. </element>
  7046. <element name="TParser.ErrorFmt"> <!-- Procedure -->
  7047. <short>Raises an <link id="EParserError"/> exception and formats the message.</short>
  7048. <descr>
  7049. </descr>
  7050. <seealso>
  7051. </seealso>
  7052. </element>
  7053. <element name="TParser.ErrorStr"> <!-- Procedure -->
  7054. <short>Raises an <link id="EParserError"/> exception with the given message</short>
  7055. <descr>
  7056. </descr>
  7057. <seealso>
  7058. </seealso>
  7059. </element>
  7060. <element name="TParser.HexToBinary"> <!-- Procedure -->
  7061. <short>Writes hexadecimal data to the stream.</short>
  7062. <descr>
  7063. </descr>
  7064. <seealso>
  7065. </seealso>
  7066. </element>
  7067. <element name="TParser.NextToken"> <!-- Function -->
  7068. <short>Reads the next token and returns its type.</short>
  7069. <descr>
  7070. </descr>
  7071. <seealso>
  7072. </seealso>
  7073. </element>
  7074. <element name="TParser.SourcePos"> <!-- Function -->
  7075. <short>Returns the current position in the stream.</short>
  7076. <descr>
  7077. </descr>
  7078. <seealso>
  7079. </seealso>
  7080. </element>
  7081. <element name="TParser.TokenComponentIdent"> <!-- Function -->
  7082. <short>Checks whether the current token is a component identifier.</short>
  7083. <descr>
  7084. </descr>
  7085. <seealso>
  7086. </seealso>
  7087. </element>
  7088. <element name="TParser.TokenFloat"> <!-- Function -->
  7089. <short>Returns the current token as a float.</short>
  7090. <descr>
  7091. </descr>
  7092. <seealso>
  7093. </seealso>
  7094. </element>
  7095. <element name="TParser.TokenInt"> <!-- Function -->
  7096. <short>Returns the current token as an integer.</short>
  7097. <descr>
  7098. </descr>
  7099. <seealso>
  7100. </seealso>
  7101. </element>
  7102. <element name="TParser.TokenString"> <!-- Function -->
  7103. <short>Returns the current token as a string.</short>
  7104. <descr>
  7105. </descr>
  7106. <seealso>
  7107. </seealso>
  7108. </element>
  7109. <element name="TParser.TokenSymbolIs"> <!-- Function -->
  7110. <short>Returns <var>True</var> if the current token is a symbol.</short>
  7111. <descr>
  7112. </descr>
  7113. <seealso>
  7114. </seealso>
  7115. </element>
  7116. <element name="TParser.SourceLine"> <!-- Property -->
  7117. <short>Current source linenumber.</short>
  7118. <descr>
  7119. </descr>
  7120. <seealso>
  7121. </seealso>
  7122. </element>
  7123. <element name="TParser.Token"> <!-- Property -->
  7124. <short>Contents of the current token.</short>
  7125. <descr>
  7126. </descr>
  7127. <seealso>
  7128. </seealso>
  7129. </element>
  7130. <!--
  7131. *********************************************************************
  7132. EThread
  7133. *********************************************************************
  7134. -->
  7135. <element name="EThread"> <!-- Class -->
  7136. <short>Thread error exception.</short>
  7137. <descr>
  7138. </descr>
  7139. <seealso>
  7140. </seealso>
  7141. </element>
  7142. <element name="TThreadMethod"> <!-- Procedure type -->
  7143. <short>Procedure variable used when synchronizing threads.</short>
  7144. <descr>
  7145. </descr>
  7146. <seealso>
  7147. </seealso>
  7148. </element>
  7149. <element name="TThreadPriority"> <!-- Enumeration type -->
  7150. <short>Enumeration specifying the priority at which a thread runs.</short>
  7151. <descr>
  7152. </descr>
  7153. <seealso>
  7154. </seealso>
  7155. </element>
  7156. <element name="TThreadPriority.tpIdle"> <!-- Enumeration value -->
  7157. <short>Thread only runs when other processes are idle.</short>
  7158. <descr>
  7159. </descr>
  7160. <seealso>
  7161. </seealso>
  7162. </element>
  7163. <element name="TThreadPriority.tpLowest"> <!-- Enumeration value -->
  7164. <short>Thread runs at the lowest priority.</short>
  7165. <descr>
  7166. </descr>
  7167. <seealso>
  7168. </seealso>
  7169. </element>
  7170. <element name="TThreadPriority.tpLower"> <!-- Enumeration value -->
  7171. <short>Thread runs at a lower priority.</short>
  7172. <descr>
  7173. </descr>
  7174. <seealso>
  7175. </seealso>
  7176. </element>
  7177. <element name="TThreadPriority.tpNormal"> <!-- Enumeration value -->
  7178. <short>Thread runs at normal process priority.</short>
  7179. <descr>
  7180. </descr>
  7181. <seealso>
  7182. </seealso>
  7183. </element>
  7184. <element name="TThreadPriority.tpHigher"> <!-- Enumeration value -->
  7185. <short>Thread runs at high priority</short>
  7186. <descr>
  7187. </descr>
  7188. <seealso>
  7189. </seealso>
  7190. </element>
  7191. <element name="TThreadPriority.tpHighest"> <!-- Enumeration value -->
  7192. <short>Thread runs at highest possible priority.</short>
  7193. <descr>
  7194. </descr>
  7195. <seealso>
  7196. </seealso>
  7197. </element>
  7198. <element name="TThreadPriority.tpTimeCritical"> <!-- Enumeration value -->
  7199. <short>Thread runs at realtime priority.</short>
  7200. <descr>
  7201. </descr>
  7202. <seealso>
  7203. </seealso>
  7204. </element>
  7205. <!--
  7206. *********************************************************************
  7207. TThread
  7208. *********************************************************************
  7209. -->
  7210. <element name="TThread"> <!-- Class -->
  7211. <short>Abstract Thread class.</short>
  7212. <descr>
  7213. The <var>TThread</var> class encapsulates the native thread support of the
  7214. operating system. To create a thread, declare a descendent of the
  7215. <var>TThread</var> object and override the <link
  7216. id="TThread.Execute">Execute</link> method. In this method, the thhread's
  7217. code should be executed. To run a thread, create an instance of the tthread
  7218. descendent, and call it's execute method.
  7219. </descr>
  7220. <seealso>
  7221. <link id="EThread"/>
  7222. <link id="TThread.Execute"/>
  7223. </seealso>
  7224. </element>
  7225. <element name="TThread.DoTerminate"> <!-- Procedure -->
  7226. <short>Terminates the thread.</short>
  7227. <descr>
  7228. </descr>
  7229. <seealso>
  7230. </seealso>
  7231. </element>
  7232. <element name="TThread.Execute"> <!-- Procedure -->
  7233. <short>Execute method. Should be overridden in a descendent thread.</short>
  7234. <descr>
  7235. </descr>
  7236. <seealso>
  7237. </seealso>
  7238. </element>
  7239. <element name="TThread.Synchronize"> <!-- Procedure -->
  7240. <short>Synchronizes the thread by executing the method in the main thread.</short>
  7241. <descr>
  7242. </descr>
  7243. <seealso>
  7244. </seealso>
  7245. </element>
  7246. <element name="TThread.ReturnValue"> <!-- Property -->
  7247. <short>Return value of the thread when it stops executing.</short>
  7248. <descr>
  7249. </descr>
  7250. <seealso>
  7251. </seealso>
  7252. </element>
  7253. <element name="TThread.Terminated"> <!-- Property -->
  7254. <short>Indicates whether the <link id="TThread.Terminate">Terminate</link>method was called by the user.</short>
  7255. <descr>
  7256. </descr>
  7257. <seealso>
  7258. </seealso>
  7259. </element>
  7260. <element name="TThread.FStackPointer"> <!-- Variable -->
  7261. <short></short>
  7262. <descr>
  7263. </descr>
  7264. <seealso>
  7265. </seealso>
  7266. </element>
  7267. <element name="TThread.FStackSize"> <!-- Variable -->
  7268. <short></short>
  7269. <descr>
  7270. </descr>
  7271. <seealso>
  7272. </seealso>
  7273. </element>
  7274. <element name="TThread.FCallExitProcess"> <!-- Variable -->
  7275. <short></short>
  7276. <descr>
  7277. </descr>
  7278. <seealso>
  7279. </seealso>
  7280. </element>
  7281. <element name="TThread.Create"> <!-- Constructor -->
  7282. <short>Creates a new thread.</short>
  7283. <descr>
  7284. </descr>
  7285. <seealso>
  7286. </seealso>
  7287. </element>
  7288. <element name="TThread.Destroy"> <!-- Destructor -->
  7289. <short>Destroys the thread object.</short>
  7290. <descr>
  7291. </descr>
  7292. <seealso>
  7293. </seealso>
  7294. </element>
  7295. <element name="TThread.Resume"> <!-- Procedure -->
  7296. <short>Resumes the thread's execution.</short>
  7297. <descr>
  7298. </descr>
  7299. <seealso>
  7300. </seealso>
  7301. </element>
  7302. <element name="TThread.Suspend"> <!-- Procedure -->
  7303. <short>Suspends the thread's execution.</short>
  7304. <descr>
  7305. </descr>
  7306. <seealso>
  7307. </seealso>
  7308. </element>
  7309. <element name="TThread.Terminate"> <!-- Procedure -->
  7310. <short>Signals the thread it should terminate.</short>
  7311. <descr>
  7312. </descr>
  7313. <seealso>
  7314. </seealso>
  7315. </element>
  7316. <element name="TThread.WaitFor"> <!-- Function -->
  7317. <short>Waits for the thread to terminate and returns the exit status.</short>
  7318. <descr>
  7319. </descr>
  7320. <seealso>
  7321. </seealso>
  7322. </element>
  7323. <element name="TThread.FreeOnTerminate"> <!-- Property -->
  7324. <short>Indicates whether the thread should free itself when it stops executing.</short>
  7325. <descr>
  7326. </descr>
  7327. <seealso>
  7328. </seealso>
  7329. </element>
  7330. <element name="TThread.Handle"> <!-- Property -->
  7331. <short>Returns the thread handle.</short>
  7332. <descr>
  7333. </descr>
  7334. <seealso>
  7335. </seealso>
  7336. </element>
  7337. <element name="TThread.Priority"> <!-- Property -->
  7338. <short>Returns the thread priority.</short>
  7339. <descr>
  7340. </descr>
  7341. <seealso>
  7342. </seealso>
  7343. </element>
  7344. <element name="TThread.Suspended"> <!-- Property -->
  7345. <short>Indicates whether the thread is suspended.</short>
  7346. <descr>
  7347. </descr>
  7348. <seealso>
  7349. </seealso>
  7350. </element>
  7351. <element name="TThread.ThreadID"> <!-- Property -->
  7352. <short>Returns the thread ID.</short>
  7353. <descr>
  7354. </descr>
  7355. <seealso>
  7356. </seealso>
  7357. </element>
  7358. <element name="TThread.OnTerminate"> <!-- Property -->
  7359. <short>Event called when the thread terminates.</short>
  7360. <descr>
  7361. </descr>
  7362. <seealso>
  7363. </seealso>
  7364. </element>
  7365. <element name="TOperation"> <!-- Enumeration type -->
  7366. <short>Operation of which a component is notified.</short>
  7367. <descr>
  7368. </descr>
  7369. <seealso>
  7370. </seealso>
  7371. </element>
  7372. <element name="TOperation.opInsert"> <!-- Enumeration value -->
  7373. <short>A new component is being inserted in the child component list.</short>
  7374. <descr>
  7375. </descr>
  7376. <seealso>
  7377. </seealso>
  7378. </element>
  7379. <element name="TOperation.opRemove"> <!-- Enumeration value -->
  7380. <short>A component is being removed from the child component list.</short>
  7381. <descr>
  7382. </descr>
  7383. <seealso>
  7384. </seealso>
  7385. </element>
  7386. <element name="TComponentState"> <!-- Set type -->
  7387. <short>Indicates the state of the component during the streaming process.</short>
  7388. <descr>
  7389. </descr>
  7390. <seealso>
  7391. </seealso>
  7392. </element>
  7393. <element name="TComponentState.csLoading"> <!-- Enumeration value -->
  7394. <short>The component is being loaded from the stream.</short>
  7395. <descr>
  7396. </descr>
  7397. <seealso>
  7398. </seealso>
  7399. </element>
  7400. <element name="TComponentState.csReading"> <!-- Enumeration value -->
  7401. <short>Properties are being read from the stream.</short>
  7402. <descr>
  7403. </descr>
  7404. <seealso>
  7405. </seealso>
  7406. </element>
  7407. <element name="TComponentState.csWriting"> <!-- Enumeration value -->
  7408. <short>Properties are being written to the stream.</short>
  7409. <descr>
  7410. </descr>
  7411. <seealso>
  7412. </seealso>
  7413. </element>
  7414. <element name="TComponentState.csDestroying"> <!-- Enumeration value -->
  7415. <short>The component is being destroyed.</short>
  7416. <descr>
  7417. </descr>
  7418. <seealso>
  7419. </seealso>
  7420. </element>
  7421. <element name="TComponentState.csDesigning"> <!-- Enumeration value -->
  7422. <short>The component is being designed in an IDE.</short>
  7423. <descr>
  7424. </descr>
  7425. <seealso>
  7426. </seealso>
  7427. </element>
  7428. <element name="TComponentState.csAncestor"> <!-- Enumeration value -->
  7429. <short>The component is being streamed as part of a frame (?) </short>
  7430. <descr>
  7431. </descr>
  7432. <seealso>
  7433. </seealso>
  7434. </element>
  7435. <element name="TComponentState.csUpdating"> <!-- Enumeration value -->
  7436. <short>The component is being updated.</short>
  7437. <descr>
  7438. </descr>
  7439. <seealso>
  7440. </seealso>
  7441. </element>
  7442. <element name="TComponentState.csFixups"> <!-- Enumeration value -->
  7443. <short>The component's references to other components are being fixed.</short>
  7444. <descr>
  7445. </descr>
  7446. <seealso>
  7447. </seealso>
  7448. </element>
  7449. <element name="TComponentState.csFreeNotification"> <!-- Enumeration value -->
  7450. <short>Indicates whether the component has freenotifications</short>
  7451. <descr>
  7452. </descr>
  7453. <seealso>
  7454. </seealso>
  7455. </element>
  7456. <element name="TComponentState.csInline"> <!-- Enumeration value -->
  7457. <short>Component is part of a frame (?).</short>
  7458. <descr>
  7459. </descr>
  7460. <seealso>
  7461. </seealso>
  7462. </element>
  7463. <element name="TComponentState.csDesignInstance"> <!-- Enumeration value -->
  7464. <short>??</short>
  7465. <descr>
  7466. </descr>
  7467. <seealso>
  7468. </seealso>
  7469. </element>
  7470. <element name="TComponentStyle"> <!-- Set type -->
  7471. <short>Describes the style of the component.</short>
  7472. <descr>
  7473. </descr>
  7474. <seealso>
  7475. </seealso>
  7476. </element>
  7477. <element name="TComponentStyle.csInheritable"> <!-- Enumeration value -->
  7478. <short>The component can be on inherited forms.</short>
  7479. <descr>
  7480. </descr>
  7481. <seealso>
  7482. </seealso>
  7483. </element>
  7484. <element name="TComponentStyle.csCheckPropAvail"> <!-- Enumeration value -->
  7485. <short>??</short>
  7486. <descr>
  7487. </descr>
  7488. <seealso>
  7489. </seealso>
  7490. </element>
  7491. <element name="TGetChildProc"> <!-- Procedure type -->
  7492. <short>Callback used when obtaining child components.</short>
  7493. <descr>
  7494. </descr>
  7495. <seealso>
  7496. </seealso>
  7497. </element>
  7498. <!--
  7499. *********************************************************************
  7500. TComponent
  7501. *********************************************************************
  7502. -->
  7503. <element name="TComponent"> <!-- Class -->
  7504. <short>Base class for all components that need owner-owned functionality.</short>
  7505. <descr>
  7506. <p>
  7507. <var>TComponent</var> is the base class for any set of classes that needs
  7508. owner-owned functionality, and which needs support for property streaming.
  7509. All classes that should be handled by an IDE (Integrated Development
  7510. Environment) must descend from <var>TComponent</var>, as it includes all
  7511. support for streaming all its published properties.
  7512. </p>
  7513. <p>
  7514. Components can 'own' other components. <var>TComponent</var> introduces
  7515. methods for enumerating the child components. It also allows to name the
  7516. owned components with a unique name. Furthermore, functionality for
  7517. sending notifications when a component is removed from the list or
  7518. removed from memory alltogether is also introduced in <var>TComponent</var>
  7519. </p>
  7520. <p>
  7521. <var>TComponent</var> introduces a form of automatic memory management: When
  7522. a component is destroyed, all its child components will be destroyed first.
  7523. </p>
  7524. </descr>
  7525. </element>
  7526. <element name="TComponent.FComponentStyle"> <!-- Variable -->
  7527. <short>Contains the component's style.</short>
  7528. <descr>
  7529. <var>FComponentStyle</var> is the location where the <link
  7530. id="TComponent.ComponentStyle">ComponentStyle</link> property is read from.
  7531. </descr>
  7532. <seealso>
  7533. </seealso>
  7534. <link id="TComponent.ComponentStyle">ComponentStyle</link>
  7535. </element>
  7536. <element name="TComponent.ChangeName"> <!-- Procedure -->
  7537. <short>Actually sets the component name.</short>
  7538. <descr>
  7539. <p>
  7540. <var>ChangeName</var> is called by the <link
  7541. id="TComponent.SetName">SetName</link> procedure when the component name is
  7542. set and the name has been verified. It actually sets the name of the
  7543. component to <var>NewName</var>, and can be used to bypass the name checks which are done when the
  7544. <link id="TComponent.Name">Name</link> property is set.
  7545. </p>
  7546. <p>
  7547. Application programmers should never use <var>SetName</var> directly.
  7548. </p>
  7549. </descr>
  7550. <seealso>
  7551. <link id="TComponent.SetName">SetName</link>
  7552. <link id="TComponent.Name">Name</link>
  7553. </seealso>
  7554. </element>
  7555. <element name="TComponent.DefineProperties"> <!-- Procedure -->
  7556. <short>Defines fake top,left properties for handling in the IDE.</short>
  7557. <descr>
  7558. <var>DefineProperties</var> overrides the standard <link
  7559. id="TPersistent.DefineProperties"/> to store the top/left properties used to
  7560. display an icon for a non-visual component in an IDE.
  7561. </descr>
  7562. <seealso>
  7563. <link id="TPersistent.DefineProperties"/>
  7564. </seealso>
  7565. </element>
  7566. <element name="TComponent.GetChildren"> <!-- Procedure -->
  7567. <short>Must be overridden by descendents to return all child components that must be streamed.</short>
  7568. <descr>
  7569. <p>
  7570. <var>GetChildren</var> is called by the streaming system to determine which
  7571. child components should be streamed as well when the component is being
  7572. streamed.
  7573. By default, no child components are streamed, i.e. the <var>TComponent</var>
  7574. implementation is empty.
  7575. </p>
  7576. <p>
  7577. <var>TComponent</var> descendents should override this method. For each
  7578. child that needs to be streamed, <var>Proc</var> should be called with as
  7579. an argument the child component that must be streamed. The <var>Root</var>
  7580. argument contains the root component relative to which all streaming is
  7581. done.
  7582. </p>
  7583. </descr>
  7584. <seealso>
  7585. <link id="TComponent.WriteState"/>
  7586. </seealso>
  7587. </element>
  7588. <element name="TComponent.GetChildOwner"> <!-- Function -->
  7589. <short>Returns the owner of any children.</short>
  7590. <descr>
  7591. <p>
  7592. <var>GetChildOwner</var> returns the owner of the children that are read from the stream.
  7593. If the method returns <var>Nil</var> (the default) this means that streamed
  7594. child components are owned by the root component of the streaming process
  7595. (usually a Form or Datamodule)
  7596. </p>
  7597. <p>
  7598. Application programmers should not call <var>GetChildOwner</var> directly,
  7599. it is called by the streaming system when needed.
  7600. </p>
  7601. </descr>
  7602. <seealso>
  7603. <link id="TComponent.WriteState"/>
  7604. <link id="TComponent.ReadState"/>
  7605. <link id="TComponent.Owner"/>
  7606. <link id="TComponent.GetChildParent"/>
  7607. </seealso>
  7608. </element>
  7609. <element name="TComponent.GetChildParent"> <!-- Function -->
  7610. <short>Returns the parent of any children.</short>
  7611. <descr>
  7612. <p>
  7613. <var>GetChildParent</var> returns the parent component of the child
  7614. components being streamed. The parent property is a visual property, which
  7615. is not always meaningful. If there is no parent component, the owner
  7616. of child components that are streamed is returned. If <var>Nil</var> is
  7617. returned, then the root component of the streaming operation is assumed.
  7618. The <var>TComponent</var> implementation of this method returns
  7619. <var>Self</var>.
  7620. </p>
  7621. <p>
  7622. Application programmers should not call this method, it is called
  7623. automatically by the streaming mechanism.
  7624. </p>
  7625. </descr>
  7626. <seealso>
  7627. <link id="TComponent.GetChildOwner"/>
  7628. </seealso>
  7629. </element>
  7630. <element name="TComponent.GetNamePath"> <!-- Function -->
  7631. <short>Returns the name path of this component.</short>
  7632. <descr>
  7633. <p>
  7634. <var>GetNamePath</var> returns the name of the component as it will be
  7635. shown in the object inspector.
  7636. </p>
  7637. <p>
  7638. <var>TComponent</var> overrides <var>GetNamePath</var> so it returns the
  7639. <link id="TComponent.Name">Name</link> property of the component.
  7640. </p>
  7641. </descr>
  7642. <seealso>
  7643. <link id="TComponent.Name">Name</link>
  7644. <link id="TPersistent.GetNamePath"/>
  7645. </seealso>
  7646. </element>
  7647. <element name="TComponent.GetOwner"> <!-- Function -->
  7648. <short>Returns the owner of this component.</short>
  7649. <descr>
  7650. <var>GetOwner</var> returns the owner of this component as indicated by the
  7651. <link id="TComponent.Owner">Owner</link> property. The
  7652. <var>GetOwner</var> call is introduced in <link id="TPersistent"/>
  7653. and is used by the streaming system to determine the 'owner' of a component.
  7654. </descr>
  7655. <seealso>
  7656. <link id="TPersistent.GetOwner"/>
  7657. <link id="TComponent.Owner"/>
  7658. </seealso>
  7659. </element>
  7660. <element name="TComponent.Loaded"> <!-- Procedure -->
  7661. <short>Called when the component has finished loading.</short>
  7662. <descr>
  7663. <p>
  7664. <var>Loaded</var> is called by the streaming system when a root
  7665. component was completely read from a stream and all properties and
  7666. references to other objects have been resolved by the streaming
  7667. system. Descendents of <var>TComponent</var> should override this method to
  7668. do some additional processing of properties after all published
  7669. properties have been set from values obtained from the stream.
  7670. </p>
  7671. <p>
  7672. Application programmers should never call <var>Loaded</var> directly, this
  7673. is done automatically by the streaming system.
  7674. </p>
  7675. </descr>
  7676. <seealso>
  7677. <link id="TComponent.ReadState"/>
  7678. <link id="TComponent.ComponentState"/>
  7679. </seealso>
  7680. </element>
  7681. <element name="TComponent.Notification"> <!-- Procedure -->
  7682. <short>Called by components that are freed and which received a FreeNotification.</short>
  7683. <descr>
  7684. <p>
  7685. <var>Notification</var> is called whenever a child component is destroyed,
  7686. inserted or removed from the list of owned component. Components that
  7687. were requested to send a notification when they are freed
  7688. ((with <link id="TComponent.FreeNotification">FreeNotification</link>)
  7689. will also call <var>Notification</var> when they are freed.
  7690. </p>
  7691. <p>The <var>AComponent</var> parameter specifies which component sends the
  7692. notification, and <var>Operation</var> specifies whether the component is
  7693. being inserted into or removed from the child component list, or whether it
  7694. is being destroyed.
  7695. </p>
  7696. <p>
  7697. Descendents of <var>TComponent</var> can use <link
  7698. id="TComponent.FreeNotification">FreeNotification</link> to request
  7699. notification of the destruction of another object. By overriding the
  7700. <var>Notification</var> method, they can do special processing (typically,
  7701. set a reference to this component to <var>Nil</var>)
  7702. when this component is destroyed. The <var>Notification</var> method is
  7703. called quite often in the streaming process, so speed should be a
  7704. consideration when overriding this method.
  7705. </p>
  7706. </descr>
  7707. <seealso>
  7708. <link id="TOperation"/>
  7709. <link id="TComponent.FreeNotification"/>
  7710. </seealso>
  7711. </element>
  7712. <element name="TComponent.ReadState"> <!-- Procedure -->
  7713. <short>Read the component's state from a stream.</short>
  7714. <descr>
  7715. <p>
  7716. <var>ReadState</var> reads the component's state from a stream through the
  7717. reader object <var>reader</var>. Values for all published properties of
  7718. the component can be read from the stream. Normally there is no need to
  7719. call <var>ReadState</var> directly. The streaming system calls
  7720. <var>ReadState</var> itself.
  7721. </p>
  7722. <p>
  7723. The <link id="TComponent"/> implementation of <var>ReadState</var> simply
  7724. calls <link id="TReader.ReadData"/> Descendent classes can, however,
  7725. override <var>ReadState</var>to provide additional processing of stream
  7726. data.
  7727. </p>
  7728. </descr>
  7729. <seealso>
  7730. <link id="TComponent.WriteState">WriteState</link>
  7731. <link id="TStream.ReadComponent"/>
  7732. <link id="TReader.ReadData"/>
  7733. </seealso>
  7734. </element>
  7735. <element name="TComponent.SetAncestor"> <!-- Procedure -->
  7736. <short>Sets the <var>csAncestor</var> state of the component.</short>
  7737. <descr>
  7738. <p>
  7739. <var>SetAncestor</var> includes or excludes the <var>csAncestor</var> flag
  7740. in the <link id="TComponent.ComponentState">ComponentState</link> set property,
  7741. depending on the boolean <var>Value</var>. The flag is set recursively for
  7742. all owned components as well.
  7743. </p>
  7744. <p>
  7745. This is normally only done during the streaming system, and should not be called
  7746. directly by an application programmer.
  7747. </p>
  7748. </descr>
  7749. <seealso>
  7750. <link id="TComponent.ComponentState">ComponentState</link>
  7751. </seealso>
  7752. </element>
  7753. <element name="TComponent.SetDesigning"> <!-- Procedure -->
  7754. <short>Sets the <var>csDesigning</var> state of the component.</short>
  7755. <descr>
  7756. <p>
  7757. <var>SetDesigning</var> includes or excludes the <var>csDesigning</var> flag
  7758. in the <link id="TComponent.ComponentState">ComponentState</link> set property,
  7759. depending on the boolean <var>Value</var>. The flag is set recursively for
  7760. all owned components as well.
  7761. </p>
  7762. <p>
  7763. This is normally only done during the streaming system, and should not be called
  7764. directly by an application programmer.
  7765. </p>
  7766. </descr>
  7767. <seealso>
  7768. </seealso>
  7769. </element>
  7770. <element name="TComponent.SetName"> <!-- Procedure -->
  7771. <short>Write handler for <link id="TComponent.Name">Name</link> property.</short>
  7772. <descr>
  7773. <var>SetName</var> is the write handler for the <link
  7774. id="TComponent.Name">Name</link> property. It checks whether the desired
  7775. name is valid (i.e is a valid identifier) and is unique among the children
  7776. of the owner component. If either conditions is not satisfied, an exception
  7777. is raised.
  7778. </descr>
  7779. <seealso>
  7780. <link id="TComponent.Name">Name</link>
  7781. <link id="TComponent.ValidateRename">ValidateRename</link>
  7782. </seealso>
  7783. </element>
  7784. <element name="TComponent.SetChildOrder"> <!-- Procedure -->
  7785. <short>Determines the order in which children are streamed/created.</short>
  7786. <descr>
  7787. This method does nothing. It can be used to change the order in which child
  7788. components are streamed and created. This can be used by descendent classes
  7789. to optimize or correct the order in which child components are streamed.
  7790. </descr>
  7791. <seealso>
  7792. <link id="TComponent.ReadState"/>
  7793. </seealso>
  7794. </element>
  7795. <element name="TComponent.SetParentComponent"> <!-- Procedure -->
  7796. <short>Set the parent component.</short>
  7797. <descr>
  7798. <var>SetParentComponent</var> does nothing, but is called by the streaming
  7799. system to set the parent component of the current component. This method
  7800. can be overridden by descendent components to set the parent component of
  7801. the current component.
  7802. </descr>
  7803. <seealso>
  7804. <link id="TComponent.Owner">Owner</link>
  7805. </seealso>
  7806. </element>
  7807. <element name="TComponent.Updating"> <!-- Procedure -->
  7808. <short>Sets the state to <var>csUpdating</var></short>
  7809. <descr>
  7810. <p>
  7811. <var>Updating</var> includes <var>csUpdating</var> in the <link
  7812. id="TComponent.ComponentState">ComponentState</link> property of the
  7813. component.
  7814. </p>
  7815. <p>
  7816. Normally, an application programmer should not call this method directly, it
  7817. is called automatically by the streaming system.
  7818. </p>
  7819. </descr>
  7820. <seealso>
  7821. <link id="TComponent.Updated">Updated</link>
  7822. <link id="TComponent.ComponentState">ComponentState</link>
  7823. </seealso>
  7824. </element>
  7825. <element name="TComponent.Updated"> <!-- Procedure -->
  7826. <short>Ends the <var>csUpdating</var> state.</short>
  7827. <descr>
  7828. <p>
  7829. <var>Updated</var> excludes <var>csUpdating</var> from the <link
  7830. id="TComponent.ComponentState">ComponentState</link> property of the
  7831. component.
  7832. </p>
  7833. <p>
  7834. Normally, an application programmer should not call this method directly, it
  7835. is called automatically by the streaming system.
  7836. </p>
  7837. </descr>
  7838. <seealso>
  7839. <link id="TComponent.Updating">Updating</link>
  7840. <link id="TComponent.ComponentState">ComponentState</link>
  7841. </seealso>
  7842. </element>
  7843. <element name="TComponent.UpdateRegistry"> <!-- Procedure -->
  7844. <short>For compatibilty only.</short>
  7845. <descr>
  7846. This method does nothing, and is provided for compatibility only.
  7847. </descr>
  7848. <seealso>
  7849. </seealso>
  7850. </element>
  7851. <element name="TComponent.ValidateRename"> <!-- Procedure -->
  7852. <short>Called when a name change must be validated</short>
  7853. <descr>
  7854. <var>ValidateRename</var> checks whether <var>NewName</var> is a valid
  7855. replacement for <var>CurName</var> for component <var>AComponent</var>.
  7856. Two owned components of a component can not have the same name.
  7857. If a child component with the same name is found, then an exception
  7858. is raised.
  7859. </descr>
  7860. <seealso>
  7861. <link id="TComponent.SetName">SetName</link>
  7862. <link id="TComponent.Name">Name</link>
  7863. </seealso>
  7864. </element>
  7865. <element name="TComponent.ValidateContainer"> <!-- Procedure -->
  7866. <short>??</short>
  7867. <descr>
  7868. <var>ValidateContainer</var> is provided for compatibility only.
  7869. It doesn't do anything in Free Pascal.
  7870. </descr>
  7871. </element>
  7872. <element name="TComponent.ValidateInsert"> <!-- Procedure -->
  7873. <short>Called when an insert must be validated.</short>
  7874. <descr>
  7875. <p>
  7876. <var>ValidateInsert</var> should be implemented by descendent components to
  7877. see whether the <var>AComponent</var> component may be inserted in the list
  7878. of owned components.
  7879. </p>
  7880. <p>
  7881. This procedure does nothing in the <var>TComponent</var> implementation, it
  7882. should be overridden by descendant components.
  7883. </p>
  7884. </descr>
  7885. <seealso>
  7886. <link id="TComponent.Insert">Insert</link>
  7887. </seealso>
  7888. </element>
  7889. <element name="TComponent.WriteState"> <!-- Procedure -->
  7890. <short>Writes the component to a stream.</short>
  7891. <descr>
  7892. <p>
  7893. <var>WriteState</var> writes the component's current state to a stream
  7894. through the <link id="TWriter">writer</link> object <var>writer</var>.
  7895. Values for all published properties of the component can be written to
  7896. the stream. Normally there is no need to call <var>WriteState</var> directly.
  7897. The streaming system calls <var>WriteState</var> itself.
  7898. </p>
  7899. <p>
  7900. The <link id="TComponent"/> implementation of <var>WriteState</var> simply
  7901. calls <link id="TWriter.WriteData"/>. Descendent classes can, however,
  7902. override <var>WriteState</var>to provide additional processing of stream
  7903. data.
  7904. </p>
  7905. </descr>
  7906. <seealso>
  7907. <link id="TComponent.ReadState">ReadState</link>
  7908. <link id="TStream.WriteComponent"/>
  7909. <link id="TWriter.WriteData"/>
  7910. </seealso>
  7911. </element>
  7912. <element name="TComponent.Create"> <!-- Constructor -->
  7913. <short>Creates a new instance of the component.</short>
  7914. <descr>
  7915. <var>Create</var> creates a new instance of a <var>TComponent</var> class.
  7916. If <var>AOwner</var> is not <var>Nil</var>, the new component attempts to
  7917. insert itself in the list of owned components of the owner.
  7918. </descr>
  7919. <seealso>
  7920. <link id="TComponent.Insert">Insert</link>
  7921. <link id="TComponent.Owner">Owner</link>
  7922. </seealso>
  7923. </element>
  7924. <element name="TComponent.SetSubComponent">
  7925. <short>Sets the <var>csSubComponent</var> style.</short>
  7926. <descr>
  7927. <var>SetSubComponent</var> includes <var>csSubComponent</var> in the
  7928. <link id="TComponent.ComponentStyle">ComponentStyle</link> property
  7929. if <var>ASubComponent</var> is <var>True</var>, and
  7930. excludes it again if <var>ASubComponent</var> is <var>False</var>.
  7931. </descr>
  7932. <seealso>
  7933. <link id="TComponent.ComponentStyle"/>
  7934. </seealso>
  7935. </element>
  7936. <element name="TComponent.Destroy"> <!-- Destructor -->
  7937. <short>Destroys the instance of the component.</short>
  7938. <descr>
  7939. <var>Destroy</var> sends a <var>opRemove</var> notification to all components
  7940. in the free-notification list. After that, all owned components are
  7941. destroyed by calling <link id="TComponent.DestroyComponents">DestroyComponents</link>
  7942. (and hence removed from the list of owned components). When this
  7943. is done, the component removes itself from its owner's child component list.
  7944. After that, the parent's destroy method is called.
  7945. </descr>
  7946. <seealso>
  7947. <link id="TComponent.Notification">Notification</link>
  7948. <link id="TComponent.Owner">Owner</link>
  7949. <link id="TComponent.DestroyComponents">DestroyComponents</link>
  7950. <link id="TComponent.Components">Components</link>
  7951. </seealso>
  7952. </element>
  7953. <element name="TComponent.DestroyComponents"> <!-- Procedure -->
  7954. <short>Destroy child components.</short>
  7955. <descr>
  7956. <p>
  7957. <var>DestroyComponents</var> calls the destructor of all owned components,
  7958. till no more components are left in the <link id="TComponent.Components">Components</link> array.
  7959. </p>
  7960. <p>
  7961. Calling the destructor of an owned component has as the effect that the
  7962. component will remove itself from the list of owned components, if nothing
  7963. has disrupted the sequence of destructors.
  7964. </p>
  7965. </descr>
  7966. <errors>
  7967. If an overridden 'destroy' method does not call it's intherited
  7968. destructor or raises an exception, it's <link id="TComponent.Destroy"/>
  7969. destructor will not be called, which may result in an endless loop.
  7970. </errors>
  7971. <seealso>
  7972. <link id="TComponent.Destroy">Destroy</link>
  7973. <link id="TComponent.Components">Components</link>
  7974. </seealso>
  7975. </element>
  7976. <element name="TComponent.Destroying"> <!-- Procedure -->
  7977. <short>Called when the component is being destroyed</short>
  7978. <descr>
  7979. <p>
  7980. <var>Destroying</var> sets the <var>csDestroying</var> flag in the
  7981. component's <link id="TComponent.State">state</link> property, and does the
  7982. same for all owned components.
  7983. </p>
  7984. <p>
  7985. It is not necessary to call <var>Destroying</var> directly, the destructor <link
  7986. id="TComponent.Destroy">Destroy</link> does this automatically.
  7987. </p>
  7988. </descr>
  7989. <seealso>
  7990. <link id="TComponent.State">State</link>
  7991. <link id="TComponent.Destroy">Destroy</link>
  7992. </seealso>
  7993. </element>
  7994. <element name="TComponent.FindComponent"> <!-- Function -->
  7995. <short>Finds and returns the named component in the owned components.</short>
  7996. <descr>
  7997. <var>FindComponent</var> searches the component with name <var>AName</var>
  7998. in the list of owned components. If <var>AName</var> is empty, then
  7999. <var>Nil</var> is returned.
  8000. </descr>
  8001. <seealso>
  8002. <link id="TComponent.Components">Components</link>
  8003. <link id="TComponent.Name">Name</link>
  8004. </seealso>
  8005. </element>
  8006. <element name="TComponent.FreeNotification"> <!-- Procedure -->
  8007. <short>Ask the component to notify called when it is being destroyed.</short>
  8008. <descr>
  8009. <var>FreeNotification</var> inserts <var>AComponent</var> in the
  8010. freenotification list. When the component is destroyed, the <link
  8011. id="TComponent.Notification">Notification</link> method is called for all
  8012. components in the freenotification list.
  8013. </descr>
  8014. <seealso>
  8015. <link id="TComponent.Components">Components</link>
  8016. <link id="TComponent.Notification">Notification</link>
  8017. </seealso>
  8018. </element>
  8019. <element name="TComponent.FreeOnRelease"> <!-- Procedure -->
  8020. <short>Part of the <var>IVCLComObject</var> interface.</short>
  8021. <descr>
  8022. Provided for Delphi compatibility, but is not yet impltmentedd.
  8023. </descr>
  8024. </element>
  8025. <element name="TComponent.GetParentComponent"> <!-- Function -->
  8026. <short>Returns the parent component.</short>
  8027. <descr>
  8028. <var>GetParentComponent</var> can be implemented to return the parent
  8029. component of this component. The implementation of this method in
  8030. <var>TComponent</var> always returns <var>Nil</var>. Descendent classes must
  8031. override this method to return the visual parent of the component.
  8032. </descr>
  8033. <seealso>
  8034. <link id="TComponent.HasParent">HasParent</link>
  8035. <link id="TComponent.Owner">Owner</link>
  8036. </seealso>
  8037. </element>
  8038. <element name="TComponent.HasParent"> <!-- Function -->
  8039. <short>Does the component have a parent ?</short>
  8040. <descr>
  8041. <var>HasParent</var> can be implemented to return whether the parent of the
  8042. component exists. The implementation of this method in TComponent always
  8043. returns <var>False</var>, and should be overridden by descendent classes to
  8044. return <var>True</var> when a parent is available. If <var>HasParent</var>
  8045. returns <var>True</var>, then <link
  8046. id="TComponent.GetParentComponent">GetParentComponent</link> will return the
  8047. parent component.
  8048. </descr>
  8049. <seealso>
  8050. <link id="TComponent.HasParent">HasParent</link>
  8051. <link id="TComponent.Owner">Owner</link>
  8052. </seealso>
  8053. </element>
  8054. <element name="TComponent.InsertComponent"> <!-- Procedure -->
  8055. <short>Insert the given component in the list of owned components.</short>
  8056. <descr>
  8057. <var>InsertComponent</var> attempts to insert <var>AComponent</var> in the
  8058. list with owned components. It first calls <link
  8059. id="TComponent">ValidateComponent</link> to see whether the component can be
  8060. inserted. It then checks whether there are no name conflicts by calling
  8061. <link id="TComponent.ValidateRename">ValidateRename</link>. If neither of
  8062. these checks have raised an exception the component is inserted, and
  8063. notified of the insert.
  8064. </descr>
  8065. <seealso>
  8066. <link id="TComponent.RemoveComponent">RemoveComponent</link>
  8067. <link id="TComponent.Insert">Insert</link>
  8068. <link id="TComponent.ValidateContainer">ValidateContainer</link>
  8069. <link id="TComponent.ValidateRename">ValidateRename</link>
  8070. <link id="TComponent.Notification">Notification</link>
  8071. </seealso>
  8072. </element>
  8073. <element name="TComponent.RemoveComponent"> <!-- Procedure -->
  8074. <short>Remove the given component from the list of owned components.</short>
  8075. <descr>
  8076. <var>RemoveComponent</var> will send an <var>opRemove</var> notification to
  8077. <var>AComponent</var> and will then proceed to remove <var>AComponent</var>
  8078. from the list of owned components.
  8079. </descr>
  8080. <seealso>
  8081. <link id="TComponent.InsertComponent">InsertComponent</link>
  8082. <link id="TComponent.Remove">Remove</link>
  8083. <link id="TComponent.ValidateRename">ValidateRename</link>
  8084. <link id="TComponent.Notification">Notification</link>
  8085. </seealso>
  8086. </element>
  8087. <element name="TComponent.SafeCallException"> <!-- Function -->
  8088. <short>Part of the <var>IVCLComObject</var> Interface.</short>
  8089. <descr>
  8090. Provided for Delphi compatibility, but not implemented.
  8091. </descr>
  8092. <seealso>
  8093. </seealso>
  8094. </element>
  8095. <element name="TComponent.Components"> <!-- Property -->
  8096. <short>Indexed list (zero-based) of all owned components.</short>
  8097. <descr>
  8098. <var>Components</var> provides indexed access to the list of owned
  8099. components. <var>Index</var> can range from 0 to <link
  8100. id="TComponent.ComponentCount">ComponentCount-1</link>.
  8101. </descr>
  8102. <seealso>
  8103. <link id="TComponent.ComponentCount">ComponentCount</link>
  8104. <link id="TComponent.Owner">Owner</link>
  8105. </seealso>
  8106. </element>
  8107. <element name="TComponent.ComponentCount"> <!-- Property -->
  8108. <short>Count of owned components</short>
  8109. <descr>
  8110. <var>ComponentCount</var> returns the number of components that the current
  8111. component owns. It can be used to determine the valid index range in the
  8112. <link id="TComponent.Components">Component</link> array.
  8113. </descr>
  8114. <seealso>
  8115. <link id="TComponent.Components">Components</link>
  8116. <link id="TComponent.Owner">Owner</link>
  8117. </seealso>
  8118. </element>
  8119. <element name="TComponent.ComponentIndex"> <!-- Property -->
  8120. <short>Index of component in it's owner's list.</short>
  8121. <descr>
  8122. <var>ComponentIndex</var> is the index of the current component in its
  8123. owner's list of components. If the component has no owner, the value of this
  8124. property is -1.
  8125. </descr>
  8126. <seealso>
  8127. <link id="TComponent.Components">Components</link>
  8128. <link id="TComponent.ComponentCount">ComponentCount</link>
  8129. <link id="TComponent.Owner">Owner</link>
  8130. </seealso>
  8131. </element>
  8132. <element name="TComponent.ComponentState"> <!-- Property -->
  8133. <short>Current component's state.</short>
  8134. <descr>
  8135. <p>
  8136. <var>ComponentState</var> indicates the current state of the component. It
  8137. is a set of flags which indicate the various stages in the lifetime of a
  8138. component. The following values can occur in this set:
  8139. </p>
  8140. <table>
  8141. <caption>Component states</caption>
  8142. <th><td>Flag</td><td>Meaning</td></th>
  8143. <tr><td>csLoading</td><td>The component is being loaded from stream</td></tr>
  8144. <tr><td>csReading</td><td>Component properties are being read from stream.</td></tr>
  8145. <tr><td>csWriting</td><td>Component properties are weing written to stream.</td></tr>
  8146. <tr><td>csDestroying</td><td>The component or one of it's owners is being destoyed.</td></tr>
  8147. <tr><td>csAncestor</td><td>The component is being streamed as part of a frame </td></tr>
  8148. <tr><td>csUpdating</td><td>The component is being updated</td></tr>
  8149. <tr><td>csFixups</td><td>References to other components are being resolved</td></tr>
  8150. <tr><td>csFreeNotification</td><td>The component has freenotifications.</td></tr>
  8151. <tr><td>csInline</td><td>The component is being loaded as part of a frame</td></tr>
  8152. <tr><td>csDesignInstance</td><td>? not used.</td></tr>
  8153. </table>
  8154. <p>
  8155. The component state is set by various actions such as reading it from stream,
  8156. destroying it etc.
  8157. </p>
  8158. </descr>
  8159. <seealso>
  8160. <link id="TComponent.SetAncestor">SetAncestor</link>
  8161. <link id="TComponent.SetDesigning">SetDesigning</link>
  8162. <link id="TComponent.SetInline">SetInline</link>
  8163. <link id="TComponent.SetDesignInstance">SetDesignInstance</link>
  8164. <link id="TComponent.Updating">Updating</link>
  8165. <link id="TComponent.Updated">Updated</link>
  8166. <link id="TComponent.Loaded">Loaded</link>
  8167. </seealso>
  8168. </element>
  8169. <element name="TComponent.ComponentStyle"> <!-- Property -->
  8170. <short>Current component's style.</short>
  8171. <descr>
  8172. </descr>
  8173. <seealso>
  8174. </seealso>
  8175. </element>
  8176. <element name="TComponent.DesignInfo"> <!-- Property -->
  8177. <short>Information for IDE designer.</short>
  8178. <descr>
  8179. <var>DesignInformation</var> can be used by an IDE to store design
  8180. information in the component. It should not be used by an application
  8181. programmer.
  8182. </descr>
  8183. <seealso>
  8184. <link id="TComponent.Tag">Tag</link>
  8185. </seealso>
  8186. </element>
  8187. <element name="TComponent.Owner"> <!-- Property -->
  8188. <short>Owner of this component.</short>
  8189. <descr>
  8190. <var>Owner</var> returns the owner of this component. The owner cannot be
  8191. set except by explicitly inserting the component in another component's
  8192. owned components list using that component's <link
  8193. id="TComponent.InsertComponent">InsertComponent</link> method, or by
  8194. removing the component from it's owner's owned component list using the
  8195. <link id="TComponent.RemoveComponent">RemoveComponent</link> method.
  8196. </descr>
  8197. <seealso>
  8198. <link id="TComponent.Components">Components</link>
  8199. <link id="TComponent.InsertComponent">InsertComponent</link>
  8200. <link id="TComponent.RemoveComponent">RemoveComponent</link>
  8201. </seealso>
  8202. </element>
  8203. <element name="TComponent.VCLComObject"> <!-- Property -->
  8204. <short>Not implemented.</short>
  8205. <descr>
  8206. <var>VCLComObject</var> is not yet implemented in Free Pascal.
  8207. </descr>
  8208. </element>
  8209. <element name="TComponent.Name"> <!-- Property -->
  8210. <short>Name of the component.</short>
  8211. <descr>
  8212. <var>Name</var> is the name of the component. This name should be a valid
  8213. identifier, i.e. must start with a letter, and can contain only letters,
  8214. numbers and the underscore character. When attempting to set the name of a
  8215. component, the name will be checked for validity. Furthermore, when a
  8216. component is owned by another component, the name must be either empty
  8217. or must be unique among the child component names.
  8218. </descr>
  8219. <errors>
  8220. Attempting to set the name to an invalid value will result in an exception
  8221. being raised.
  8222. </errors>
  8223. <seealso>
  8224. <link id="TComponent.ValidateRename">ValidateRename</link>
  8225. <link id="TComponent.Owner">Owner</link>
  8226. </seealso>
  8227. </element>
  8228. <element name="TComponent.Tag"> <!-- Property -->
  8229. <short>Tag value of the component.</short>
  8230. <descr>
  8231. <var>Tag</var> can be used to store an integer value in the component. This
  8232. value is streamed together with all other published properties. It can be
  8233. used for instance to quickly identify a component in an event handler.
  8234. </descr>
  8235. <seealso>
  8236. <link id="TComponent.Name">Name</link>
  8237. </seealso>
  8238. </element>
  8239. <!--
  8240. *********************************************************************
  8241. TBasicAction
  8242. *********************************************************************
  8243. -->
  8244. <element name="TBasicAction">
  8245. <short>Abstract base class for all Actions.</short>
  8246. <descr>
  8247. <p>
  8248. <var>TBasicAction</var> implements a basic action class from which all
  8249. actions are derived. It introduces all basic methods of an action, and
  8250. implements functionality to maintain a list of clients, i.e. components that
  8251. are connected with this action.
  8252. </p>
  8253. <p>
  8254. Do not create instances of <var>TBasicAction</var>. Instead, create a
  8255. descendent class and create an instance of this class instead.
  8256. </p>
  8257. </descr>
  8258. <seealso>
  8259. <link id="TBasicActionLink"/>
  8260. <link id="TComponent"/>
  8261. </seealso>
  8262. </element>
  8263. <element name="TBasicAction.FClients">
  8264. <short>List with components linked to this action.
  8265. </short>
  8266. <descr>
  8267. <var>FClients</var> is a list of <link id="TBasicActionLink"/> classes which
  8268. represent links to various components that are connected to this action.
  8269. The elements in this list should not be manipulated directly, but should be
  8270. managed with the
  8271. <link id="TBasicAction.RegisterChanges">RegisterChanges</link> and
  8272. <link id="TBasicAction.UnRegisterChanges">UnRegisterChanges</link> methods.
  8273. </descr>
  8274. <seealso>
  8275. <link id="TBasicAction.RegisterChanges">RegisterChanges</link>
  8276. <link id="TBasicAction.UnRegisterChanges">UnRegisterChanges</link>
  8277. <link id="TBasicActionLink"/>
  8278. </seealso>
  8279. </element>
  8280. <element name="TBasicAction.Change">
  8281. <short>Calls the <link id="TBasicAction.OnChange">OnChange</link> handler.</short>
  8282. <descr>
  8283. <p>
  8284. <var>Change</var> calls the <link id="TBasicAction.OnChange">OnChange</link>
  8285. handler if one is assigned.
  8286. </p>
  8287. <p>
  8288. Application programmers should not call <var>Change</var> directly.
  8289. It is called automatically if a property of an action component changes.
  8290. </p>
  8291. <p>
  8292. Descendent classes of <var>TBasicAction</var> should call explicitly call
  8293. <var>Change</var> if one of their properties that affect client controls
  8294. changes its value.
  8295. </p>
  8296. </descr>
  8297. </element>
  8298. <element name="TBasicAction.SetOnExecute">
  8299. <short>Assigns an <link id="TBasicAction.OnExecute">OnExecute</link> event
  8300. handler</short>
  8301. <descr>
  8302. <var>SetOnExecute</var> sets the
  8303. <link id="TBasicAction.OnExecute">OnExecute</link> handler of the component.
  8304. It also propagates this event to all client controls, and finally triggers
  8305. the <link id="TBasicAction.OnChange">OnChange</link> event.
  8306. </descr>
  8307. <seealso>
  8308. <link id="TBasicAction.OnExecute">OnExecute</link>
  8309. <link id="TBasicAction.OnChange">OnChange</link>
  8310. </seealso>
  8311. </element>
  8312. <element name="TBasicAction.OnChange">
  8313. <short>Occurs when one of the action's properties changes.
  8314. </short>
  8315. <descr>
  8316. <p>
  8317. <var>OnChange</var> is the event that is triggered when one of the
  8318. action's properties changes. This event should be used by client
  8319. controls or descendent classes to respond to these changes in the properties
  8320. of the action.
  8321. </p>
  8322. <p>
  8323. Application programmers should never use the <var>OnChange</var> event
  8324. directly.
  8325. </p>
  8326. </descr>
  8327. </element>
  8328. <element name="TBasicAction.Create">
  8329. <short>Creates a new instance of a <link id="TBasicAction"/> class.
  8330. </short>
  8331. <descr>
  8332. <p>
  8333. <var>Create</var> calls the inherited constructor, and then initializes the
  8334. list of clients controls (or action lists) by adding the <var>AClient</var>
  8335. argument to the list of client controls.
  8336. </p>
  8337. <p>
  8338. Under normal circumstances it should not be necessary to create a
  8339. <var>TBasicAction</var> descendent manually, actions are created in an IDE.
  8340. </p>
  8341. </descr>
  8342. <seealso>
  8343. <link id="TBasicAction.Destroy">Destroy</link>
  8344. <link id="TBasicAction.AssignClient">AssignClient</link>
  8345. </seealso>
  8346. </element>
  8347. <element name="TBasicAction.Destroy">
  8348. <short>Destroys the action.</short>
  8349. <descr>
  8350. <p>
  8351. <var>Destroy</var> cleans up the list of client controls and then calls the
  8352. inherited destructor.
  8353. </p>
  8354. <p>
  8355. An application programmer should not call <var>Destroy</var> directly;
  8356. Instead <var>Free</var> should be called, if it needs to be called at all.
  8357. Normally the controlling class (e.g. a TActionList) will destroy the action.
  8358. </p>
  8359. </descr>
  8360. </element>
  8361. <element name="TBasicAction.HandlesTarget">
  8362. <short>Determines whether <var>Target</var> can be handled by this action
  8363. </short>
  8364. <descr>
  8365. <p>
  8366. <var>HandlesTarget</var> returns <var>True</var> if <var>Target</var> is
  8367. a valid client for this action and if so, if it is in a suitable state to
  8368. execute the action. An application programmer should never need to call
  8369. <var>HandlesTarget</var> directly, it will be called by the action itself
  8370. when needed.
  8371. </p>
  8372. <p>
  8373. In <var>TBasicAction</var> this method is empty; descendent classes should
  8374. override this method to implement appropriate checks.
  8375. </p>
  8376. </descr>
  8377. <seealso>
  8378. <link id="TBasicAction.UpdateTarget">UpdateTarget</link>
  8379. <link id="TBasicAction.ExecuteTarget">ExecuteTarget</link>
  8380. </seealso>
  8381. </element>
  8382. <element name="TBasicAction.UpdateTarget">
  8383. <short>Notify client controls when the action updates itself.</short>
  8384. <descr>
  8385. <p>
  8386. <var>UpdateTarget</var> should update the client control specified by
  8387. <var>Target</var> when the action updates itself.
  8388. In <var>TBasicAction</var>, the implementation of <var>UpdateTarget</var>
  8389. is empty. Descendent classes should override and implement
  8390. <var>UpdateTarget</var> to actually update the <var>Target</var> object.
  8391. </p>
  8392. <p>
  8393. An application programmer should never need to call
  8394. <var>HandlesTarget</var> directly, it will be called by the action itself
  8395. when needed.
  8396. </p>
  8397. </descr>
  8398. <seealso>
  8399. <link id="TBasicAction.HandlesTarget">HandlesTarget</link>
  8400. <link id="TBasicAction.ExecuteTarget">ExecuteTarget</link>
  8401. </seealso>
  8402. </element>
  8403. <element name="TBasicAction.ExecuteTarget">
  8404. <short>Executes the action on the <var>Target</var> object</short>
  8405. <descr>
  8406. <p>
  8407. <var>ExecuteTarget</var> performs the action on the <var>Target</var>
  8408. object. In <var>TBasicAction</var> this method does nothing. Descendent
  8409. classes should implement the action to be performed. For instance an action
  8410. to post data in a dataset could call the <var>Post</var> method of the
  8411. dataset.
  8412. </p>
  8413. <p>
  8414. An application programmer should never call <var>ExecuteTarget</var>
  8415. directly.
  8416. </p>
  8417. </descr>
  8418. <seealso>
  8419. <link id="TBasicAction.HandlesTarget">HandlesTarget</link>
  8420. <link id="TBasicAction.ExecuteTarget">UpdateTarget</link>
  8421. <link id="TBasicAction.Execute">Execute</link>
  8422. </seealso>
  8423. </element>
  8424. <element name="TBasicAction.Execute">
  8425. <short>Triggers the <link id="TBasicAction.OnExecute">OnExecute</link> event</short>
  8426. <descr>
  8427. <var>Execute</var> triggers the <var>OnExecute</var> event, if one is
  8428. assigned. It returns <var>True</var> if the event handler was called,
  8429. <var>False</var> otherwise.
  8430. </descr>
  8431. </element>
  8432. <element name="TBasicAction.RegisterChanges">
  8433. <short>Registers a new client with the action.</short>
  8434. <descr>
  8435. <var>RegisterChanges</var> adds <var>Value</var> to the list of clients.
  8436. </descr>
  8437. <seealso>
  8438. <link id="TBasicAction.UnregisterChanges">UnregisterChanges</link>
  8439. </seealso>
  8440. </element>
  8441. <element name="TBasicAction.UnregisterChanges">
  8442. <short>Unregisters a client from the list of clients</short>
  8443. <descr>
  8444. <var>UnregisterChanges</var> removes <var>Value</var> from the list of clients.
  8445. This is called for instance when the action is destroyed, or when the client
  8446. is assigned a new action.
  8447. </descr>
  8448. <seealso>
  8449. <link id="TBasicAction.UnregisterChanges">UnregisterChanges</link>
  8450. <link id="TBasicAction.Destroy">Destroy</link>
  8451. </seealso>
  8452. </element>
  8453. <element name="TBasicAction.Update">
  8454. <short>Triggers the <link id="TBasicAction.OnUpdate">OnUpdate</link> event</short>
  8455. <descr>
  8456. <p>
  8457. <var>Update</var> triggers the <var>OnUpdate</var> event, if one is
  8458. assigned. It returns <var>True</var> if the event was triggered, or
  8459. <var>False</var> if no event was assigned.
  8460. </p>
  8461. <p>
  8462. Application programmers should never run <var>Update</var> directly. The
  8463. <var>Update</var> method is called automatically by the action mechanism;
  8464. Normally this is in the Idle time of an application. An application
  8465. programmer should assign the <link id="TBasicAction.OnUpdate">OnUpdate</link>
  8466. event, and perform any checks in that handler.
  8467. </p>
  8468. </descr>
  8469. <seealso>
  8470. <link id="TBasicAction.OnUpdate">OnUpdate</link>
  8471. <link id="TBasicAction.Execute">Execute</link>
  8472. <link id="TBAsicAction.UpdateTarget">UpdateTarget</link>
  8473. </seealso>
  8474. </element>
  8475. <element name="TBasicAction.ActionComponent">
  8476. <short>Returns the component that initiated the action.</short>
  8477. <descr>
  8478. <var>ActionComponent</var> is set to the component that caused the action to
  8479. execute, e.g. a toolbutton or a menu item.
  8480. The property is set just before the action executes, and is reset to nil
  8481. after the action was executed.
  8482. </descr>
  8483. <seealso>
  8484. <link id="TBasicAction.Execute">Execute</link>
  8485. <link id="TBasicAction.OnExecute">OnExecute</link>
  8486. </seealso>
  8487. </element>
  8488. <element name="TBasicAction.OnExecute">
  8489. <short>Event triggered when the action executes.</short>
  8490. <descr>
  8491. <p>
  8492. <var>OnExecute</var> is the event triggered when the action is activated
  8493. (executed). The event is triggered e.g. when the user clicks e.g. on a menu
  8494. item or a button associated to the action. The application programmer
  8495. should provide a <var>OnExecute</var> event handler to execute whatever code
  8496. is necessary when the button is pressed or the menu item is chosen.
  8497. </p>
  8498. <p>
  8499. Note that assigning an <var>OnExecute</var> handler will result in the
  8500. <link id="TBasicAction.Execute">Execute</link> method returning a
  8501. <var>True</var> value. Predefined actions (such as dataset actions)
  8502. will check the result of <var>Execute</var> and will not perform their
  8503. normal task if the <var>OnExecute</var> handler was called.
  8504. </p>
  8505. </descr>
  8506. <seealso>
  8507. <link id="TBasicAction.Execute">Execute</link>
  8508. <link id="TBasicAction.OnUpdate">OnUpdate</link>
  8509. </seealso>
  8510. </element>
  8511. <element name="TBasicAction.OnUpdate">
  8512. <short>Event trigged when the application is idle.</short>
  8513. <descr>
  8514. <var>OnUpdate</var> is the event triggered when the application is idle, and
  8515. the action is being updated. The <var>OnUpdate</var> event can be used to
  8516. set the state of the action, for instance disable it if the action cannot be
  8517. executed at this point in time.
  8518. </descr>
  8519. <seealso>
  8520. <link id="TBasicAction.Update">Update</link>
  8521. <link id="TBasicAction.OnExecute">OnExecute</link>
  8522. </seealso>
  8523. </element>
  8524. <!--
  8525. *********************************************************************
  8526. TBasicActionLink
  8527. *********************************************************************
  8528. -->
  8529. <element name="TBasicActionLink">
  8530. <short>Link between actions and action clients (e.g. controls)</short>
  8531. <descr>
  8532. <p>
  8533. <var>TBasicActionLink</var> links an Action to its clients. With each client
  8534. for an action, a <var>TBasicActionLink</var> class is instantiated to handle
  8535. the communication between the action and the client. It passes events
  8536. between the action and its clients, and thus presents the action with a
  8537. uniform interface to the clients.
  8538. </p>
  8539. <p>An application programmer should never use a <var>TBasicActionLink</var>
  8540. instance directly; They are created automatically when an action is
  8541. associated with a component. Component programmers should create specialized
  8542. descendents of <var>TBasicActionLink</var> which communicate changes in the
  8543. action to the component.
  8544. </p>
  8545. </descr>
  8546. <seealso>
  8547. <link id="TBasicAction"/>
  8548. </seealso>
  8549. </element>
  8550. <element name="TBasicActionLink.FAction">
  8551. <short>The action with which this link is associated</short>
  8552. <descr>
  8553. <var>FAction</var> contains a reference to the action with which this link
  8554. is associated. It should never be manipulated directly. It will be set
  8555. automatically by the <link id="TBasicActionLink.SetAction">SetAction</link> write method
  8556. for the <link id="TBasicActionLink.Action">Action</link> property.
  8557. </descr>
  8558. <seealso>
  8559. <link id="TBasicActionLink.SetAction">SetAction</link>
  8560. <link id="TBasicActionLink.Action">Action</link>
  8561. </seealso>
  8562. </element>
  8563. <element name="TBasicActionLink.AssignClient">
  8564. <short>Assigns a control (client) to the action link.</short>
  8565. <descr>
  8566. <var>AssignClient</var> assigns a control to the actionlink and hence to the
  8567. action. Descendent classes can override <var>AssignClient</var> to check
  8568. whether the new client is a suitable client for this action.
  8569. </descr>
  8570. <seealso>
  8571. <link id="TBasicActionLink.Action">Action</link>
  8572. </seealso>
  8573. </element>
  8574. <element name="TBasicActionLink.Change">
  8575. <short>Executed whenever the Action is changed.</short>
  8576. <descr>
  8577. <p>
  8578. <var>Change</var> is executed whenever the action changes.
  8579. It executes the <link id="TBasicActionLink.OnChange">OnChange</link>
  8580. handler, if one is assigned.
  8581. </p>
  8582. <p>
  8583. Component programmers may decide to override the <var>Change</var>
  8584. procedure in descendent classes to perform aditional actions when
  8585. the properties of the action changes.
  8586. </p>
  8587. </descr>
  8588. <seealso>
  8589. <link id="TBasicActionLink.OnChange">OnChange</link>
  8590. <link id="TBasicAction.Change"/>
  8591. </seealso>
  8592. </element>
  8593. <element name="TBasicActionLink.IsOnExecuteLinked">
  8594. <short>Returns whether the client has it's OnExecute property linked.</short>
  8595. <descr>
  8596. <var>IsOnExecuteLinked</var> always returns true in <var>TBasicActionLink</var>.
  8597. Descendent classes can override this method to provide a different result.
  8598. </descr>
  8599. <link id="TBasicActionLink.OnExecute">OnExecute</link>
  8600. </element>
  8601. <element name="TBasicActionLink.SetAction">
  8602. <short>Sets the action with which the actionlink is associated.</short>
  8603. <descr>
  8604. <var>SetAction</var> is the write handler for the <link
  8605. id="TBasicActionLink.Action">Action</link> property. It sets the
  8606. <var>Action</var> property to it's new value, after unregistering itself
  8607. with the old action, if there was one.
  8608. </descr>
  8609. <seealso>
  8610. <link id="TBasicActionLink.Action">Action</link>
  8611. <link id="TBasicAction"/>
  8612. </seealso>
  8613. </element>
  8614. <element name="TBasicActionLink.SetOnExecute">
  8615. <short>Assigns the <link id="TBasicAction.OnExecute">OnExecute</link> handler
  8616. to the client</short>
  8617. <descr>
  8618. <var>SetOnExecute</var> must be overridden by descendent classes to pass the
  8619. <var>OnExecute</var> handler of the associated action to the client control.
  8620. It will attach the <var>OnExecute</var> handler to whatever handler is
  8621. appropriate for the client control.
  8622. </descr>
  8623. <seealso>
  8624. <link id="TBasicAction.OnExecute">OnExecute</link>
  8625. <link id="TBasicAction"/>
  8626. </seealso>
  8627. </element>
  8628. <element name="TBasicActionLink.Create">
  8629. <short>Creates a new instance of the TBasicActionLink class</short>
  8630. <descr>
  8631. <p>
  8632. <var>Create</var> creates a new instance of a <var>TBasicActionLink</var>
  8633. and assigns <var>AClient</var> as the client of the link.
  8634. </p>
  8635. <p>
  8636. Application programmers should never instantiate <var>TBasicActionLink</var>
  8637. classes directly. An instance is created automatically when an action is
  8638. assigned to a control (client).
  8639. </p>
  8640. <p>
  8641. Component programmers can override the create constructor to initialize
  8642. further properties.
  8643. </p>
  8644. </descr>
  8645. <seealso>
  8646. <link id="TBasicActionLink.Destroy">Destroy</link>
  8647. </seealso>
  8648. </element>
  8649. <element name="TBasicActionLink.Destroy">
  8650. <short>Destroys the TBasicActionLink instance.</short>
  8651. <descr>
  8652. <p>
  8653. <var>Destroy</var> unregisters the <var>TBasicActionLink</var> with the
  8654. action, and then calls the inherited destructor.
  8655. </p>
  8656. <p>
  8657. Application programmers should never call <var>Destroy</var> directly. If a
  8658. link should be destroyed at all, the <var>Free</var> method should be called
  8659. instead.
  8660. </p>
  8661. </descr>
  8662. <seealso>
  8663. <link id="TBasicActionLink.Create">Create</link>
  8664. </seealso>
  8665. </element>
  8666. <element name="TBasicActionLink.Execute">
  8667. <short>Calls the action's Execute method.</short>
  8668. <descr>
  8669. <p>
  8670. <var>Execute</var> sets the <link
  8671. id="TBasicAction.ActionComponent">ActionComponent</link>
  8672. property of the associated <link id="TBasicActionLink.Action">Action</link> to
  8673. <var>AComponent</var> and then calls the Action's <link
  8674. id="TBasicAction.Execute">execute</link> method. After the action has
  8675. executed, the <var>ActionComponent</var> property is cleared again.
  8676. </p>
  8677. <p>
  8678. The return value of the function is the return value of the Action's execute
  8679. method.
  8680. </p>
  8681. <p>
  8682. Application programmers should never call <var>Execute</var> directly. This
  8683. method will be called automatically when the associated control is
  8684. activated. (e.g. a button is clicked on)
  8685. </p>
  8686. <p>
  8687. Component programmers should call <var>Execute</var> whenever the action
  8688. should be activated.
  8689. </p>
  8690. </descr>
  8691. <seealso>
  8692. <link id="TBasicActionLink.Action">Action</link>
  8693. <link id="TBasicAction.ActionComponent"/>
  8694. <link id="TBasicAction.Execute"/>
  8695. <link id="TBasicAction.onExecute"/>
  8696. </seealso>
  8697. </element>
  8698. <element name="TBasicActionLink.Update">
  8699. <short>Calls the action's Update method</short>
  8700. <descr>
  8701. <p>
  8702. <var>Update</var> calls the associated Action's <link
  8703. id="TBasicAction.Update">Update</link> methoda.
  8704. </p>
  8705. <p>
  8706. Component programmers can override the <var>Update</var> method to provide
  8707. additional processing when the <var>Update</var> method occurs.
  8708. </p>
  8709. </descr>
  8710. </element>
  8711. <element name="TBasicActionLink.Action">
  8712. <short>The action to which the link was assigned.</short>
  8713. <descr>
  8714. <var>Action</var> represents the <link id="TBasicAction">Action</link> which
  8715. was assigned to the client. Setting this property will unregister the client
  8716. at the old action (if one existed) and registers the client at the new
  8717. action.
  8718. </descr>
  8719. <seealso>
  8720. <link id="TBasicAction"/>
  8721. </seealso>
  8722. </element>
  8723. <element name="TBasicActionLink.OnChange">
  8724. <short>Event handler triggered when the action's properties change</short>
  8725. <descr>
  8726. <p>
  8727. <var>OnChange</var> is the event triggered when the action's properties
  8728. change.
  8729. </p>
  8730. <p>
  8731. Application programmers should never need to assign this event. Component
  8732. programmers can assign this event to have a client control reflect any
  8733. changes in an Action's properties.
  8734. </p>
  8735. </descr>
  8736. <seealso>
  8737. <link id="TBasicActionLink.Change">Change</link>
  8738. <link id="TBasicAction.Change"/>
  8739. </seealso>
  8740. </element>
  8741. <!--
  8742. *********************************************************************
  8743. Various calls
  8744. *********************************************************************
  8745. -->
  8746. <element name="TActiveXRegType"> <!-- Enumeration type -->
  8747. <short>Used when registering ActveX component types.</short>
  8748. <descr>
  8749. This type is provided for compatibility only, and is currently not used in
  8750. Free Pascal.
  8751. </descr>
  8752. <seealso>
  8753. </seealso>
  8754. </element>
  8755. <element name="TActiveXRegType.axrComponentOnly"> <!-- Enumeration value -->
  8756. <short></short>
  8757. </element>
  8758. <element name="TActiveXRegType.axrIncludeDescendants"> <!-- Enumeration value -->
  8759. <short></short>
  8760. </element>
  8761. <element name="RegisterComponentsProc"> <!-- Variable -->
  8762. <short>Callback procedure used when handling component registration.</short>
  8763. <descr>
  8764. <var>RegisterComponentsProc</var> can be set by an IDE to be notified when
  8765. new components are being registered. Application programmers should never
  8766. have to set <var>RegisterComponentsProc</var>
  8767. </descr>
  8768. <seealso>
  8769. <link id="RegisterNoIconProc"/>
  8770. <link id="RegisterComponents"/>
  8771. </seealso>
  8772. </element>
  8773. <element name="RegisterNoIconProc"> <!-- Variable -->
  8774. <short>Callback procedure used when handling iconless component registration.</short>
  8775. <descr>
  8776. <var>RegisterNoIconProc</var> can be set by an IDE to be notified when
  8777. new components are being registered, and which do not need an Icon in the
  8778. component palette. Application programmers should never
  8779. have to set <var>RegisterComponentsProc</var>
  8780. </descr>
  8781. <seealso>
  8782. </seealso>
  8783. </element>
  8784. <element name="Point"> <!-- Function -->
  8785. <short>Returns a <var>TPoint</var> record with the given coordinates.</short>
  8786. <descr>
  8787. <var>Point</var> returns a <link id="TPoint"/> record with the given
  8788. coordinates <var>AX</var> and <var>AY</var> filled in.
  8789. </descr>
  8790. <seealso>
  8791. <link id="TPoint"/>
  8792. <link id="SmallPoint"/>
  8793. <link id="Rect"/>
  8794. <link id="Bounds"/>
  8795. </seealso>
  8796. </element>
  8797. <element name="SmallPoint"> <!-- Function -->
  8798. <short>Returns a <var>TSmallPoint</var> record with the given coordinates.</short>
  8799. <descr>
  8800. <var>SmallPoint</var> returns a <link id="TSmallPoint"/> record with the given
  8801. coordinates <var>AX</var> and <var>AY</var> filled in.
  8802. </descr>
  8803. <seealso>
  8804. <link id="TSmallPoint"/>
  8805. <link id="Point"/>
  8806. <link id="Rect"/>
  8807. <link id="Bounds"/>
  8808. </seealso>
  8809. </element>
  8810. <element name="Rect"> <!-- Function -->
  8811. <short>Returns a <var>TRect</var> record with the given coordinates.</short>
  8812. <descr>
  8813. <p>
  8814. <var>Rect</var> returns a <link id="TRect"/> record with the given
  8815. top-left <var>(ALeft,ATop)</var> and bottom-right <var>(ABottom,ARight)</var>
  8816. corners filled in.
  8817. </p>
  8818. <p>
  8819. No checking is done to see whether the coordinates are valid.
  8820. </p>
  8821. </descr>
  8822. <seealso>
  8823. <link id="TRect"/>
  8824. <link id="Point"/>
  8825. <link id="SmallPoint"/>
  8826. <link id="Bounds"/>
  8827. </seealso>
  8828. </element>
  8829. <element name="Bounds"> <!-- Function -->
  8830. <short>Returns a <var>TRect</var> structure with the bounding rect of the
  8831. given location and size.</short>
  8832. <descr>
  8833. <var>Bounds</var> returns a <link id="TRect"/> record with the given
  8834. origin <var>(ALeft,ATop)</var> and dimensions <var>(AWidth,AHeight)</var>
  8835. filled in.
  8836. </descr>
  8837. <seealso>
  8838. </seealso>
  8839. </element>
  8840. <element name="RegisterClass"> <!-- Procedure -->
  8841. <short>Registers a class with the streaming system.</short>
  8842. <descr>
  8843. <var>RegisterClass</var> registers the class <var>AClass</var> in the
  8844. streaming system. After the class has been registered, it can be read from
  8845. a stream when a reference to this class is encountered.
  8846. </descr>
  8847. <seealso>
  8848. <link id="RegisterClasses"/>
  8849. <link id="RegisterClassAlias"/>
  8850. <link id="RegisterComponents"/>
  8851. <link id="UnregisterClass"/>
  8852. </seealso>
  8853. </element>
  8854. <element name="RegisterClasses"> <!-- Procedure -->
  8855. <short>Registers multiple classes with the streaming system.</short>
  8856. <descr>
  8857. <var>RegisterClasses</var> registers the specified classes <var>AClass</var> in the
  8858. streaming system. After the classes have been registered, they can be read from
  8859. a stream when a reference to this class is encountered.
  8860. </descr>
  8861. <seealso>
  8862. <link id="RegisterClass"/>
  8863. <link id="RegisterClassAlias"/>
  8864. <link id="RegisterComponents"/>
  8865. <link id="UnregisterClass"/>
  8866. </seealso>
  8867. </element>
  8868. <element name="RegisterClassAlias"> <!-- Procedure -->
  8869. <short>Registers a class alias with the streaming system.</short>
  8870. <descr>
  8871. <var>RegisterClassAlias</var> registers a class alias in the streaming
  8872. system. If a reference to a class <var>Alias</var> is encountered in a
  8873. stream, then an instance of the class <var>AClass</var> will be created
  8874. instead by the streaming code.
  8875. </descr>
  8876. <seealso>
  8877. <link id="RegisterClass"/>
  8878. <link id="RegisterClasses"/>
  8879. <link id="RegisterComponents"/>
  8880. <link id="UnregisterClass"/>
  8881. </seealso>
  8882. </element>
  8883. <element name="UnRegisterClass"> <!-- Procedure -->
  8884. <short>Unregisters a class from the streaming system.</short>
  8885. <descr>
  8886. <var>UnregisterClass</var> removes the class <var>AClass</var> from the
  8887. class definitions in the streaming system.
  8888. </descr>
  8889. <seealso>
  8890. <link id="UnRegisterClasses"/>
  8891. <link id="UnRegisterModuleClasses"/>
  8892. <link id="RegisterClass"/>
  8893. </seealso>
  8894. </element>
  8895. <element name="UnRegisterClasses"> <!-- Procedure -->
  8896. <short>Unregisters multiple classes from the streaming system.</short>
  8897. <descr>
  8898. <var>UnregisterClasses</var> removes the classes in <var>AClasses</var> from the
  8899. class definitions in the streaming system.
  8900. </descr>
  8901. <link id="UnRegisterClass"/>
  8902. <link id="UnRegisterModuleClasses"/>
  8903. <link id="RegisterClasses"/>
  8904. <seealso>
  8905. </seealso>
  8906. </element>
  8907. <element name="UnRegisterModuleClasses"> <!-- Procedure -->
  8908. <short>Unregisters classes registered by module.</short>
  8909. <descr>
  8910. <var>UnRegisterModuleClasses</var> unregisters all classes which reside in
  8911. the module <var>Module</var>. For each registered class, the definition
  8912. pointer is checked to see whether it resides in the module, and if it does,
  8913. the definition is removed.
  8914. </descr>
  8915. <seealso>
  8916. <link id="UnRegisterClass"/>
  8917. <link id="UnRegisterClasses"/>
  8918. <link id="RegisterClasses"/>
  8919. </seealso>
  8920. </element>
  8921. <element name="FindClass"> <!-- Function -->
  8922. <short>Returns the class pointer of a class with given name.</short>
  8923. <descr>
  8924. <p>
  8925. <var>FindClass</var> searches for the class named <var>ClassName</var>
  8926. in the list of registered classes and returns a class pointer to the
  8927. definition. If no class with the given name could be found, an exception is
  8928. raised.
  8929. </p>
  8930. <p>The <link id="GetClass"/> function does not raise an exception when it
  8931. does not find the class, but returns a <var>Nil</var> pointer instead.
  8932. </p>
  8933. </descr>
  8934. <seealso>
  8935. <link id="RegisterClass"/>
  8936. <link id="GetClass"/>
  8937. </seealso>
  8938. </element>
  8939. <element name="GetClass"> <!-- Function -->
  8940. <short>Returns the class pointer of a class with given name.</short>
  8941. <descr>
  8942. <p>
  8943. <var>GetClass</var> searches for the class named <var>ClassName</var>
  8944. in the list of registered classes and returns a class pointer to the
  8945. definition. If no class with the given name could be found, <var>Nil</var>
  8946. is returned.
  8947. </p>
  8948. <p>The <link id="FindClass"/> function will raise an exception if the
  8949. does not find the class.
  8950. </p>
  8951. </descr>
  8952. <seealso>
  8953. <link id="RegisterClass"/>
  8954. <link id="GetClass"/>
  8955. </seealso>
  8956. </element>
  8957. <element name="RegisterComponents"> <!-- Procedure -->
  8958. <short>Registers components for the component palette.</short>
  8959. <descr>
  8960. <p>
  8961. <var>RegisterComponents</var> registers the component on the appropriate
  8962. component page. The component pages can be used by an IDE to display the
  8963. known components so an application programmer may pick and use the
  8964. components in his programs.
  8965. </p>
  8966. <p>
  8967. Registercomponents inserts the component class in the correct component
  8968. page. If the <var>RegisterComponentsProc</var> procedure is set, this is
  8969. called as well. Note that this behaviour is different from Delphi's
  8970. behaviour where an exception will be raised if the procedural variable is
  8971. not set.
  8972. </p>
  8973. </descr>
  8974. <seealso>
  8975. <link id="RegisterClass"/>
  8976. <link id="RegisterNoIcon"/>
  8977. </seealso>
  8978. </element>
  8979. <element name="RegisterNoIcon"> <!-- Procedure -->
  8980. <short>Registers components that have no icon on the component palette.</short>
  8981. <descr>
  8982. <var>RegisterNoIcon</var> performs the same function as <link
  8983. id="RegisterComponents"/> except that it calls <link
  8984. id="RegisterNoIconProc"/>
  8985. instead of <link id="RegisterComponentsProc"/>
  8986. </descr>
  8987. <seealso>
  8988. <link id="RegisterNoIconProc"/>
  8989. <link id="RegisterComponents"/>
  8990. </seealso>
  8991. </element>
  8992. <element name="RegisterNonActiveX"> <!-- Procedure -->
  8993. <short>Register non-activex component.</short>
  8994. <descr>
  8995. Not yet implemented in Free Pascal
  8996. </descr>
  8997. <seealso>
  8998. </seealso>
  8999. </element>
  9000. <element name="TIdentMapEntry"> <!-- Record type -->
  9001. <short>Record used when associating names with integer values.</short>
  9002. <descr>
  9003. <var>TIdentMapEntry</var> is used internally by the <link id="IdentToInt"/>
  9004. and <link id="IntToIdent"/> calls to store the mapping between the
  9005. identifiers and the integers they represent.
  9006. </descr>
  9007. <seealso>
  9008. <link id="IntToIdent"/>
  9009. <link id="IdentToInt"/>
  9010. </seealso>
  9011. </element>
  9012. <element name="TIdentMapEntry.Value"> <!-- Variable -->
  9013. <short>Integer value</short>
  9014. </element>
  9015. <element name="TIdentMapEntry.Name"> <!-- Variable -->
  9016. <short>Name of the integer value.</short>
  9017. </element>
  9018. <element name="TIdentToInt"> <!-- Function type -->
  9019. <short>Callback for converting identifiers to integers.</short>
  9020. <descr>
  9021. <p>
  9022. <var>TIdentToInt</var> is a callback used to look up identifiers
  9023. (<var>Ident</var>) and return an integer value corresponding to this
  9024. identifier (<var>Int</var>). The callback should return <var>True</var> if a
  9025. value corresponding to integer <var>Ident</var> was found, <var>False</var>
  9026. if not.
  9027. </p>
  9028. <p>
  9029. A callback of type <var>TIdentToInt</var> should be specified when an
  9030. integer is registered using the <link id="RegisterIntegerConsts"/> call.
  9031. </p>
  9032. </descr>
  9033. <seealso>
  9034. <link id="RegisterIntegerConsts"/>
  9035. <link id="TIntToIdent"/>
  9036. </seealso>
  9037. </element>
  9038. <element name="TIntToIdent"> <!-- Function type -->
  9039. <short>Callback for converting integers to identifiers.</short>
  9040. <descr>
  9041. <p>
  9042. <var>TIdentToInt</var> is a callback used to look up integers
  9043. (<var>Ident</var>) and return an identifier (<var>Ident</var>)
  9044. that can be used to represent this integer value in an IDE.
  9045. The callback should return <var>True</var> if a value corresponding
  9046. to integer <var>Ident</var> was found, <var>False</var> if not.
  9047. </p>
  9048. <p>
  9049. A callback of type <var>TIntToIdent</var> should be specified when an
  9050. integer is registered using the <link id="RegisterIntegerConsts"/> call.
  9051. </p>
  9052. </descr>
  9053. <seealso>
  9054. <link id="RegisterIntegerConsts"/>
  9055. <link id="TIdentToInt"/>
  9056. </seealso>
  9057. </element>
  9058. <element name="TFindGlobalComponent"> <!-- Function type -->
  9059. <short>Callback type to search for a component.</short>
  9060. <descr>
  9061. <p>
  9062. <var>TFindGlobalComponent</var> is a callback used to find a component in a
  9063. global scope. It is used when the streaming system needs to find a component
  9064. which is not part of the component which is currently being streamed. It
  9065. should return the component with name <var>Name</var>, or <var>Nil</var> if
  9066. none is found.
  9067. </p>
  9068. <p>
  9069. The variable <link id="FindGlobalComponent"/> is a callback of type
  9070. <var>TFindGlobalComponent</var>. It can be set by the IDE when an unknown
  9071. reference is found, to offer the designer to redirect the link to a new
  9072. component.
  9073. </p>
  9074. </descr>
  9075. <seealso>
  9076. <link id="FindGlobalComponent"/>
  9077. </seealso>
  9078. </element>
  9079. <element name="MainThreadID"> <!-- Variable -->
  9080. <short>ID of main thread. Unused at this point.</short>
  9081. <descr>
  9082. </descr>
  9083. <seealso>
  9084. </seealso>
  9085. </element>
  9086. <element name="FindGlobalComponent"> <!-- Variable -->
  9087. <short>Callback used when a component must be found.</short>
  9088. <descr>
  9089. <p>
  9090. <var>FindGlobalComponent</var> is a callback of type
  9091. <link id="TFindGlobalComponent"/>. It can be set by the IDE when an unknown
  9092. reference is found, to offer the user to redirect the link to a new
  9093. component.
  9094. </p>
  9095. <p>
  9096. It is a callback used to find a component in a
  9097. global scope. It is used when the streaming system needs to find a component
  9098. which is not part of the component which is currently being streamed. It
  9099. should return the component with name <var>Name</var>, or <var>Nil</var> if
  9100. none is found.
  9101. </p>
  9102. </descr>
  9103. <seealso>
  9104. <link id="TFindGlobalComponent"/>
  9105. </seealso>
  9106. </element>
  9107. <element name="RegisterIntegerConsts"> <!-- Procedure -->
  9108. <short>Registers some integer-to-identifier mappings.</short>
  9109. <descr>
  9110. <p>
  9111. <var>RegisterIntegerConsts</var> registers a pair of callbacks to be used
  9112. when an integer of type <var>IntegerType</var> must be mapped to an
  9113. identifier (using <var>IntToIdentFn</var>) or when an identifier must be
  9114. mapper to an integer (using <var>IdentToIntFn</var>).
  9115. </p>
  9116. <p>
  9117. Component programmers can use <var>RegisterIntegerConsts</var> to associate
  9118. a series of identifier strings with integer values for a property. A
  9119. necessary condition is that the property should have a separate type
  9120. declared using the <var>type integer</var> syntax. If a type of integer is
  9121. defined in this way, an IDE can show symbolic names for the values of these
  9122. properties.
  9123. </p>
  9124. <p>
  9125. The <var>IntegerType</var> should be a pointer to the type information of
  9126. the integer type. The <var>IntToIdentFn</var> and <var>IdentToIntFn</var>
  9127. are two callbacks that will be used when converting between the identifier
  9128. and integer value and vice versa. The functions <link id="IdentToInt"/>
  9129. and <link id="IntToIdent"/> can be used to implement these callback
  9130. functions.
  9131. </p>
  9132. </descr>
  9133. <seealso>
  9134. <link id="TIdentToInt"/>
  9135. <link id="TIntToIdent"/>
  9136. <link id="IdentToInt"/>
  9137. <link id="IntToIdent"/>
  9138. </seealso>
  9139. </element>
  9140. <element name="IdentToInt"> <!-- Function -->
  9141. <short>Looks up an integer value in a integer-to-identifier map list.</short>
  9142. <descr>
  9143. <var>IdentToInt</var> searches <var>Map</var> for an entry whose
  9144. <var>Name</var> field matches <var>Ident</var> and returns the corresponding
  9145. integer value in <var>Int</var>. If a match was found, the function returns
  9146. <var>True</var>, otherwise, <var>False</var> is returned.
  9147. </descr>
  9148. <seealso>
  9149. <link id="TIdentToInt"/>
  9150. <link id="TIntToIdent"/>
  9151. <link id="IntToIdent"/>
  9152. <link id="TIdentMapEntry"/>
  9153. </seealso>
  9154. </element>
  9155. <element name="IntToIdent"> <!-- Function -->
  9156. <short>Looks up an identifier for an integer value in a identifier-to-integer map list.</short>
  9157. <descr>
  9158. <var>IdentToInt</var> searches <var>Map</var> for an entry whose
  9159. <var>Value</var> field matches <var>Int</var> and returns the corresponding
  9160. identifier in <var>Ident</var>. If a match was found, the function returns
  9161. <var>True</var>, otherwise, <var>False</var> is returned.
  9162. </descr>
  9163. <seealso>
  9164. <link id="TIdentToInt"/>
  9165. <link id="TintToIdent"/>
  9166. <link id="IdentToInt"/>
  9167. <link id="TIdentMapEntry"/>
  9168. </seealso>
  9169. </element>
  9170. <element name="InitInheritedComponent"> <!-- Function -->
  9171. <short>Initializes a component descending from <var>RootAncestor</var></short>
  9172. <descr>
  9173. <p>
  9174. <var>InitInheritedComponent</var> should be called from a constructor to
  9175. read properties of the component <var>Instance</var> from the streaming
  9176. system. The <var>RootAncestor</var> class is the root class from which
  9177. <var>Instance</var> is a descendent. This must be one of
  9178. <var>TDatamodule</var>, <var>TCustomForm</var> or <var>TFrame</var>.
  9179. </p>
  9180. <p>
  9181. The function returns <var>True</var> if the properties were successfully
  9182. read from a stream or <var>False</var> if some error occurred.
  9183. </p>
  9184. </descr>
  9185. <seealso>
  9186. <link id="ReadComponentRes"/>
  9187. <link id="ReadComponentResEx"/>
  9188. <link id="ReadComponentResFile"/>
  9189. </seealso>
  9190. </element>
  9191. <element name="InitComponentRes"> <!-- Function -->
  9192. <short>Provided for Delphi compatibility only</short>
  9193. <descr>
  9194. This function is provided for Delphi compatibility.
  9195. It always returns <var>false</var>.
  9196. </descr>
  9197. <seealso>
  9198. <link id="ReadComponentRes"/>
  9199. </seealso>
  9200. </element>
  9201. <element name="ReadComponentRes"> <!-- Function -->
  9202. <short>Read component properties from a resource in the current module</short>
  9203. <descr>
  9204. This function is provided for Delphi compatibility.
  9205. It always returns <var>Nil</var>.
  9206. </descr>
  9207. </element>
  9208. <element name="ReadComponentResEx"> <!-- Function -->
  9209. <short>Read component properties from a resource in the specified module</short>
  9210. <descr>
  9211. This function is provided for Delphi compatibility.
  9212. It always returns <var>Nil</var>.
  9213. </descr>
  9214. </element>
  9215. <element name="ReadComponentResFile"> <!-- Function -->
  9216. <short>Read component properties from a specified resource file</short>
  9217. <descr>
  9218. <var>ReadComponentResFile</var> starts reading properties for
  9219. <var>Instance</var> from the file <var>FileName</var>. It creates a
  9220. filestream from <var>FileName</var> and then calls the <link
  9221. id="TStream.ReadComponentRes"/> method to read the state of the component from the
  9222. stream.
  9223. </descr>
  9224. <seealso>
  9225. <link id="TStream.ReadComponentRes"/>
  9226. <link id="WriteComponentResFile"/>
  9227. </seealso>
  9228. </element>
  9229. <element name="WriteComponentResFile"> <!-- Procedure -->
  9230. <short>Write component properties to a specified resource file</short>
  9231. <descr>
  9232. <var>WriteComponentResFile</var> starts writing properties of
  9233. <var>Instance</var> to the file <var>FileName</var>. It creates a
  9234. filestream from <var>FileName</var> and then calls <link
  9235. id="TStream.WriteComponentRes"/> method to write the state of
  9236. the component to the stream.
  9237. </descr>
  9238. <seealso>
  9239. <link id="TStream.WriteComponentRes"/>
  9240. <link id="ReadComponentResFile"/>
  9241. </seealso>
  9242. </element>
  9243. <element name="GlobalFixupReferences"> <!-- Procedure -->
  9244. <short>Called to resolve unresolved references after forms are loaded.</short>
  9245. <descr>
  9246. <var>GlobalFixupReferences</var> runs over the list of unresolved references
  9247. and tries to resolve them. This routine should under normal circumstances
  9248. not be called in an application programmer's code. It is called
  9249. automatically by the streaming system after a component has been
  9250. instantiated and its properties read from a stream. It will attempt to
  9251. resolve references to other global components.
  9252. </descr>
  9253. <seealso>
  9254. <link id="GetFixupReferenceNames"/>
  9255. <link id="GetFixupInstanceNames"/>
  9256. </seealso>
  9257. </element>
  9258. <element name="GetFixupReferenceNames"> <!-- Procedure -->
  9259. <short>Returns the names of elements that need to be resolved for the
  9260. <var>root</var> component.</short>
  9261. <descr>
  9262. <var>GetFixupReferenceNames</var> examines the list of unresolved references
  9263. and returns the names of properties that must be resolved for the
  9264. component <var>Root</var> in the list <var>Names</var>. The list is not
  9265. cleared prior to filling it.
  9266. </descr>
  9267. <seealso>
  9268. <link id="GetFixupInstanceNames"/>
  9269. <link id="GlobalFixupReferences"/>
  9270. </seealso>
  9271. </element>
  9272. <element name="GetFixupInstanceNames"> <!-- Procedure -->
  9273. <short>Returns the names of elements that need to be resolved for the
  9274. <var>root</var> component, whose reference contains <var>ReferenceRootName</var></short>
  9275. <descr>
  9276. <var>GetFixupInstanceNames</var> examines the list of unresolved references
  9277. and returns the names of classes that contain unresolved references to the
  9278. <var>Root</var> component in the list <var>Names</var>. The list is not
  9279. cleared prior to filling it.
  9280. </descr>
  9281. <seealso>
  9282. <link id="GetFixupReferenceNames"/>
  9283. <link id="GlobalFixupReferences"/>
  9284. </seealso>
  9285. </element>
  9286. <element name="RedirectFixupReferences"> <!-- Procedure -->
  9287. <short>Redirects references under the <var>root</var> object from
  9288. <var>OldRootName</var> to <var>NewRootName</var></short>
  9289. <descr>
  9290. <p>
  9291. <var>RedirectFixupReferences</var> examines the list of unresolved
  9292. references and replaces references to a root object named
  9293. <var>OldRootName</var> with references to root object
  9294. <var>NewRootName</var>.
  9295. </p>
  9296. <p>
  9297. An application programmer should never need to call
  9298. <var>RedirectFixupReferences</var>.
  9299. This function can be used by an IDE to support redirection of broken
  9300. component links.
  9301. </p>
  9302. </descr>
  9303. <seealso>
  9304. <link id="RemoveFixupReferences"/>
  9305. </seealso>
  9306. </element>
  9307. <element name="RemoveFixupReferences"> <!-- Procedure -->
  9308. <short>Removes references to rootname from the fixup list.</short>
  9309. <descr>
  9310. <p>
  9311. <var>RemoveFixupReferences</var> examines the list of unresolved
  9312. references and removes references to a root object pointing at
  9313. <var>Root</var> or a root component named <var>RootName</var>.
  9314. </p>
  9315. <p>
  9316. An application programmer should never need to call
  9317. <var>RemoveFixupReferences</var>.
  9318. This function can be used by an IDE to support removal of broken
  9319. component links.
  9320. </p>
  9321. </descr>
  9322. <seealso>
  9323. <link id="RedirectFixupReferences"/>
  9324. </seealso>
  9325. </element>
  9326. <element name="RemoveFixups"> <!-- Procedure -->
  9327. <short>Removes <var>Instance</var> from the fixup list.</short>
  9328. <descr>
  9329. <var>RemoveFixups</var> removes all entries for component
  9330. <var>Instance</var> from the list of unresolved references.a
  9331. </descr>
  9332. <seealso>
  9333. <link id="RedirectFixupReferences"/>
  9334. <link id="RemoveFixupReferences"/>
  9335. </seealso>
  9336. </element>
  9337. <element name="FindNestedComponent"> <!-- Function -->
  9338. <short>Finds the component with name path starting at the indicated root
  9339. component.</short>
  9340. <descr>
  9341. <var>FindNestedComponent</var> will descend through the list of owned
  9342. components (starting at <var>Root</var>) and will return the component whose
  9343. name path matches <var>NamePath</var>. As a path separator the characters .
  9344. (dot), - (dash) and > (greater than) can be used
  9345. </descr>
  9346. <seealso>
  9347. <link id="GlobalFixupReferences"/>
  9348. </seealso>
  9349. </element>
  9350. <element name="BeginGlobalLoading"> <!-- Procedure -->
  9351. <short>Not yet implemented</short>
  9352. <descr>
  9353. </descr>
  9354. <seealso>
  9355. </seealso>
  9356. </element>
  9357. <element name="NotifyGlobalLoading"> <!-- Procedure -->
  9358. <short>Not yet implemented.</short>
  9359. <descr>
  9360. </descr>
  9361. <seealso>
  9362. </seealso>
  9363. </element>
  9364. <element name="EndGlobalLoading"> <!-- Procedure -->
  9365. <short>Not yet implemented.</short>
  9366. <descr>
  9367. </descr>
  9368. <seealso>
  9369. </seealso>
  9370. </element>
  9371. <element name="CollectionsEqual"> <!-- Function -->
  9372. <short>Returns <var>True</var> if two collections are equal.</short>
  9373. <descr>
  9374. <var>CollectionsEqual</var> is not yet implemented. It simply returns
  9375. <var>False</var>
  9376. </descr>
  9377. </element>
  9378. <element name="ObjectBinaryToText"> <!-- Procedure -->
  9379. <short>Converts an object stream from a binary to a text format.</short>
  9380. <descr>
  9381. <var>ObjectBinaryToText</var> reads an object stream in binary format from
  9382. <var>Input</var> and writes the object stream in text format to
  9383. <var>Output</var>. No components are instantiated during the process,
  9384. this is a pure conversion routine.
  9385. </descr>
  9386. <seealso>
  9387. <link id="ObjectTextToBinary"/>
  9388. </seealso>
  9389. </element>
  9390. <element name="ObjectTextToBinary"> <!-- Procedure -->
  9391. <short>Converts an object stream from a text to a binary format.</short>
  9392. <descr>
  9393. </descr>
  9394. <seealso>
  9395. </seealso>
  9396. </element>
  9397. <element name="ObjectResourceToText"> <!-- Procedure -->
  9398. <short>Converts an object stream from a (windows) resource to a text format.</short>
  9399. <descr>
  9400. <var>ObjectResourceToText</var> reads the resource header from the
  9401. <var>Input</var> stream and then passes the streams to
  9402. <link id="ObjectBinaryToText"/>
  9403. </descr>
  9404. <seealso>
  9405. <link id="ObjectBinaryToText"/>
  9406. <link id="ObjectTextToResource"/>
  9407. </seealso>
  9408. </element>
  9409. <element name="ObjectTextToResource"> <!-- Procedure -->
  9410. <short>Converts an object stream from a text to a (windows) resource format.</short>
  9411. <descr>
  9412. <p>
  9413. <var>ObjectTextToResource</var> reads an object stream in text format from
  9414. <var>Input</var> and writes a resource stream to <var>Output</var>.
  9415. </p>
  9416. <p>
  9417. Note that for the current implementation of this method in Free Pascal,
  9418. the output stream should support positioning. (e.g. it should not be a pipe)
  9419. </p>
  9420. </descr>
  9421. <seealso>
  9422. <link id="ObjectBinaryToText"/>
  9423. <link id="ObjectResourceToText"/>
  9424. </seealso>
  9425. </element>
  9426. <element name="LineStart"> <!-- Function -->
  9427. <short>Finds the start of a line in <var>Buffer</var> before
  9428. <var>BufPos</var>.</short>
  9429. <descr>
  9430. <var>LineStart</var> reversely scans <var>Buffer</var> starting at
  9431. <var>BufPos</var> for a linefeed character. It returns a pointer at the
  9432. linefeed character.
  9433. </descr>
  9434. </element>
  9435. <element name="TPointerList">
  9436. <short>Type for an Array of pointers.</short>
  9437. </element>
  9438. <element name="PPointerList">
  9439. <short>Pointer to an array of pointers.</short>
  9440. </element>
  9441. <element name="THelpContext">
  9442. <short>Range type to specify help contexts.</short>
  9443. </element>
  9444. <element name="THelptype">
  9445. <short>Enumeration type specifying the kind of help requested.</short>
  9446. </element>
  9447. <element name="PStringItemList">
  9448. <short>Pointer to a <link id="TStringItemList"/>.</short>
  9449. </element>
  9450. <element name="TBasicActionClass">
  9451. <short><link id="TBasicAction"/> class reference.</short>
  9452. </element>
  9453. <element name="TBAsicActionLinkClass">
  9454. <short><link id="TBasicActionLink"/> class reference.</short>
  9455. </element>
  9456. <element name="TListNotification">
  9457. <short>Kind of list notification event.</short>
  9458. </element>
  9459. <element name="TListSortCompare">
  9460. <short>Callback type for the list sort algorithm.</short>
  9461. </element>
  9462. <element name="TSeekOrigin">
  9463. <short>Specifies the origin of the <link id="TStream.Seek"/> method.</short>
  9464. </element>
  9465. <element name="TSeekOrigin.soBeginning">
  9466. <short>Offset is interpreted relative to the start of the stream.</short>
  9467. </element>
  9468. <element name="TSeekOrigin.SoEnd">
  9469. <short>Offset is interpreted relative to the end of the stream.</short>
  9470. </element>
  9471. <element name="TSeekOrigin.soCurrent">
  9472. <short>Offset is interpreted relative to the current position in the stream.</short>
  9473. </element>
  9474. <element name="TShortCut">
  9475. <short>Enumeration type to identify shortcut key combinations.</short>
  9476. </element>
  9477. <element name="TStringListSortCompare">
  9478. <short>Callback type used in stringlist compares.</short>
  9479. </element>
  9480. <!-- unresolved type reference Visibility: default -->
  9481. <element name="sysutils">
  9482. <short>System routines</short>
  9483. </element>
  9484. <!-- unresolved type reference Visibility: default -->
  9485. <element name="types">
  9486. <short>System types</short>
  9487. </element>
  9488. <!-- unresolved type reference Visibility: default -->
  9489. <element name="typinfo">
  9490. <short>RTTI information</short>
  9491. </element>
  9492. <!-- unresolved type reference Visibility: default -->
  9493. <element name="rtlconsts">
  9494. <short>Resource strings with messages</short>
  9495. </element>
  9496. <!-- enumeration type Visibility: default -->
  9497. <element name="TShiftStateEnum">
  9498. <short>Keyboard/Mouse shift state enumerator</short>
  9499. </element>
  9500. <!-- enumeration value Visibility: default -->
  9501. <element name="TShiftStateEnum.ssShift">
  9502. <short>Shift key pressed</short>
  9503. </element>
  9504. <!-- enumeration value Visibility: default -->
  9505. <element name="TShiftStateEnum.ssAlt">
  9506. <short>Alt key pressed</short>
  9507. </element>
  9508. <!-- enumeration value Visibility: default -->
  9509. <element name="TShiftStateEnum.ssCtrl">
  9510. <short>Ctrl key pressed</short>
  9511. </element>
  9512. <!-- enumeration value Visibility: default -->
  9513. <element name="TShiftStateEnum.ssLeft">
  9514. <short>Left mouse button pressed.</short>
  9515. </element>
  9516. <!-- enumeration value Visibility: default -->
  9517. <element name="TShiftStateEnum.ssRight">
  9518. <short>Right mouse button pressed.</short>
  9519. </element>
  9520. <!-- enumeration value Visibility: default -->
  9521. <element name="TShiftStateEnum.ssMiddle">
  9522. <short>Middle mouse button pressed.</short>
  9523. </element>
  9524. <!-- enumeration value Visibility: default -->
  9525. <element name="TShiftStateEnum.ssDouble">
  9526. <short>Double mouse click.</short>
  9527. </element>
  9528. <!-- enumeration value Visibility: default -->
  9529. <element name="TShiftStateEnum.ssMeta">
  9530. <short>Meta key pressed.</short>
  9531. </element>
  9532. <!-- enumeration value Visibility: default -->
  9533. <element name="TShiftStateEnum.ssSuper">
  9534. <short>Super key pressed.</short>
  9535. </element>
  9536. <!-- enumeration value Visibility: default -->
  9537. <element name="TShiftStateEnum.ssHyper">
  9538. <short>Hyper key pressed.</short>
  9539. </element>
  9540. <!-- enumeration value Visibility: default -->
  9541. <element name="TShiftStateEnum.ssAltGr">
  9542. <short>Alt-GR key pressed.</short>
  9543. </element>
  9544. <!-- enumeration value Visibility: default -->
  9545. <element name="TShiftStateEnum.ssCaps">
  9546. <short>Caps lock key pressed</short>
  9547. </element>
  9548. <!-- enumeration value Visibility: default -->
  9549. <element name="TShiftStateEnum.ssNum">
  9550. <short>Num lock key pressed</short>
  9551. </element>
  9552. <!-- enumeration value Visibility: default -->
  9553. <element name="TShiftStateEnum.ssScroll">
  9554. <short>Scroll lock key pressed</short>
  9555. </element>
  9556. <!-- enumeration value Visibility: default -->
  9557. <element name="TShiftStateEnum.ssTriple">
  9558. <short>Triple mouse click</short>
  9559. </element>
  9560. <!-- enumeration value Visibility: default -->
  9561. <element name="TShiftStateEnum.ssQuad">
  9562. <short>Quadruple mouse click</short>
  9563. </element>
  9564. <!-- enumeration value Visibility: default -->
  9565. <element name="THelpType.htKeyword">
  9566. <short>Help type: Keyword help</short>
  9567. </element>
  9568. <!-- enumeration value Visibility: default -->
  9569. <element name="THelpType.htContext">
  9570. <short>Help type: Context ID help.</short>
  9571. </element>
  9572. <!-- enumeration value Visibility: default -->
  9573. <element name="TListNotification.lnAdded">
  9574. <short>List change notification: Element added to the list.</short>
  9575. </element>
  9576. <!-- enumeration value Visibility: default -->
  9577. <element name="TListNotification.lnExtracted">
  9578. <short>List change notification: Element extracted from the list.</short>
  9579. </element>
  9580. <!-- enumeration value Visibility: default -->
  9581. <element name="TListNotification.lnDeleted">
  9582. <short>List change notification: Element deleted from the list.</short>
  9583. </element>
  9584. <!-- function Visibility: public -->
  9585. <element name="TList.Extract">
  9586. <short>Remove the first occurrence of a pointer from the list.</short>
  9587. <descr>
  9588. <var>Extract</var> searched for an occurence of <var>item</var>, and if a
  9589. match is found, the match is deleted from the list. If no match is found,
  9590. nothing is deleted. If <var>Item</var> was found, the result is
  9591. <var>Item</var>. If <var>Item</var> was not found, the result is
  9592. <var>Nil</var>. A <var>lnExtracted</var> notification event is triggered if
  9593. an element is extracted from the list. Note that a <var>lnDeleted</var>
  9594. event will also occur.
  9595. </descr>
  9596. <seealso>
  9597. <link id="TList.Delete"/>
  9598. <link id="TList.IndexOf"/>
  9599. <link id="TList.Remove"/>
  9600. </seealso>
  9601. </element>
  9602. <!-- procedure Visibility: public -->
  9603. <element name="TList.Assign">
  9604. <short>Copy the contents of another list.</short>
  9605. <descr>
  9606. <var>Assign</var> copies the pointers of the <var>Obj</var> list to the list.
  9607. The list is cleared prior to copying.
  9608. </descr>
  9609. <seealso>
  9610. <link id="TList.Clear"/>
  9611. </seealso>
  9612. </element>
  9613. <!-- object Visibility: default -->
  9614. <element name="TRecall">
  9615. <short>Helper class for storing published properties</short>
  9616. <descr>
  9617. <p>
  9618. <var>TRecall</var> is a helper class used to copy published
  9619. properties of a class (the reference object) in another class
  9620. (the storage object). The reference object and storage object must be
  9621. assignable to each other.
  9622. </p>
  9623. <p>
  9624. The <var>TRecall</var> can be used to store the state of a persistent class,
  9625. and restore it at a later time.
  9626. </p>
  9627. <p>When a <var>TRecall</var> object is created, it gets passed a reference
  9628. instance and a storage instance. It immediatly stores the properties of
  9629. the reference object in the storage object.
  9630. </p>
  9631. <p>
  9632. The <link id="TRecall.Store">Store</link> method can be called throughout
  9633. the lifetime of the reference object to update the stored properties.
  9634. </p>
  9635. <p>When the <var>TRecall</var> instance is destroyed then the properties are
  9636. copied from the storage object to the reference object. The storage object
  9637. is freed automatically.
  9638. </p>
  9639. <p>
  9640. If the properties should not be copied back from the storage to the
  9641. reference object, the <link id="TRecall.Forget">Forget</link> can be called.
  9642. </p>
  9643. </descr>
  9644. <seealso>
  9645. <link id="TRecall.Create"/>
  9646. <link id="TRecall.Destroy"/>
  9647. <link id="TRecall.Forget"/>
  9648. <link id="TRecall.Store"/>
  9649. <link id="TPersistent.Assign"/>
  9650. </seealso>
  9651. </element>
  9652. <!-- constructor Visibility: public -->
  9653. <element name="TRecall.Create">
  9654. <short>Creates a new instance of <var>TRecall</var>.</short>
  9655. <descr>
  9656. <var>Create</var> creates a new instance of <var>TRecall</var> and
  9657. initializes the Reference and Storage instances. It calls <link
  9658. id="TRecall.Store">Store</link> to assign the reference object properties to
  9659. the storage instance.
  9660. </descr>
  9661. <seealso>
  9662. <link id="TRecall.Store"/>
  9663. <link id="TRecall.Destroy"/>
  9664. </seealso>
  9665. </element>
  9666. <!-- destructor Visibility: public -->
  9667. <element name="TRecall.Destroy">
  9668. <short>Copies the stored properties to the reference object and destroys the
  9669. <var>TRecall</var> instance.</short>
  9670. <descr>
  9671. <var>Destroy</var> assigns the storage instance to the reference instance,
  9672. if the latter is still valid. After this, it frees the storage and calls the
  9673. inherited destroy.
  9674. </descr>
  9675. <errors>
  9676. <var>Destroy</var> does not check whether the <link
  9677. id="TRecall.Reference">reference</link> instance is still valid. If the
  9678. reference pointer was invalidated, call <link id="TRecall.Forget"/> to clear
  9679. the reference instance.
  9680. </errors>
  9681. <seealso>
  9682. <link id="TRecall.Store"/>
  9683. <link id="TRecall.Forget"/>
  9684. </seealso>
  9685. </element>
  9686. <!-- procedure Visibility: public -->
  9687. <element name="TRecall.Store">
  9688. <short>Assigns the reference instance to the storage instance.</short>
  9689. <descr>
  9690. <p>
  9691. <var>Store</var> assigns the reference instance to the storage instance.
  9692. This will only work if the two classes can be assigned to each other.
  9693. </p>
  9694. <p>
  9695. This method can be used to refresh the storage.
  9696. </p>
  9697. </descr>
  9698. <errors>
  9699. <var>Store</var> does not check whether the <link
  9700. id="TRecall.Reference">reference</link> instance is still valid. If the
  9701. reference pointer was invalidated, call <link id="TRecall.Forget"/> to clear
  9702. the reference instance.
  9703. </errors>
  9704. <seealso>
  9705. </seealso>
  9706. </element>
  9707. <!-- procedure Visibility: public -->
  9708. <element name="TRecall.Forget">
  9709. <short>Clear the reference property.</short>
  9710. <descr>
  9711. <p>
  9712. <var>Forget</var> sets the <link id="Reference">Reference</link> property to
  9713. <var>Nil</var>. When the <var>TRecall</var> instance is destroyed, the
  9714. reference instance will not be restored.
  9715. </p>
  9716. <p>
  9717. Note that after a call to <var>Forget</var>, a call to <link
  9718. id="TRecall.Store">Store</link> has no effect.
  9719. </p>
  9720. </descr>
  9721. <errors>
  9722. None.
  9723. </errors>
  9724. <seealso>
  9725. <link id="TRecall.Reference"/>
  9726. <link id="TRecall.Store"/>
  9727. <link id="TRecall.Destroy"/>
  9728. </seealso>
  9729. </element>
  9730. <!-- property Visibility: public -->
  9731. <element name="TRecall.Reference">
  9732. <short>The reference object.</short>
  9733. <descr>
  9734. <var>Reference</var> is the instance of the reference object. Do not free
  9735. the reference directly.
  9736. Call <link id="TRecall.Forget">Forget</link> to clear the reference and then
  9737. free the reference object.
  9738. </descr>
  9739. <seealso>
  9740. <link id="TRecall.Forget"/>
  9741. </seealso>
  9742. </element>
  9743. <!-- enumeration type Visibility: default -->
  9744. <element name="TCollectionNotification">
  9745. <short>Collection change notifcation enumeration.</short>
  9746. <descr>
  9747. <var>TCollectionNotification</var> is used in the <link id="TCollection"/>
  9748. class to send notifications about changes to the collection.
  9749. </descr>
  9750. </element>
  9751. <!-- enumeration value Visibility: default -->
  9752. <element name="TCollectionNotification.cnAdded">
  9753. <short>An item is added to the collection.</short>
  9754. </element>
  9755. <!-- enumeration value Visibility: default -->
  9756. <element name="TCollectionNotification.cnExtracting">
  9757. <short>An item is extracted from the collection.</short>
  9758. </element>
  9759. <!-- enumeration value Visibility: default -->
  9760. <element name="TCollectionNotification.cnDeleting">
  9761. <short>An item is deleted from the collection.</short>
  9762. </element>
  9763. <!-- function Visibility: public -->
  9764. <element name="TCollection.Owner">
  9765. <short>Owner of the collection.</short>
  9766. <descr>
  9767. <var>Owner</var> returns a reference to the owner of the collection. This
  9768. property is required by the object inspector to be able to show the
  9769. collection.
  9770. </descr>
  9771. </element>
  9772. <!-- procedure Visibility: public -->
  9773. <element name="TCollection.Delete">
  9774. <short>Delete an item from the collection.</short>
  9775. <descr>
  9776. <var>Delete</var> deletes the item at (zero based) position
  9777. <var>Index</var> from the collection. This will result in a
  9778. <var>cnDeleted</var> notification.
  9779. </descr>
  9780. <errors>
  9781. If an invalid index is specified, an exception is raised.
  9782. </errors>
  9783. <seealso>
  9784. <link id="TCollection.Items"/>
  9785. <link id="TCollection.Insert"/>
  9786. <link id="TCollection.Clear"/>
  9787. </seealso>
  9788. </element>
  9789. <!-- function Visibility: public -->
  9790. <element name="TCollection.Insert">
  9791. <short>Insert an item in the collection.</short>
  9792. <descr>
  9793. <p>
  9794. <var>Insert</var> creates a new item instance and inserts it in
  9795. the collection at position <var>Index</var>, and returns the new instance.
  9796. </p>
  9797. <p>
  9798. In contrast, <link id="TCollection.Add"/> adds a new item at the end.
  9799. </p>
  9800. </descr>
  9801. <errors>
  9802. None.
  9803. </errors>
  9804. <seealso>
  9805. <link id="TCollection.Add"/>
  9806. <link id="TCollection.Delete"/>
  9807. <link id="TCollection.Items"/>
  9808. </seealso>
  9809. </element>
  9810. <!-- object Visibility: default -->
  9811. <element name="TOwnedCollection">
  9812. <short><link id="#rtl.classes.TCollection">TCollection</link> descendent
  9813. which maintains owner information.</short>
  9814. <descr>
  9815. <var>TOwnedCollection</var> automatically maintains owner information, so it
  9816. can be displayed in an IDE. Collections that should be displayed in an
  9817. IDE should descend from <var>TOwnedCollection</var> or must implement a
  9818. <var>GetOwner</var> function.
  9819. </descr>
  9820. <seealso>
  9821. <link id="TCollection"/>
  9822. </seealso>
  9823. </element>
  9824. <!-- constructor Visibility: public -->
  9825. <element name="TOwnedCollection.Create">
  9826. <short>Create a new <var>TOwnerCollection</var> instance.</short>
  9827. <descr>
  9828. <var>Create</var> creates a new instance of <var>TOwnedCollection</var> and
  9829. stores the <var>AOwner</var> references. It will the value returned in the <link
  9830. id="TCollection.Owner"/> property of the collection. The
  9831. <var>ItemClass</var> class reference is passed on to the inherited
  9832. constructor, and will be used to create new instances in the <link
  9833. id="TCollection.Insert">Insert</link> and <link
  9834. id="TCollection.Add">Add</link> methods.
  9835. </descr>
  9836. <seealso>
  9837. <link id="TCollection.Create"/>
  9838. <link id="TCollection.Owner"/>
  9839. </seealso>
  9840. </element>
  9841. <!-- object Visibility: default -->
  9842. <element name="TOwnerStream">
  9843. <short>Stream which uses a second stream as a source</short>
  9844. <descr>
  9845. <var>TOwnerStream</var> can be used when creating stream chains
  9846. such as when using encryption and compression streams. It keeps a reference
  9847. to the source stream and will automatically free the source stream when
  9848. ready (if the <link id="TOwnerStream.SourceOwner">SourceOwner</link>
  9849. property is set to <var>True</var>).
  9850. </descr>
  9851. <seealso>
  9852. <link id="TStream"/>
  9853. <link id="TOwnerStream.Source"/>
  9854. <link id="TOwnerStream.SourceOwner"/>
  9855. </seealso>
  9856. </element>
  9857. <!-- constructor Visibility: public -->
  9858. <element name="TOwnerStream.Create">
  9859. <short>Create a new instance of <var>TOwnerStream</var>. </short>
  9860. <descr>
  9861. <var>Create</var> instantiates a new instance of <var>TOwnerStream</var> and
  9862. stores the reference to <var>AStream</var>. If <var>SourceOwner</var> is
  9863. <var>True</var>, the soure stream will also be freed when the instance is
  9864. destroyed.
  9865. </descr>
  9866. <seealso>
  9867. <link id="TOwnerStream.Destroy"/>
  9868. <link id="TOwnerStream.Source"/>
  9869. <link id="TOwnerStream.SourceOwner"/>
  9870. </seealso>
  9871. </element>
  9872. <!-- destructor Visibility: public -->
  9873. <element name="TOwnerStream.Destroy">
  9874. <short>Destroys the <var>TOwnerStream</var> instance and the source stream.</short>
  9875. <descr>
  9876. <var>Destroy</var> frees the source stream if the <var>SourceOwner</var>
  9877. property is <var>True</var>.
  9878. </descr>
  9879. <errors>
  9880. </errors>
  9881. <seealso>
  9882. <link id="TOwnerStream.Create"/>
  9883. <link id="TOwnerStream.Source"/>
  9884. <link id="TOwnerStream.SourceOwner"/>
  9885. </seealso>
  9886. </element>
  9887. <!-- property Visibility: public -->
  9888. <element name="TOwnerStream.Source">
  9889. <short>Reference to the source stream.</short>
  9890. <descr>
  9891. <p>
  9892. <var>Source</var> is the source stream. It should be uses by descendent
  9893. streams to access the source stream to read from or write to.
  9894. </p>
  9895. <p>
  9896. Do not free the <var>Source</var> reference directly. Either the owner
  9897. stream instance should free the source stream or
  9898. </p>
  9899. </descr>
  9900. <seealso>
  9901. <link id="TOwnerStream.Create"/>
  9902. </seealso>
  9903. </element>
  9904. <!-- property Visibility: public -->
  9905. <element name="TOwnerStream.SourceOwner">
  9906. <short>Indicates whether the ownerstream owns it's source</short>
  9907. <descr>
  9908. <var>SourceOwner</var> indicates whether the <var>TOwnerStream</var> owns
  9909. it's <var>Source</var> stream or not. If this property is <var>True</var>
  9910. then the <var>Source</var> stream is freed when the <var>TOwnerStream</var>
  9911. instance is freed.
  9912. </descr>
  9913. <seealso>
  9914. <link id="TOwnerStream.Source"/>
  9915. <link id="TOwnerStream.Destroy"/>
  9916. </seealso>
  9917. </element>
  9918. <!-- function Visibility: public -->
  9919. <element name="THandleStream.Seek">
  9920. <short>Overrides the Seek method.</short>
  9921. <descr>
  9922. <var>seek</var> uses the <link id="#rtl.SysUtils.FileSeek">FileSeek</link>
  9923. method to position the stream on the desired position. Note that handle
  9924. stream descendents (notably pipes) can override the method to prevent the
  9925. seek.
  9926. </descr>
  9927. </element>
  9928. <!-- function Visibility: public -->
  9929. <element name="TCustomMemoryStream.GetSize">
  9930. <short>return the size of the stream.</short>
  9931. <descr>
  9932. <var>GetSize</var> returns the size of the reseved memory. It should not be
  9933. used directly.
  9934. </descr>
  9935. <seealso>
  9936. <link id="TStream.Size"/>
  9937. </seealso>
  9938. </element>
  9939. <!-- enumeration value Visibility: default -->
  9940. <element name="TValueType.vaUTF8String">
  9941. <short>UTF8 encoded unicode string.</short>
  9942. </element>
  9943. <!-- function Visibility: public -->
  9944. <element name="TBinaryObjectReader.NextValue">
  9945. <short>Return the type of the next value.</short>
  9946. <descr>
  9947. <p>
  9948. <var>NextValue</var> returns the type of the next value in a binary stream,
  9949. but does not read the value.
  9950. </p>
  9951. <p>
  9952. This method is simply the implementation for a binary stream of the abstract method introduced
  9953. in <link id="TAbstractObjectReader"/>
  9954. </p>
  9955. </descr>
  9956. </element>
  9957. <!-- function Visibility: public -->
  9958. <element name="TBinaryObjectReader.ReadValue">
  9959. <short>Read the next value in the stream</short>
  9960. <descr>
  9961. <p>
  9962. <var>NextValue</var> reads the next value in a binary stream and returns
  9963. the type of the read value.
  9964. </p>
  9965. <p>
  9966. This method is simply the implementation for a binary stream of the abstract method introduced
  9967. in <link id="TAbstractObjectReader"/>
  9968. </p>
  9969. </descr>
  9970. </element>
  9971. <!-- procedure Visibility: public -->
  9972. <element name="TBinaryObjectReader.BeginRootComponent">
  9973. <short>Start reading the root component.</short>
  9974. <descr>
  9975. <p>
  9976. <var>BeginRootComponent</var> starts reading the root component in a binary
  9977. stream.
  9978. </p>
  9979. <p>
  9980. This method is simply the implementation for a binary stream of the abstract method introduced
  9981. in <link id="TAbstractObjectReader"/>
  9982. </p>
  9983. </descr>
  9984. </element>
  9985. <!-- procedure Visibility: public -->
  9986. <element name="TBinaryObjectReader.BeginComponent">
  9987. <short>Start reading a component.</short>
  9988. <descr>
  9989. <p>
  9990. </p>
  9991. <p>
  9992. This method is simply the implementation for a binary stream of the abstract method introduced
  9993. in <link id="TAbstractObjectReader"/>
  9994. </p>
  9995. </descr>
  9996. </element>
  9997. <!-- function Visibility: public -->
  9998. <element name="TBinaryObjectReader.BeginProperty">
  9999. <short>Start reading a property.</short>
  10000. <descr>
  10001. <p>
  10002. </p>
  10003. <p>
  10004. This method is simply the implementation for a binary stream of the abstract method introduced
  10005. in <link id="TAbstractObjectReader"/>
  10006. </p>
  10007. </descr>
  10008. </element>
  10009. <!-- procedure Visibility: public -->
  10010. <element name="TBinaryObjectReader.ReadBinary">
  10011. <short>Start reading a binary value.</short>
  10012. <descr>
  10013. <p>
  10014. <var>ReadBinary</var> reads a binary valye from a binary stream.
  10015. </p>
  10016. <p>
  10017. This method is simply the implementation for a binary stream of the abstract method introduced
  10018. in <link id="TAbstractObjectReader"/>
  10019. </p>
  10020. </descr>
  10021. </element>
  10022. <!-- function Visibility: public -->
  10023. <element name="TBinaryObjectReader.ReadFloat">
  10024. <short>Read a float value</short>
  10025. <descr>
  10026. <p>
  10027. <var>ReadFloat</var> reads a float value from a binary stream.
  10028. </p>
  10029. <p>
  10030. This method is simply the implementation for a binary stream of the abstract method introduced
  10031. in <link id="TAbstractObjectReader"/>
  10032. </p>
  10033. </descr>
  10034. </element>
  10035. <!-- function Visibility: public -->
  10036. <element name="TBinaryObjectReader.ReadSingle">
  10037. <short>Read a single-size float value</short>
  10038. <descr>
  10039. <p>
  10040. <var>ReadSingle</var> reads a single-sized float value from a binary stream.
  10041. </p>
  10042. <p>
  10043. This method is simply the implementation for a binary stream of the abstract method introduced
  10044. in <link id="TAbstractObjectReader"/>
  10045. </p>
  10046. </descr>
  10047. </element>
  10048. <!-- function Visibility: public -->
  10049. <element name="TBinaryObjectReader.ReadDate">
  10050. <short>Read a date.</short>
  10051. <descr>
  10052. <p>
  10053. <var>ReadDate</var> reads a date value from a binary stream.
  10054. </p>
  10055. <p>
  10056. This method is simply the implementation for a binary stream of the abstract method introduced
  10057. in <link id="TAbstractObjectReader"/>
  10058. </p>
  10059. </descr>
  10060. </element>
  10061. <!-- function Visibility: public -->
  10062. <element name="TBinaryObjectReader.ReadIdent">
  10063. <short>Read an identifier</short>
  10064. <descr>
  10065. <p>
  10066. <var>ReadIdent</var> reads an identifier from a binary stream.
  10067. </p>
  10068. <p>
  10069. This method is simply the implementation for a binary stream of the abstract method introduced
  10070. in <link id="TAbstractObjectReader"/>
  10071. </p>
  10072. </descr>
  10073. </element>
  10074. <!-- function Visibility: public -->
  10075. <element name="TBinaryObjectReader.ReadInt8">
  10076. <short>Read an 8-bits integer.</short>
  10077. <descr>
  10078. <p>
  10079. <var>Read8Int</var> reads an 8-bits signed integer from a binary stream.
  10080. </p>
  10081. <p>
  10082. This method is simply the implementation for a binary stream of the abstract method introduced
  10083. in <link id="TAbstractObjectReader"/>
  10084. </p>
  10085. </descr>
  10086. </element>
  10087. <!-- function Visibility: public -->
  10088. <element name="TBinaryObjectReader.ReadInt16">
  10089. <short>Read a 16-bits integer.</short>
  10090. <descr>
  10091. <p>
  10092. <var>Read16Int</var> reads a 16-bits signed integer from a binary stream.
  10093. </p>
  10094. <p>
  10095. This method is simply the implementation for a binary stream of the abstract method introduced
  10096. in <link id="TAbstractObjectReader"/>
  10097. </p>
  10098. </descr>
  10099. </element>
  10100. <!-- function Visibility: public -->
  10101. <element name="TBinaryObjectReader.ReadInt32">
  10102. <short>Read a 32-bits integer.</short>
  10103. <descr>
  10104. <p>
  10105. <var>Read32Int</var> reads a 32-bits signed integer from a binary stream.
  10106. </p>
  10107. <p>
  10108. This method is simply the implementation for a binary stream of the abstract method introduced
  10109. in <link id="TAbstractObjectReader"/>
  10110. </p>
  10111. </descr>
  10112. </element>
  10113. <!-- function Visibility: public -->
  10114. <element name="TBinaryObjectReader.ReadInt64">
  10115. <short>Read a 64-bits integer.</short>
  10116. <descr>
  10117. <p>
  10118. <var>Read64Int</var> reads a 64-bits signed integer from a binary stream.
  10119. </p>
  10120. <p>
  10121. This method is simply the implementation for a binary stream of the abstract method introduced
  10122. in <link id="TAbstractObjectReader"/>
  10123. </p>
  10124. </descr>
  10125. </element>
  10126. <!-- function Visibility: public -->
  10127. <element name="TBinaryObjectReader.ReadSet">
  10128. <short>Read a set</short>
  10129. <descr>
  10130. <p>
  10131. <var>ReadSet</var> reads a set from a binary stream.
  10132. </p>
  10133. <p>
  10134. This method is simply the implementation for a binary stream of the abstract method introduced
  10135. in <link id="TAbstractObjectReader"/>
  10136. </p>
  10137. </descr>
  10138. </element>
  10139. <!-- function Visibility: public -->
  10140. <element name="TBinaryObjectReader.ReadStr">
  10141. <short>Read a short string</short>
  10142. <descr>
  10143. <p>
  10144. <var>ReadStr</var> reads a short string from a binary stream.
  10145. </p>
  10146. <p>
  10147. This method is simply the implementation for a binary stream of the abstract method introduced
  10148. in <link id="TAbstractObjectReader"/>
  10149. </p>
  10150. </descr>
  10151. </element>
  10152. <!-- function Visibility: public -->
  10153. <element name="TBinaryObjectReader.ReadString">
  10154. <short>Read a string</short>
  10155. <descr>
  10156. <p>
  10157. <var>ReadStr</var> reads a string of type <var>StringType</var> from a binary stream.
  10158. </p>
  10159. <p>
  10160. This method is simply the implementation for a binary stream of the abstract method introduced
  10161. in <link id="TAbstractObjectReader"/>
  10162. </p>
  10163. </descr>
  10164. </element>
  10165. <!-- procedure Visibility: public -->
  10166. <element name="TBinaryObjectReader.SkipComponent">
  10167. <short>Skip a component's data</short>
  10168. <descr>
  10169. <p>
  10170. <var>SkipComponent</var> skips the data of a component in a binary stream.
  10171. </p>
  10172. <p>
  10173. This method is simply the implementation for a binary stream of the abstract method introduced
  10174. in <link id="TAbstractObjectReader"/>.
  10175. </p>
  10176. </descr>
  10177. </element>
  10178. <!-- procedure Visibility: public -->
  10179. <element name="TBinaryObjectReader.SkipValue">
  10180. <short>Skip a value's data</short>
  10181. <descr>
  10182. <p>
  10183. <var>SkipComponent</var> skips the data of the next value in a binary stream.
  10184. </p>
  10185. <p>
  10186. This method is simply the implementation for a binary stream of the abstract method introduced
  10187. in <link id="TAbstractObjectReader"/>
  10188. </p>
  10189. </descr>
  10190. </element>
  10191. <!-- procedure type Visibility: default -->
  10192. <element name="TSetMethodPropertyEvent">
  10193. <short>Callback for the <link id="TReader.OnSetMethodProperty"/> event.</short>
  10194. <descr>
  10195. <var>TSetMethodPropertyEvent</var> is the prototype for the <link
  10196. id="TReader.OnSetMethodProperty"/> event. <var>Reader</var> is the sender of
  10197. the event, <var>Instance</var> is the instance that is being streamed.
  10198. <var>PropInfo</var> is a pointer to the RTTI information for the property
  10199. being read, and <var>TheMethodName</var> is the name of the method that
  10200. the property should be set to. <var>Handled</var> should be set to
  10201. <var>True</var> if the handler set the property succesfully.
  10202. </descr>
  10203. </element>
  10204. <!-- procedure type Visibility: default -->
  10205. <element name="TPropertyNotFoundEvent">
  10206. <short>Callback for the <link id="TReader.OnPropertyNotFound"/> event.</short>
  10207. <descr>
  10208. <var>TPropertyNotFoundEvent</var> is the prototype for the <link
  10209. id="TReader.OnPropertyNotFound"/> event. <var>Reader</var> is the sender of
  10210. the event, <var>Instance</var> is the instance that is being streamed.
  10211. <var>PropInfo</var> is a pointer to the RTTI information for the property
  10212. being read. <var>Handled</var> should be set to <var>True</var> if
  10213. the handler redirected the unknown property succesfully, and <var>Skip</var>
  10214. should be set to <var>True</var> if the value should be skipped.
  10215. <var>IsPath</var> determines whether the property refers to a sub-property.
  10216. </descr>
  10217. <seealso>
  10218. <link id="TReader.OnPropertyNotFound"/>
  10219. </seealso>
  10220. </element>
  10221. <!-- procedure type Visibility: default -->
  10222. <element name="TReadWriteStringPropertyEvent">
  10223. <short>Callback for the <link id="TReader.OnReadStringProperty"/> event handler</short>
  10224. <descr>
  10225. <var>TReadWriteStringPropertyEvent</var> is the prototype for the <link
  10226. id="TReader.OnReadStringProperty"/> event handler. <var>Reader</var> is the
  10227. sender of
  10228. the event, <var>Instance</var> is the instance that is being streamed.
  10229. <var>PropInfo</var> is a pointer to the RTTI information for the property
  10230. being read. <var>Content</var> is the string as it was read from the stream.
  10231. </descr>
  10232. <seealso>
  10233. <link id="TReader.OnReadStringProperty"/>
  10234. </seealso>
  10235. </element>
  10236. <!-- property Visibility: public -->
  10237. <element name="TReader.OnPropertyNotFound">
  10238. <short>Handler for treating missing properties.</short>
  10239. <descr>
  10240. <p>
  10241. <var>OnPropertyNotFound</var> can be used to take appropriate action when a
  10242. property is read from a stream and no such property is found in the RTTI
  10243. information of the Instance that is being read from the stream. It can be
  10244. set at runtime, or at designtime by an IDE.
  10245. </p>
  10246. <p>
  10247. For more information about the meaning of the various arguments to the event
  10248. handler, see <link id="TPropertyNotFoundEvent"/>.
  10249. </p>
  10250. </descr>
  10251. <seealso>
  10252. <link id="TPropertyNotFoundEvent"/>
  10253. <link id="TReader.OnSetMethodProperty"/>
  10254. <link id="TReader.OnReadStringProperty"/>
  10255. </seealso>
  10256. </element>
  10257. <!-- property Visibility: public -->
  10258. <element name="TReader.OnSetMethodProperty">
  10259. <short>Handler for setting method properties.</short>
  10260. <descr>
  10261. <var>OnSetMethodProperty</var> can be set to handle the setting of method
  10262. properties. This handler can be used by an IDE to prevent methods from
  10263. actually being when an object is being streamed in the designer.
  10264. </descr>
  10265. <seealso>
  10266. <link id="TReader.OnReadStringProperty"/>
  10267. <link id="TReader.OnPropertyNotFound"/>
  10268. </seealso>
  10269. </element>
  10270. <!-- property Visibility: public -->
  10271. <element name="TReader.OnReadStringProperty">
  10272. <short>Handler for translating strings when read from the stream.</short>
  10273. <descr>
  10274. <var>OnReadStringProperty</var> is called whenever a string property is read
  10275. from the stream. It can be used e.g. by a translation mechanism to translate the
  10276. strings on the fly, when a form is loaded. See <link
  10277. id="TReadWriteStringPropertyEvent"/> for a description of the various
  10278. parameters.
  10279. </descr>
  10280. <seealso>
  10281. <link id="TReader.OnPropertyNotFound"/>
  10282. <link id="TReader.OnSetMethodProperty"/>
  10283. <link id="TReadWriteStringPropertyEvent"/>
  10284. </seealso>
  10285. </element>
  10286. <!-- procedure type Visibility: default -->
  10287. <element name="TWriteMethodPropertyEvent">
  10288. <short>Callback for the <link id="TWriter.OnWriteMethodProperty"/> event.</short>
  10289. <descr>
  10290. <var>TWriteMethodPropertyEvent</var> is the prototype for the <link
  10291. id="TWriter.OnWriteMethodProperty"/> event. <var>Writer</var> is the sender of
  10292. the event, <var>Instance</var> is the instance that is being streamed.
  10293. <var>PropInfo</var> is a pointer to the RTTI information for the property
  10294. being written, and <var>MethodValue</var> is the value of the method that
  10295. the property was set to. <var>DefMethodCodeValue</var> is set to the default
  10296. value of the property (Nil or the parent value).
  10297. <var>Handled</var> should be set to <var>True</var> if the handler set the property succesfully.
  10298. </descr>
  10299. <seealso>
  10300. <link id="TWriter.OnWriteMethodProperty"/>
  10301. </seealso>
  10302. </element>
  10303. <!-- property Visibility: public -->
  10304. <element name="TWriter.OnWriteMethodProperty">
  10305. <short>Handler from writing method properties.</short>
  10306. <descr>
  10307. <var>OnWriteMethodProperty</var> can be set by an IDE or some streaming
  10308. mechanism which handles dummy values for method properties; It can be used
  10309. to write a real value to the stream which will be interpreted correctly when
  10310. the stream is read. See <link id="TWriteMethodPropertyEvent"/> for a description of the arguments.
  10311. </descr>
  10312. <seealso>
  10313. <link id="TWriteMethodPropertyEvent"/>
  10314. <link id="TReader.OnSetMethodProperty"/>
  10315. </seealso>
  10316. </element>
  10317. <!-- property Visibility: public -->
  10318. <element name="TWriter.OnWriteStringProperty">
  10319. <short>Event handler for translating strings written to stream.</short>
  10320. <descr>
  10321. <var>OnWriteStringProperty</var> is called whenever a string property is
  10322. written to the stream. It can be used e.g. by a translation mechanism to
  10323. translate the strings on the fly, when a form is written. See <link
  10324. id="TReadWriteStringPropertyEvent"/> for a description of the various
  10325. parameters.
  10326. </descr>
  10327. <seealso>
  10328. <link id="TReader.OnPropertyNotFound"/>
  10329. <link id="TReader.OnSetMethodProperty"/>
  10330. <link id="TReadWriteStringPropertyEvent"/>
  10331. </seealso>
  10332. </element>
  10333. <!-- object Visibility: default -->
  10334. <element name="EThreadDestroyCalled">
  10335. <short>Exception raised when a thread is destroyed illegally.</short>
  10336. </element>
  10337. <!-- procedure type Visibility: default -->
  10338. <element name="TSynchronizeProcVar">
  10339. <short>Synchronize callback type</short>
  10340. </element>
  10341. <!-- property Visibility: public -->
  10342. <element name="TThread.FatalException">
  10343. <short>Exception that occured during thread execution</short>
  10344. <descr>
  10345. <var>FatalException</var> contains the exception that occurred during the
  10346. thread's execution.
  10347. </descr>
  10348. </element>
  10349. <!-- procedure Visibility: public -->
  10350. <element name="TComponent.BeforeDestruction">
  10351. <short>Overrides standard BeforeDestruction.</short>
  10352. <descr>
  10353. <var>BeforeDestruction</var> is overridden by <var>TComponent</var> to set
  10354. the <var>csDestroying</var> flag in <link id="ComponentState"/>
  10355. </descr>
  10356. <seealso>
  10357. <link id="ComponentState"/>
  10358. </seealso>
  10359. </element>
  10360. <!-- function Visibility: public -->
  10361. <element name="TComponent.ExecuteAction">
  10362. <short>Standard action execution method.</short>
  10363. <descr>
  10364. <var>ExecuteAction</var> checks whether <var>Action</var> handles the
  10365. current component, and if yes, calls the <var>ExecuteAction</var> method,
  10366. passing itself as a parameter. The function returns <var>True</var> if the
  10367. action handles the current component.
  10368. </descr>
  10369. <seealso>
  10370. <link id="TBasicAction"/>
  10371. <link id="TBasicAction.ExecuteAction"/>
  10372. <link id="TBasicAction.HandlesTarget"/>
  10373. <link id="UpdateAction"/>
  10374. </seealso>
  10375. </element>
  10376. <!-- procedure Visibility: public -->
  10377. <element name="TComponent.RemoveFreeNotification">
  10378. <short>Remove a component from the Free Notification list.</short>
  10379. <descr>
  10380. <var>RemoveFreeNotification</var> removes <var>AComponent</var> from the
  10381. freenotification list.
  10382. </descr>
  10383. <seealso>
  10384. <link id="FreeNotification"/>
  10385. </seealso>
  10386. </element>
  10387. <!-- function Visibility: public -->
  10388. <element name="TComponent.UpdateAction">
  10389. <short>Updates the state of an action.</short>
  10390. <descr>
  10391. <var>UpdateAction</var> checks whether <var>Action</var> handles the
  10392. current component, and if yes, calls the <var>UpdateTarget</var> method,
  10393. passing itself as a parameter. The function returns <var>True</var> if the
  10394. action handles the current component.
  10395. </descr>
  10396. <seealso>
  10397. <link id="TBasicAction"/>
  10398. <link id="TBasicAction.UpdateTarget"/>
  10399. <link id="TBasicAction.HandlesTarget"/>
  10400. <link id="ExecuteAction"/>
  10401. </seealso>
  10402. </element>
  10403. <!-- object Visibility: default -->
  10404. <element name="TDataModule">
  10405. <short>Container for non-visual components.</short>
  10406. <descr>
  10407. <p>
  10408. <var>TDataModule</var> is a container for non-visual objects which can be
  10409. used in an IDE to group non-visual objects which can be used by various
  10410. other containers (forms) in a project. Notably, data access components are
  10411. typically stored on a datamodule. Web components and services can also be
  10412. implemented as descendents of datamodules.
  10413. </p>
  10414. <p>
  10415. <var>TDataModule</var> introduces some events which make it easier to
  10416. program, and provides the needed streaming capabilities for persistent
  10417. storage.
  10418. </p>
  10419. <p>
  10420. An IDE will typically allow to create a descendent of <var>TDataModule</var>
  10421. which contains non-visual components in it's published property list.
  10422. </p>
  10423. </descr>
  10424. <seealso>
  10425. <link id="TDataModule.OnCreate"/>
  10426. </seealso>
  10427. </element>
  10428. <!-- constructor Visibility: public -->
  10429. <element name="TDataModule.Create">
  10430. <short>Create a new instance of a <var>TDataModule</var>.</short>
  10431. <descr>
  10432. <var>Create</var> creates a new instance of the <var>TDatamodule</var>
  10433. and calls <link id="TDatamodule.CreateNew"/>. After that it reads the
  10434. published properties from a stream using <link id="InitInheritedComponent"/>
  10435. if a descendent class is instantiated. If the <link id="TDataModule.OldCreateOrder">OldCreateOrder</link>
  10436. property is <var>True</var>, the <link id="OnCreate"/> event is called.
  10437. </descr>
  10438. <errors>
  10439. An exception can be raised during the streaming operation.
  10440. </errors>
  10441. <seealso>
  10442. <link id="TDataModule.CreateNew"/>
  10443. </seealso>
  10444. </element>
  10445. <!-- constructor Visibility: public -->
  10446. <element name="TDataModule.CreateNew">
  10447. <short></short>
  10448. <descr>
  10449. <var>CreateNew</var> creates a new instance of the class, but bypasses the
  10450. streaming mechanism. The <var>CreateMode</var> parameter (by default zero)
  10451. is not used in <var>TDataModule</var>. If the <link id="AddDataModule"/>
  10452. handler is set, then it is called, with the newly created instance as an
  10453. argument.
  10454. </descr>
  10455. <seealso>
  10456. <link id="TDataModule.Create"/>
  10457. <link id="AddDataModule"/>
  10458. <link id="TDataModule.OnCreate"/>
  10459. </seealso>
  10460. </element>
  10461. <!-- destructor Visibility: public -->
  10462. <element name="TDataModule.Destroy">
  10463. <short>Destroys the <var>TDataModule</var> instance.</short>
  10464. <descr>
  10465. <p>
  10466. <var>Destroy</var> destroys the <var>TDataModule</var> instance. If the
  10467. <link id="TDataModule.OldCreateOrder">OldCreateOrder</link> property is
  10468. <var>True</var> the <link id="TDataModule.OnDestroy">OnDestroy</link> event
  10469. handler is called prior to destroying the data module.
  10470. </p>
  10471. <p>
  10472. Before calling the inherited destroy, the <link id="RemoveDataModule"/>
  10473. handler is called if it is set, and <var>Self</var> is passed as a
  10474. parameter.
  10475. </p>
  10476. </descr>
  10477. <errors>
  10478. An event can be raised during the <var>OnDestroy</var> event handler.
  10479. </errors>
  10480. <seealso>
  10481. <link id="TDataModule.OnDestroy"/>
  10482. <link id="RemoveDataModule"/>
  10483. </seealso>
  10484. </element>
  10485. <!-- procedure Visibility: public -->
  10486. <element name="TDataModule.AfterConstruction">
  10487. <short>Overrides standard <link id="rtl.objpas.TObject">TObject</link> behaviour.</short>
  10488. <descr>
  10489. <var>AfterConstruction</var> calls the <link
  10490. id="TDataModule.OnCreate">OnCreate</link> handler if the <link
  10491. id="TDataModule.OldCreateOrder">OldCreateOrder</link> property is
  10492. <var>False</var>.
  10493. </descr>
  10494. <seealso>
  10495. <link id="TDataModule.OldCreateOrder"/>
  10496. <link id="TDataModule.OnCreate"/>
  10497. </seealso>
  10498. </element>
  10499. <!-- procedure Visibility: public -->
  10500. <element name="TDataModule.BeforeDestruction">
  10501. <short></short>
  10502. <descr>
  10503. <var>BeforeDestruction</var> calls the <link id="TDataModule.OnCreate">OnDestroy</link>
  10504. handler if the <link id="TDataModule.OldCreateOrder">OldCreateOrder</link> property is
  10505. <var>False</var>.
  10506. </descr>
  10507. <seealso>
  10508. <link id="TDataModule.OldCreateOrder"/>
  10509. <link id="TDataModule.OnDestroy"/>
  10510. </seealso>
  10511. </element>
  10512. <!-- property Visibility: public -->
  10513. <element name="TDataModule.DesignOffset">
  10514. <short>Position property needed for manipulation in an IDE.</short>
  10515. <descr>
  10516. <var>DesignOffset</var> is the position of the datamodule when displayed in
  10517. an IDE. It is streamed to the form file, and should not be used at run-time.
  10518. </descr>
  10519. <seealso>
  10520. <link id="TDataModule.DesignSize"/>
  10521. </seealso>
  10522. </element>
  10523. <!-- property Visibility: public -->
  10524. <element name="TDataModule.DesignSize">
  10525. <short>Size property needed for manipulation in an IDE.</short>
  10526. <descr>
  10527. <var>DesignSize</var> is the size of the datamodule when displayed in
  10528. an IDE. It is streamed to the form file, and should not be used at run-time.
  10529. </descr>
  10530. <seealso>
  10531. <link id="TDataModule.DesignOffset"/>
  10532. </seealso>
  10533. </element>
  10534. <!-- property Visibility: published -->
  10535. <element name="TDataModule.OnCreate">
  10536. <short>Event handler, called when the datamodule is created.</short>
  10537. <descr>
  10538. The <var>OnCreate</var> event is triggered when the datamodule is created
  10539. and streamed. The exact moment of triggering is dependent on the value of
  10540. the <link id="TDataModule.OldCreateOrder">OldCreateOrder</link> property.
  10541. </descr>
  10542. <seealso>
  10543. <link id="TDataModule.Create"/>
  10544. <link id="TDataModule.CreateNew"/>
  10545. <link id="TDataModule.OldCreateOrder"/>
  10546. </seealso>
  10547. </element>
  10548. <!-- property Visibility: published -->
  10549. <element name="TDataModule.OnDestroy">
  10550. <short>Event handler, called when the datamodule is destroyed.</short>
  10551. <descr>
  10552. The <var>OnDestroy</var> event is triggered when the datamodule is destroyed
  10553. The exact moment of triggering is dependent on the value of the
  10554. <link id="TDataModule.OldCreateOrder">OldCreateOrder</link> property.
  10555. </descr>
  10556. <seealso>
  10557. <link id="TDataModule.Destroy"/>
  10558. <link id="TDataModule.OnCreate"/>
  10559. <link id="TDataModule.Create"/>
  10560. <link id="TDataModule.CreateNew"/>
  10561. <link id="TDataModule.OldCreateOrder"/>
  10562. </seealso>
  10563. </element>
  10564. <!-- property Visibility: published -->
  10565. <element name="TDataModule.OldCreateOrder">
  10566. <short>Determines when <var>OnCreate</var> and <var>OnDestroy</var> are
  10567. triggered.</short>
  10568. <descr>
  10569. <var>OldCreateOrder</var> determines when exactly the <link
  10570. id="TDataModule.OnCreate">OnCreate</link> and <link
  10571. id="TDataModule.OnDestroy">OnDestroy</link> event handlers are called:
  10572. </descr>
  10573. <seealso>
  10574. <link id="TDataModule.OnDestroy"/>
  10575. <link id="TDataModule.OnCreate"/>
  10576. <link id="TDataModule.Destroy"/>
  10577. <link id="TDataModule.Create"/>
  10578. <link id="TDataModule.CreateNew"/>
  10579. <link id="TDataModule.OldCreateOrder"/>
  10580. </seealso>
  10581. </element>
  10582. <!-- variable Visibility: default -->
  10583. <element name="AddDataModule">
  10584. <short>Handler called when a new <link id="#rtl.classes.TDataModule">TDataModule</link> instance is created.</short>
  10585. <descr>
  10586. <var>AddDataModule</var> can be set by an IDE or a streaming mechanism to
  10587. receive notification when a new instance of a <link id="TDataModule"/>
  10588. descendent is created.
  10589. </descr>
  10590. <seealso>
  10591. <link id="RemoveDataModule"/>
  10592. <link id="TDataModule"/>
  10593. </seealso>
  10594. </element>
  10595. <!-- variable Visibility: default -->
  10596. <element name="RemoveDataModule">
  10597. <short>Handler called when a <link id="#rtl.classes.TDataModule">TDataModule</link> instance is freed.</short>
  10598. <descr>
  10599. <var>RemoveDataModule</var> can be set by an IDE or a streaming mechanism to
  10600. receive notification when an instance of a <link id="TDataModule"/>
  10601. descendent is freed.
  10602. </descr>
  10603. <seealso>
  10604. <link id="AddDataModule"/>
  10605. <link id="TDataModule"/>
  10606. </seealso>
  10607. </element>
  10608. <!-- variable Visibility: default -->
  10609. <element name="ApplicationHandleException">
  10610. <short>Handler for exceptions when a <link
  10611. id="#rtl.classes.TDataModule">TDataModule</link> streaming error occurs.</short>
  10612. <descr>
  10613. <var>ApplicationHandleException</var> can be set by an application object to
  10614. handle any exceptions that may occur when a <link id="TDataModule"/> is
  10615. created.
  10616. </descr>
  10617. <seealso>
  10618. <link id="TDataModule"/>
  10619. </seealso>
  10620. </element>
  10621. <!-- variable Visibility: default -->
  10622. <element name="ApplicationShowException">
  10623. <short>Unused.</short>
  10624. <descr>
  10625. </descr>
  10626. <seealso>
  10627. </seealso>
  10628. </element>
  10629. <!-- procedure Visibility: default -->
  10630. <element name="CheckSynchronize">
  10631. <short>Check whether there are any synchronize calls in the synchronize queue.</short>
  10632. <descr>
  10633. <var>CheckSynchronize</var> should be called regularly by the main application
  10634. thread to handle any <link id="TThread.synchronize"/> calls that may be waiting for
  10635. execution by the main thread.
  10636. </descr>
  10637. <seealso>
  10638. <link id="TThread.synchronize"/>
  10639. </seealso>
  10640. </element>
  10641. <!-- variable Visibility: default -->
  10642. <element name="WakeMainThread">
  10643. <short>Handler which is called if a thread wants to synchronize with the main application thread.</short>
  10644. <descr>
  10645. <var>WakeMainThread</var> is called by the <link id="TThread.synchronize"/> call.
  10646. It should alert the main program thread that a thread is waiting for
  10647. synchronization. The call is executed by the thread, and should therefore
  10648. NOT synchronize the thread, but should somehow signal the main thread that a
  10649. thread is waiting for synchronization. For example, by sending a message.
  10650. </descr>
  10651. <seealso>
  10652. <link id="CheckSynchronize"/>
  10653. <link id="TThread.synchronize"/>
  10654. </seealso>
  10655. </element>
  10656. <!-- procedure Visibility: default -->
  10657. <element name="StartClassGroup">
  10658. <short>Start new class group.</short>
  10659. <descr>
  10660. <p>
  10661. <var>StartClassGroup</var> starts a new class group and adds <var>AClass</var> to
  10662. it.
  10663. </p>
  10664. <p>
  10665. The class registration and streaming mechanism allows to organize the classes in
  10666. groups. This allows an IDE to form groups of classes, which can be enabled
  10667. or disabled. It is not needed at Run-Time.
  10668. </p>
  10669. </descr>
  10670. <seealso>
  10671. <link id="GroupDescendentsWith"/>
  10672. <link id="ActivateClassGroup"/>
  10673. <link id="ClassGroupOf"/>
  10674. </seealso>
  10675. </element>
  10676. <!-- procedure Visibility: default -->
  10677. <element name="GroupDescendentsWith">
  10678. <short>Add class to the group of another class.</short>
  10679. <descr>
  10680. <p>
  10681. <var>GroupDescendentsWith</var> adds <var>AClass</var> to the group that
  10682. <var>AClassGroup</var> belongs to. If <var>AClassGroup</var> belongs to more
  10683. than 1 group, then it is added to the group which contains the nearest
  10684. ancestor.
  10685. </p>
  10686. <p>
  10687. The class registration and streaming mechanism allows to organize the classes in
  10688. groups. This allows an IDE to form groups of classes, which can be enabled
  10689. or disabled. It is not needed at Run-Time.
  10690. </p>
  10691. </descr>
  10692. <errors>
  10693. </errors>
  10694. <seealso>
  10695. <link id="StartClassGroup"/>
  10696. <link id="ActivateClassGroup"/>
  10697. <link id="ClassGroupOf"/>
  10698. </seealso>
  10699. </element>
  10700. <!-- function Visibility: default -->
  10701. <element name="ActivateClassGroup">
  10702. <short>Activates a class group</short>
  10703. <descr>
  10704. <p>
  10705. <var>ActivateClassGroup</var> activates the group of classes to which
  10706. <var>AClass</var> belongs. The function returns the class that was last used
  10707. to activate the class group.
  10708. </p>
  10709. <p>
  10710. The class registration and streaming mechanism allows to organize the classes in
  10711. groups. This allows an IDE to form groups of classes, which can be enabled
  10712. or disabled. It is not needed at Run-Time.
  10713. </p>
  10714. </descr>
  10715. <errors>
  10716. If <var>AClass</var> does not belong to a class group, an exception is
  10717. raised.
  10718. </errors>
  10719. <seealso>
  10720. <link id="StartClassGroup"/>
  10721. <link id="GroupDescendentsWith"/>
  10722. <link id="ClassGroupOf"/>
  10723. </seealso>
  10724. </element>
  10725. <!-- function Visibility: default -->
  10726. <element name="ClassGroupOf">
  10727. <short>Returns the class group to which an instance or class belongs</short>
  10728. <descr>
  10729. <var>ClassGroupOf</var> returns the class group to which <var>AClass</var>
  10730. or <var>Instance</var> belongs.
  10731. </descr>
  10732. <errors>
  10733. The result is <var>Nil</var> if no matching class group is found.
  10734. </errors>
  10735. <seealso>
  10736. <link id="StartClassGroup"/>
  10737. <link id="ActivateClassGroup"/>
  10738. <link id="GroupDescendentsWith"/>
  10739. </seealso>
  10740. </element>
  10741. <!-- function type Visibility: default -->
  10742. <element name="TInitComponentHandler">
  10743. <short>Callback type for <link id="rtl.classes.RegisterInitComponentHandler">RegisterInitComponentHandler</link></short>
  10744. <descr>
  10745. <var>TInitComponentHandler</var> is a callback type. It is used in the
  10746. <link>InitInheritedComponent</link> call to initialize a component.
  10747. Callbacks of this type are registered with the <link
  10748. id="RegisterInitComponentHandler"/> call.
  10749. </descr>
  10750. </element>
  10751. <!-- procedure Visibility: default -->
  10752. <element name="RegisterFindGlobalComponentProc">
  10753. <short>Register a component searching handler</short>
  10754. <descr>
  10755. <var>RegisterFindGlobalComponentProc</var> registers a global component
  10756. search callback <var>AFindGlobalComponent</var>. When <link
  10757. id="FindGlobalComponent"/> is called, then this callback will be used to
  10758. search for the component.
  10759. </descr>
  10760. <errors>
  10761. None.
  10762. </errors>
  10763. <seealso>
  10764. <link id="FindGlobalComponent"/>
  10765. <link id="UnRegisterFindGlobalComponentProc"/>
  10766. </seealso>
  10767. </element>
  10768. <!-- procedure Visibility: default -->
  10769. <element name="UnregisterFindGlobalComponentProc">
  10770. <short>Remove a previously registered component searching handler.</short>
  10771. <descr>
  10772. <var>UnRegisterFindGlobalComponentProc</var> unregisters the previously
  10773. registered global component search callback <var>AFindGlobalComponent</var>.
  10774. After this call, when <link id="FindGlobalComponent"/> is called, then this
  10775. callback will be no longer be used to search for the component.
  10776. </descr>
  10777. <errors>
  10778. None.
  10779. </errors>
  10780. <seealso>
  10781. <link id="FindGlobalComponent"/>
  10782. <link id="RegisterFindGlobalComponentProc"/>
  10783. </seealso>
  10784. </element>
  10785. <!-- procedure Visibility: default -->
  10786. <element name="RegisterInitComponentHandler">
  10787. <short>Register a component initialization handler</short>
  10788. <descr>
  10789. <var>RegisterInitComponentHandler</var> registers a component initialization
  10790. handler <var>Handler</var> for the component <var>ComponentClass</var>. This
  10791. handler will be used to initialize descendents of
  10792. <var>ComponentClass</var> in the <link id="InitInheritedComponent"/> call.
  10793. </descr>
  10794. <seealso>
  10795. <link id="InitInheritedComponent"/>
  10796. <link id="TInitComponentHandler"/>
  10797. </seealso>
  10798. </element>
  10799. <!-- procedure Visibility: default -->
  10800. <element name="BinToHex">
  10801. <short>Convert a binary buffer to a hexadecimal string</short>
  10802. <descr>
  10803. <p>
  10804. <var>BinToHex</var> converts the byte values in <var>BinValue</var>
  10805. to a string consisting of 2-charachter hexadecimal strings in
  10806. <var>HexValue</var>.
  10807. <var>BufSize</var> specifies the length of <var>BinValue</var>, which means
  10808. that <var>HexValue</var> must have size <var>2*BufSize</var>.
  10809. </p>
  10810. <p>
  10811. For example a buffer containing the byte values 255 and 0 will be converted to
  10812. FF00.
  10813. </p>
  10814. </descr>
  10815. <errors>
  10816. No length checking is done, so if an invalid size is specified, an exception
  10817. may follow.
  10818. </errors>
  10819. <seealso>
  10820. <link id="HexToBin"/>
  10821. </seealso>
  10822. </element>
  10823. <!-- function Visibility: default -->
  10824. <element name="HexToBin">
  10825. <short>Convert a hexadecimal string to a binary buffer</short>
  10826. <descr>
  10827. <var>HexToBin</var> scans the hexadecimal string representation in
  10828. <var>HexValue</var> and transforms every 2 character hexadecimal
  10829. number to a byte and stores it in <var>BinValue</var>. The buffer size is
  10830. the size of the binary buffer. Scanning will stop if the size of the binary
  10831. buffer is reached or when an invalid character is encountered. The return
  10832. value is the number of stored bytes.
  10833. </descr>
  10834. <errors>
  10835. No length checking is done, so if an invalid size is specified, an exception
  10836. may follow.
  10837. </errors>
  10838. <seealso>
  10839. <link id="BinToHex"/>
  10840. </seealso>
  10841. </element>
  10842. <!-- Template for copy&paste:
  10843. <element name="">
  10844. <short>
  10845. </short>
  10846. <descr>
  10847. </descr>
  10848. </element>
  10849. -->
  10850. </module>
  10851. </package>
  10852. </fpdoc-descriptions>