12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424 |
- <?xml version="1.0" encoding="ISO8859-1"?>
- <fpdoc-descriptions>
- <!--
- $Id$
- This file is part of the FPC documentation.
- Copyright (C) 1997, by Michael Van Canneyt
-
- The FPC documentation is free text; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The FPC Documentation is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the FPC documentation; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
- -->
- <package name="rtl">
- <module name="system">
- <short>The system unit</short>
- <!-- \FPCexampledir{refex} -->
- <descr>
- <p>
- The system unit contains the standard supported functions of Free Pascal. It is the
- same for all platforms. Basically it is the same as the system unit provided
- with Borland or Turbo Pascal.
- </p>
- <p>
- Functions are listed in alphabetical order. Arguments of functions or
- procedures that are optional are put between square brackets.
- </p>
- <p>
- The pre-defined constants and variables are listed in the first section.
- The second section contains an overview of all functions, grouped by
- functionality, and the last section contains the supported functions
- and procedures.
- </p>
- </descr>
- <topic name="integertypes">
- <short>Integer Types</short>
- <descr>
- <p>
- The following integer types are defined in the System unit:
- </p>
- <code>
- Shortint = -128..127;
- SmallInt = -32768..32767;
- Longint = $80000000..$7fffffff;
- byte = 0..255;
- word = 0..65535;
- dword = longword;
- cardinal = longword;
- Integer = smallint;
- </code>
- <p>
- The following types are used for the functions that need compiler magic
- such as <link id="Val"/> or <link id="Str"/>:
- </p>
- <code>
- StrLenInt = LongInt;
- ValSInt = Longint;
- ValUInt = Cardinal;
- ValReal = Extended;
- </code>
- <p>
- The <var>Real48</var> type is defined to emulate the old Turbo Pascal <var>Real</var> type:
- </p>
- <code>
- Real48 = Array[0..5] of byte;
- </code>
- <p>
- The assignment operator has been overloaded so this type can be assigned
- to the Free Pascal native <var>Double</var> and <var>Extended</var> types.
- <link id="Real2Double"/>.
- </p>
- <p>
- The following character types are defined for Delphi compatibility:
- </p>
- <code>
- TAnsiChar = Char;
- AnsiChar = TAnsiChar;
- </code>
- <p>
- And the following pointer types as well:
- </p>
- <code>
- PChar = ^char;
- pPChar = ^PChar;
- PAnsiChar = PChar;
- PQWord = ^QWord;
- PInt64 = ^Int64;
- pshortstring = ^shortstring;
- plongstring = ^longstring;
- pansistring = ^ansistring;
- pwidestring = ^widestring;
- pextended = ^extended;
- ppointer = ^pointer;
- </code>
- <p>
- For the <link id="SetJmp"/> and <link id="LongJmp"/> calls, the following jump bufer
- type is defined (for the I386 processor):
- </p>
- <code>
- jmp_buf = record
- ebx,esi,edi : Longint;
- bp,sp,pc : Pointer;
- end;
- PJmp_buf = ^jmp_buf;
- </code>
- <p>
- The following records and pointers can be used to scan the
- entries in the string message handler tables:
- </p>
- <code>
- tmsgstrtable = record
- name : pshortstring;
- method : pointer;
- end;
- pmsgstrtable = ^tmsgstrtable;
- tstringmessagetable = record
- count : dword;
- msgstrtable : array[0..0] of tmsgstrtable;
- end;
- pstringmessagetable = ^tstringmessagetable;
- </code>
- <p>
- The base class for all classes is defined as:
- </p>
- <code>
- Type
- TObject = Class
- Public
- constructor create;
- destructor destroy;virtual;
- class function newinstance : tobject;virtual;
- procedure freeinstance;virtual;
- function safecallexception(exceptobject : tobject;
- exceptaddr : pointer) : longint;virtual;
- procedure defaulthandler(var message);virtual;
- procedure free;
- class function initinstance(instance : pointer) : tobject;
- procedure cleanupinstance;
- function classtype : tclass;
- class function classinfo : pointer;
- class function classname : shortstring;
- class function classnameis(const name : string) : boolean;
- class function classparent : tclass;
- class function instancesize : longint;
- class function inheritsfrom(aclass : tclass) : boolean;
- class function inheritsfrom(aclass : tclass) : boolean;
- class function stringmessagetable : pstringmessagetable;
- procedure dispatch(var message);
- procedure dispatchstr(var message);
- class function methodaddress(const name : shortstring) : pointer;
- class function methodname(address : pointer) : shortstring;
- function fieldaddress(const name : shortstring) : pointer;
- procedure AfterConstruction;virtual;
- procedure BeforeDestruction;virtual;
- procedure DefaultHandlerStr(var message);virtual;
- end;
- TClass = Class Of TObject;
- PClass = ^TClass;
- </code>
- <p>
- Unhandled exceptions can be treated using a constant of the
- <var>TExceptProc</var> type:
- </p>
- <code>
- TExceptProc = Procedure (Obj : TObject; Addr,Frame: Pointer);
- </code>
- <p>
- <var>Obj</var> is the exception object that was used to raise the exception,
- <var>Addr</var> and <var>Frame</var> contain the exact address and stack frame
- where the exception was raised.
- </p>
- <p>
- The <var>TVarRec</var> type is used to access the elements passed in a \var{Array
- of Const} argument to a function or procedure:
- </p>
- <code>
- Type
- PVarRec = ^TVarRec;
- TVarRec = record
- case VType : Longint of
- vtInteger : (VInteger: Longint);
- vtBoolean : (VBoolean: Boolean);
- vtChar : (VChar: Char);
- vtExtended : (VExtended: PExtended);
- vtString : (VString: PShortString);
- vtPointer : (VPointer: Pointer);
- vtPChar : (VPChar: PChar);
- vtObject : (VObject: TObject);
- vtClass : (VClass: TClass);
- vtAnsiString : (VAnsiString: Pointer);
- vtWideString : (VWideString: Pointer);
- vtInt64 : (VInt64: PInt64);
- end;
- </code>
- <p>
- The heap manager uses the <var>TMemoryManager</var> type:
- </p>
- <code>
- PMemoryManager = ^TMemoryManager;
- TMemoryManager = record
- Getmem : Function(Size:Longint):Pointer;
- Freemem : Function(var p:pointer):Longint;
- FreememSize : Function(var p:pointer;Size:Longint):Longint;
- AllocMem : Function(Size:longint):Pointer;
- ReAllocMem : Function(var p:pointer;Size:longint):Pointer;
- MemSize : function(p:pointer):Longint;
- MemAvail : Function:Longint;
- MaxAvail : Function:Longint;
- HeapSize : Function:Longint;
- end;
- </code>
- <p>
- More information on using this record can be found in \progref.
- </p>
- </descr>
- </topic>
- <topic name="Constants">
- <short>Constants</short>
- <descr>
- <p>
- The following constants define the maximum values that can be used with
- various types:
- </p>
- <code>
- MaxSIntValue = High(ValSInt);
- MaxUIntValue = High(ValUInt);
- maxint = maxsmallint;
- maxLongint = $7fffffff;
- maxSmallint = 32767;
- </code>
- <p>
- The following constants for file-handling are defined in the system unit:
- </p>
- <code>
- Const
- fmclosed = $D7B0;
- fminput = $D7B1;
- fmoutput = $D7B2;
- fminout = $D7B3;
- fmappend = $D7B4;
- filemode : byte = 2;
- </code>
- <p>
- The <var>filemode</var> variable is used when a non-text file is opened using
- <var>Reset</var>. It indicates how the file will be opened. <var>filemode</var> can have one of
- the following values:
- </p>
- <dl>
- <dt>0</dt><dd> The file is opened for reading.
- </dd><dt>1</dt><dd> The file is opened for writing.
- </dd><dt>2</dt><dd> The file is opened for reading and writing.
- </dd>
- </dl>
- <p>
- The default value is 2. Other values are possible but are operating system specific.
- </p>
- <p>
- Further, the following non processor specific general-purpose constants
- are also defined:
- </p>
- <code>
- const
- erroraddr : pointer = nil;
- errorcode : word = 0;
- { max level in dumping on error }
- max_frame_dump : word = 20;
- </code>
- <p>
- </p>
- <remark>
- Processor specific global constants are named Testxxxx where xxxx
- represents the processor number (such as Test8086, Test68000),
- and are used to determine on what generation of processor the program
- is running on.
- </remark>
- <p>
- The following constants are defined to access VMT entries:
- </p>
- <code>
- vmtInstanceSize = 0;
- vmtParent = 8;
- vmtClassName = 12;
- vmtDynamicTable = 16;
- vmtMethodTable = 20;
- vmtFieldTable = 24;
- vmtTypeInfo = 28;
- vmtInitTable = 32;
- vmtAutoTable = 36;
- vmtIntfTable = 40;
- vmtMsgStrPtr = 44;
- vmtMethodStart = 48;
- vmtDestroy = vmtMethodStart;
- vmtNewInstance = vmtMethodStart+4;
- vmtFreeInstance = vmtMethodStart+8;
- vmtSafeCallException = vmtMethodStart+12;
- vmtDefaultHandler = vmtMethodStart+16;
- vmtAfterConstruction = vmtMethodStart+20;
- vmtBeforeDestruction = vmtMethodStart+24;
- vmtDefaultHandlerStr = vmtMethodStart+28;
- </code>
- <p>
- The constant names should be used, and never their values, because
- the VMT table can change, breaking code that uses direct values.
- </p>
- <p>
- The following constants will be used for the planned <var>variant</var> support:
- </p>
- <code>
- varEmpty = $0000;
- varNull = $0001;
- varSmallint = $0002;
- varInteger = $0003;
- varSingle = $0004;
- varDouble = $0005;
- varCurrency = $0006;
- varDate = $0007;
- varOleStr = $0008;
- varDispatch = $0009;
- varError = $000A;
- varBoolean = $000B;
- varVariant = $000C;
- varUnknown = $000D;
- varByte = $0011;
- varString = $0100;
- varAny = $0101;
- varTypeMask = $0FFF;
- varArray = $2000;
- varByRef = $4000;
- </code>
- <p>
- The following constants are used in the <var>TVarRec</var> record:
- </p>
- <code>
- vtInteger = 0;
- vtBoolean = 1;
- vtChar = 2;
- vtExtended = 3;
- vtString = 4;
- vtPointer = 5;
- vtPChar = 6;
- vtObject = 7;
- vtClass = 8;
- vtWideChar = 9;
- vtPWideChar = 10;
- vtAnsiString = 11;
- vtCurrency = 12;
- vtVariant = 13;
- vtInterface = 14;
- vtWideString = 15;
- vtInt64 = 16;
- vtQWord = 17;
- </code>
- <p>
- The <var>ExceptProc</var> is called when an unhandled exception occurs:
- </p>
- <code>
- Const
- ExceptProc : TExceptProc = Nil;
- </code>
- <p>
- It is set in the <file>objpas</file> unit, but it can be set by the programmer
- to change the default exception handling.
- </p>
- <p>
- The following constants are defined to describe the operating system's file
- system:
- </p>
- <code>
- LineEnding = #10;
- LFNSupport = true;
- DirectorySeparator = '/';
- DriveSeparator = ':';
- PathSeparator = ':';
- FileNameCaseSensitive : Boolean = True;
- </code>
- <p>
- The shown values are for unix platforms, but will be different on other
- platforms.
- The meaning of the constants is the following:
- </p>
- <dl>
- <dt>LineEnding</dt>
- <dd> End of line marker. This constant is used when writing end
- of lines to text files.
- </dd>
- <dt>LFNSupport</dt>
- <dd> This is <var>True</var> if the system supports long file names,
- i.e. filenames that are not restricted to 8.3 characters.
- </dd>
- <dt>DirectorySeparator</dt>
- <dd> The character that is used as a directory
- separator, i.e. it appears between various parts of a path to a file.
- </dd>
- <dt>DriveSeparator</dt>
- <dd> On systems that support drive letters, this character
- separates the drive indication from the rest of a filename.
- </dd>
- <dt>PathSeparator</dt>
- <dd> This character can be found between elements in a
- series of paths (such as the contents of the <var>PATH</var> environment
- variable.
- </dd>
- <dt>FileNameCaseSensitive</dt>
- <dd> Indicates whether filenames are case sensitive.
- </dd>
- </dl>
- <p>
- When programming cross-platform, use these constants instead of hard-coded
- characters. This will enhance portability of an application.
- </p>
- </descr>
- </topic>
- <topic name="variables">
- <short>Variables</short>
- <descr>
- <p>
- The following variables are defined and initialized in the system unit:
- </p>
- <code>
- var
- output,input,stderr : text;
- exitproc : pointer;
- exitcode : word;
- stackbottom : Cardinal;
- </code>
- <p>
- The variables <var>ExitProc</var>, <var>exitcode</var> are used in the Free Pascal exit
- scheme. It works similarly to the one in Turbo Pascal:
- </p>
- <p>
- When a program halts (be it through the call of the <var>Halt</var> function or
- <var>Exit</var> or through a run-time error), the exit mechanism checks the value
- of <var>ExitProc</var>. If this one is non-<var>Nil</var>, it is set to <var>Nil</var>, and
- the procedure is called. If the exit procedure exits, the value of ExitProc
- is checked again. If it is non-<var>Nil</var> then the above steps are repeated.
- So when an exit procedure must be installed, the old value of <var>ExitProc</var>
- should be saved (it may be non-<var>Nil</var>, since other units could have set
- it). In the exit procedure the value of <var>ExitProc</var> should be restored to
- the previous value, such that if it was non-<var>Nil</var> the exit-procedure can be
- called.
- </p>
- <p>
- The <var>ErrorAddr</var> and <var>ExitCode</var> can be used to check for
- error-conditions. If <var>ErrorAddr</var> is non-<var>Nil</var>, a run-time error has
- occurred. If so, <var>ExitCode</var> contains the error code. If <var>ErrorAddr</var> is
- <var>Nil</var>, then {ExitCode} contains the argument to <var>Halt</var> or 0 if the
- program terminated normally.
- </p>
- <p>
- <var>ExitCode</var> is always passed to the operating system as the exit-code of
- the current process.
- </p>
- <remark>
- The maximum error code under linux and unix like operating systems is 127.
- </remark>
- <p>
- Under <file>GO32</file>, the following constants are also defined :
- </p>
- <code>
- const
- seg0040 = $0040;
- segA000 = $A000;
- segB000 = $B000;
- segB800 = $B800;
- </code>
- <p>
- These constants allow easy access to the bios/screen segment via mem/absolute.
- </p>
- <p>
- The randomize function uses a seed stored in the <var>RandSeed</var> variable:
- </p>
- <code>
- RandSeed : Cardinal;
- </code>
- <p>
- This variable is initialized in the initialization code of the system unit.
- </p>
- <p>
- Other variables indicate the state of the application.
- </p>
- <code>
- IsLibrary : boolean;
- IsMultiThread : boolean;
- </code>
- <p>
- The <var>IsLibrary</var> variable is set to true if this module is a
- shared library instead of an application. The <var>IsMultiThread</var>
- variable is set to True if the application has spawned other
- threads, otherwise, and by default, it is set to False.
- </p>
- </descr>
- <example file="refex/ex98"/>
- </topic>
- <topic name="FileFunctions">
- <short>File handling functions</short>
- <descr>
- <p>
- Functions concerning input and output from and to file.
- </p>
- <table>
- <th><td>Name</td><td>Description</td></th>
- <tr><td><link id="Append"/></td><td>Open a file in append mode</td></tr>
- <tr><td><link id="Assign"/></td><td>Assign a name to a file</td></tr>
- <tr><td><link id="Blockread"/></td><td>Read data from a file into memory</td></tr>
- <tr><td><link id="Blockwrite"/></td><td>Write data from memory to a file</td></tr>
- <tr><td><link id="Close"/></td><td>Close a file</td></tr>
- <tr><td><link id="Eof"/></td><td>Check for end of file</td></tr>
- <tr><td><link id="Eoln"/></td><td>Check for end of line</td></tr>
- <tr><td><link id="Erase"/></td><td>Delete file from disk</td></tr>
- <tr><td><link id="Filepos"/></td><td>Position in file</td></tr>
- <tr><td><link id="Filesize"/></td><td>Size of file</td></tr>
- <tr><td><link id="Flush"/></td><td>Write file buffers to disk</td></tr>
- <tr><td><link id="IOresult"/></td><td>Return result of last file IO operation</td></tr>
- <tr><td><link id="Read"/></td><td>Read from file into variable</td></tr>
- <tr><td><link id="Readln"/></td><td>Read from file into variable and goto next line</td></tr>
- <tr><td><link id="Rename"/></td><td>Rename file on disk</td></tr>
- <tr><td><link id="Reset"/></td><td>Open file for reading</td></tr>
- <tr><td><link id="Rewrite"/></td><td>Open file for writing</td></tr>
- <tr><td><link id="Seek"/></td><td>Set file position</td></tr>
- <tr><td><link id="SeekEof"/></td><td>Set file position to end of file</td></tr>
- <tr><td><link id="SeekEoln"/></td><td>Set file position to end of line</td></tr>
- <tr><td><link id="SetTextBuf"/></td><td>Set size of file buffer</td></tr>
- <tr><td><link id="Truncate"/></td><td>Truncate the file at position</td></tr>
- <tr><td><link id="Write"/></td><td>Write variable to file</td></tr>
- <tr><td><link id="WriteLn"/></td><td>Write variable to file and append newline</td></tr>
- </table>
- </descr>
- </topic>
- <topic name="MemoryFunctions">
- <short>Memory management functions</short>
- <descr>
- <p>
- Functions concerning memory issues.
- </p>
- <table>
- <th><td>Name</td><td>Description</td></th>
- <tr><td><link id="Addr"/></td><td>Return address of variable</td></tr>
- <tr><td><link id="Assigned"/></td><td>Check if a pointer is valid</td></tr>
- <tr><td><link id="CompareByte"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
- <tr><td><link id="CompareChar"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
- <tr><td><link id="CompareDWord"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
- <tr><td><link id="CompareWord"/></td><td>Compare 2 memory buffers byte per byte</td></tr>
- <tr><td><link id="CSeg"/></td><td>Return code segment</td></tr>
- <tr><td><link id="Dispose"/></td><td>Free dynamically allocated memory</td></tr>
- <tr><td><link id="DSeg"/></td><td>Return data segment</td></tr>
- <tr><td><link id="FillByte"/></td><td>Fill memory region with 8-bit pattern</td></tr>
- <tr><td><link id="Fillchar"/></td><td>Fill memory region with certain character</td></tr>
- <tr><td><link id="FillDWord"/></td><td>Fill memory region with 32-bit pattern</td></tr>
- <tr><td><link id="Fillword"/></td><td>Fill memory region with 16-bit pattern</td></tr>
- <tr><td><link id="Freemem"/></td><td>Release allocated memory</td></tr>
- <tr><td><link id="Getmem"/></td><td>Allocate new memory</td></tr>
- <tr><td><link id="GetMemoryManager"/></td><td>Return current memory manager</td></tr>
- <tr><td><link id="High"/></td><td>Return highest index of open array or enumerated</td></tr>
- <tr><td><link id="IsMemoryManagerSet"/></td><td>Is the memory manager set</td></tr>
- <tr><td><link id="Low"/></td><td>Return lowest index of open array or enumerated</td></tr>
- <tr><td><link id="Move"/></td><td>Move data from one location in memory to another</td></tr>
- <tr><td><link id="MoveChar0">MoveChar0</link></td><td>Move data till first zero character</td></tr>
- <tr><td><link id="New"/></td><td>Dynamically allocate memory for variable</td></tr>
- <tr><td><link id="Ofs"/></td><td>Return offset of variable</td></tr>
- <tr><td><link id="Ptr"/></td><td>Combine segment and offset to pointer</td></tr>
- <tr><td><link id="ReAllocMem"/></td><td>Resize a memory block on the heap</td></tr>
- <tr><td><link id="Seg"/></td><td>Return segment</td></tr>
- <tr><td><link id="SetMemoryManager"/></td><td>Set a memory manager</td></tr>
- <tr><td><link id="Sptr"/></td><td>Return current stack pointer</td></tr>
- <tr><td><link id="SSeg"/></td><td>Return stack segment register value</td></tr>
- </table>
- </descr>
- </topic>
- <topic name="MathematicalFunctions">
- <short>Mathematical routines</short>
- <descr>
- <p>
- Functions connected to calculating and coverting numbers.
- </p>
- <table>
- <th><td>Name</td><td>Description</td></th>
- <tr><td><link id="Abs"/></td><td>Calculate absolute value</td></tr>
- <tr><td><link id="Arctan"/></td><td>Calculate inverse tangent</td></tr>
- <tr><td><link id="Cos"/></td><td>Calculate cosine of angle</td></tr>
- <tr><td><link id="Dec"/></td><td>Decrease value of variable</td></tr>
- <tr><td><link id="Exp"/></td><td>Exponentiate</td></tr>
- <tr><td><link id="Frac"/></td><td>Return fractional part of floating point value</td></tr>
- <tr><td><link id="Hi"/></td><td>Return high byte/word of value</td></tr>
- <tr><td><link id="Inc"/></td><td>Increase value of variable</td></tr>
- <tr><td><link id="Int"/></td><td>Calculate integer part of floating point value</td></tr>
- <tr><td><link id="Ln"/></td><td>Calculate logarithm</td></tr>
- <tr><td><link id="Lo"/></td><td>Return low byte/word of value</td></tr>
- <tr><td><link id="Odd"/></td><td>Is a value odd or even ? </td></tr>
- <tr><td><link id="Pi"/></td><td>Return the value of pi</td></tr>
- <tr><td><link id="Power"/></td><td>Raise float to integer power</td></tr>
- <tr><td><link id="Random"/></td><td>Generate random number</td></tr>
- <tr><td><link id="Randomize"/></td><td>Initialize random number generator</td></tr>
- <tr><td><link id="Round"/></td><td>Round floating point value to nearest integer number</td></tr>
- <tr><td><link id="Sin"/></td><td>Calculate sine of angle</td></tr>
- <tr><td><link id="Sqr"/></td><td>Calculate the square of a value</td></tr>
- <tr><td><link id="Sqrt"/></td><td>Calculate the square root of a value</td></tr>
- <tr><td><link id="Swap"/></td><td>Swap high and low bytes/words of a variable</td></tr>
- <tr><td><link id="Trunc"/></td><td>Truncate a floating point value</td></tr>
- </table>
- </descr>
- </topic>
- <topic name="StringFunctions">
- <short>String handling</short>
- <descr>
- <p>
- All things connected to string handling.
- </p>
- <table>
- <th><td>Name</td><td>Description</td></th>
- <tr><td><link id="BinStr"/></td><td>Construct binary representation of integer</td></tr>
- <tr><td><link id="Chr"/></td><td>Convert ASCII code to character</td></tr>
- <tr><td><link id="Concat"/></td><td>Concatenate two strings</td></tr>
- <tr><td><link id="Copy"/></td><td>Copy part of a string</td></tr>
- <tr><td><link id="Delete"/></td><td>Delete part of a string</td></tr>
- <tr><td><link id="HexStr"/></td><td>Construct hexadecimal representation of integer</td></tr>
- <tr><td><link id="Insert"/></td><td>Insert one string in another</td></tr>
- <tr><td><link id="Length"/></td><td>Return length of string</td></tr>
- <tr><td><link id="Lowercase"/></td><td>Convert string to all-lowercase</td></tr>
- <tr><td><link id="OctStr"/></td><td>Construct octal representation of integer</td></tr>
- <tr><td><link id="Pos"/></td><td>Calculate position of one string in another</td></tr>
- <tr><td><link id="SetLength"/></td><td>Set length of a string</td></tr>
- <tr><td><link id="SetString"/></td><td>Set contents and length of a string</td></tr>
- <tr><td><link id="Str"/></td><td>Convert number to string representation</td></tr>
- <tr><td><link id="StringOfChar"/></td><td>Create string consisting of a number of characters</td></tr>
- <tr><td><link id="Upcase"/></td><td>Convert string to all-uppercase</td></tr>
- <tr><td><link id="Val"/></td><td>Convert string to number</td></tr>
- </table>
- </descr>
- </topic>
- <topic name="OSfunctions">
- <short>Operating System functions</short>
- <descr>
- <p>
- Functions that are connected to the operating system.
- </p>
- <table>
- <th><td>Name</td><td>Description</td></th>
- <tr><td><link id="Chdir"/></td><td>Change working directory</td></tr>
- <tr><td><link id="Getdir"/></td><td>Return current working directory</td></tr>
- <tr><td><link id="Halt"/></td><td>Halt program execution</td></tr>
- <tr><td><link id="Paramcount"/></td><td>Number of parameters with which program was called</td></tr>
- <tr><td><link id="Paramstr"/></td><td>Retrieve parameters with which program was called</td></tr>
- <tr><td><link id="Mkdir"/></td><td>Make a directory</td></tr>
- <tr><td><link id="Rmdir"/></td><td>Remove a directory</td></tr>
- <tr><td><link id="Runerror"/></td><td>Abort program execution with error condition</td></tr>
- </table>
- </descr>
- </topic>
- <topic name="MiscellaneousFunctions">
- <short>Miscellaneous functions</short>
- <descr>
- <p>
- Functions that do not belong in one of the other categories.
- </p>
- <table>
- <th><td>Name</td><td>Description</td></th>
- <tr><td><link id="Assert"/></td><td>Conditionally abort program with error</td></tr>
- <tr><td><link id="Break"/></td><td>Abort current loop</td></tr>
- <tr><td><link id="Continue"/></td><td>Next cycle in current loop</td></tr>
- <tr><td><link id="Exclude"/></td><td>Exclude an element from a set</td></tr>
- <tr><td><link id="Exit"/></td><td>Exit current function or procedure</td></tr>
- <tr><td><link id="Include"/></td><td>Include an element into a set</td></tr>
- <tr><td><link id="LongJmp"/></td><td>Jump to execution point</td></tr>
- <tr><td><link id="Ord"/></td><td>Return ordinal value of enumerated type</td></tr>
- <tr><td><link id="Pred"/></td><td>Return previous value of ordinal type</td></tr>
- <tr><td><link id="SetJmp"/></td><td>Mark execution point for jump</td></tr>
- <tr><td><link id="SizeOf"/></td><td>Return size of variable or type</td></tr>
- <tr><td><link id="Succ"/></td><td>Return next value of ordinal type</td></tr>
- </table>
- </descr>
- </topic>
- <element name="Abs">
- <short>Calculate absolute value</short>
- <descr>
- <var>Abs</var> returns the absolute value of a variable. The result of the
- function has the same type as its argument, which can be any numerical
- type.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Round"/>
- </seealso>
- <example file="refex/ex1"/>
- </element>
- <element name="Addr">
- <short>Return address of a variable</short>
- <descr>
- <var>Addr</var> returns a pointer to its argument, which can be any type, or a
- function or procedure name. The returned pointer isn't typed.
- The same result can be obtained by the <var>@</var> operator, which can return a
- typed pointer (\progref).
- </descr>
- <errors>
- None
- </errors>
- <seealso>
- <link id="SizeOf"/>
- </seealso>
- <example file="refex/ex2"/>
- </element>
- <element name="Append">
- <short>Open a file in append mode</short>
- <descr>
- <var>Append</var> opens an existing file in append mode. Any data written to
- <var>F</var> will be appended to the file. Only text files can be opened in
- append mode. After a call to <var>Append</var>, the file <var>F</var> becomes
- write-only.
- File sharing is not taken into account when calling <var>Append</var>.
- </descr>
- <errors>
- If the file doesn't exist when appending, a run-time error will be generated.
- This behaviour has changed on Windows and Linux platforms, where in versions
- prior to 1.0.6, the file would be created in append mode.
- </errors>
- <seealso>
- <link id="Rewrite"/>
- <link id="Close"/>
- <link id="Reset"/>
- </seealso>
- <example file="refex/ex3"/>
- </element>
- <element name="Arctan">
- <short>Calculate inverse tangent</short>
- <descr>
- <var>Arctan</var> returns the Arctangent of <var>X</var>, which can be any Real type.
- The resulting angle is in radial units.
- </descr>
- <errors>
- None
- </errors>
- <seealso>
- <link id="Sin"/>
- <link id="Cos"/>
- </seealso>
- <example file="refex/ex4"/>
- </element>
- <element name="Assert">
- <short>Check validity of a given condition.</short>
- <descr>
- With assertions on, <var>Assert</var> tests if <var>expr</var> is
- false, and if so, aborts the application with a Runtime error
- 227 and an optional error message in <var>msg</var>.
- If <var>expr</var> is true, program execution continues normally.
- If assertions are not enabled at compile time, this routine does
- nothing, and no code is generated for the <var>Assert</var> call.
- Enabling and disabling assertions at compile time is done via
- the <var>\$C</var> or <var>\$ASSERTIONS</var> compiler switches. These are
- global switches.
- The default behavior of the assert call can be changed by
- setting a new handler in the <var>AssertErrorProc</var> variable.
- Sysutils overrides the default handler to raise a <var>EAssertionFailed</var>
- exception.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Halt"/>
- <link id="Runerror"/>
- </seealso>
- </element>
- <element name="Assign">
- <short>Assign a name to a file</short>
- <descr>
- <var>Assign</var> assigns a name to <var>F</var>, which can be any file type.
- This call doesn't open the file, it just assigns a name to a file variable,
- and marks the file as closed.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Reset"/>
- <link id="Rewrite"/>
- <link id="Append"/>
- </seealso>
- <example file="refex/ex5"/>
- </element>
- <element name="Assigned">
- <short>Check if a pointer is valid</short>
- <descr>
- <var>Assigned</var> returns <var>True</var> if <var>P</var> is non-nil
- and retuns <var>False</var> of <var>P</var> is nil.
- The main use of Assigned is that Procedural variables, method variables and
- class-type variables also can be passed to <var>Assigned</var>.
- </descr>
- <errors>
- None
- </errors>
- <seealso>
- <link id="New"/>
- </seealso>
- <example file="refex/ex96"/>
- </element>
- <element name="BinStr">
- <short>Convert integer to string with binary representation.</short>
- <descr>
- <var>BinStr</var> returns a string with the binary representation
- of <var>Value</var>. The string has at most <var>cnt</var> characters.
- (i.e. only the <var>cnt</var> rightmost bits are taken into account)
- To have a complete representation of any longint-type value, 32
- bits are needed, i.e. <var>cnt=32</var>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Str"/>
- <link id="Val"/>
- <link id="HexStr"/>
- <link id="OctStr"/>
- </seealso>
- <example file="refex/ex82"/>
- </element>
- <element name="Blockread">
- <short>Read data from an untyped file into memory</short>
- <descr>
- <var>Blockread</var> reads <var>count</var> or less records from file <var>F</var>. A
- record is a block of bytes with size specified by the <link id="Rewrite"/> or
- <link id="Reset"/> statement.
- The result is placed in <var>Buffer</var>, which must contain enough room for
- <var>Count</var> records. The function cannot read partial records.
- If <var>Result</var> is specified, it contains the number of records actually
- read. If <var>Result</var> isn't specified, and less than <var>Count</var> records were
- read, a run-time error is generated. This behavior can be controlled by the
- \var{\{\$i\}} switch.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Blockwrite"/>
- <link id="Close"/>
- <link id="Reset"/>
- <link id="Assign"/>
- </seealso>
- <example file="refex/ex6"/>
- </element>
- <element name="Blockwrite">
- <short>Write data from memory to an untyped file</short>
- <descr>
- <var>BlockWrite</var> writes <var>count</var> records from <var>buffer</var> to the file
- <var>F</var>.A record is a block of bytes with size specified by the <link id="Rewrite"/> or
- <link id="Reset"/> statement.
- If the records couldn't be written to disk, a run-time error is generated.
- This behavior can be controlled by the \var{\{\$i\}} switch.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Blockread"/>
- <link id="Close"/>
- <link id="Rewrite"/>
- <link id="Assign"/>
- </seealso>
- </element>
- For the example, see <link id="Blockread"/>.
- <element name="Break">
- <short>Exit current loop construct.</short>
- <descr>
- <p>
- <var>Break</var> jumps to the statement following the end of the current
- repetitive statement. The code between the <var>Break</var> call and
- the end of the repetitive statement is skipped.
- The condition of the repetitive statement is NOT evaluated.
- </p>
- <p>
- This can be used with <var>For</var>, var{repeat} and <var>While</var> statements.
- </p>
- <p>
- Note that while this is a procedure, <var>Break</var> is a reserved word
- and hence cannot be redefined.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Continue"/>
- <link id="Exit"/>
- </seealso>
- <example file="refex/ex87"/>
- </element>
- <element name="Chdir">
- <short>Change current working directory.</short>
- <descr>
- <var>Chdir</var> changes the working directory of the process to <var>S</var>.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Mkdir"/>
- <link id="Rmdir"/>
- </seealso>
- <example file="refex/ex7"/>
- </element>
- <element name="Chr">
- <short>Convert byte value to character value</short>
- <descr>
- <var>Chr</var> returns the character which has ASCII value <var>X</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Ord"/>
- <link id="Str"/>
- </seealso>
- <example file="refex/ex8"/>
- </element>
- <element name="Close">
- <short>Close a file</short>
- <descr>
- <var>Close</var> flushes the buffer of the file <var>F</var> and closes <var>F</var>.
- After a call to <var>Close</var>, data can no longer be read from or written to
- <var>F</var>.
- To reopen a file closed with <var>Close</var>, it isn't necessary to assign the
- file again. A call to <link id="Reset"/> or <link id="Rewrite"/> is sufficient.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Assign"/>
- <link id="Reset"/>
- <link id="Rewrite"/>
- <link id="Flush"/>
- </seealso>
- <example file="refex/ex9"/>
- </element>
- <element name="CompareByte">
- <short>Compare 2 memory buffers byte per byte</short>
- <descr>
- <p>
- <var>CompareByte</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
- byte-per-byte basis for a total of <var>len</var> bytes.
- </p>
- <p>
- The function returns one of the following values:
- </p>
- <dl>
- <dt>less than 0</dt>
- <dd> if <var>buf1</var> and <var>buf2</var> contain different bytes
- in the first <var>len</var> bytes, and the first such byte is smaller in <var>buf1</var>
- than the byte at the same position in <var>buf2</var>.
- </dd>
- <dt>0</dt>
- <dd> if the first <var>len</var> bytes in <var>buf1</var> and <var>buf2</var> are
- equal.
- \item [greater than 0] if <var>buf1</var> and <var>buf2</var> contain different bytes
- in the first <var>len</var> bytes, and the first such byte is larger in <var>buf1</var>
- than the byte at the same position in <var>buf2</var>.
- </dd>
- </dl>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="CompareChar"/>
- <link id="CompareWord"/>
- <link id="CompareDWord"/>
- </seealso>
- <example file="refex/ex99"/>
- </element>
- <element name="CompareChar">
- <short>ompare 2 memory buffers character per character</short>
- <descr>
- <p>
- <var>CompareChar</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
- character-per-character basis for a total of <var>len</var> characters.
- </p>
- <p>
- The <var>CompareChar0</var> variant compares <var>len</var> bytes, or until
- a zero character is found.
- </p>
- <p>
- The function returns one of the following values:
- </p>
- <dl>
- <dt>-1</dt>
- <dd> if <var>buf1</var> and <var>buf2</var> contain different characters
- in the first <var>len</var> positions, and the first such character is smaller in <var>buf1</var>
- than the character at the same position in <var>buf2</var>.
- </dd>
- <dt>0</dt>
- <dd> if the first <var>len</var> characters in <var>buf1</var> and <var>buf2</var> are
- equal.
- </dd>
- <dt>1</dt>
- <dd>if <var>buf1</var> and <var>buf2</var> contain different characters
- in the first <var>len</var> positions, and the first such character is larger in
- <var>buf1</var> than the character at the same position in <var>buf2</var>.
- </dd>
- </dl>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="CompareByte"/>
- <link id="CompareWord"/>
- <link id="CompareDWord"/>
- </seealso>
- <example file="refex/ex100"/>
- </element>
- <element name="CompareDWord">
- <short>Compare 2 memory buffers DWord per DWord</short>
- <descr>
- <p>
- <var>CompareDWord</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
- DWord-per-DWord basis for a total of <var>len</var> DWords. (A DWord is 4 bytes).
- </p>
- <p>
- The function returns one of the following values:
- </p>
- <dl>
- <dt>-1</dt>
- <dd> if <var>buf1</var> and <var>buf2</var> contain different DWords
- in the first <var>len</var> DWords, and the first such DWord is smaller in <var>buf1</var>
- than the DWord at the same position in <var>buf2</var>.
- </dd>
- <dt>0</dt>
- <dd> if the first <var>len</var> DWords in <var>buf1</var> and <var>buf2</var> are
- equal.
- </dd>
- <dt>1</dt>
- <dd>if <var>buf1</var> and <var>buf2</var> contain different DWords
- in the first <var>len</var> DWords, and the first such DWord is larger in <var>buf1</var>
- than the DWord at the same position in <var>buf2</var>.
- </dd>
- </dl>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="CompareChar"/>
- <link id="CompareByte"/>
- <link id="CompareWord"/>,
- </seealso>
- <example file="refex/ex101"/>
- </element>
- <element name="CompareWord">
- <short>Compare 2 memory buffers word per word</short>
- <descr>
- <p>
- <var>CompareWord</var> compares two memory regions <var>buf1</var>,<var>buf2</var> on a
- Word-per-Word basis for a total of <var>len</var> Words. (A Word is 2 bytes).
- </p>
- <p>
- The function returns one of the following values:
- </p>
- <dl>
- <dt>-1</dt>
- <dd> if <var>buf1</var> and <var>buf2</var> contain different Words
- in the first <var>len</var> Words, and the first such Word is smaller in <var>buf1</var>
- than the Word at the same position in <var>buf2</var>.
- </dd>
- <dt>0</dt>
- <dd> if the first <var>len</var> Words in <var>buf1</var> and <var>buf2</var> are
- equal.
- </dd>
- <dt>1</dt>
- <dd>
- if <var>buf1</var> and <var>buf2</var> contain different Words
- in the first <var>len</var> Words, and the first such Word is larger in <var>buf1</var>
- than the Word at the same position in <var>buf2</var>.
- </dd>
- </dl>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="CompareChar"/>
- <link id="CompareByte"/>
- <link id="CompareDWord"/>,
- </seealso>
- <example file="refex/ex102"/>
- </element>
- <element name="Concat">
- <short>Append one string to another.</short>
- <descr>
- <var>Concat</var> concatenates the strings <var>S1</var>,<var>S2</var> etc. to one long
- string. The resulting string is truncated at a length of 255 bytes.
- The same operation can be performed with the <var>+</var> operation.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Copy"/>
- <link id="Delete"/>
- <link id="Insert"/>
- <link id="Pos"/>
- <link id="Length"/>
- </seealso>
- <example file="refex/ex10"/>
- </element>
- <element name="Continue">
- <short>Continue with next loop cycle.</short>
- <descr>
- <p>
- <var>Continue</var> jumps to the end of the current repetitive statement.
- The code between the <var>Continue</var> call and the end of the repetitive
- statement is skipped. The condition of the repetitive statement is then
- checked again.
- </p>
- <p>
- This can be used with <var>For</var>, var{repeat} and <var>While</var> statements.
- </p>
- <p>
- Note that while this is a procedure, <var>Continue</var> is a reserved word
- and hence cannot be redefined.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Break"/>
- <link id="Exit"/>
- </seealso>
- <example file="refex/ex86"/>
- </element>
- <element name="Copy">
- <short>Copy part of a string.</short>
- <descr>
- <var>Copy</var> returns a string which is a copy if the <var>Count</var> characters
- in <var>S</var>, starting at position <var>Index</var>. If <var>Count</var> is larger than
- the length of the string <var>S</var>, the result is truncated.
- If <var>Index</var> is larger than the length of the string <var>S</var>, then an
- empty string is returned.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Delete"/>
- <link id="Insert"/>
- <link id="Pos"/>
- </seealso>
- <example file="refex/ex11"/>
- </element>
- <element name="Cos">
- <short>Calculate cosine of angle</short>
- <descr>
- <var>Cos</var> returns the cosine of <var>X</var>, where X is an angle, in radians.
- If the absolute value of the argument is larger than \var{2\^{}63}, then the
- result is undefined.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Arctan"/>
- <link id="Sin"/>
- </seealso>
- <example file="refex/ex12"/>
- </element>
- <element name="CSeg">
- <short>Return code segment</short>
- <descr>
- <var>CSeg</var> returns the Code segment register. In Free Pascal, it returns always a
- zero, since Free Pascal is a 32 bit compiler.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="DSeg"/>
- <link id="Seg"/>
- <link id="Ofs"/>
- <link id="Ptr"/>
- </seealso>
- <example file="refex/ex13"/>
- </element>
- <element name="Dec">
- <short>Decrease value of variable</short>
- <descr>
- <var>Dec</var> decreases the value of <var>X</var> with <var>Decrement</var>.
- If <var>Decrement</var> isn't specified, then 1 is taken as a default.
- </descr>
- <errors>
- A range check can occur, or an underflow error, if an attempt it made
- to decrease <var>X</var> below its minimum value.
- </errors>
- <seealso>
- <link id="Inc"/>
- </seealso>
- <example file="refex/ex14"/>
- </element>
- <element name="Delete">
- <short>Delete part of a string.</short>
- <descr>
- <var>Delete</var> removes <var>Count</var> characters from string <var>S</var>, starting
- at position <var>Index</var>. All characters after the delected characters are
- shifted <var>Count</var> positions to the left, and the length of the string is adjusted.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Copy"/>
- <link id="Pos"/>
- <link id="Insert"/>
- </seealso>
- <example file="refex/ex15"/>
- </element>
- <element name="Dispose">
- <short>Free dynamically allocated memory</short>
- <descr>
- <p>
- The first form <var>Dispose</var> releases the memory allocated with a call to
- <link id="New"/>. The pointer <var>P</var> must be typed. The released memory is
- returned to the heap.
- </p>
- <p>
- The second form of <var>Dispose</var> accepts as a first parameter a pointer
- to an object type, and as a second parameter the name of a destructor
- of this object. The destructor will be called, and the memory allocated
- for the object will be freed.
- </p>
- </descr>
- <errors>
- An runtime error will occur if the pointer doesn't point to a location in the
- heap.
- </errors>
- <seealso>
- <link id="New"/>
- <link id="Getmem"/>
- <link id="Freemem"/>
- </seealso>
- <example file="refex/ex16"/>
- </element>
- <element name="DSeg">
- <short>Return data segment</short>
- <descr>
- <var>DSeg</var> returns the data segment register. In Free Pascal, it returns always a
- zero, since Free Pascal is a 32 bit compiler.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="CSeg"/>
- <link id="Seg"/>
- <link id="Ofs"/>
- <link id="Ptr"/>
- </seealso>
- <example file="refex/ex17"/>
- </element>
- <element name="Eof">
- <short>Check for end of file</short>
- <descr>
- <var>Eof</var> returns <var>True</var> if the file-pointer has reached the end of the
- file, or if the file is empty. In all other cases <var>Eof</var> returns
- <var>False</var>.
- If no file <var>F</var> is specified, standard input is assumed.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Eoln"/>
- <link id="Assign"/>
- <link id="Reset"/>
- <link id="Rewrite"/>
- </seealso>
- <example file="refex/ex18"/>
- </element>
- <element name="Eoln">
- <short>Check for end of line</short>
- <descr>
- <var>Eof</var> returns <var>True</var> if the file pointer has reached the end of a
- line, which is demarcated by a line-feed character (ASCII value 10), or if
- the end of the file is reached.
- In all other cases <var>Eof</var> returns <var>False</var>.
- If no file <var>F</var> is specified, standard input is assumed.
- It can only be used on files of type <var>Text</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Eof"/>
- <link id="Assign"/>
- <link id="Reset"/>
- <link id="Rewrite"/>
- </seealso>
- <example file="refex/ex19"/>
- </element>
- <element name="Erase">
- <short>Delete a file from disk</short>
- <descr>
- <var>Erase</var> removes an unopened file from disk. The file should be
- assigned with <var>Assign</var>, but not opened with <var>Reset</var> or <var>Rewrite</var>
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Assign"/>
- </seealso>
- <example file="refex/ex20"/>
- </element>
- <element name="Exclude">
- <short>Exlude element from a set if it is present.</short>
- <descr>
- <p>
- <var>Exclude</var> removes <var>E</var> from the set <var>S</var> if it is
- included inthe set. E should be of the same type as the base type
- of the set <var>S</var>.
- </p>
- <p>
- Thus, the two following statements do the same thing:
- </p>
- <code>
- S:=S-[E];
- Exclude(S,E);
- </code>
- </descr>
- <errors>
- If the type of the element <var>E</var> is not equal to the base type of the
- set <var>S</var>, the compiler will generate an error.
- </errors>
- <seealso>
- <link id="Include"/>
- </seealso>
- <example file="refex/ex111"/>
- </element>
- <element name="Exit">
- <short>Exit current subroutine.</short>
- <descr>
- <var>Exit</var> exits the current subroutine, and returns control to the calling
- routine. If invoked in the main program routine, exit stops the program.
- The optional argument <var>X</var> allows to specify a return value, in the case
- <var>Exit</var> is invoked in a function. The function result will then be
- equal to <var>X</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Halt"/>
- </seealso>
- <example file="refex/ex21"/>
- </element>
- <element name="Exp">
- <short>Exponentiate</short>
- <descr>
- <var>Exp</var> returns the exponent of <var>X</var>, i.e. the number <var>e</var> to the
- power <var>X</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Ln"/>
- <link id="Power"/>
- </seealso>
- <example file="refex/ex22"/>
- </element>
- <element name="Filepos">
- <short>Get position in file</short>
- <descr>
- <var>Filepos</var> returns the current record position of the file-pointer in file
- <var>F</var>. It cannot be invoked with a file of type <var>Text</var>. A compiler error
- will be generated if this is attempted.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Filesize"/>
- </seealso>
- <example file="refex/ex23"/>
- </element>
- <element name="Filesize">
- <short>Size of file</short>
- <descr>
- <var>Filesize</var> returns the total number of records in file <var>F</var>.
- It cannot be invoked with a file of type <var>Text</var>. (under linux and unix, this
- also means that it cannot be invoked on pipes).
- If <var>F</var> is empty, 0 is returned.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Filepos"/>
- </seealso>
- <example file="refex/ex24"/>
- </element>
- <element name="FillByte">
- <short>Fill memory region with 8-bit pattern</short>
- <descr>
- <var>FillByte</var> fills the memory starting at <var>X</var> with <var>Count</var> bytes
- with value equal to <var>Value</var>.
- This is useful for quickly zeroing out a memory location. When the size of
- the memory location to be filled out is a multiple of 2 bytes, it is better
- to use <link id="Fillword"/>, and if it is a multiple of 4 bytes it is better
- to use <link id="FillDWord"/>, these routines are optimized for their respective sizes.
- </descr>
- <errors>
- No checking on the size of <var>X</var> is done.
- </errors>
- <seealso>
- <link id="Fillchar"/>
- <link id="FillDWord"/>
- <link id="Fillword"/>
- <link id="Move"/>
- </seealso>
- <example file="refex/ex102"/>
- </element>
- <element name="Fillchar">
- <short>Fill memory region with certain character</short>
- <descr>
- <var>Fillchar</var> fills the memory starting at <var>X</var> with <var>Count</var> bytes
- or characters with value equal to <var>Value</var>.
- </descr>
- <errors>
- No checking on the size of <var>X</var> is done.
- </errors>
- <seealso>
- <link id="Fillword"/>
- <link id="Move"/>
- <link id="FillByte"/>
- <link id="FillDWord"/>
- </seealso>
- <example file="refex/ex25"/>
- </element>
- <element name="FillDWord">
- <short>Fill memory region with 32-bit pattern</short>
- <descr>
- <var>Fillword</var> fills the memory starting at <var>X</var> with <var>Count</var> DWords
- with value equal to <var>Value</var>. A DWord is 4 bytes in size.
- </descr>
- <errors>
- No checking on the size of <var>X</var> is done.
- </errors>
- <seealso>
- <link id="FillByte"/>
- <link id="Fillchar"/>
- <link id="Fillword"/>
- <link id="Move"/>
- </seealso>
- <example file="refex/ex103"/>
- </element>
- <element name="Fillword">
- <short>Fill memory region with 16-bit pattern</short>
- <descr>
- <var>Fillword</var> fills the memory starting at <var>X</var> with <var>Count</var> words
- with value equal to <var>Value</var>. A word is 2 bytes in size.
- </descr>
- <errors>
- No checking on the size of <var>X</var> is done.
- </errors>
- <seealso>
- <link id="Fillchar"/>
- <link id="Move"/>
- </seealso>
- <example file="refex/ex76"/>
- </element>
- <element name="Flush">
- <short>Write file buffers to disk</short>
- <descr>
- <var>Flush</var> empties the internal buffer of an opened file <var>F</var> and writes the
- contents to disk. The file is \textit{not} closed as a result of this call.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Close"/>
- </seealso>
- <example file="refex/ex26"/>
- </element>
- <element name="Frac">
- <short>Return fractional part of floating point value.</short>
- <descr>
- <var>Frac</var> returns the non-integer part of <var>X</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Round"/>
- <link id="Int"/>
- </seealso>
- <example file="refex/ex27"/>
- </element>
- <element name="Freemem">
- <short>Release allocated memory</short>
- <descr>
- <var>Freemem</var> releases the memory occupied by the pointer <var>P</var>, of size
- <var>Count</var> (in bytes), and returns it to the heap. <var>P</var> should point to the memory
- allocated to a dynamic variable.
- </descr>
- <errors>
- An error will occur when <var>P</var> doesn't point to the heap.
- </errors>
- <seealso>
- <link id="Getmem"/>
- <link id="New"/>
- <link id="Dispose"/>
- </seealso>
- <example file="refex/ex28"/>
- </element>
- <element name="Getdir">
- <short>Return the current directory</short>
- <descr>
- <var>Getdir</var> returns in <var>dir</var> the current directory on the drive
- <var>drivenr</var>, where {drivenr} is 1 for the first floppy drive, 3 for the
- first hard disk etc. A value of 0 returns the directory on the current disk.
- On linux and unix systems, <var>drivenr</var> is ignored, as there is only one
- directory tree.
- </descr>
- <errors>
- An error is returned under dos, if the drive requested isn't ready.
- </errors>
- <seealso>
- <link id="Chdir"/>
- </seealso>
- <example file="refex/ex29"/>
- </element>
- <element name="Getmem">
- <short>Allocate new memory on the heap</short>
- <descr>
- <p>
- <var>Getmem</var> reserves <var>Size</var> bytes memory on the heap, and returns a
- pointer to this memory in <var>p</var>. If no more memory is available, nil is
- returned.
- </p>
- <p>
- For an example, see <link id="Freemem"/>.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Freemem"/>
- <link id="Dispose"/>
- <link id="New"/>
- </seealso>
- </element>
- <element name="GetMemoryManager">
- <short>Return current memory manager</short>
- <descr>
- <p>
- <var>GetMemoryManager</var> stores the current Memory Manager record in
- <var>MemMgr</var>.
- </p>
- <p>
- For an example, see \progref.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="SetMemoryManager"/>
- <link id="IsMemoryManagerSet"/>.
- </seealso>
- </element>
- <element name="Halt">
- <short>Stop program execution.</short>
- <descr>
- <var>Halt</var> stops program execution and returns control to the calling
- program. The optional argument <var>Errnum</var> specifies an exit value. If
- omitted, zero is returned.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Exit"/>
- </seealso>
- <example file="refex/ex30"/>
- </element>
- <element name="HexStr">
- <short>Convert integer value to string with hexadecimal representation.</short>
- <descr>
- <var>HexStr</var> returns a string with the hexadecimal representation
- of <var>Value</var>. The string has exactly <var>cnt</var> charaters.
- (i.e. only the <var>cnt</var> rightmost nibbles are taken into account)
- To have a complete representation of a Longint-type value, 8
- nibbles are needed, i.e. <var>cnt=8</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Str"/>
- <link id="Val"/>
- <link id="BinStr"/>
- </seealso>
- <example file="refex/ex81"/>
- </element>
- <element name="Hi">
- <short>Return high byte/word of value.</short>
- <descr>
- <var>Hi</var> returns the high byte or word from <var>X</var>, depending on the size
- of X. If the size of X is 4, then the high word is returned. If the size is
- 2 then the high byte is returned.
- <var>Hi</var> cannot be invoked on types of size 1, such as byte or char.
- </descr>
- <errors>
- None
- </errors>
- <seealso>
- <link id="Lo"/>
- </seealso>
- <example file="refex/ex31"/>
- </element>
- <element name="High">
- <short>Return highest index of open array or enumerated</short>
- <descr>
- <p>
- The return value of <var>High</var> depends on it's argument:
- </p>
- <ol>
- <li> If the argument is an ordinal type, <var>High</var> returns the highest
- value in the range of the given ordinal type.
- </li>
- <li> If the argument is an array type or an array type variable then
- <var>High</var> returns the highest possible value of it's index.
- </li>
- <li> If the argument is an open array identifier in a function or
- procedure, then <var>High</var> returns the highest index of the array, as if the
- array has a zero-based index.
- </li>
- </ol>
- <p>
- The return type is always the same type as the type of the argument
- (This can lead to some nasty surprises !).
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Low"/>
- <link id="Ord"/>
- <link id="Pred"/>
- <link id="Succ"/>
- </seealso>
- <example file="refex/ex80"/>
- </element>
- <element name="Inc">
- <short>Increase value of integer variable</short>
- <descr>
- <var>Inc</var> increases the value of <var>X</var> with <var>Increment</var>.
- If <var>Increment</var> isn't specified, then 1 is taken as a default.
- </descr>
- <errors>
- If range checking is on, then A range check can occur, or an overflow
- error, when an attempt is made to increase <var>X</var> over its maximum value.
- </errors>
- <seealso>
- <link id="Dec"/>
- </seealso>
- <example file="refex/ex32"/>
- </element>
- <element name="Include">
- <short>Include element in set if it was not yet present.</short>
- <descr>
- <p>
- <var>Include</var> includes <var>E</var> in the set <var>S</var> if it is
- not yet part of the set. E should be of the same type as the base type
- of the set <var>S</var>.
- </p>
- <p>
- Thus, the two following statements do the same thing:
- </p>
- <code>
- S:=S+[E];
- Include(S,E);
- </code>
- <p>
- For an example, see <link id="Exclude"/>
- </p>
- </descr>
- <errors>
- If the type of the element <var>E</var> is not equal to the base type of the
- set <var>S</var>, the compiler will generate an error.
- </errors>
- <seealso>
- <link id="Exclude"/>
- </seealso>
- </element>
- <element name="IndexByte">
- <short>Search for a byte in a memory range.</short>
- <descr>
- <var>IndexByte</var> searches the memory at <var>buf</var> for maximally <var>len</var>
- positions for the byte <var>b</var> and returns it's position if it found one.
- If <var>b</var> is not found then -1 is returned.
- The position is zero-based.
- </descr>
- <errors>
- <var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
- </errors>
- <seealso>
- <link id="IndexChar"/>
- <link id="IndexDWord"/>
- <link id="IndexWord"/>
- <link id="CompareByte"/>
- </seealso>
- <example file="refex/ex105"/>
- </element>
- <element name="IndexChar">
- <short>Search for a character in a memory range.</short>
- <descr>
- <var>IndexChar</var> searches the memory at <var>buf</var> for maximally <var>len</var>
- positions for the character <var>b</var> and returns it's position if it found one.
- If <var>b</var> is not found then -1 is returned.
- The position is zero-based. The <var>IndexChar0</var> variant stops looking if
- a null character is found, and returns -1 in that case.
- </descr>
- <errors>
- <var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
- </errors>
- <seealso>
- <link id="IndexByte"/>
- <link id="IndexDWord"/>
- <link id="IndexWord"/>
- <link id="CompareChar"/>
- </seealso>
- <example file="refex/ex108"/>
- </element>
- <element name="IndexDWord">
- <short>Search for a DWord value in a memory range.</short>
- <descr>
- <var>IndexChar</var> searches the memory at <var>buf</var> for maximally <var>len</var>
- positions for the DWord <var>DW</var> and returns it's position if it found one.
- If <var>DW</var> is not found then -1 is returned.
- The position is zero-based.
- </descr>
- <errors>
- <var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
- </errors>
- <seealso>
- <link id="IndexByte"/>
- <link id="IndexChar"/>
- <link id="IndexWord"/>
- <link id="CompareDWord"/>
- </seealso>
- <example file="refex/ex106"/>
- </element>
- <element name="IndexWord">
- <short>Search for a WORD value in a memory range.</short>
- <descr>
- <var>IndexChar</var> searches the memory at <var>buf</var> for maximally <var>len</var>
- positions for the Word <var>W</var> and returns it's position if it found one.
- If <var>W</var> is not found then -1 is returned.
- </descr>
- <errors>
- <var>Buf</var> and <var>Len</var> are not checked to see if they are valid values.
- </errors>
- <seealso>
- <link id="IndexByte"/>
- <link id="IndexDWord"/>
- <link id="IndexChar"/>
- <link id="CompareWord"/>
- </seealso>
- <example file="refex/ex107"/>
- </element>
- <element name="Insert">
- <short>Insert one string in another.</short>
- <descr>
- <var>Insert</var> inserts string <var>Source</var> in string <var>S</var>, at position
- <var>Index</var>, shifting all characters after <var>Index</var> to the right. The
- resulting string is truncated at 255 characters, if needed. (i.e. for
- shortstrings)
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Delete"/>
- <link id="Copy"/>
- <link id="Pos"/>
- </seealso>
- <example file="refex/ex33"/>
- </element>
- <element name="IsMemoryManagerSet">
- <short>Is the memory manager set</short>
- <descr>
- <var>IsMemoryManagerSet</var> will return <var>True</var> if the memory manager has
- been set to another value than the system heap manager, it will return
- <var>False</var> otherwise.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="SetMemoryManager"/>
- <link id="GetMemoryManager"/>
- </seealso>
- </element>
- <element name="Int">
- <short>Calculate integer part of floating point value.</short>
- <descr>
- <var>Int</var> returns the integer part of any Real <var>X</var>, as a Real.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Frac"/>
- <link id="Round"/>
- </seealso>
- <example file="refex/ex34"/>
- </element>
- <element name="IOresult">
- <short>Return result of last file IO operation</short>
- <descr>
- <p>
- IOresult contains the result of any input/output call, when the
- <var>{\$i-}</var> compiler directive is active, disabling IO checking.
- When the flag is read, it is reset to zero.
- If <var>IOresult</var> is zero, the operation completed successfully. If
- non-zero, an error occurred. The following errors can occur:
- </p>
- <p>
- dos errors :
- </p>
- <dl><dt>2</dt><dd> File not found.</dd>
- <dt>3</dt><dd> Path not found.</dd>
- <dt>4</dt><dd> Too many open files.</dd>
- <dt>5</dt><dd> Access denied.</dd>
- <dt>6</dt><dd> Invalid file handle.</dd>
- <dt>12</dt><dd> Invalid file-access mode.</dd>
- <dt>15</dt><dd> Invalid disk number.</dd>
- <dt>16</dt><dd> Cannot remove current directory.</dd>
- <dt>17</dt><dd> Cannot rename across volumes.</dd>
- </dl>
- <p>
- I/O errors :
- </p>
- <dl>
- <dt>100</dt><dd> Error when reading from disk.</dd>
- <dt>101</dt><dd> Error when writing to disk.</dd>
- <dt>102</dt><dd> File not assigned.</dd>
- <dt>103</dt><dd> File not open.</dd>
- <dt>104</dt><dd> File not opened for input.</dd>
- <dt>105</dt><dd> File not opened for output.</dd>
- <dt>106</dt><dd> Invalid number.</dd>
- </dl>
- <p>
- Fatal errors :
- </p>
- <dl>
- <dt>150</dt><dd> Disk is write protected.</dd>
- <dt>151</dt><dd> Unknown device.</dd>
- <dt>152</dt><dd> Drive not ready.</dd>
- <dt>153</dt><dd> Unknown command.</dd>
- <dt>154</dt><dd> CRC check failed.</dd>
- <dt>155</dt><dd> Invalid drive specified..</dd>
- <dt>156</dt><dd> Seek error on disk.</dd>
- <dt>157</dt><dd> Invalid media type.</dd>
- <dt>158</dt><dd> Sector not found.</dd>
- <dt>159</dt><dd> Printer out of paper.</dd>
- <dt>160</dt><dd> Error when writing to device.</dd>
- <dt>161</dt><dd> Error when reading from device.</dd>
- <dt>162</dt><dd> Hardware failure.</dd>
- </dl>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- All I/O functions.
- </seealso>
- <example file="refex/ex35"/>
- </element>
- <element name="Length">
- <short>Calculate length of a string.</short>
- <descr>
- <var>Length</var> returns the length of the string <var>S</var>, which is limited
- to 255 for shortstrings. If the strings <var>S</var> is empty, 0 is returned.
- <em> Note:</em> The length of the string <var>S</var> is stored in <var>S[0]</var> for
- shortstrings only. The <var>Length</var> fuction should always be used on
- ansistrings and widestrings.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Pos"/>
- </seealso>
- <example file="refex/ex36"/>
- </element>
- <element name="Ln">
- <short>Calculate logarithm</short>
- <descr>
- <var>Ln</var> returns the natural logarithm of the Real parameter <var>X</var>.
- <var>X</var> must be positive.
- </descr>
- <errors>
- An run-time error will occur when <var>X</var> is negative.
- </errors>
- <seealso>
- <link id="Exp"/>
- <link id="Power"/>
- </seealso>
- <example file="refex/ex37"/>
- </element>
- <element name="Lo">
- <short>Return low byte/word of value.</short>
- <descr>
- <var>Lo</var> returns the low byte of its argument if this is of type
- <var>Integer</var> or
- <var>Word</var>. It returns the low word of its argument if this is of type
- <var>Longint</var> or <var>Cardinal</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Ord"/>
- <link id="Chr"/>
- <link id="Hi"/>
- </seealso>
- <example file="refex/ex38"/>
- </element>
- <element name="LongJmp">
- <short>Jump to address.</short>
- <descr>
- <p>
- <var>LongJmp</var> jumps to the adress in the <var>env</var> <var>jmp_buf</var>,
- and restores the registers that were stored in it at the corresponding
- <link id="SetJmp"/> call.
- In effect, program flow will continue at the <var>SetJmp</var> call, which will
- return <var>value</var> instead of 0. If a <var>value</var> equal to zero is passed,
- it will be converted to 1 before passing it on. The call will not return, so it must be
- used with extreme care.
- This can be used for error recovery, for instance when a segmentation fault
- occurred.
- </p>
- <p>
- For an example, see <link id="SetJmp"/>
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="SetJmp"/>
- </seealso>
- </element>
- <element name="Low">
- <short>Return lowest index of open array or enumerated</short>
- <descr>
- <p>
- The return value of <var>Low</var> depends on it's argument:
- </p>
- <ol>
- <li> If the argument is an ordinal type, <var>Low</var> returns the lowest
- value in the range of the given ordinal type.
- </li>
- <li> If the argument is an array type or an array type variable then
- <var>Low</var> returns the lowest possible value of it's index.
- </li>
- </ol>
- <p>
- The return type is always the same type as the type of the argument.
- </p>
- <p>
- for an example, see <link id="High"/>.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="High"/>
- <link id="Ord"/>
- <link id="Pred"/>
- <link id="Succ"/>
- </seealso>
- </element>
- <element name="Lowercase">
- <short>Return lowercase version of a string.</short>
- <descr>
- <var>Lowercase</var> returns the lowercase version of its argument <var>C</var>.
- If its argument is a string, then the complete string is converted to
- lowercase. The type of the returned value is the same as the type of the
- argument.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Upcase"/>
- </seealso>
- <example file="refex/ex73"/>
- </element>
- <element name="Mark">
- <short>Mark current memory position</short>
- <descr>
- This routine is here for compatibility with Turbo Pascal, but
- it is not implemented and currently does nothing.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Getmem"/>
- <link id="Freemem"/>
- <link id="New"/>
- <link id="Dispose"/>
- <link id="Maxavail"/>
- </seealso>
- </element>
- <element name="Maxavail">
- <short>Return size of largest free memory block</short>
- <descr>
- <p>
- <var>Maxavail</var> returns the size, in bytes, of the biggest free memory block in
- the heap.
- </p>
- <remark>
- The heap grows dynamically if more memory is needed than is available.
- </remark>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Memavail"/>
- <link id="Freemem"/>
- <link id="Getmem"/>
- </seealso>
- <example file="refex/ex40"/>
- </element>
- <element name="Memavail">
- <short>Return total available memory</short>
- <descr>
- <p>
- <var>Memavail</var> returns the size, in bytes, of the free heap memory.
- </p>
- <remark>
- The heap grows dynamically if more memory is needed than is available. The
- heap size is not equal to the size of the memory available to the
- operating system, it is internal to the programs created by Free Pascal.
- </remark>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Maxavail"/>
- <link id="Freemem"/>
- <link id="Getmem"/>
- </seealso>
- <example file="refex/ex41"/>
- </element>
- <element name="Mkdir">
- <short>Create a new directory.</short>
- <descr>
- <p>
- <var>Mkdir</var> creates a new directory <var>S</var>.
- </p>
- <p>
- For an example, see <link id="Rmdir"/>.
- </p>
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Chdir"/>
- <link id="Rmdir"/>
- </seealso>
- </element>
- <element name="Move">
- <short>Move data from one location in memory to another</short>
- <descr>
- <var>Move</var> moves <var>Count</var> bytes from <var>Source</var> to <var>Dest</var>.
- </descr>
- <errors>
- If either <var>Dest</var> or <var>Source</var> is outside the accessible memory for
- the process, then a run-time error will be generated.
- </errors>
- <seealso>
- <link id="Fillword"/>
- <link id="Fillchar"/>
- </seealso>
- <example file="refex/ex42"/>
- </element>
- <element name="MoveChar0">
- <short>Move data till first zero character</short>
- <descr>
- <var>MoveChar0</var> moves <var>Count</var> bytes from <var>Src</var> to <var>Dest</var>, and
- stops moving if a zero character is found.
- </descr>
- <errors>
- No checking is done to see if <var>Count</var> stays within the memory allocated
- to the process.
- </errors>
- <seealso>
- <link id="Move"/>
- </seealso>
- <example file="refex/ex109"/>
- </element>
- <element name="New">
- <short>Dynamically allocate memory for variable</short>
- <descr>
- <p>
- <var>New</var> allocates a new instance of the type pointed to by <var>P</var>, and
- puts the address in <var>P</var>.
- If P is an object, then it is possible to
- specify the name of the constructor with which the instance will be created.
- </p>
- <p>
- For an example, see <link id="Dispose"/>.
- </p>
- </descr>
- <errors>
- If not enough memory is available, <var>Nil</var> will be returned.
- </errors>
- <seealso>
- <link id="Dispose"/>
- <link id="Freemem"/>
- <link id="Getmem"/>
- </seealso>
- </element>
- <element name="Odd">
- <short>Is a value odd or even ?</short>
- <descr>
- <var>Odd</var> returns <var>True</var> if <var>X</var> is odd, or <var>False</var> otherwise.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Abs"/>
- <link id="Ord"/>
- </seealso>
- <example file="refex/ex43"/>
- </element>
- <element name="OctStr">
- <short>Convert integer to a string with octal representation.</short>
- <descr>
- <var>OctStr</var> returns a string with the octal representation
- of <var>Value</var>. The string has exactly <var>cnt</var> charaters.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Str"/>
- <link id="Val"/>
- <link id="BinStr"/>
- <link id="HexStr"/>
- </seealso>
- <example file="refex/ex112"/>
- </element>
- <element name="Ofs">
- <short>Return offset of a variable.</short>
- <descr>
- <var>Ofs</var> returns the offset of the address of a variable.
- This function is only supported for compatibility. In Free Pascal, it
- returns always the complete address of the variable, since Free Pascal is a 32 bit
- compiler.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="DSeg"/>
- <link id="CSeg"/>
- <link id="Seg"/>
- <link id="Ptr"/>
- </seealso>
- <example file="refex/ex44"/>
- </element>
- <element name="Ord">
- <short>Return ordinal value of an ordinal type.</short>
- <descr>
- <var>Ord</var> returns the Ordinal value of a ordinal-type variable <var>X</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Chr"/>
- <link id="Succ"/>
- <link id="Pred"/>
- <link id="High"/>
- <link id="Low"/>
- </seealso>
- <example file="refex/ex45"/>
- </element>
- <element name="Paramcount">
- <short>Return number of command-line parameters passed to the program.</short>
- <descr>
- <var>Paramcount</var> returns the number of command-line arguments. If no
- arguments were given to the running program, <var>0</var> is returned.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Paramstr"/>
- </seealso>
- <example file="refex/ex46"/>
- </element>
- <element name="Paramstr">
- <short>Return value of a command-line argument.</short>
- <descr>
- <p>
- <var>Paramstr</var> returns the <var>L</var>-th command-line argument. <var>L</var> must
- be between <var>0</var> and <var>Paramcount</var>, these values included.
- The zeroth argument is the path and file name with which the program was
- started.
- </p>
- <p>
- The command-line parameters will be truncated to a length of 255,
- even though the operating system may support bigger command-lines.
- The <var>Objpas</var> unit (used in <var>objfpc</var> or <var>delphi</var> mode) define versions
- of <var>Paramstr</var> which return the full-length command-line arguments.
- </p>
- <p>
- When the complete command-line must be accessed, the <var>argv</var> pointer
- should be used to retrieve the real values of the command-line parameters.
- </p>
- <p>
- For an example, see <link id="Paramcount"/>.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Paramcount"/>
- </seealso>
- </element>
- <element name="Pi">
- <short>Return the value of PI.</short>
- <descr>
- <var>Pi</var> returns the value of Pi (3.1415926535897932385).
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Cos"/>
- <link id="Sin"/>
- </seealso>
- <example file="refex/ex47"/>
- </element>
- <element name="Pos">
- <short>Search for substring in a string.</short>
- <descr>
- <var>Pos</var> returns the index of <var>Substr</var> in <var>S</var>, if <var>S</var> contains
- <var>Substr</var>. In case <var>Substr</var> isn't found, <var>0</var> is returned.
- The search is case-sensitive.
- </descr>
- <errors>
- None
- </errors>
- <seealso>
- <link id="Length"/>
- <link id="Copy"/>
- <link id="Delete"/>
- <link id="Insert"/>
- </seealso>
- <example file="refex/ex48"/>
- </element>
- <element name="Power">
- <short>Raise float to integer power</short>
- <descr>
- <p>
- <var>Power</var> returns the value of <var>base</var> to the power <var>expon</var>.
- <var>Base</var> and <var>expon</var> can be of type Longint, in which case the
- result will also be a Longint.
- </p>
- <p>
- The function actually returns <var>Exp(expon*Ln(base))</var>
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Exp"/>
- <link id="Ln"/>
- </seealso>
- <example file="refex/ex78"/>
- </element>
- <element name="Pred">
- <short>Return previous element for an ordinal type.</short>
- <descr>
- <p>
- <var>Pred</var> returns the element that precedes the element that was passed
- to it. If it is applied to the first value of the ordinal type, and the
- program was compiled with range checking on (\var{\{\$R+\}}, then a run-time
- error will be generated.
- </p>
- <p>
- for an example, see <link id="Ord"/>
- </p>
- </descr>
- <errors>
- Run-time error 201 is generated when the result is out of
- range.
- </errors>
- <seealso>
- <link id="Ord"/>
- <link id="Pred"/>
- <link id="High"/>
- <link id="Low"/>
- </seealso>
- </element>
- <element name="Ptr">
- <short>Combine segment and offset to pointer</short>
- <descr>
- <p>
- <var>Ptr</var> returns a pointer, pointing to the address specified by
- segment <var>Sel</var> and offset <var>Off</var>.
- </p>
- <remark>
- <ol>
- <li> In the 32-bit flat-memory model supported by Free Pascal, this
- function is obsolete.
- </li>
- <li> The returned address is simply the offset.
- </li>
- </ol>
- </remark>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Addr"/>
- </seealso>
- <example file="refex/ex59"/>
- </element>
- <element name="Random">
- <short>Generate random number</short>
- <descr>
- <var>Random</var> returns a random number larger or equal to <var>0</var> and
- strictly less than <var>L</var>.
- If the argument <var>L</var> is omitted, a Real number between 0 and 1 is returned.
- (0 included, 1 excluded)
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Randomize"/>
- </seealso>
- <example file="refex/ex49"/>
- </element>
- <element name="Randomize">
- <short>Initialize random number generator</short>
- <descr>
- <p>
- <var>Randomize</var> initializes the random number generator of Free Pascal, by giving
- a value to <var>Randseed</var>, calculated with the system clock.
- </p>
- <p>
- For an example, see <link id="Random"/>.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Random"/>
- </seealso>
- </element>
- <element name="Read">
- <short>Read from a text file into variable</short>
- <descr>
- <var>Read</var> reads one or more values from a file <var>F</var>, and stores the
- result in <var>V1</var>, <var>V2</var>, etc.; If no file <var>F</var> is specified, then
- standard input is read.
- If <var>F</var> is of type <var>Text</var>, then the variables <var>V1, V2</var> etc. must be
- of type <var>Char</var>, <var>Integer</var>, <var>Real</var>, <var>String</var> or <var>PChar</var>.
- If <var>F</var> is a typed file, then each of the variables must be of the type
- specified in the declaration of <var>F</var>. Untyped files are not allowed as an
- argument.
- </descr>
- <errors>
- If no data is available, a run-time error is generated. This behavior can
- be controlled with the \var{\{\$i\}} compiler switch.
- </errors>
- <seealso>
- <link id="Readln"/>
- <link id="Blockread"/>
- <link id="Write"/>
- <link id="Blockwrite"/>
- </seealso>
- <example file="refex/ex50"/>
- </element>
- <element name="Readln">
- <short>Read from a text file into variable and goto next line</short>
- <descr>
- <p>
- <var>Read</var> reads one or more values from a file <var>F</var>, and stores the
- result in <var>V1</var>, <var>V2</var>, etc. After that it goes to the next line in
- the file. The end of the line is marked by the <var>LineEnding</var>
- character sequence (which is platform dependent). The end-of-line marker is
- not considered part of the line and is ignored.
- </p>
- <p>
- If no file <var>F</var> is specified, then standard input is read.
- The variables <var>V1, V2</var> etc. must be of type <var>Char</var>, <var>Integer</var>,
- <var>Real</var>, <var>String</var> or <var>PChar</var>.
- </p>
- <p>
- For an example, see <link id="Read"/>.
- </p>
- </descr>
- <errors>
- If no data is available, a run-time error is generated. This behavior can
- be controlled with the \var{\{\$i\}} compiler switch.
- </errors>
- <seealso>
- <link id="Read"/>
- <link id="Blockread"/>
- <link id="Write"/>
- <link id="Blockwrite"/>
- </seealso>
- </element>
- <element name="Real2Double">
- <short>Convert Turbo Pascal style real to double.</short>
- <descr>
- <p>
- The <var>Real2Double</var> function converts a Turbo Pascal style real (6 bytes long) to
- a native Free Pascal double type. It can be used e.g. to read old binary TP files with
- FPC and convert them to Free Pacal binary files.
- </p>
- <p>
- Note that the assignment operator has been overloaded so a <var>Real48</var> type
- can be assigned directly to a double or extended.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- </seealso>
- <example file="refex/ex110"/>
- </element>
- <element name="Release">
- <short>Release memory above mark point</short>
- <descr>
- This routine is here for compatibility with Turbo Pascal, but
- it is not implemented and currently does nothing.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Mark"/>
- <link id="Memavail"/>
- <link id="Maxavail"/>
- <link id="Getmem"/>
- <link id="Freemem"/>
- <link id="New"/>
- <link id="Dispose"/>
- </seealso>
- </element>
- <element name="Rename">
- <short>Rename file on disk</short>
- <descr>
- <var>Rename</var> changes the name of the assigned file <var>F</var> to <var>S</var>.
- <var>F</var>
- must be assigned, but not opened.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Erase"/>
- </seealso>
- <example file="refex/ex77"/>
- </element>
- <element name="Reset">
- <short>Open file for reading</short>
- <descr>
- <var>Reset</var> opens a file <var>F</var> for reading. <var>F</var> can be any file type.
- If <var>F</var> is a text file, or refers to standard I/O (e.g : '') then it is
- opened read-only, otherwise it is opened using the mode specified in
- <var>filemode</var>.
- If <var>F</var> is an untyped file, the record size can be specified in
- the optional parameter <var>L</var>. A default value of 128 is used.
- File sharing is not taken into account when calling <var>Reset</var>.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Rewrite"/>
- <link id="Assign"/>
- <link id="Close"/>
- <link id="Append"/>
- </seealso>
- <example file="refex/ex51"/>
- </element>
- <element name="Rewrite">
- <short>Open file for writing</short>
- <descr>
- <var>Rewrite</var> opens a file <var>F</var> for writing. <var>F</var> can be any file type.
- If <var>F</var> is an untyped or typed file, then it is opened for reading and
- writing. If <var>F</var> is an untyped file, the record size can be specified in
- the optional parameter <var>L</var>. Default a value of 128 is used.
- if <var>Rewrite</var> finds a file with the same name as <var>F</var>, this file is
- truncated to length <var>0</var>. If it doesn't find such a file, a new file is
- created.
- Contrary to Turbo Pascal, Free Pascal opens the file with mode <var>fmoutput</var>. If it should
- be opened in <var>fminout</var> mode, an extra call to <link id="Reset"/> is needed.
- File sharing is not taken into account when calling <var>Rewrite</var>.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Reset"/>
- <link id="Assign"/>
- <link id="Close"/>
- <link id="Flush"/>
- <link id="Append"/>
- </seealso>
- <example file="refex/ex52"/>
- </element>
- <element name="Rmdir">
- <short>Remove directory when empty.</short>
- <descr>
- <var>Rmdir</var> removes the directory <var>S</var>.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Chdir"/>
- <link id="Mkdir"/>
- </seealso>
- <example file="refex/ex53"/>
- </element>
- <element name="Round">
- <short>Round floating point value to nearest integer number.</short>
- <descr>
- <var>Round</var> rounds <var>X</var> to the closest integer, which may be bigger or
- smaller than <var>X</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Frac"/>
- <link id="Int"/>
- <link id="Trunc"/>
- </seealso>
- <example file="refex/ex54"/>
- </element>
- <element name="Runerror">
- <short>Generate a run-time error.</short>
- <descr>
- <var>Runerror</var> stops the execution of the program, and generates a
- run-time error <var>ErrorCode</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Exit"/>
- <link id="Halt"/>
- </seealso>
- <example file="refex/ex55"/>
- </element>
- <element name="Seek">
- <short>Set file position</short>
- <descr>
- <var>Seek</var> sets the file-pointer for file <var>F</var> to record Nr. <var>Count</var>.
- The first record in a file has <var>Count=0</var>. F can be any file type, except
- <var>Text</var>. If <var>F</var> is an untyped file, with no record size specified in
- <link id="Reset"/> or <link id="Rewrite"/>, 128 is assumed.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Eof"/>
- <link id="SeekEof"/>
- <link id="SeekEoln"/>
- </seealso>
- <example file="refex/ex56"/>
- </element>
- <element name="SeekEof">
- <short>Set file position to end of file</short>
- <descr>
- <var>SeekEof</var> returns <var>True</var> is the file-pointer is at the end of the
- file. It ignores all whitespace.
- Calling this function has the effect that the file-position is advanced
- until the first non-whitespace character or the end-of-file marker is
- reached.
- If the end-of-file marker is reached, <var>True</var> is returned. Otherwise,
- False is returned.
- If the parameter <var>F</var> is omitted, standard <var>Input</var> is assumed.
- </descr>
- <errors>
- A run-time error is generated if the file <var>F</var> isn't opened.
- </errors>
- <seealso>
- <link id="Eof"/>
- <link id="SeekEoln"/>
- <link id="Seek"/>
- </seealso>
- <example file="refex/ex57"/>
- </element>
- <element name="SeekEoln">
- <short>Set file position to end of line</short>
- <descr>
- <var>SeekEoln</var> returns <var>True</var> is the file-pointer is at the end of the
- current line. It ignores all whitespace.
- Calling this function has the effect that the file-position is advanced
- until the first non-whitespace character or the end-of-line marker is
- reached.
- If the end-of-line marker is reached, <var>True</var> is returned. Otherwise,
- False is returned.
- The end-of-line marker is defined as <var>#10</var>, the LineFeed character.
- If the parameter <var>F</var> is omitted, standard <var>Input</var> is assumed.
- </descr>
- <errors>
- A run-time error is generated if the file <var>F</var> isn't opened.
- </errors>
- <seealso>
- <link id="Eof"/>
- <link id="SeekEof"/>
- <link id="Seek"/>
- </seealso>
- <example file="refex/ex58"/>
- </element>
- <element name="Seg">
- <short>Return segment</short>
- <descr>
- <var>Seg</var> returns the segment of the address of a variable.
- This function is only supported for compatibility. In Free Pascal, it
- returns always 0, since Free Pascal is a 32 bit compiler, segments have no meaning.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="DSeg"/>
- <link id="CSeg"/>
- <link id="Ofs"/>
- <link id="Ptr"/>
- </seealso>
- <example file="refex/ex60"/>
- </element>
- <element name="SetMemoryManager">
- <short>Set a memory manager</short>
- <descr>
- <p>
- <var>SetMemoryManager</var> sets the current memory manager record to
- <var>MemMgr</var>.
- </p>
- <p>
- For an example, see \progref.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="GetMemoryManager"/>
- <link id="IsMemoryManagerSet"/>
- </seealso>
- </element>
- <element name="SetJmp">
- <short>Save current execution point.</short>
- <descr>
- <var>SetJmp</var> fills <var>env</var> with the necessary data for a jump back to the
- point where it was called. It returns zero if called in this way.
- If the function returns nonzero, then it means that a call to <link id="LongJmp"/>
- with <var>env</var> as an argument was made somewhere in the program.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="LongJmp"/>
- </seealso>
- <example file="refex/ex79"/>
- </element>
- <element name="SetLength">
- <short>Set length of a string.</short>
- <descr>
- <var>SetLength</var> sets the length of the string <var>S</var> to <var>Len</var>. <var>S</var>
- can be an ansistring, a short string or a widestring.
- For <var>ShortStrings</var>, <var>Len</var> can maximally be 255. For <var>AnsiStrings</var>
- it can have any value. For <var>AnsiString</var> strings, <var>SetLength</var> {\em
- must} be used to set the length of the string.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Length"/>
- </seealso>
- <example file="refex/ex85"/>
- </element>
- <element name="SetString">
- <short>Set length of a string and copy buffer.</short>
- <descr>
- <var>SetString</var> sets the length of the string <var>S</var> to <var>Len</var> and
- if <var>Buf</var> is non-nil, copies <var>Len</var> characters from <var>Buf</var>
- into <var>S</var>. <var>S</var> can be an ansistring, a short string or a widestring.
- For <var>ShortStrings</var>, <var>Len</var> can maximally be 255.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="SetLength"/>
- </seealso>
- </element>
- <element name="SetTextBuf">
- <short>Set size of text file internal buffer</short>
- <descr>
- <p>
- <var>SetTextBuf</var> assigns an I/O buffer to a text file. The new buffer is
- located at <var>Buf</var> and is <var>Size</var> bytes long. If <var>Size</var> is omitted,
- then <var>SizeOf(Buf)</var> is assumed.
- The standard buffer of any text file is 128 bytes long. For heavy I/O
- operations this may prove too slow. The <var>SetTextBuf</var> procedure allows
- to set a bigger buffer for the IO of the application, thus reducing the number of
- system calls, and thus reducing the load on the system resources.
- The maximum size of the newly assigned buffer is 65355 bytes.
- </p>
- <remark>
- <ul>
- <li> Never assign a new buffer to an opened file. A
- new buffer can be assigned immediately after a call to <link id="Rewrite"/>
- <link id="Reset"/> or
- <var>Append</var>, but not after the file was read from/written to. This may cause
- loss of data. If a new buffer must be assigned after read/write
- operations have been performed, the file should be flushed first.
- This will ensure that the current buffer is emptied.
- </li>
- <li> Take care that the assigned buffer is always valid. If a local variable is
- assigned as a buffer, then after the program exits the local program block,
- the buffer will no longer be valid, and stack problems may occur.
- </li>
- </ul>
- </remark>
- </descr>
- <errors>
- No checking on <var>Size</var> is done.
- </errors>
- <seealso>
- <link id="Assign"/>
- <link id="Reset"/>
- <link id="Rewrite"/>
- <link id="Append"/>
- </seealso>
- <example file="refex/ex61"/>
- </element>
- <element name="Sin">
- <short>Calculate sine of angle</short>
- <descr>
- <var>Sin</var> returns the sine of its argument <var>X</var>, where <var>X</var> is an
- angle in radians.
- If the absolute value of the argument is larger than \var{2\^{}63}, then the
- result is undefined.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Cos"/>
- <link id="Pi"/>
- <link id="Exp"/>
- <link id="Ln"/>
- </seealso>
- <example file="refex/ex62"/>
- </element>
- <element name="SizeOf">
- <short>Return size of a variable or type.</short>
- <descr>
- <p>
- <var>SizeOf</var> returns the size, in bytes, of any variable or type-identifier.
- </p>
- <remark>
- This isn't really a RTL function. Its result is calculated at
- compile-time, and hard-coded in the executable.
- </remark>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Addr"/>
- </seealso>
- <example file="refex/ex63"/>
- </element>
- <element name="Sptr">
- <short>Return current stack pointer</short>
- <descr>
- <var>Sptr</var> returns the current stack pointer.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="SSeg"/>
- </seealso>
- <example file="refex/ex64"/>
- </element>
- <element name="Sqr">
- <short>Calculate the square of a value.</short>
- <descr>
- <var>Sqr</var> returns the square of its argument <var>X</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Sqrt"/>
- <link id="Ln"/>
- <link id="Exp"/>
- </seealso>
- <example file="refex/ex65"/>
- </element>
- <element name="Sqrt">
- <short>Calculate the square root of a value</short>
- <descr>
- <var>Sqrt</var> returns the square root of its argument <var>X</var>, which must be
- positive.
- </descr>
- <errors>
- If <var>X</var> is negative, then a run-time error is generated.
- </errors>
- <seealso>
- <link id="Sqr"/>
- <link id="Ln"/>
- <link id="Exp"/>
- </seealso>
- <example file="refex/ex66"/>
- </element>
- <element name="SSeg">
- <short>Return stack segment register value.</short>
- <descr>
- <var>SSeg</var> returns the Stack Segment. This function is only
- supported for compatibility reasons, as <var>Sptr</var> returns the
- correct contents of the stackpointer.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Sptr"/>
- </seealso>
- <example file="refex/ex67"/>
- </element>
- <element name="Str">
- <short>Convert a numerical value to a string.</short>
- <descr>
- <var>Str</var> returns a string which represents the value of X. X can be any
- numerical type.
- The optional <var>NumPLaces</var> and <var>Decimals</var> specifiers control the
- formatting of the string.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Val"/>
- </seealso>
- <example file="refex/ex68"/>
- </element>
- <element name="StringOfChar">
- <short>Return a string consisting of 1 character repeated N times.</short>
- <descr>
- <p>
- <var>StringOfChar</var> creates a new String of length <var>l</var> and fills
- it with the character <var>c</var>.
- </p>
- <p>
- It is equivalent to the following calls:
- </p>
- <code>
- SetLength(StringOfChar,l);
- FillChar(Pointer(StringOfChar)^,Length(StringOfChar),c);
- </code>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="SetLength"/>
- </seealso>
- <example file="refex/ex97"/>
- </element>
- <element name="Succ">
- <short>Return next element of ordinal type.</short>
- <descr>
- <p>
- <var>Succ</var> returns the element that succeeds the element that was passed
- to it. If it is applied to the last value of the ordinal type, and the
- program was compiled with range checking on (\var{\{\$R+\}}), then a run-time
- error will be generated.
- </p>
- <p>
- for an example, see <link id="Ord"/>.
- </p>
- </descr>
- <errors>
- Run-time error 201 is generated when the result is out of
- range.
- </errors>
- <seealso>
- <link id="Ord"/>
- <link id="Pred"/>
- <link id="High"/>
- <link id="Low"/>
- </seealso>
- </element>
- <element name="Swap">
- <short>Swap high and low bytes/words of a variable</short>
- <descr>
- <var>Swap</var> swaps the high and low order bytes of <var>X</var> if <var>X</var> is of
- type <var>Word</var> or <var>Integer</var>, or swaps the high and low order words of
- <var>X</var> if <var>X</var> is of type <var>Longint</var> or <var>Cardinal</var>.
- The return type is the type of <var>X</var>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Lo"/>
- <link id="Hi"/>
- </seealso>
- <example file="refex/ex69"/>
- </element>
- <element name="Trunc">
- <short>Truncate a floating point value.</short>
- <descr>
- <var>Trunc</var> returns the integer part of <var>X</var>,
- which is always smaller than (or equal to) <var>X</var> in absolute value.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Frac"/>
- <link id="Int"/>
- <link id="Round"/>
- </seealso>
- <example file="refex/ex70"/>
- </element>
- <element name="Truncate">
- <short>Truncate the file at position</short>
- <descr>
- <var>Truncate</var> truncates the (opened) file <var>F</var> at the current file
- position.
- </descr>
- <errors>
- Depending on the state of the \var{\{\$I\}} switch, a runtime error can be
- generated if there is an error. In the \var{\{\$I-\}} state, use <var>IOResult</var>
- to check for errors.
- </errors>
- <seealso>
- <link id="Append"/>
- <link id="Filepos"/>,
- <link id="Seek"/>
- </seealso>
- <example file="refex/ex71"/>
- </element>
- <element name="Upcase">
- <short>Convert a string to all uppercase.</short>
- <descr>
- <var>Upcase</var> returns the uppercase version of its argument <var>C</var>.
- If its argument is a string, then the complete string is converted to
- uppercase. The type of the returned value is the same as the type of the
- argument.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="Lowercase"/>
- </seealso>
- <example file="refex/ex72"/>
- </element>
- <element name="Val">
- <short>Calculate numerical value of a string.</short>
- <descr>
- <var>Val</var> converts the value represented in the string <var>S</var> to a numerical
- value, and stores this value in the variable <var>V</var>, which
- can be of type <var>Longint</var>, <var>Real</var> and <var>Byte</var>.
- If the conversion isn't succesfull, then the parameter <var>Code</var> contains
- the index of the character in <var>S</var> which prevented the conversion.
- The string <var>S</var> is allowed to contain spaces in the beginning.
- The string <var>S</var> can contain a number in decimal, hexadecimal, binary
- or octal format, as described in the language reference.
- </descr>
- <errors>
- If the conversion doesn't succeed, the value of <var>Code</var> indicates the
- position where the conversion went wrong.
- </errors>
- <seealso>
- <link id="Str"/>
- </seealso>
- <example file="refex/ex74"/>
- </element>
- <element name="Write">
- <short>Write variable to a text file</short>
- <descr>
- <var>Write</var> writes the contents of the variables <var>V1</var>, <var>V2</var> etc. to
- the file <var>F</var>. <var>F</var> can be a typed file, or a <var>Text</var> file.
- If <var>F</var> is a typed file, then the variables <var>V1</var>, <var>V2</var> etc. must
- be of the same type as the type in the declaration of <var>F</var>. Untyped files
- are not allowed.
- If the parameter <var>F</var> is omitted, standard output is assumed.
- If <var>F</var> is of type <var>Text</var>, then the necessary conversions are done
- such that the output of the variables is in human-readable format.
- This conversion is done for all numerical types. Strings are printed exactly
- as they are in memory, as well as <var>PChar</var> types.
- The format of the numerical conversions can be influenced through
- the following modifiers:
- <var> OutputVariable : NumChars [: Decimals ] </var>
- This will print the value of <var>OutputVariable</var> with a minimum of
- <var>NumChars</var> characters, from which <var>Decimals</var> are reserved for the
- decimals. If the number cannot be represented with <var>NumChars</var> characters,
- <var>NumChars</var> will be increased, until the representation fits. If the
- representation requires less than <var>NumChars</var> characters then the output
- is filled up with spaces, to the left of the generated string, thus
- resulting in a right-aligned representation.
- If no formatting is specified, then the number is written using its natural
- length, with nothing in front of it if it's positive, and a minus sign if
- it's negative.
- Real numbers are, by default, written in scientific notation.
- </descr>
- <errors>
- If an error occurs, a run-time error is generated. This behavior can be
- controlled with the \var{\{\$i\}} switch.
- </errors>
- <seealso>
- <link id="WriteLn"/>
- <link id="Read"/>
- <link id="Readln"/>
- <link id="Blockwrite"/>
- </seealso>
- </element>
- <element name="WriteLn">
- <short>Write variable to a text file and append newline</short>
- <descr>
- <p>
- <var>WriteLn</var> does the same as <link id="Write"/> for text files, and emits a
- Carriage Return - LineFeed character pair after that.
- If the parameter <var>F</var> is omitted, standard output is assumed.
- If no variables are specified, a Carriage Return - LineFeed character pair
- is emitted, resulting in a new line in the file <var>F</var>.
- </p>
- <remark>
- Under linux and unix, the Carriage Return character is omitted, as
- customary in Unix environments.
- </remark>
- </descr>
- <errors>
- If an error occurs, a run-time error is generated. This behavior can be
- controlled with the \var{\{\$i\}} switch.
- </errors>
- <seealso>
- <link id="Write"/>
- <link id="Read"/>
- <link id="Readln"/>
- <link id="Blockwrite"/>
- </seealso>
- <example file="refex/ex75"/>
- </element>
- <!-- range type Visibility: default -->
- <element name="ShortInt">
- <short>A signed 8-bits integer</short>
- </element>
- <!-- range type Visibility: default -->
- <element name="SmallInt">
- <short>A signed 16-bits integer</short>
- </element>
- <!-- range type Visibility: default -->
- <element name="Longint">
- <short>A signed 32-bits integer</short>
- </element>
- <!-- range type Visibility: default -->
- <element name="Byte">
- <short>An unsigned 8-bits integer</short>
- </element>
- <!-- range type Visibility: default -->
- <element name="Word">
- <short>An unsigned 16-bits integer</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="DWord">
- <short>An unsigned 32-bits integer</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="Cardinal">
- <short>An unsigned 32-bits integer.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="Integer">
- <short>A signed 16-bits integer</short>
- <descr>
- The system unit defines <var>Integer</var> as a signed 16-bit integer.
- But when <var>DELPHI</var> or <var>OBJFPC</var> mode are active, then
- the <file>objpas</file> unit redefines <var>Integer</var> as a 16-bit
- integer.
- </descr>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PChar">
- <short>Pointer to null-terminated string.</short>
- <descr>
- Or the same as a pointer to an array of char. See the reference manual for
- more information about this type.
- </descr>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PPChar">
- <short>Pointer to an array of pointers to null-terminated strings.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="TAnsiChar">
- <short>Alias for 1-byte sized char.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="AnsiChar">
- <short>Alias for 1-byte sized char.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="PAnsiChar">
- <short>Alias for <link id="PChar"/> type.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="PPAnsiChar">
- <short>Alias for <link id="PPChar"/> type.</short>
- </element>
- <!-- "type" alias type Visibility: default -->
- <element name="UCS4Char">
- <short>UCS unicode character (unsigned 32 bit word)</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PUCS4Char">
- <short>Pointer to <link id="UCS4Char"/></short>
- </element>
- <!-- array type Visibility: default -->
- <element name="TUCS4CharArray">
- <short>Array of <link id="UCS4Char"/> characters.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PUCS4CharArray">
- <short>Pointer to array of <link id="UCS4Char"/> characters.</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="UCS4String">
- <short>String of <link id="UCS4Char"/> characters.</short>
- </element>
- <!-- "type" alias type Visibility: default -->
- <element name="UTF8String">
- <short>UTF-8 unicode (ansi) string.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PUTF8String">
- <short>Pointer to <link id="UTF8String"/></short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="Currency">
- <short>Currency type.</short>
- </element>
- <!-- "type" alias type Visibility: default -->
- <element name="HRESULT">
- <short>32-Bit signed integer.</short>
- </element>
- <!-- "type" alias type Visibility: default -->
- <element name="TDateTime">
- <short>Encoded Date-Time type.</short>
- </element>
- <!-- "type" alias type Visibility: default -->
- <element name="Error">
- <short>32-bit signed integer.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PSingle">
- <short>Pointer to single-sized float value.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PDouble">
- <short>Pointer to double-sized float value.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PCurrency">
- <short>Pointer to currency type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PExtended">
- <short>Pointer to extended-sized float value.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PSmallInt">
- <short>Pointer to <link id="smallint"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PShortInt">
- <short>Pointer to <link id="shortint"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PInteger">
- <short>Pointer to <link id="integer"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PByte">
- <short>Pointer to <link id="byte"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PWord">
- <short>Pointer to <link id="word"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PDWord">
- <short>Pointer to <link id="DWord"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PLongWord">
- <short>Pointer to <var>LongWord</var> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PLongint">
- <short>Pointer to <link id="Longint"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PCardinal">
- <short>Pointer to <link id="Cardinal"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PQWord">
- <short>Pointer to <var>QWord</var> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PInt64">
- <short>Pointer to <var>Int64</var> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PPtrInt">
- <short>Pointer to <link id="PtrInt"/> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PSizeInt">
- <short>Pointer to a <link id="SizeInt"/> type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PPointer">
- <short>Pointer to a pointer type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PPPointer">
- <short>Pointer to a <link id="PPointer"/> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PBoolean">
- <short>Pointer to a Boolean type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PWordBool">
- <short>Pointer to a <var>WordBool</var> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PLongBool">
- <short>Pointer to a <var>LongBool</var> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PShortString">
- <short>Pointer to a shortstring type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PAnsiString">
- <short>Pointer to an ansistring type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PDate">
- <short>Pointer to a <link id="TDateTime"/> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PError">
- <short>Pointer to an <link id="Error"/> type.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="WChar">
- <short>Wide char (16-bit sized char)</short>
- </element>
- <!-- enumeration type Visibility: default -->
- <element name="TTextLineBreakStyle">
- <short>Text line break style. (end of line character)</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="TTextLineBreakStyle.tlbsLF">
- <short>Line-feed only (#10, unix style)</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="TTextLineBreakStyle.tlbsCRLF">
- <short>Carriage-return, line-feed (#13#30, Windows style)</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="TTextLineBreakStyle.tlbsCR">
- <short>Carriage-return (#13, Mac-OS style)</short>
- </element>
- <!-- procedure type Visibility: default -->
- <element name="TProcedure">
- <short>Simple procedural type.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="MaxSIntValue">
- <short>Maximum String-size value.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="MaxUIntValue">
- <short>Maximum unsigned integer value.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="maxLongint">
- <short>Maximum longint value.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="maxSmallint">
- <short>Maximum smallint value.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="maxint">
- <short>Maximum integer value.</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="IntegerArray">
- <short>Generic array of integer. </short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PIntegerArray">
- <short>Pointer to <link id="IntegerArray"/> type</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="PointerArray">
- <short>Generic pointer array.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PPointerArray">
- <short>Pointer to <link id="PointerArray"/> type</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="TBoundArray">
- <short>Dynamic array of integer.</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="TPCharArray">
- <short>Array of PChar</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PPCharArray">
- <short>Pointer to <link id="TPCharArray"/> type.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="Max_Frame_Dump">
- <short>Maximum number of frames to show in error frame dump.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="ExitProc">
- <short>Exit procedure pointer.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="Erroraddr">
- <short>Address where the last error occurred.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="Errorcode">
- <short>Last error code.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fmClosed">
- <short>File mode: File is closed.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fmInput">
- <short>File mode: File is open for reading.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fmOutput">
- <short>File mode: File is open for writing.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fmInOut">
- <short>File mode: File is open for reading and writing.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fmAppend">
- <short>File mode: File is open for writing, appending to the end.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="ProcessID">
- <short>Current process ID.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="Filemode">
- <short>Default file mode for untyped files.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="CmdLine">
- <short>Current command-line.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="IsMultiThread">
- <short>Indicates whether more than one thread is running in the application.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="StackError">
- <short>Indicate whether there was a stack error.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="ExitCode">
- <short>Exit code for the program, will be communicated to the OS on exit.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="RandSeed">
- <short>Seed for <link id="Random"/> function.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="IsLibrary">
- <short><var>True</var> if the current module is a library. Otherwise module
- is an excutable</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="IsConsole">
- <short><var>True</var> for console applications, <var>False</var> for GUI applications.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="fpc_threadvar_relocate_proc" skip="1">
- </element>
- <!-- variable Visibility: default -->
- <element name="ThreadID">
- <short>Current Thread ID.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="Output">
- <short>Standard output text file.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="Input">
- <short>Standard input text file.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="StdOut">
- <short>Alias for <link id="Output"/>.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="StdErr">
- <short>Standard diagnostic output text file.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="InOutRes">
- <short>Result of last I/O operation. Read-Only.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="StackBottom">
- <short>Current stack bottom.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="StackLength">
- <short>Maximum stack length.</short>
- </element>
- <!-- function Visibility: default -->
- <element name="IndexChar0">
- <short>Return index of a character in null-terminated array of char.</short>
- <descr>
- <var>IndexChar0</var> returns the index of the character <var>b</var> in the
- null-terminated array <var>Buf</var>. At most <var>len</var> characters will
- be searched, or the null character if it is encountered first. If the
- character is not found, 0 is returned.
- </descr>
- <errors>
- On error, 0 is returned.
- </errors>
- <seealso>
- <link id="IndexByte"/>
- <link id="IndexChar"/>
- <link id="IndexWord"/>
- <link id="IndexDWord"/>
- <link id="CompareChar0"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="CompareChar0">
- <short>Compare two buffers character by character till a null-character is reached.</short>
- <descr>
- <p>
- <var>CompareChar0</var> compares 2 buffers <var>buf1</var> and <var>buf2</var>
- for a maximum length of <var>len</var> or till a null character is reached
- in either buffer. The result depends on the contents of the buffers:
- </p>
- <dl>
- <dt>< 0</dt><dd>If <var>buf1</var> contains a character less than the
- corresponding character in <var>buf2</var>.</dd>
- <dt>0</dt><dd>If both buffers are equal</dd>
- <dt>> 0</dt><dd>If <var>buf1</var> contains a character greater than the
- corresponding character in <var>buf2</var>.</dd>
- </dl>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="CompareByte"/>
- <link id="CompareChar"/>
- <link id="CompareDWord"/>
- <link id="CompareWord"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="prefetch">
- <short>Prefetch a memory location</short>
- <descr>
- <var>Prefetch</var> can be used to optimize the CPU behaviour by already
- loading a memory location. It is mainly used as a hint for those processors
- that support it.
- </descr>
- <errors>
- None.
- </errors>
- </element>
- <!-- array type Visibility: default -->
- <element name="real48">
- <short>TP compatible real type (6 bytes) definition</short>
- </element>
- <!-- function Visibility: default -->
- <element name="strpas">
- <short>Convert a null-terminated string to a shortstring.</short>
- <descr>
- Converts a null terminated string in <var>P</var> to a Pascal string, and
- returns
- this string. The string is truncated at 255 characters.
- </descr>
- <errors>
- None.
- </errors>
- </element>
- <!-- function Visibility: default -->
- <element name="strlen">
- <short>Length of a null-terminated string.</short>
- <descr>
- Returns the length of the null-terminated string <var>P</var>.
- </descr>
- <errors>
- None.
- </errors>
- </element>
- <!-- function Visibility: default -->
- <element name="Space">
- <short>Return a string of spaces</short>
- <descr>
- <var>Space</var> returns a shortstring with length <var>B</var>, consisting
- of spaces.
- </descr>
- <seealso>
- <link id="StringOfChar"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="UniqueString">
- <short>Make sure reference count of string is 1</short>
- <descr>
- <var>UniqueString</var> ensures that the ansistring <var>S</var> has
- reference count 1. It makes a copy of <var>S</var> if this is necesary, and
- returns the copy in <var>S</var>
- </descr>
- <errors>
- None.
- </errors>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SetTextLineEnding">
- <short>Set the end-of-line character for the given text file.</short>
- <descr>
- <var>SetTextLineEnding</var> sets the end-of-line character for the text
- file <var>F</var> to <var>Ending</var>. By default, this is the string
- indicated by <link id="DefaultTextLineBreakStyle"/>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="DefaultTextLineBreakStyle"/>
- <link id="TTextLineBreakStyle"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="get_frame">
- <short>Return the current frame</short>
- <descr>
- <var>get_frame</var> returns a pointer to the current stack frame.
- </descr>
- <seealso>
- <link id="get_caller_addr"/>
- <link id="get_caller_frame"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="get_caller_addr">
- <short>Return the address of the caller.</short>
- <descr>
- <var>get_caller_frame</var> returns a pointer to address ( the return
- address) of the caller of the routine which has as frame <var>framebp</var>.
- </descr>
- <seealso>
- <link id="get_frame"/>
- <link id="get_caller_frame"/>
- <link id="Dump_Stack"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="get_caller_frame">
- <short>Return the frame pointer of the caller</short>
- <descr>
- <var>get_caller_frame</var> returns a pointer to the frame of the caller
- of the routine which has as frame <var>framebp</var>.
- </descr>
- <seealso>
- <link id="get_caller_addr"/>
- <link id="get_frame"/>
- <link id="Dump_Stack"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="Dump_Stack">
- <short>Dump stack to the given text file.</short>
- <descr>
- <var>Dump_Stack</var> prints a stack dump to the file <var>f</var>, with
- base frame pointer <var>bp</var>
- </descr>
- <errors>
- The file <var>f</var> must be opened for writing or an error will occur.
- </errors>
- <seealso>
- <link id="get_caller_addr"/>
- <link id="get_caller_frame"/>
- <link id="get_frame"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="AddExitProc">
- <short>Add an exit procedure to the exit procedure chain.</short>
- <descr>
- <var>AddExitProc</var> adds <var>Proc</var> to the exit procedure chain. At
- program exit, all procedures added in this way will be called in reverse
- order.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="ExitProc"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SysInitExceptions">
- <short>Initialize exceptions.</short>
- <descr>
- <var>SysInitExceptions</var> initializes the exception system. This
- procedure should never be called directly, it is taken care of by the RTL.
- </descr>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SysInitStdIO">
- <short>Initialize standard input and output.</short>
- <descr>
- <var>SysInitStdIO</var> initializes the standard input and output files:
- <link id="Output"/>, <link id="Input"/> and <link id="StdErr"/>. This
- routine is called by the initialization code of the system unit, there
- should be no need to call it directly.
- </descr>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SysResetFPU">
- <short>Reset the floating point unit.</short>
- <descr>
- <var>SysResetFPU</var> resets the floating point unit. There should normally
- be no need to call this unit; the compiler itself takes care of this.
- </descr>
- </element>
- <!-- procedure Visibility: default -->
- <element name="AbstractError">
- <short>Generate an abstract error.</short>
- <descr>
- <var>AbstractError</var> generates an abstract error (run-time error 211).
- If the <link id="AbstractErrorProc"/> constant is set, it will be called
- instead.
- </descr>
- <errors>
- This routine causes a run-time error 211.
- </errors>
- <seealso>
- <link id="AbstractErrorProc"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="SysBackTraceStr">
- <short>Format an address suitable for inclusion in a backtrace</short>
- <descr>
- <var>SysBackTraceStr</var> will create a string representation of the
- address <var>Addr</var>, suitable for inclusion in a stack backtrace.
- </descr>
- <errors>
- None.
- </errors>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SysAssert">
- <short>Standard Assert failure implementation</short>
- <descr>
- <var>SysAssert</var> is the standard implementation of the assertion failed
- code. It is the default value of the <var>AssertErrorProc</var> constant.
- It will print the assert message <var>Msg</var> together with the filename
- <var>FName</var> and linenumber <var>LineNo</var> to standard error output
- (<var>StdErr</var>) and will halt the program with exit code 227.
- The error address <var>ErrorAddr</var> is ignored.
- </descr>
- <seealso>
- <link id="AssertErrorProc"/>
- </seealso>
- </element>
- <!-- function type Visibility: default -->
- <element name="TBackTraceStrFunc">
- <short>Type for formatting of backtrace dump.</short>
- </element>
- <!-- procedure type Visibility: default -->
- <element name="TErrorProc">
- <short>Standard error handler procedural type.</short>
- </element>
- <!-- procedure type Visibility: default -->
- <element name="TAbstractErrorProc">
- <short>Abstract error handler procedural type.</short>
- </element>
- <!-- procedure type Visibility: default -->
- <element name="TAssertErrorProc">
- <short>Assert error handler procedural type.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="BackTraceStrFunc">
- <short>Standard backtrace formatting routine</short>
- <descr>
- This handler is called to get a standard format for the backtrace routine.
- </descr>
- </element>
- <!-- constant Visibility: default -->
- <element name="ErrorProc">
- <short>Custom error handling procedure.</short>
- <descr>
- <p>
- If set, the <var>ErrorProc</var> constant is used when a run-time error
- occurs. If it is not set, then the standard error handling is done: a stack
- dump is performed, and the program exits with the indicated error code.
- </p>
- <p>
- The <file>SysUtils</file> unit sets this procedure and raises an exception
- in its handler.
- </p>
- </descr>
- <seealso>
- <link id="TErrorProc"/>
- <link id="Halt"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="AbstractErrorProc">
- <short>Custom abstract error handling procedure</short>
- <descr>
- <p>
- If set, the <var>AbstractErrorProc</var> constant is used when an abstract
- error occurs. If it is not set, then the standard error handling is done:
- A stack dump is performed, and the program exits with error code 211.
- </p>
- <p>
- The <file>SysUtils</file> unit sets this procedure and raises an exception
- in its handler.
- </p>
- </descr>
- <seealso>
- <link id="TAbstractErrorProc"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="AssertErrorProc">
- <short>Custom assert error handling procedure</short>
- <descr>
- <p>
- If set, the <var>AbstractErrorProc</var> constant is used when an assert
- error occurs. If it is not set, then the standard error handling is done:
- The assertion error message is printed, together with the location of the
- assertion, and A stack dump is performed, and the program exits with error code
- 227.
- </p>
- <p>
- The <file>SysUtils</file> unit sets this procedure and raises an exception
- in its handler.
- </p>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!-- record type Visibility: default -->
- <element name="jmp_buf">
- <short>Record type to store processor information.</short>
- <seealso>
- <link id="setjmp"/>
- <link id="longjmp"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="jmp_buf.ebx">
- <short>EBX register.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="jmp_buf.esi">
- <short>ESI register</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="jmp_buf.edi">
- <short>EDI register</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="jmp_buf.bp">
- <short>BP register</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="jmp_buf.sp">
- <short>SP register</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="jmp_buf.pc">
- <short>PC register</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PJmp_buf">
- <short>Pointer to <link id="jmp_buf"/> record</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtInstanceSize">
- <short>VMT Layout: Location of class instance size in VMT</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtParent">
- <short>VMT Layout: location of pointer to parent VMT.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtClassName">
- <short>VMT Layout: location of class name.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtDynamicTable">
- <short>VMT Layout: location of dynamic methods table.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtMethodTable">
- <short>VMT Layout: Method table start.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtFieldTable">
- <short>VMT Layout: Location of fields table.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtTypeInfo">
- <short>VMT Layout: Location of class type information.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtInitTable">
- <short>VMT Layout: ?</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtAutoTable">
- <short>VMT layout: ?</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtIntfTable">
- <short>VMT layout: Interface table</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtMsgStrPtr">
- <short>VMT layout: message strings table.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtMethodStart">
- <short>VMT layout: start of method table.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtDestroy">
- <short>VMT Layout: Location of destructor pointer.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtNewInstance">
- <short>VMT Layout: location of NewInstance method.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtFreeInstance">
- <short>VMT Layout: location of FreeInstance method.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtSafeCallException">
- <short>VMT Layout: ?</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtDefaultHandler">
- <short>VMT Layout: ?</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtAfterConstruction">
- <short>VMT Layout: ?</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtBeforeDestruction">
- <short>VMT Layout: ?</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vmtDefaultHandlerStr">
- <short>VMT Layout: ?</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="TextFile">
- <short>Alias for <var>Text</var> file type.</short>
- </element>
- <!-- object Visibility: default -->
- <element name="TObject">
- <short>Parent class for all classes.</short>
- <descr>
- <var>TObject</var> is used as the parent class for all class definitions.
- It contains some standard methods that are available in all classes.
- </descr>
- <seealso>
- <link id="TClass"/>
- </seealso>
- </element>
- <!-- "class of" type Visibility: default -->
- <element name="TClass">
- <short>Class of <link id="TObject"/>.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PClass">
- <short>Pointer to <link id="TClass"/></short>
- </element>
- <!-- record type Visibility: default -->
- <element name="TMsgStrTable">
- <short>Record used in string message handler table.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMsgStrTable.name">
- <short>Message name</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMsgStrTable.method">
- <short>Method to call</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PMsgStrTable">
- <short>Pointer to array of <link id="TMsgStrTable"/> records.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="TStringMessageTable">
- <short>String message table container for class.</short>
- <descr>
- Record used to describe the string messages handled by a class.
- It consists of a count, followed by an array of <link id="TMsgStrTable"/>
- records.
- </descr>
- <seealso>
- <link id="TMsgStrTable"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="TStringMessageTable.count">
- <short>Number of messages in the string table.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="TStringMessageTable.msgstrtable">
- <short>First <link id="TMsgStrTable"/> record.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pstringmessagetable">
- <short>Pointer to <link id="TStringMessageTable"/> record.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PGuid">
- <short>Pointer to <link id="TGUID"/> type. </short>
- </element>
- <!-- record type Visibility: default -->
- <element name="TGuid">
- <short>Standard GUID representation type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pinterfaceentry">
- <short>Pointer to <link id="tinterfaceentry"/> record.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="tinterfaceentry">
- <short>Interfaces table entry.</short>
- <descr>
- <var>tinterfaceentry</var> is used to store the list of Interfaces of a
- class. This list is stored as an array of <var>tinterfaceentry</var>
- records.
- </descr>
- </element>
- <!-- variable Visibility: default -->
- <element name="tinterfaceentry.IID">
- <short>Unique GUID for this interface.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tinterfaceentry.VTable">
- <short>Pointer to interface VTable.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tinterfaceentry.IOffset">
- <short>Offset</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tinterfaceentry.IIDStr">
- <short>Pointer to GUID string. Always assigned for COM.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pinterfacetable">
- <short>Pointer to <link id="tinterfacetable"/> record.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="tinterfacetable">
- <short>Record to store list of interfaces of a class.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tinterfacetable.EntryCount">
- <short>Number of interfaces.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tinterfacetable.Entries">
- <short>Array of <link id="tinterfaceentry"/> records.</short>
- </element>
- <!-- object Visibility: default -->
- <element name="TObject">
- <short>Base class of all classes.</short>
- <descr>
- <var>TObject</var> is the parent root class for all classes in Object
- Pascal. If a class has no parent class explicitly declared, it is dependent
- on <var>TObject</var>. <var>TObject</var> introduces class methods that deal
- with the class' type information, and contains all necessary methods to
- create an instance at runtime, and to dispatch messages to the correct
- method (both string and integer messages).
- </descr>
- <seealso>
- <link id="TClass"/>
- </seealso>
- </element>
- <!-- constructor Visibility: public -->
- <element name="TObject.Create">
- <short><var>TObject</var> Constructor</short>
- <descr>
- <var>Create</var> creates a new instance of <var>TObject</var>. Currently it
- does nothing. It is also not virtual, so there is in principle no need to
- call it directly.
- </descr>
- <seealso>
- <link id="TObject.Destroy">Destroy</link>
- </seealso>
- </element>
- <!-- destructor Visibility: public -->
- <element name="TObject.Destroy">
- <short><var>TObject</var> destructor.</short>
- <descr>
- <p>
- <var>Destroy</var> is the destructor of <var>TObject</var>.
- It will clean up the memory assigned to the instance. Descendent classes
- should override destroy if they want to do additional clean-up. No other
- destructor should be implemented.
- </p>
- <p>
- It is bad programming practice to call <var>Destroy</var> directly. It is
- better to call the <link id="TObject.Free">Free</link> method, because that
- one will check first if <var>Self</var> is different from <var>Nil</var>.
- </p>
- <p>
- To clean up an instance and reset the refence to the instance, it is best to
- use the <link id="#rtl.sysutils.freeandnil">FreeAndNil</link> function.
- </p>
- </descr>
- <seealso>
- <link id="TObject.Create">Create</link>
- <link id="TObject.Free">Free</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.newinstance">
- <short>Allocate memory on the heap for a new instance</short>
- <descr>
- <var>NewInstance</var> allocates memory on the heap for a new instance of
- the current class. If the memory was allocated, the class will be
- initialized by a call to <link id="TObject.InitInstance">InitInstance</link>.
- The function returns the newly initialized instance.
- </descr>
- <errors>
- If not enough memory is available, a <var>Nil</var> pointer may be returned,
- or an exception may be raised.
- </errors>
- <seealso>
- <link id="TObject.Create">Create</link>
- <link id="TObject.InitInstance">InitInstance</link>
- <link id="TObject.InstanceSize">InstanceSize</link>
- <link id="TObject.FreeInstance">FreeInstance</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.FreeInstance">
- <short>Clean up instance and free the memory reserved for the instance.</short>
- <descr>
- <var>FreeInstance</var> cleans up an instance of the current class, and
- releases the heap memory occupied by the class instance.
- </descr>
- <seealso>
- <link id="TObject.Destroy">Destroy</link>
- <link id="TObject.InitInstance">InitInstance</link>
- <link id="TObject.NewInstance">NewInstance</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.SafeCallException">
- <short>Handle exception object</short>
- <descr>
- <var>SafeCallException</var> should be overridden to handle exceptions in a
- method marked with the savecall directive. The implementation in
- <var>TObject</var> simply returns zero.
- </descr>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.DefaultHandler">
- <short>Default handler for integer message handlers.</short>
- <descr>
- <var>DefaultHandler</var> is the default handler for messages. If a message
- has an unknown message ID (i.e. does not appear in the table with integer
- message handlers), then it will be passed to
- <var>DefaultHandler</var> by the <link id="TObject.Dispatch">Dispatch</link>
- method.
- </descr>
- <errors>
- </errors>
- <seealso>
- <link id="TObject.Dispatch">Dispatch</link>
- <link id="TObject.DefaultHandlerStr">DefaultHandlerStr</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.Free">
- <short>Check for <var>Nil</var> and call destructor.</short>
- <descr>
- <var>Free</var> will check the <var>Self</var> pointer and calls
- <link id="TObject.Destroy">Destroy</link> if it is different from
- <var>Nil</var>. This is a safer method than calling <var>Destroy</var>
- directly. If a reference to the object must be reset as well (a recommended
- technque), then the function <link id="#rtl.sysutils.freeandnil">FreeAndNil</link> should be called.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.Destroy">Destroy</link>
- <link id="#rtl.sysutils.freeandnil">FreeAndNil</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.InitInstance">
- <short>Initialize a new class instance.</short>
- <descr>
- <var>InitInstance</var> initializes the memory pointer to by
- <var>Instance</var>. This means that the VMT is initialized, and the
- interface pointers are set up correctly.
- The function returns the newly initialized instance.
- </descr>
- <seealso>
- <link id="TObject.NewInstance">NewInstance</link>
- <link id="TObject.Create">Create</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.CleanupInstance">
- <short>Finalize the class instance.</short>
- <descr>
- <p>
- <var>CleanUpinstance</var> finalizes the instance, i.e. takes care of all
- reference counted objects, by decreasing their reference count by 1, and
- freeing them if their count reaches zero.
- </p>
- <p>
- Normally, <var>CleanupInstance</var> should never be called, it is called
- automatically when the object is freed with it's constructor.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.Destroy">Destroy</link>
- <link id="TObject.Free">Free</link>
- <link id="TObject.InitInstance">InitInstance</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.ClassInfo">
- <short>Return a pointer to the type information for this class.</short>
- <descr>
- <var>ClassInfo</var> returns a pointer to the type information for this
- class. This pointer can be used in the various type information routines.
- </descr>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.ClassType">
- <short>Return a "class of" pointer for the current class</short>
- <descr>
- <var>ClassType</var> returns a <link id="TClass"/> class type reference for
- the current class.
- </descr>
- <seealso>
- <link id="TClass"/>
- <link id="TObject.ClassInfo">ClassInfo</link>
- <link id="TObject.ClassName">ClassName</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.ClassName">
- <short>Return the current class name.</short>
- <descr>
- <var>ClassName</var> returns the class name for the current class, in
- all-uppercase letters. To check for the class name, use the <link
- id="TObject.ClassNameIs">ClassNameIs</link> class method.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.ClassInfo">ClassInfo</link>
- <link id="TObject.ClassType">ClassType</link>
- <link id="TObject.ClassNameIs">ClassNameIs</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.ClassNameIs">
- <short>Check whether the class name equals the given name.</short>
- <descr>
- <var>ClassNameIs</var> checks whether <var>Name</var> equals the class name.
- It takes of case sensitivity, i.e. it converts both names to uppercase
- before comparing.
- </descr>
- <seealso>
- <link id="TObject.ClassInfo">ClassInfo</link>
- <link id="TObject.ClassType">ClassType</link>
- <link id="TObject.ClassName">ClassName</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.ClassParent">
- <short>Return the parent class.</short>
- <descr>
- <var>ClassParent</var> returns the class of the parent class of the current
- class. This is always different from <var>Nil</var>, except for
- <var>TObject</var>.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.ClassInfo">ClassInfo</link>
- <link id="TObject.ClassType">ClassType</link>
- <link id="TObject.ClassName">ClassNameIs</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.InstanceSize">
- <short>Return the size of an instance.</short>
- <descr>
- <var>InstanceSize</var> returns the number of bytes an instance takes in
- memory. This is Just the memory occupied by the class structure, and does
- not take into account any additional memory that might be allocated by the
- constructor of the class.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.InitInstance">InitInstance</link>
- <link id="TObject.ClassName">ClassName</link>
- <link id="TObject.ClassInfo">ClassInfo</link>
- <link id="TObject.ClassType">ClassType</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.InheritsFrom">
- <short>Chck wether class is an ancestor.</short>
- <descr>
- <var>InheritsFrom</var> returns <var>True</var> if <var>AClass</var> is an
- ancestor class from the current class, and returns false if it is not.
- </descr>
- <errors>
- </errors>
- <seealso>
- <link id="TObject.ClassName">ClassName</link>
- <link id="TObject.ClassInfo">ClassInfo</link>
- <link id="TObject.ClassType">ClassType</link>
- <link id="TClass"/>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.StringMessageTable">
- <short>Return a pointer to the string message table.</short>
- <descr>
- <var>StringMessageTable</var> returns a pointer to the string message table,
- which can be used to look up methods for dispatching a string message. It is
- used by the <link id="TObject.DispatchStr">DispatchStr</link> method.
- </descr>
- <errors>
- If there are no string message handlers, nil is returned.
- </errors>
- <seealso>
- <link id="TObject.DispatchStr">DispatchStr</link>
- <link id="TObject.Dispatch">Dispatch</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.Dispatch">
- <short>Dispatch an integer message</short>
- <descr>
- <p>
- <var>Dispatch</var> looks in the message handler table for a handler that
- handles <var>message</var>. The message is identified by the first dword
- (cardinal) in the message structure.
- </p>
- <p>
- If no matching message handler is found, the message is passed to the
- <link id="TObject.DefaultHandler">DefaultHandler</link> method, which can be
- overridden by descendent classes to add custom handling of messages.
- </p>
- </descr>
- <seealso>
- <link id="TObject.DispatchStr">DispatchStr</link>
- <link id="TObject.DefaultHandler">DefaultHandler</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.DispatchStr">
- <short>Dispatch a string message.</short>
- <descr>
- <var>DispatchStr</var> extracts the message identifier from
- <var>Message</var> and checks the message handler table to see if a handler
- for the message is found, and calls the handler, passing along the message.
- If no handler is found, the default <link id="TObject.DefaultHandlerStr">DefaultHandlerStr</link>
- is called.
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.DefaultHandlerStr">DefaultHandlerStr</link>
- <link id="TObject.Dispatch">Dispatch</link>
- <link id="TObject.DefaultHandler">DefaultHandler</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.MethodAddress">
- <short>Return the address of a method</short>
- <descr>
- <var>MethodAddress</var> returns the address of a method, searching the
- method by its name. The <var>Name</var> parameter specifies which method
- should be taken. The search is conducted in a case-insensitive manner.
- </descr>
- <errors>
- If no matching method is found, <var>Nil</var> is returned.
- </errors>
- <seealso>
- <link id="TObject.MethodName">MethodName</link>
- <link id="TObject.FieldAddress">FieldAddress</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.MethodName">
- <short>Return the name of a method.</short>
- <descr>
- <var>MethodName</var> searches the VMT for a method with the specified
- <var>address</var> and returns the name of the method.
- </descr>
- <errors>
- If no method with the matching address is found, an empty string is
- returned.
- </errors>
- <seealso>
- <link id="TObject.MethodAddress">MethodAddress</link>
- <link id="TObject.FieldAddress">FieldAddress</link>
- </seealso>
- </element>
- <!-- function Visibility: public -->
- <element name="TObject.FieldAddress">
- <short>Return the address of a field.</short>
- <descr>
- <var>FieldAddress</var> returns the address of the field with name <var>name</var>.
- The address is the address of the field in the current class instance.
- </descr>
- <errors>
- If no field with the specified name is found, <var>Nil</var> is returned.
- </errors>
- <seealso>
- <link id="TObject.MethodAddress">MethodAddress</link>
- <link id="TObject.MethodName">MethodName</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.AfterConstruction">
- <short>Method called after the constructor was called.</short>
- <descr>
- <var>AfterConstruction</var> is a method called after the constructor was
- called. It does nothing in the implementation of <var>TObject</var> and must
- be overridden by descendent classes to provide specific behaviour that is
- executed after the constructor has finished executing. (for instance, call
- an event handler)
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.BeforeDestruction">BeforeDestruction</link>
- <link id="TObject.Create">Create</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.BeforeDestruction">
- <short>Method called before the destructor is called.</short>
- <descr>
- <var>BeforeDestruction</var> is a method called before the destructor is
- called. It does nothing in the implementation of <var>TObject</var> and must
- be overridden by descendent classes to provide specific behaviour that is
- executed before the destructor has finished executing. (for instance, call
- an event handler)
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TObject.AfterConstruction">AfterConstruction</link>
- <link id="TObject.Destroy">Destroy</link>
- <link id="TObject.Free">Free</link>
- </seealso>
- </element>
- <!-- procedure Visibility: public -->
- <element name="TObject.DefaultHandlerStr">
- <short>Default handler for string messages.</short>
- <descr>
- <var>DefaultHandlerStr</var> is called for string messages which have no
- handler associated with them in the string message handler table. The
- implementation of <var>DefaultHandlerStr</var> in <var>TObject</var> does
- nothing and mut be overridden by descendent classes to provide specific
- message handling behaviour.
- </descr>
- <seealso>
- <link id="TObject.DispatchStr">DispatchStr</link>
- <link id="TObject.Dispatch">Dispatch</link>
- <link id="TObject.DefaultHandler">DefaultHandler</link>
- </seealso>
- </element>
- <!-- procedure type Visibility: default -->
- <element name="TExceptProc">
- <short>Exception handler procedural type</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PExceptObject">
- <short>Pointer to Exception handler procedural type <link id="TExceptProc"/></short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!-- record type Visibility: default -->
- <element name="TExceptObject">
- <short>Exception object</short>
- <descr>
- <var>TExceptObject</var> is the exception description record which is found
- on the exception stack.
- </descr>
- </element>
- <!-- variable Visibility: default -->
- <element name="TExceptObject.FObject">
- <short>Exception instance.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TExceptObject.Addr">
- <short>Address where exception occurred</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TExceptObject.Frame">
- <short>Exception frame where exception occurred</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TExceptObject.Next">
- <short>Next exception object on the stack.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TExceptObject.refcount">
- <short>Reference count for this exception object</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="ExceptProc">
- <short>Current exception handling procedure.</short>
- <descr>
- <p>
- This constant points to the current exception handling procedure.
- This routine is called when an unhandled exception occurs, i.e. an exception
- that is not stopped by a except block.
- </p>
- <p>
- If the handler is not set, the RTL will emit a run-time error 217 when an
- unhandler exception occurs.
- </p>
- <p>
- It is set by the <link id="#rtl.sysutils">sysutils</link> unit.
- </p>
- </descr>
- </element>
- <!-- constant Visibility: default -->
- <element name="RaiseProc">
- <short>Procedure to raise an exception.</short>
- </element>
- <!-- function Visibility: default -->
- <element name="RaiseList">
- <short>List of currently raised exceptions.</short>
- <descr>
- <var>RaiseList</var> returns a pointer to the list of currently raised
- exceptions (i.e. a pointer to the first exception block.
- </descr>
- <errors>
- </errors>
- <seealso>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="AcquireExceptionObject">
- <short>Obtain a reference to the current exception object</short>
- <descr>
- <p>
- <var>AcquireExceptionObject</var> returns the current exception object.
- It raises the reference count of the exception object, so it will not be
- freed. Calling this method is only valid within an except block.
- </p>
- <p>
- The effect of this function is countered by re-raising an exception
- via <var>raise;</var>
- </p>
- <p>
- To make sure that the exception object is released when it is no longer
- needed, <link id="ReleaseExceptionObject"/> must be called when the
- reference is no longer needed.
- </p>
- </descr>
- <errors>
- If there is no current exception, a run-time error 231 will occur.
- </errors>
- <seealso>
- <link id="ReleaseExceptionObject"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="ReleaseExceptionObject">
- <short>Decrease the reference count of the current exception object.</short>
- <descr>
- <p>
- <var>ReleaseExceptionObject</var> decreases the reference count of the
- current exception object. This should be called whenever a reference to the
- exception object was obtained via the <link id="AcquireExceptionObject"/>
- call.
- </p>
- <p>
- Calling this method is only valid within an except block.
- </p>
- </descr>
- <errors>
- If there is no current exception object, a run-time error 231 will occur.
- </errors>
- <seealso>
- <link id="AcquireExceptionObject"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtInteger">
- <short>TVarRec type: Integer</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtBoolean">
- <short>TVarRec type: Boolean</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtChar">
- <short>TVarRec type: Char</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtExtended">
- <short>TVarRec type: Extended</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtString">
- <short>TVarRec type: String</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtPointer">
- <short>TVarRec type: pointer</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtPChar">
- <short>TVarRec type: PChar</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtObject">
- <short>TVarRec type: Object instance</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtClass">
- <short>TVarRec type: Class type</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtWideChar">
- <short>TVarRec type: Widechar</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtPWideChar">
- <short>TVarRec type: PWideChar</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtAnsiString">
- <short>TVarRec type: Ansistring</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtCurrency">
- <short>TVarRec type: Currency</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtVariant">
- <short>TVarRec type: Variant</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtInterface">
- <short>TVarRec type: Interface</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtWideString">
- <short>TVarRec type: WideString</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtInt64">
- <short>TVarRec type: Int64 (signed 64-bit integer)</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vtQWord">
- <short>TVarRec type: QWord (unsigned 64-bit integer)</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PVarRec">
- <short>Pointer to <link id="TVarRec"/> type.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="TVarRec">
- <short>Record describing an element in an array of const</short>
- <descr>
- <var>TVarRec</var> is a record generated by the compiler for each element in
- a <var>array of const</var> call. The procedure that receives the constant
- array receives an array of <var>TVarRec</var> elements, with lower bound zero
- and high bound equal to the number of elements in the array minus one
- (as returned by <var>High(Args)</var>)
- </descr>
- <seealso>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="tdynarrayindex">
- <short>Type with the correct size for index into a dynamic array.</short>
- <descr>
- A variable of type <var>tdynarrayindex</var> will always have the correct
- size, suitable for serving as an index in a dynamic array.
- </descr>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pdynarrayindex">
- <short>Pointer to <link id="tdynarrayindex"/> type.</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="fpc_big_chararray" skip="1">
- <short>Array of char.</short>
- <descr>
- </descr>
- <seealso>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="fpc_small_set" skip="1">
- <short>Type with the size of a small set</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="fpc_normal_set" skip="1">
- <short>Type with the size of a normal set</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PMemoryManager">
- <short>Pointer to <link id="TMemoryManager"/> record</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="TMemoryManager">
- <short>Record describing the current memory manager</short>
- <descr>
- <var>TMemoryManager</var> describes the memory manager. For more information
- about the memory manager, see the programmer's reference.
- </descr>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.NeedLock">
- <short>Does the memory manager require a lock</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.Getmem">
- <short>Function called when memory must be allocated on the heap.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.Freemem">
- <short>Function called when previously allocated memory can be freed again.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.FreememSize">
- <short>Function called when previously allocated memory with a known size can be freed again.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.AllocMem">
- <short>Same as getmem.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.ReAllocMem">
- <short>Handler called when an allocated memory block should be resized</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.MemSize">
- <short>Return the size of a memory block.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryManager.GetHeapStatus">
- <short>Handler called when the heap status must be reported.</short>
- </element>
- <element name="GetHeapStatus">
- <short>Return the memory manager heap status.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="TMemoryMutexManager">
- <short>Record describing the mutex manager for the heap.</short>
- <descr>
- When the heapmanager needs a lock, then the mutex manager is used to handle
- the lock.
- </descr>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryMutexManager.MutexInit">
- <short>Initialize the mutex</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryMutexManager.MutexDone">
- <short>Finalize (i.e. dispose of) the mutex.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryMutexManager.MutexLock">
- <short>Lock the mutex</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="TMemoryMutexManager.MutexUnlock">
- <short>Unlock the mutex.</short>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SetMemoryMutexManager">
- <short>Procedure to set the mutex manager.</short>
- <descr>
- <var>SetMemoryMutexManager</var> sets the mutex manager used by the memory
- manager to <var>MutexMgr</var>. The current mutex manager is returned in
- <var>MutexMgr</var>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="TMemoryMutexManager"/>
- <link id="SetMemoryManager"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="growheapsizesmall">
- <short>Fixed size small blocks grow rate</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="growheapsize1">
- <short>Grow rate for block less than 256 Kb.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="growheapsize2">
- <short>Grow rate for block larger than 256 Kb.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="ReturnNilIfGrowHeapFails">
- <short>Describe behaviour if getmem fails.</short>
- <descr>
- <var>ReturnNilIfGrowHeapFails</var> describes what happens if there is no
- more memory available from the operating system. if set to <var>True</var>
- the memory manager will return <var>Nil</var>. If set to <var>False</var>
- then a run-time error will occur.
- </descr>
- </element>
- <!-- function Visibility: default -->
- <element name="SysGetmem">
- <short>System memory manager memory allocator.</short>
- <descr>
- <var>SysGetmem</var> is the system memory manager implementation for <link
- id="GetMem"/>
- </descr>
- <seealso>
- <link id="GetMem"/>
- <link id="GetMemory"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="SysFreemem">
- <short>System memory manager free routine.</short>
- <descr>
- <var>SysFreeem</var> is the system memory manager implementation for <link id="FreeMem"/>
- </descr>
- <seealso>
- <link id="FreeMem"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="SysFreememSize">
- <short>System memory manager free routine.</short>
- <descr>
- <var>SysFreemSize</var> is the system memory manager implementation for <link
- id="FreeMem"/>
- </descr>
- <seealso>
- <link id="MemSize"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="SysMemSize">
- <short>System memory manager: free size.</short>
- <descr>
- <var>SysFreemSize</var> is the system memory manager implementation for
- <link id="MemSize"/>
- </descr>
- <seealso>
- <link id="MemSize"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="SysAllocMem">
- <short>System memory manager: Allocate memory</short>
- <descr>
- <var>SysFreemSize</var> is the system memory manager implementation for
- <link id="AllocMem"/>
- </descr>
- <seealso>
- <link id="AllocMem"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="SysTryResizeMem">
- <short>System memory manager: attempt to resize memory.</short>
- <descr>
- <var>SysTryResizeMem</var> is a help routine for the system memory
- manager implementation for <link id="ReAllocMem"/>, <link
- id="SysReAllocMem"/>
- </descr>
- <seealso>
- <link id="SysReAllocMem"/>
- <link id="ReAllocMem"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="SysReAllocMem">
- <short>System memory manager: Reallocate memory</short>
- <descr>
- <var>SysReallocMem</var> is a help routine for the system memory
- manager implementation for <link id="ReAllocMem"/>.
- </descr>
- <seealso>
- <link id="ReAllocMem"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="Getmemory">
- <short>Alias for <link id="GetMem"/></short>
- <descr>
- <var>Getmemory</var> is an alias for <link id="GetMem"/>.
- </descr>
- <seealso>
- <link id="GetMem"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="Freememory">
- <short>Alias for <link id="FreeMem"/></short>
- <descr>
- <var>FreeMemory</var> is an alias for <link id="FreeMem"/>.
- </descr>
- <seealso>
- <link id="FreeMem"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="MemSize">
- <short>Return the size of a memory block.</short>
- <descr>
- <var>MemSize</var> returns the size of a memory block on the heap.
- </descr>
- <errors>
- Passing an invalid pointer may lead to run-time errors (access violations).
- </errors>
- <seealso>
- <link id="GetMem"/>
- <link id="FreeMem"/>
- </seealso>
- </element>
- <element name="AllocMem">
- <short>Alias for <link id="GetMem"/></short>
- <descr>
- <var>AllocMem</var> is an alias for <link id="GetMem"/>.
- </descr>
- <seealso>
- <link id="GetMem"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="ReAllocMem">
- <short>Re-allocate memory on the heap</short>
- <descr>
- <p>
- <var>ReAllocMem</var> resizes the memory pointed to by <var>P</var> so it has size
- <var>Size</var>. The value of <var>P</var> may change during this operation.
- The contents of the memory pointed to by <var>P</var> (if any) will be copied to
- the new location, but may be truncated if the newly allocated memory block
- is smaller in size. If a larger block is allocated, only the used memory is
- initialized, extra memory will not be zeroed out.
- </p>
- <p>
- Note that <var>P</var> may be nil, in that case the behaviour of
- <var>ReAllocMem</var> is equivalent to <var>Getmem</var>.
- </p>
- </descr>
- <seealso>
- <link id="GetMem"/>
- <link id="FreeMem"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="ReAllocMemory">
- <short>Alias for <link id="ReAllocMem"/></short>
- <descr>
- <var>ReAllocMemory</var> is an alias for <link id="ReAllocMem"/>.
- </descr>
- <seealso>
- <link id="ReAllocMem"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="AsmGetmem">
- <short>Routine that can be called from assembler routines to get memory.</short>
- <descr>
- <var>AsmGetmem</var> is a routine that can be called from assembler code to
- get memory. The assembler reader cannot decide which overloaded <link
- id="GetMem"/> call should be used. <var>AsmGetMem</var> provides a unique
- name that can be called from assembler. Other than that it is completely
- equivalent to <var>GetMem</var>.
- </descr>
- <seealso>
- <link id="GetMem"/>
- <link id="AsmFreeMem"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="AsmFreemem">
- <short>Routine that can be called from assembler routines to release memory.</short>
- <descr>
- <var>AsmFreemem</var> is a routine that can be called from assembler code to
- release previously alocated memory. The assembler reader cannot decide which
- overloaded <link id="FreeMem"/> call should be used. <var>AsmFreeMem</var>
- provides a unique name that can be called from assembler. Other than that it
- is completely equivalent to <var>FreeMem</var>.
- </descr>
- <seealso>
- <link id="FreeMem"/>
- <link id="AsmGetMem"/>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="THandle">
- <short>Type alias.</short>
- <descr>
- This type should be considered opaque. It is used to describe file and other
- handles.
- </descr>
- </element>
- <!-- constant Visibility: default -->
- <element name="LineEnding">
- <short>Constant describing the current line ending character.</short>
- <descr>
- <p>
- <var>LineEnding</var> is a constant which contains the current line-ending
- character. This character is system dependent, and is initialized by the
- system. It should not be set.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <seealso>
- <link id="DriveSeparator"/>
- <link id="DirectorySeparator"/>
- <link id="LFNSupport"/>
- <link id="PathSeparator"/>
- <link id="sLineBreak"/>
- <link id="FileNameCaseSensitive"/>
- <link id="DefaultTextLineBreakStyle"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="LFNSupport">
- <short>COnstant describing support for long filenames.</short>
- <descr>
- <p>
- <var>LFNSupport</var> determines whether the current OS supports long file
- names, i.e. filenames that are not of the form 8.3 as on ancient DOS
- systems. If the value of this constant is <var>True</var> then long
- filenames are supported. If it is false, then not.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <link id="DriveSeparator"/>
- <link id="DirectorySeparator"/>
- <link id="LineEnding"/>
- <link id="PathSeparator"/>
- <link id="FileNameCaseSensitive"/>
- <link id="DefaultTextLineBreakStyle"/>
- </element>
- <!-- constant Visibility: default -->
- <element name="DirectorySeparator">
- <short>Character used to separate directory parts.</short>
- <descr>
- <p>
- <var>DirectorySeparator</var> is the character used by the current operating
- system to separate directory parts in a pathname. This constant is system
- dependent, and should not be set.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <seealso>
- <link id="DriveSeparator"/>
- <link id="LineEnding"/>
- <link id="LFNSupport"/>
- <link id="PathSeparator"/>
- <link id="FileNameCaseSensitive"/>
- <link id="DefaultTextLineBreakStyle"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="DriveSeparator">
- <short>Character used to separate directory parts.</short>
- <descr>
- <p>
- On systems that support driveletters, the <var>DriveSeparator</var> constant
- denotes the character that separates the drive indicator from the directory
- part in a filename path.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <seealso>
- <link id="DirectorySeparator"/>
- <link id="LineEnding"/>
- <link id="LFNSupport"/>
- <link id="PathSeparator"/>
- <link id="FileNameCaseSensitive"/>
- <link id="DefaultTextLineBreakStyle"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="PathSeparator">
- <short>Character used to separate paths in a search list</short>
- <descr>
- <p>
- <var>PathSeparator</var> is the character used commonly on the current
- operating system to separate paths in a list of paths, such as the
- <var>PATH</var> environment variable.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <seealso>
- <link id="DirectorySeparator"/>
- <link id="LineEnding"/>
- <link id="LFNSupport"/>
- <link id="DriveSeparator"/>
- <link id="FileNameCaseSensitive"/>
- <link id="DefaultTextLineBreakStyle"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="FileNameCaseSensitive">
- <short>OS treatment of filenames is case sensitive.</short>
- <descr>
- <p>
- <var>FileNameCaseSensitive</var> is <var>True</var> if case is important
- when using filenames on the current OS. In this case, the OS will treat
- files with different cased names as different files. Note that this may
- depend on the filesystem: Unix operating systems that access a DOS or
- Windows partition will have this constant set to true, but when writing to
- the DOS partition, the casing is ignored.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <seealso>
- <link id="DriveSeparator"/>
- <link id="DirectorySeparator"/>
- <link id="LineEnding"/>
- <link id="LFNSupport"/>
- <link id="PathSeparator"/>
- <link id="FileNameCaseSensitive"/>
- <link id="DefaultTextLineBreakStyle"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="sLineBreak">
- <short>Alias for <link id="LineEnding"/></short>
- <descr>
- <p>
- <var>sLineBreak</var> is an alias for <link id="LineEnding"/> and is
- supplied for Delphi compatibility.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <seealso>
- <link id="DriveSeparator"/>
- <link id="DirectorySeparator"/>
- <link id="LineEnding"/>
- <link id="LFNSupport"/>
- <link id="PathSeparator"/>
- <link id="FileNameCaseSensitive"/>
- <link id="DefaultTextLineBreakStyle"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="DefaultTextLineBreakStyle">
- <short>Default line ending style.</short>
- <descr>
- <p>
- <var>DefaultTextLineBreakStyle</var> contains the default OS setting for the
- <link id="TTextLineBreakStyle"/> type. It is initizliaed by the system unit,
- and is used to determine the default line ending when writing to text files.
- </p>
- <p>
- This constant is part of a set of constants that describe the OS
- characteristics. These constants should be used instead of hardcoding
- OS characteristics.
- </p>
- </descr>
- <seealso>
- <link id="SetTextLineEnding"/>
- <link id="TTextLineBreakStyle"/>
- <link id="DriveSeparator"/>
- <link id="DirectorySeparator"/>
- <link id="LineEnding"/>
- <link id="LFNSupport"/>
- <link id="PathSeparator"/>
- <link id="FileNameCaseSensitive"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="maxExitCode">
- <short>Maximum exit code supported by the operating system.</short>
- <descr>
- <var>maxExitCode</var> is the maximum value for the <link id="Halt"/> call.
- </descr>
- <seealso>
- <link id="Halt"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="UnusedHandle">
- <short>Value indicating an unused file handle (as reported by the OS).</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="StdInputHandle">
- <short>Value of the OS handle for the standard input file.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="StdOutputHandle">
- <short>Value of the OS handle for the standard output file.</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="StdErrorHandle">
- <short>Value of the OS handle for the standard error-output file.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="argc" skip="1">
- <short>Number of command-line arguments.</short>
- <descr>
- <var>argc</var> contains the number of command-line arguments passed to
- the program by the OS. It is not available on all systems.
- </descr>
- <seealso>
- <link id="argv"/>
- <link id="envp"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="argv">
- <short>Pointer to the array of command-line arguments</short>
- <descr>
- <var>argp</var> contains a pointer to a <var>nil</var>-terminated
- array of null-terminated strings, containing the command-line
- arguments passed to the program by the OS. It is not available
- on all systems.
- </descr>
- <seealso>
- <link id="argc"/>
- <link id="envp"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="envp">
- <short>Pointer to the array of environment variables</short>
- <descr>
- <var>envp</var> contains a pointer to a <var>nil</var>-terminated
- array of null-terminated strings, containing the environment variables
- passed to the program by the OS. It is not available on all systems.
- </descr>
- <seealso>
- <link id="argc"/>
- <link id="argv"/>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="SizeInt">
- <short>Signed integer type which fits for sizes</short>
- <seealso>
- <link id="SizeUInt"/>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="SizeUInt">
- <short>Unsigned Integer type which fits for sizes</short>
- <seealso>
- <link id="SizeInt"/>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="PtrInt">
- <short>Signed integer type with same size as Pointer.</short>
- <descr>
- <var>PtrInt</var> is an integer type which has always the same size as a
- pointer. When using integers which will be cast to pointers and vice versa,
- use this type, never the regular integer type.
- </descr>
- <seealso>
- <link id="PtrUInt"/>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="PtrUInt">
- <short>Unsigned integer type with same size as Pointer.</short>
- <descr>
- <var>PtrUInt</var> is an unsigned integer type which has always the same size as a
- pointer. When using integers which will be cast to pointers and vice versa,
- use this type, never the regular Cardinal type.
- </descr>
- <seealso>
- <link id="PtrInt"/>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="ValSInt">
- <short>Val-Signed integer.</short>
- <descr>
- Integer with teh same size as the return code of the <link id="Val"/>
- function.
- </descr>
- <seealso>
- <link id="Val"/>
- <link id="ValUInt"/>
- </seealso>
- </element>
- <!-- alias type Visibility: default -->
- <element name="ValUInt">
- <short>Val-unsigned integer</short>
- <descr>
- Integer with teh same size as the return code of the <link id="Val"/>
- function.
- </descr>
- <seealso>
- <link id="Val"/>
- <link id="ValUInt"/>
- </seealso>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PVariant">
- <short>Pointer to <var>Variant</var> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="POleVariant">
- <short>Pointer to <var>OleVariant</var> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PWideChar">
- <short>Pointer to <link id="WChar"/>.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PPWideChar">
- <short>Pointer to link id="PWideChar"> type.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="UCS2Char">
- <short>UCS2 unicode character.</short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="PUCS2Char">
- <short>Pointer to <link id="UCS2Char"/> character.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="PText">
- <short>Pointer to text file.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="ErrOutput">
- <short>Alias for <link id="StdErr"/></short>
- <descr>
- <var>ErrOutput</var> is provided for Delphi compatibility.
- </descr>
- <seealso>
- <link id="StdErr"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_lo_word">
- <short>FPC compiler internal procedure index: lo (word)</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_hi_word">
- <short>FPC compiler internal procedure index: hi (word)</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_lo_long">
- <short>FPC compiler internal procedure index: lo (long)</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_hi_long">
- <short>FPC compiler internal procedure index: hi (long)</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_ord_x">
- <short>FPC compiler internal procedure index: ord </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_length_string">
- <short>FPC compiler internal procedure index: length</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_chr_byte">
- <short>FPC compiler internal procedure index: chr</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_write_x">
- <short>FPC compiler internal procedure index: write</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_writeln_x">
- <short>FPC compiler internal procedure index: writeln</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_read_x">
- <short>FPC compiler internal procedure index: read</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_readln_x">
- <short>FPC compiler internal procedure index: readln</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_concat_x">
- <short>FPC compiler internal procedure index: concat </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_assigned_x">
- <short>FPC compiler internal procedure index: assigned </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_str_x_string">
- <short>FPC compiler internal procedure index: str </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_ofs_x">
- <short>FPC compiler internal procedure index: ofs </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_sizeof_x">
- <short>FPC compiler internal procedure index: sizeof </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_typeof_x">
- <short>FPC compiler internal procedure index: typeof </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_val_x">
- <short>FPC compiler internal procedure index: val </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_reset_x">
- <short>FPC compiler internal procedure index: reset </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_rewrite_x">
- <short>FPC compiler internal procedure index: rewrite </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_low_x">
- <short>FPC compiler internal procedure index: low </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_high_x">
- <short>FPC compiler internal procedure index: high </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_seg_x">
- <short>FPC compiler internal procedure index: seg </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_pred_x">
- <short>FPC compiler internal procedure index: pred </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_succ_x">
- <short>FPC compiler internal procedure index: succ </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_reset_typedfile">
- <short>FPC compiler internal procedure index: reset </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_rewrite_typedfile">
- <short>FPC compiler internal procedure index: rewrite </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_settextbuf_file_x">
- <short>FPC compiler internal procedure index: settextbuf </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_inc_x">
- <short>FPC compiler internal procedure index: inc </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_dec_x">
- <short>FPC compiler internal procedure index: dec </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_include_x_y">
- <short>FPC compiler internal procedure index: include </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_exclude_x_y">
- <short>FPC compiler internal procedure index: exclude </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_break">
- <short>FPC compiler internal procedure index: break </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_continue">
- <short>FPC compiler internal procedure index: continue </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_assert_x_y">
- <short>FPC compiler internal procedure index: assert </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_addr_x">
- <short>FPC compiler internal procedure index: addr </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_typeinfo_x">
- <short>FPC compiler internal procedure index: typeinfo </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_setlength_x">
- <short>FPC compiler internal procedure index: setlength </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_finalize_x">
- <short>FPC compiler internal procedure index: finalize </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_new_x">
- <short>FPC compiler internal procedure index: new </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_dispose_x">
- <short>FPC compiler internal procedure index: dispose </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_exit">
- <short>FPC compiler internal procedure index: exit </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_copy_x">
- <short>FPC compiler internal procedure index: copy </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_initialize_x">
- <short>FPC compiler internal procedure index: initialize </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_leave">
- <short>FPC compiler internal procedure index: leave </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_cycle">
- <short>FPC compiler internal procedure index: cycle </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_trunc">
- <short>FPC compiler internal procedure index: trunc </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_round">
- <short>FPC compiler internal procedure index: round </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_frac">
- <short>FPC compiler internal procedure index: frac </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_abs">
- <short>FPC compiler internal procedure index: abs </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_int">
- <short>FPC compiler internal procedure index: int </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_sqr">
- <short>FPC compiler internal procedure index: sqr </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_odd">
- <short>FPC compiler internal procedure index: sqr </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_ptr">
- <short>FPC compiler internal procedure index: sqr </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_swap_word">
- <short>FPC compiler internal procedure index: swap (word) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_swap_long">
- <short>FPC compiler internal procedure index: swap (long) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_pi">
- <short>FPC compiler internal procedure index: pi </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_sqrt">
- <short>FPC compiler internal procedure index: sqrt </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_arctan">
- <short>FPC compiler internal procedure index: arctan </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_cos">
- <short>FPC compiler internal procedure index: cos </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_exp">
- <short>FPC compiler internal procedure index: exp </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_ln">
- <short>FPC compiler internal procedure index: in </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_sin">
- <short>FPC compiler internal procedure index: sin </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_lo_qword">
- <short>FPC compiler internal procedure index: lo (qword) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_hi_qword">
- <short>FPC compiler internal procedure index: hi (qword) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_cos_real">
- <short>FPC compiler internal procedure index: cos (real) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_pi">
- <short>FPC compiler internal procedure index: pi </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_abs_real">
- <short>FPC compiler internal procedure index: abs (real) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_sqr_real">
- <short>FPC compiler internal procedure index: sqr (real) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_sqrt_real">
- <short>FPC compiler internal procedure index: sqrt (real) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_arctan_real">
- <short>FPC compiler internal procedure index: arctan (real) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_ln_real">
- <short>FPC compiler internal procedure index: ln (real) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_sin_real">
- <short>FPC compiler internal procedure index: sin (real) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_const_swap_qword">
- <short>FPC compiler internal procedure index: swap (qword) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_prefetch_var">
- <short>FPC compiler internal procedure index: prefetch </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_mmx_pcmpeqb">
- <short>FPC compiler internal procedure index: MMX </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_mmx_pcmpeqw">
- <short>FPC compiler internal procedure index: MMX </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_mmx_pcmpeqd">
- <short>FPC compiler internal procedure index: MMX </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_mmx_pcmpgtb">
- <short>FPC compiler internal procedure index: MMX </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_mmx_pcmpgtw">
- <short>FPC compiler internal procedure index: MMX </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="fpc_in_mmx_pcmpgtd">
- <short>FPC compiler internal procedure index: MMX </short>
- </element>
- <!-- function Visibility: default -->
- <element name="Align">
- <short>Return aligned version of an address</short>
- <descr>
- <var>Align</var> returns <var>Address</var>, aligned to <var>Alignment</var>
- bytes.
- </descr>
- <errors>
- None.
- </errors>
- </element>
- <element name="ArrayStringToPPchar">
- <short>Concert an array of string to an array of null-terminated strings</short>
- <descr>
- <p>
- <var>ArrayStringToPPchar</var> creates an array of null-terminated strings
- that point to strings which are the same as the strings in the array
- <var>S</var>. The function returns a pointer to this array. The array and
- the strings it contains must be disposed of after being used, because it
- they are allocated on the heap.
- </p>
- <p>
- The <var>ReserveEntries</var> parameter tells <var>ArrayStringToPPchar</var>
- to allocate room at the end of the array for another <var>ReserveEntries</var>
- entries.
- </p>
- </descr>
- <errors>
- If not enough memory is available, an error may occur.
- </errors>
- <seealso>
- <link id="StringToPPChar"/>
- </seealso>
- </element>
- <element name="StringToPPChar">
- <short>Split string in list of null-terminated strings</short>
- <descr>
- <p>
- <var>StringToPPChar</var> splits the string <var>S</var> in words, replacing any
- whitespace with zero characters. It returns a pointer to an array of pchars
- that point to the first letters of the words in <var>S</var>. This array is terminated
- by a <var>Nil</var> pointer.
- </p>
- <p>
- The function does <em> not</em> add a zero character to the end of the string
- unless it ends on whitespace.
- </p>
- <p>
- The function reserves memory on the heap to store the array of <var>PChar</var>;
- The caller is responsible for freeing this memory.
- </p>
- <p>
- This function is only available on certain platforms.
- </p>
- </descr>
- <errors>
- None.
- </errors>
- <seealso>
- <link id="ArrayStringToPPchar"/>
- </seealso>
- </element>
- <!-- constant Visibility: default -->
- <element name="varempty">
- <short>Variant type: <var>Empty</var> variant</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varnull">
- <short>Variant type: <link id="Null"/> variant </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varsmallint">
- <short>Variant type: smallint (8 bit) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varinteger">
- <short>Variant type: Integer (32-bit)</short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varsingle">
- <short>Variant type: Single float </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vardouble">
- <short>Variant type: Double float </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varcurrency">
- <short>Variant type: Currency </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vardate">
- <short>Variant type: Date </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varolestr">
- <short>Variant type: OLE string (widestring) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vardispatch">
- <short>Variant type: dispatch interface </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varerror">
- <short>Variant type: Error type </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varboolean">
- <short>Variant type: Boolean type </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varvariant">
- <short>Variant type: Variant (arrays only) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varunknown">
- <short>Variant type: Unknown </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vardecimal">
- <short>Variant type: Decimal (BCD) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varshortint">
- <short>Variant type: Shortint (16 bit) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varbyte">
- <short>Variant type: Byte (8 bit) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varword">
- <short>Variant type: Word (16 bit) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varlongword">
- <short>Variant type: Word (32 bit) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varint64">
- <short>Variant type: Integer (64-Bit) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varqword">
- <short>Variant type: Word (64-bit) </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varstrarg">
- <short>Variant type: String </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varstring">
- <short>Variant type: String </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varany">
- <short>Variant type: Any </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vartypemask">
- <short>Variant type: Mask to extract type </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="vararray">
- <short>Variant type: variant Array </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varbyref">
- <short>Variant type: By reference </short>
- </element>
- <!-- constant Visibility: default -->
- <element name="varword64">
- <short>Variant type: Word (64-bit) </short>
- </element>
- <!-- alias type Visibility: default -->
- <element name="tvartype">
- <short>Type with size of variant type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pvararrayboundarray">
- <short>Pointer to <link id="tvararrayboundarray"/> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pvararraycoorarray">
- <short>Pointer to <link id="tvararraycoorarray"/> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pvararraybound">
- <short>Pointer to <link id="tvararraybound"/> type.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pvararray">
- <short>Pointer to <link id="TVarArray"/> type.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="tvararraybound">
- <short>Type describing variant array bounds.</short>
- <descr>
- <var>tvararraybound</var> is used to describe one dimension in a variant
- array.
- </descr>
- <seealso>
- <link id="tvararray"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararraybound.elementcount">
- <short>Number of elements in this array dimension.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararraybound.lowbound">
- <short>Lower bound of this array dimension (index of first element).</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="tvararray">
- <short>Type describing variant array</short>
- <descr>
- <var>tvararray</var> is a record describing a variant array. It contains
- some general data, followed by a number of <link id="TVarArrayBound"/>
- records equal to the number of dimensions in the array (<var>dimcoun</var>).
- </descr>
- <seealso>
- <link id="TVarArrayBound"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararray.dimcount">
- <short>Number of dimensions</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararray.flags">
- <short>Array flags.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararray.elementsize">
- <short>Size of one element in the array.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararray.lockcount">
- <short>Lock (reference) count of the array.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararray.data">
- <short>Pointer to the array data.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvararray.bounds">
- <short>Array describing the bounds in the array.</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="tvararrayboundarray">
- <short>array of <link id="tvararraybound"/> records.</short>
- </element>
- <!-- array type Visibility: default -->
- <element name="tvararraycoorarray">
- <short>Array of variant array coordinates</short>
- </element>
- <!-- enumeration type Visibility: default -->
- <element name="tvarop">
- <short>Variant operation.</short>
- <descr>
- <var>tvarop</var> describes a variant operation. It is mainly used for the
- variant manager to implement the various conversions and mathematical
- operations on a variant.
- </descr>
- <seealso>
- <link id="TVariantManager"/>
- </seealso>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opadd">
- <short>Variant operation: Addition.</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opsubtract">
- <short>Variant operation: Substraction</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opmultiply">
- <short>Variant operation: multiplication</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opdivide">
- <short>Variant operation: division</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opintdivide">
- <short>Variant operation: integer divide</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opmodulus">
- <short>Variant operation: Modulus</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opshiftleft">
- <short>Variant operation: Shift left</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opshiftright">
- <short>Variant operation: Shift right</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opand">
- <short>Variant operation: Binary AND operation</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opor">
- <short>Variant operation: Binary OR operation</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opxor">
- <short>Variant operation: binary XOR operation.</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opcompare">
- <short>Variant operation: Compare</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opnegate">
- <short>Variant operation: negation.</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opnot">
- <short>Variant operation: Binary NOT operation.</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opcmpeq">
- <short>Variant operation: Compare equal.</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opcmpne">
- <short>Variant operation: Compare not equal</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opcmplt">
- <short>Variant operation: Compare less than.</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opcmple">
- <short>Variant operation: Compare less than or equal to</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opcmpgt">
- <short>Variant operation: Compare larger than</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="tvarop.opcmpge">
- <short>Variant operation: Compare larger than or equal</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="tvardata">
- <short>Variant record.</short>
- <descr>
- <var>TVarData</var> is a record representation of a variant. It contains the
- internal structure of a variant and is handled by the various variant
- handling routines.
- </descr>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvardata.vtype">
- <short>Type of variant.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pvardata">
- <short>Pointer to <link id="TVarData"/> record.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pcalldesc">
- <short>Pointer to <link id="TCallDesc"/> record.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="tcalldesc">
- <short>COM/OLE dispatch call argument description.</short>
- <descr>
- <var>tcalldesc</var> is used to encode the arguments to a dispatch call to
- an OLE dual interface. It is used on windows only. It describes the
- arguments to a call.
- </descr>
- </element>
- <!-- variable Visibility: default -->
- <element name="tcalldesc.calltype">
- <short>Call type.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tcalldesc.argcount">
- <short>Number of arguments to call.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tcalldesc.namedargcount">
- <short>Number of named arguments in the call.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tcalldesc.argtypes">
- <short>Types of arguments.</short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="tdispdesc">
- <short>COM/OLE dispatch call description.</short>
- <descr>
- <var>tcalldesc</var> is used to encode a dispatch call to an OLE dispatch
- interface. It is used on windows only. It describes the dispath call call.
- </descr>
- <seealso>
- <link id="tcalldesc"/>
- </seealso>
- </element>
- <!-- record type Visibility: default -->
- <element name="pdispdesc">
- <short>Pointer to <link id="tdispdesc"/> record</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tdispdesc.dispid">
- <short>Dispatch ID</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tdispdesc.restype">
- <short>Result type.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tdispdesc.calldesc">
- <short>Arguments description.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="tvariantmanager">
- <short>Record describing the variant manager.</short>
- <descr>
- <var>TVariantManager</var> describes the variant manager as expected by the
- <link id="SetVariantManager"/> call.
- </descr>
- <seealso>
- <link id="SetVariantManager"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartoint">
- <short>Called to convert a variant to an integer value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartoint64">
- <short>Called to convert a variant to an int64 value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartoword64">
- <short>Called to convert a variant to a word64 value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartobool">
- <short>Called to convert a variant to a boolean value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartoreal">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartocurr">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartopstr">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartolstr">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartowstr">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartointf">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartodisp">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vartodynarray">
- <short>Called to convert a variant to a value</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfrombool">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromint">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromint64">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromword64">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromreal">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfrompstr">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromlstr">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromwstr">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromintf">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromdisp">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varfromdynarray">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.olevarfrompstr">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.olevarfromlstr">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.olevarfromvar">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.olevarfromint">
- <short>Called to convert a value to a variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varop">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.cmpop">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varneg">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varnot">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varinit">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varclear">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varaddref">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varcopy">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varcast">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.varcastole">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.dispinvoke">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vararrayredim">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vararrayget">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.vararrayput">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.writevariant">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="tvariantmanager.write0Variant">
- <short>Called to perform a variant operation: </short>
- </element>
- <!-- pointer type Visibility: default -->
- <element name="pvariantmanager">
- <short>Pointer to <link id="TVariantManager"/> record.</short>
- </element>
- <!-- procedure Visibility: default -->
- <element name="GetVariantManager">
- <short>Return the current variant manager.</short>
- <descr>
- <var>GetVariantManager</var> returns the current variant manager in
- <var>varmgr</var>.
- </descr>
- <seealso>
- <link id="IsVariantManagerSet"/>
- <link id="SetVariantManager"/>
- </seealso>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SetVariantManager">
- <short>Set the current variant manager.</short>
- <descr>
- <var>SetVariantManager</var> sets the variant manager to <var>varmgr</var>.
- </descr>
- <seealso>
- <link id="IsVariantManagerSet"/>
- <link id="GetVariantManager"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="IsVariantManagerSet">
- <short>Determine if variant manager is currently set.</short>
- <descr>
- <p>
- <var>IsVariantManagerSet</var> determines whether the variant manager was
- set to a correct variant manager. It returns <var>True</var> if it is,
- or <var>False</var> if it is not.
- </p>
- <p>
- The routine checks all variant operation handlers, they should all be set correctly.
- </p>
- </descr>
- <seealso>
- <link id="SetVariantManager"/>
- <link id="GetVariantManager"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="VarDispProc">
- <short>Callback to perform dispatch interface procedure call by name.</short>
- <descr>
- <p>
- <var>VarDispProc</var> is called by the compiler if it needs to perform an
- interface call from a variant. For instance, the following call:
- </p>
- <code>
- Var
- V : OleVariant;
- begin
- V.OpenDocument('c:\temp\mydoc.doc');
- end;
- </code>
- <p>
- is encoded by the compiler and passed to <var>VarDispProc</var>.
- </p>
- <p>
- This pointer must be set by a routine that calls the OS COM handling
- routines.
- </p>
- </descr>
- <seealso>
- <link id="DispCallByIDProc"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="DispCallByIDProc">
- <short>Callback to perform dispatch interface procedure call by ID.</short>
- <descr>
- <p>
- <var>VarDispProc</var> is called by the compiler if it needs to perform an
- interface call from a variant which contains a dispatch interface.
- For instance, the following call:
- </p>
- <code>
- Var
- V : OleVariant;
- begin
- (V as IWord).OpenDocument('c:\temp\mydoc.doc');
- end;
- </code>
- <p>
- where <var>IWord</var> is a dispatch interface is encoded by the compiler and
- passed to <var>DispCallByIDProc</var>.
- </p>
- <p>
- This pointer must be set by a routine that calls the OS COM handling
- routines.
- </p>
- </descr>
- <seealso>
- <link id="VarDispProc"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="Null">
- <short>Null variant</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="Unassigned">
- <short>Unassigned variant.</short>
- </element>
- <!-- record type Visibility: default -->
- <element name="THeapStatus">
- <short>Record describing current heap status.</short>
- <descr>
- <var>THeapStatus</var> is the record describing the current heap status. It
- is returned by the <link id="GetHeapStatus"/> call.
- </descr>
- <seealso>
- <link id="GetHeapStatus"/>
- </seealso>
- </element>
- <!-- variable Visibility: default -->
- <element name="THeapStatus.MaxHeapSize">
- <short>Biggest heap size used.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="THeapStatus.MaxHeapUsed">
- <short>Biggest used part of heap memory.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="THeapStatus.CurrHeapSize">
- <short>Current heap size. </short>
- </element>
- <!-- variable Visibility: default -->
- <element name="THeapStatus.CurrHeapUsed">
- <short>Current size of used heap memory.</short>
- </element>
- <!-- variable Visibility: default -->
- <element name="THeapStatus.CurrHeapFree">
- <short>Current size of free heap memory.</short>
- </element>
- <!-- procedure Visibility: default -->
- <element name="SysGetHeapStatus">
- <short>System implementation of <link id="GetHeapStatus"/></short>
- <descr>
- <var>SysGetHeapStatus</var> is the system implementation of the <link
- id="GetHeapStatus"/> call.
- </descr>
- <seealso>
- <link id="GetHeapStatus"/>
- </seealso>
- </element>
- <!-- function Visibility: default -->
- <element name="Heapsize">
- <short>Current heap size</short>
- <descr>
- <var>HeapSize</var> returns the current heap size. The heap grows
- dynamically (as allowed by the OS) and the <var>HeapSize</var> reflects the
- current state of the heap.
- </descr>
- <seealso>
- <link id="GetHeapStatus"/>
- </seealso>
- </element>
- </module>
- </package>
- </fpdoc-descriptions>
|