sysutils.xml 203 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255
  1. <?xml version="1.0" encoding="ISO8859-1"?>
  2. <fpdoc-descriptions>
  3. <!--
  4. $Id$
  5. This file is part of the FPC documentation. -->
  6. Copyright (C) 1999, by Michael Van Canneyt
  7. The FPC documentation is free text; you can redistribute it and/or
  8. modify it under the terms of the GNU Library General Public License as
  9. published by the Free Software Foundation; either version 2 of the
  10. License, or (at your option) any later version.
  11. The FPC Documentation is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. Library General Public License for more details.
  15. You should have received a copy of the GNU Library General Public
  16. License along with the FPC documentation; see the file COPYING.LIB. If not,
  17. write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  18. Boston, MA 02111-1307, USA.
  19. -->
  20. <package name="rtl">
  21. <module name="sysutils">
  22. <short>Various system utilities.</short>
  23. <!-- \FPCexampledir{sysutex} -->
  24. <descr>
  25. This documentation describes the <file>sysutils</file> unit. The <file>sysutils</file> unit
  26. was started by Gertjan Schouten, and completed by Michael Van Canneyt.
  27. It aims to be compatible to the Delphi <file>sysutils</file> unit, but in contrast
  28. with the latter, it is designed to work on multiple platforms. It is implemented
  29. on all supported platforms.
  30. </descr>
  31. <topic name="StringFunctions">
  32. <short>String functions</short>
  33. <descr>
  34. <p>
  35. Functions for handling strings.
  36. </p>
  37. <table>
  38. <th><td>Name</td><td>Description</td></th>
  39. <tr><td><link id="AnsiCompareStr"/></td><td>Compare two strings</td></tr>
  40. <tr><td><link id="AnsiCompareText"/></td><td>Compare two strings, case insensitive</td></tr>
  41. <tr><td><link id="AnsiExtractQuotedStr"/></td><td>Removes quotes from string</td></tr>
  42. <tr><td><link id="AnsiLastChar"/></td><td>Get last character of string</td></tr>
  43. <tr><td><link id="AnsiLowerCase"/></td><td>Convert string to all-lowercase</td></tr>
  44. <tr><td><link id="AnsiQuotedStr"/></td><td>Qoutes a string</td></tr>
  45. <tr><td><link id="AnsiStrComp"/></td><td>Compare strings case-sensitive</td></tr>
  46. <tr><td><link id="AnsiStrIComp"/></td><td>Compare strings case-insensitive</td></tr>
  47. <tr><td><link id="AnsiStrLComp"/></td><td>Compare L characters of strings case sensitive</td></tr>
  48. <tr><td><link id="AnsiStrLIComp"/></td><td>Compare L characters of strings case insensitive</td></tr>
  49. <tr><td><link id="AnsiStrLastChar"/></td><td>Get last character of string</td></tr>
  50. <tr><td><link id="AnsiStrLower"/></td><td>Convert string to all-lowercase</td></tr>
  51. <tr><td><link id="AnsiStrUpper"/></td><td>Convert string to all-uppercase</td></tr>
  52. <tr><td><link id="AnsiUpperCase"/></td><td>Convert string to all-uppercase</td></tr>
  53. <tr><td><link id="AppendStr"/></td><td>Append 2 strings</td></tr>
  54. <tr><td><link id="AssignStr"/></td><td>Assign value of strings on heap</td></tr>
  55. <tr><td><link id="CompareStr"/></td><td>Compare two strings case sensitive</td></tr>
  56. <tr><td><link id="CompareText"/></td><td>Compare two strings case insensitive</td></tr>
  57. <tr><td><link id="DisposeStr"/></td><td>Remove string from heap</td></tr>
  58. <tr><td><link id="IsValidIdent"/></td><td>Is string a valid pascal identifier</td></tr>
  59. <tr><td><link id="LastDelimiter"/></td><td>Last occurance of character in a string</td></tr>
  60. <tr><td><link id="LeftStr"/></td><td>Get first N characters of a string</td></tr>
  61. <tr><td><link id="LoadStr"/></td><td>Load string from resources</td></tr>
  62. <tr><td><link id="LowerCase"/></td><td>Convert string to all-lowercase</td></tr>
  63. <tr><td><link id="NewStr"/></td><td>Allocate new string on heap</td></tr>
  64. <tr><td><link id="RightStr"/></td><td>Get last N characters of a string</td></tr>
  65. <tr><td><link id="StrAlloc"/></td><td>Allocate memory for string</td></tr>
  66. <tr><td><link id="StrBufSize"/></td><td>Reserve memory for a string</td></tr>
  67. <tr><td><link id="StrDispose"/></td><td>Remove string from heap</td></tr>
  68. <tr><td><link id="StrPas"/></td><td>Convert PChar to pascal string</td></tr>
  69. <tr><td><link id="StrPCopy"/></td><td>Copy pascal string</td></tr>
  70. <tr><td><link id="StrPLCopy"/></td><td>Copy N bytes of pascal string</td></tr>
  71. <tr><td><link id="UpperCase"/></td><td>Convert string to all-uppercase</td></tr>
  72. </table>
  73. </descr>
  74. </topic>
  75. <topic name="FormatStrings">
  76. <short>Formatting strings</short>
  77. <descr>
  78. <p>
  79. Functions for formatting strings.
  80. </p>
  81. <table>
  82. <th><td>Name</td><td>Description</td></th>
  83. <tr><td><link id="AdjustLineBreaks"/></td><td>Convert line breaks to line breaks for system</td></tr>
  84. <tr><td><link id="FormatBuf"/></td><td>Format a buffer</td></tr>
  85. <tr><td><link id="Format"/></td><td>Format arguments in string</td></tr>
  86. <tr><td><link id="FmtStr"/></td><td>Format buffer</td></tr>
  87. <tr><td><link id="QuotedStr"/></td><td>Quote a string</td></tr>
  88. <tr><td><link id="StrFmt"/></td><td>Format arguments in a string</td></tr>
  89. <tr><td><link id="StrLFmt"/></td><td>Format maximum L characters in a string</td></tr>
  90. <tr><td><link id="TrimLeft"/></td><td>Remove whitespace at the left of a string</td></tr>
  91. <tr><td><link id="TrimRight"/></td><td>Remove whitespace at the right of a string</td></tr>
  92. <tr><td><link id="Trim"/></td><td>Remove whitespace at both ends of a string</td></tr>
  93. </table>
  94. </descr>
  95. </topic>
  96. <topic name="FormatChars">
  97. <short>Date and time formatting characters</short>
  98. <descr>
  99. <p>
  100. Various date and time formatting routines accept a format string.
  101. to format the date and or time. The following characters can be used
  102. to control the date and time formatting:
  103. </p>
  104. <dl>
  105. <dt>c</dt><dd>shortdateformat + ' ' + shorttimeformat</dd>
  106. <dt>d</dt><dd>day of month</dd>
  107. <dt>dd</dt><dd>day of month (leading zero)</dd>
  108. <dt>ddd</dt><dd>day of week (abbreviation)</dd>
  109. <dt>dddd</dt><dd>day of week (full)</dd>
  110. <dt>ddddd</dt><dd>shortdateformat</dd>
  111. <dt>dddddd</dt><dd>longdateformat</dd>
  112. <dt>m</dt><dd>month</dd>
  113. <dt>mm</dt><dd>month (leading zero)</dd>
  114. <dt>mmm</dt><dd>month (abbreviation)</dd>
  115. <dt>mmmm</dt><dd>month (full)</dd>
  116. <dt>y</dt><dd>year (four digits)</dd>
  117. <dt>yy</dt><dd>year (two digits)</dd>
  118. <dt>yyyy</dt><dd>year (with century)</dd>
  119. <dt>h</dt><dd>hour</dd>
  120. <dt>hh</dt><dd>hour (leading zero)</dd>
  121. <dt>n</dt><dd>minute</dd>
  122. <dt>nn</dt><dd>minute (leading zero)</dd>
  123. <dt>s</dt><dd>second</dd>
  124. <dt>ss</dt><dd>second (leading zero)</dd>
  125. <dt>t</dt><dd>shorttimeformat</dd>
  126. <dt>tt</dt><dd>longtimeformat</dd>
  127. <dt>am/pm</dt><dd>use 12 hour clock and display am and pm accordingly</dd>
  128. <dt>a/p</dt><dd>use 12 hour clock and display a and p accordingly</dd>
  129. <dt>/</dt><dd>insert date seperator</dd>
  130. <dt>:</dt><dd>insert time seperator</dd>
  131. <dt>"xx"</dt><dd>literal text</dd>
  132. <dt>'xx'</dt><dd>literal text</dd>
  133. </dl>
  134. </descr>
  135. </topic>
  136. <topic name="PCharFunctions">
  137. <short>PChar related functions</short>
  138. <descr>
  139. <p>
  140. Most PChar functions are the same as their counterparts in the <file>STRINGS</file>
  141. unit. The following functions are the same :
  142. </p>
  143. <ol>
  144. <li><link id="StrCat"/> : Concatenates two <var>PChar</var> strings.</li>
  145. <li><link id="StrComp"/> : Compares two <var>PChar</var> strings.</li>
  146. <li><link id="StrCopy"/> : Copies a <var>PChar</var> string.</li>
  147. <li><link id="StrECopy"/> : Copies a <var>PChar</var> string and returns a pointer to
  148. the terminating null byte.</li>
  149. <li><link id="StrEnd"/> : Returns a pointer to the terminating null byte.</li>
  150. <li><link id="StrIComp"/> : Case insensitive compare of 2 <var>PChar</var> strings.</li>
  151. <li><link id="StrLCat"/> : Appends at most L characters from one <var>PChar</var> to
  152. another <var>PChar</var>.
  153. </li>
  154. <li><link id="StrLComp"/> : Case sensitive compare of at most L characters of 2 <var>PChar</var> strings.
  155. </li>
  156. <li><link id="StrLCopy"/> : Copies at most L characters from one <var>PChar</var> to another.
  157. </li>
  158. <li><link id="StrLen"/> : Returns the length (exclusive terminating null byte)
  159. of a <var>PChar</var> string.</li>
  160. <li> <link id="StrLIComp"/> : Case insensitive compare of at most L characters of 2
  161. <var>PChar</var> strings.
  162. </li>
  163. <li> <link id="StrLower"/> : Converts a <var>PChar</var> to all lowercase letters.
  164. </li>
  165. <li> <link id="StrMove"/> : Moves one <var>PChar</var> to another.
  166. </li>
  167. <li> <link id="StrNew"/> : Makes a copy of a <var>PChar</var> on the heap, and returns
  168. a pointer to this copy.
  169. </li>
  170. <li> <link id="StrPos"/> : Returns the position of one <var>PChar</var> string in
  171. another?
  172. </li>
  173. <li> <link id="StrRScan"/> : returns a pointer to the last occurrence of on
  174. <var>PChar</var> string in another one.
  175. </li>
  176. <li> <link id="StrScan"/> : returns a pointer to the first occurrence of on
  177. <var>PChar</var> string in another one.
  178. </li>
  179. <li> <link id="StrUpper"/> : Converts a <var>PChar</var> to all uppercase
  180. letters.</li>
  181. </ol>
  182. <p>
  183. The subsequent functions are different from their counterparts in
  184. <file>STRINGS</file>, although the same examples can be used.
  185. </p>
  186. </descr>
  187. </topic>
  188. <topic name="IORoutines">
  189. <short>File input/output routines</short>
  190. <descr>
  191. <p>
  192. Functions for reading/writing to file.
  193. </p>
  194. <table>
  195. <th><td>Name</td><td>Description</td></th>
  196. <tr><td><link id="FileCreate"/></td><td>Create a file and return handle</td></tr>
  197. <tr><td><link id="FileOpen"/></td><td>Open file end return handle</td></tr>
  198. <tr><td><link id="FileRead"/></td><td>Read from file</td></tr>
  199. <tr><td><link id="FileSeek"/></td><td>Set file position</td></tr>
  200. <tr><td><link id="FileTruncate"/></td><td>Truncate file length</td></tr>
  201. <tr><td><link id="FileWrite"/></td><td>Write to file</td></tr>
  202. <tr><td><link id="FileClose"/></td><td>Close file handle</td></tr>
  203. </table>
  204. </descr>
  205. </topic>
  206. <topic name="FileNameRoutines">
  207. <short>FileName handling routines</short>
  208. <descr>
  209. <p>
  210. Functions for file manipulation.
  211. </p>
  212. <table>
  213. <th><td>Name</td><td>Description</td></th>
  214. <tr><td><link id="AddDisk"/></td><td>Add sisk to list of disk drives</td></tr>
  215. <tr><td><link id="ChangeFileExt"/></td><td>Change extension of file name</td></tr>
  216. <tr><td><link id="CreateDir"/></td><td>Create a directory</td></tr>
  217. <tr><td><link id="DeleteFile"/></td><td>Delete a file</td></tr>
  218. <tr><td><link id="DiskFree"/></td><td>Free space on disk</td></tr>
  219. <tr><td><link id="DiskSize"/></td><td>Total size of disk</td></tr>
  220. <tr><td><link id="ExpandFileName"/></td><td>Create full file name</td></tr>
  221. <tr><td><link id="ExpandUNCFileName"/></td><td>Create full UNC file name</td></tr>
  222. <tr><td><link id="ExtractFileDir"/></td><td>Extract directory part of filename</td></tr>
  223. <tr><td><link id="ExtractFileDrive"/></td><td>Extract drive part of filename</td></tr>
  224. <tr><td><link id="ExtractFileExt"/></td><td>Extract extension part of filename</td></tr>
  225. <tr><td><link id="ExtractFileName"/></td><td>Extract name part of filename</td></tr>
  226. <tr><td><link id="ExtractFilePath"/></td><td>Extrct path part of filename</td></tr>
  227. <tr><td><link id="ExtractRelativePath"/></td><td>Construct relative path between two files</td></tr>
  228. <tr><td><link id="FileAge"/></td><td>Return file age</td></tr>
  229. <tr><td><link id="FileDateToDateTime"/></td><td>Convert file date to system date</td></tr>
  230. <tr><td><link id="FileExists"/></td><td>Determine whether a file exists on disk</td></tr>
  231. <tr><td><link id="FileGetAttr"/></td><td>Get attributes of file</td></tr>
  232. <tr><td><link id="FileGetDate"/></td><td>Get date of last file modification</td></tr>
  233. <tr><td><link id="FileSearch"/></td><td>Search for file in path</td></tr>
  234. <tr><td><link id="FileSetAttr"/></td><td>Get file attributes</td></tr>
  235. <tr><td><link id="FileSetDate"/></td><td>Get file dates</td></tr>
  236. <tr><td><link id="FindFirst"/></td><td>Start finding a file</td></tr>
  237. <tr><td><link id="FindNext"/></td><td>Find next file</td></tr>
  238. <tr><td><link id="GetCurrentDir"/></td><td>Return current working directory</td></tr>
  239. <tr><td><link id="RemoveDir"/></td><td>Remove a directory from disk</td></tr>
  240. <tr><td><link id="RenameFile"/></td><td>Rename a file on disk</td></tr>
  241. <tr><td><link id="SetCurrentDir"/></td><td>Set current working directory</td></tr>
  242. <tr><td><link id="SetDirSeparators"/></td><td>Set directory separator characters</td></tr>
  243. <tr><td><link id="FindClose"/></td><td>Stop searching a file</td></tr>
  244. <tr><td><link id="DoDirSeparators"/></td><td>Replace directory separator characters</td></tr>
  245. </table>
  246. </descr>
  247. </topic>
  248. <topic name="DateTimeRoutines">
  249. <short>Date/time routines</short>
  250. <descr>
  251. <p>
  252. Functions for date and time handling.
  253. </p>
  254. <table>
  255. <th><td>Name</td><td>Description</td></th>
  256. <tr><td><link id="DateTimeToFileDate"/></td><td>Convert DateTime type to file date</td></tr>
  257. <tr><td><link id="DateTimeToStr"/></td><td>Construct string representation of DateTime</td></tr>
  258. <tr><td><link id="DateTimeToString"/></td><td>Construct string representation of DateTime</td></tr>
  259. <tr><td><link id="DateTimeToSystemTime"/></td><td>Convert DateTime to system time</td></tr>
  260. <tr><td><link id="DateTimeToTimeStamp"/></td><td>Convert DateTime to timestamp</td></tr>
  261. <tr><td><link id="DateToStr"/></td><td>Construct string representation of date</td></tr>
  262. <tr><td><link id="Date"/></td><td>Get current date</td></tr>
  263. <tr><td><link id="DayOfWeek"/></td><td>Get day of week</td></tr>
  264. <tr><td><link id="DecodeDate"/></td><td>Decode DateTime to year month and day</td></tr>
  265. <tr><td><link id="DecodeTime"/></td><td>Decode DateTime to hours, minutes and seconds</td></tr>
  266. <tr><td><link id="EncodeDate"/></td><td>Encode year, day and month to DateTime</td></tr>
  267. <tr><td><link id="EncodeTime"/></td><td>Encode hours, minutes and seconds to DateTime</td></tr>
  268. <tr><td><link id="FormatDateTime"/></td><td>Return string representation of DateTime</td></tr>
  269. <tr><td><link id="IncMonth"/></td><td>Add 1 to month</td></tr>
  270. <tr><td><link id="IsLeapYear"/></td><td>Determine if year is leap year</td></tr>
  271. <tr><td><link id="MSecsToTimeStamp"/></td><td>Convert nr of milliseconds to timestamp</td></tr>
  272. <tr><td><link id="Now"/></td><td>Get current date and time</td></tr>
  273. <tr><td><link id="StrToDateTime"/></td><td>Convert string to DateTime</td></tr>
  274. <tr><td><link id="StrToDate"/></td><td>Convert string to date</td></tr>
  275. <tr><td><link id="StrToTime"/></td><td>Convert string to time</td></tr>
  276. <tr><td><link id="SystemTimeToDateTime"/></td><td>Convert system time to datetime</td></tr>
  277. <tr><td><link id="TimeStampToDateTime"/></td><td>Convert time stamp to DateTime</td></tr>
  278. <tr><td><link id="TimeStampToMSecs"/></td><td>Convert Timestamp to number of millicseconds</td></tr>
  279. <tr><td><link id="TimeToStr"/></td><td>return string representation of Time</td></tr>
  280. <tr><td><link id="Time"/></td><td>Get current tyme</td></tr>
  281. </table>
  282. </descr>
  283. </topic>
  284. <topic name="ConversionRoutines">
  285. <short>Miscellaneous conversion routines</short>
  286. <descr>
  287. <p>
  288. Functions for various conversions.
  289. </p>
  290. <table>
  291. <th><td>Name</td><td>Description</td></th>
  292. <tr><td><link id="BCDToInt"/></td><td>Convert BCD number to integer</td></tr>
  293. <tr><td><link id="CompareMem"/></td><td>Compare two memory regions</td></tr>
  294. <tr><td><link id="FloatToStrF"/></td><td>Convert float to formatted string</td></tr>
  295. <tr><td><link id="FloatToStr"/></td><td>Convert float to string</td></tr>
  296. <tr><td><link id="FloatToText"/></td><td>Convert float to string</td></tr>
  297. <tr><td><link id="FormatFloat"/></td><td>Format a floating point value</td></tr>
  298. <tr><td><link id="GetDirs"/></td><td>Split string in list of directories</td></tr>
  299. <tr><td><link id="IntToHex"/></td><td>return hexadecimal representation of integer</td></tr>
  300. <tr><td><link id="IntToStr"/></td><td>return decumal representation of integer</td></tr>
  301. <tr><td><link id="StrToIntDef"/></td><td>Convert string to integer with default value</td></tr>
  302. <tr><td><link id="StrToInt"/></td><td>Convert string to integer</td></tr>
  303. <tr><td><link id="StrToFloat"/></td><td>Convert string to float</td></tr>
  304. <tr><td><link id="TextToFloat"/></td><td>Convert null-terminated string to float</td></tr>
  305. </table>
  306. </descr>
  307. </topic>
  308. <element name="TDateTime">
  309. <short>Type describing date/time</short>
  310. <descr>
  311. <p>
  312. Many functions return or require a <var>TDateTime</var> type, which contains
  313. a date and time in encoded form. The date and time are converted to a double
  314. as follows:
  315. </p>
  316. <ul>
  317. <li> The date part is stored in the integer part of the double as the
  318. number of days passed since January 1, 1900.
  319. </li>
  320. <li> The time part is stored in the fractional part of the double, as
  321. the number of milliseconds passed since midnight (00:00), divided by the
  322. total number of milliseconds in a day.
  323. </li>
  324. </ul>
  325. </descr>
  326. </element>
  327. <element name="Date">
  328. <short>Return the current date.</short>
  329. <descr>
  330. <var>Date</var> returns the current date in <var>TDateTime</var> format.
  331. </descr>
  332. <errors>
  333. None.
  334. </errors>
  335. <seealso>
  336. <link id="Time"/>
  337. <link id="Now"/>
  338. </seealso>
  339. <example file="sysutex/ex1"/>
  340. </element>
  341. <element name="DateTimeToFileDate">
  342. <short>Convert a <var>TDateTime</var> value to a file age (integer)</short>
  343. <descr>
  344. <var>DateTimeToFileDate</var> function converts a date/time indication in
  345. <var>TDateTime</var> format to a filedate function, such as returned for
  346. instance by the <link id="FileAge"/> function.
  347. </descr>
  348. <errors>
  349. None.
  350. </errors>
  351. <seealso>
  352. <link id="Time"/>
  353. <link id="Date"/>
  354. <link id="FileDateToDateTime"/>,
  355. <link id="DateTimeToSystemTime"/>
  356. <link id="DateTimeToTimeStamp"/>
  357. </seealso>
  358. <example file="sysutex/ex2"/>
  359. </element>
  360. <element name="DateTimeToStr">
  361. <short>Converts a <var>TDateTime</var> value to a string using a predefined format.</short>
  362. <descr>
  363. <var>DateTimeToStr</var> returns a string representation of
  364. <var>DateTime</var> using the formatting specified in
  365. <var>ShortDateTimeFormat</var>. It corresponds to a call to
  366. <var>FormatDateTime('c',DateTime)</var> (see <link id="formatchars"/>).
  367. </descr>
  368. <errors>
  369. None.
  370. </errors>
  371. <seealso>
  372. <link id="FormatDateTime"/>
  373. </seealso>
  374. <example file="sysutex/ex3"/>
  375. </element>
  376. <element name="DateTimeToString">
  377. <short>Converts a <var>TDateTime</var> value to a string with a given format.</short>
  378. <descr>
  379. <var>DateTimeToString</var> returns in <var>Result</var> a string representation of
  380. <var>DateTime</var> using the formatting specified in <var>FormatStr</var>.
  381. for a list of characters that can be used in the <var>FormatStr</var> formatting
  382. string, see <link id="formatchars"/>.
  383. </descr>
  384. <errors>
  385. In case a wrong formatting character is found, an <var>EConvertError</var> is
  386. raised.
  387. </errors>
  388. <seealso>
  389. <link id="FormatDateTime"/>
  390. <link id="formatchars"/>.
  391. </seealso>
  392. <example file="sysutex/ex4"/>
  393. </element>
  394. <element name="DateTimeToSystemTime">
  395. <short>Converts a <var>TDateTime</var> value to a systemtime structure.</short>
  396. <descr>
  397. <var>DateTimeToSystemTime</var> converts a date/time pair in <var>DateTime</var>, with
  398. <var>TDateTime</var> format to a system time <var>SystemTime</var>.
  399. </descr>
  400. <errors>
  401. None.
  402. </errors>
  403. <seealso>
  404. <link id="DateTimeToFileDate"/>
  405. <link id="SystemTimeToDateTime"/>,
  406. <link id="DateTimeToTimeStamp"/>
  407. </seealso>
  408. <example file="sysutex/ex5"/>
  409. </element>
  410. <element name="DateTimeToTimeStamp">
  411. <short>Converts a <var>TDateTime</var> value to a TimeStamp structure.</short>
  412. <descr>
  413. <var>DateTimeToSystemTime</var> converts a date/time pair in <var>DateTime</var>, with
  414. <var>TDateTime</var> format to a <var>TTimeStamp</var> format.
  415. </descr>
  416. <errors>
  417. None.
  418. </errors>
  419. <seealso>
  420. <link id="DateTimeToFileDate"/>
  421. <link id="SystemTimeToDateTime"/>,
  422. <link id="DateTimeToSystemTime"/>
  423. </seealso>
  424. <example file="sysutex/ex6"/>
  425. </element>
  426. <element name="DateToStr">
  427. <short>Converts a <var>TDateTime</var> value to a date string with a predefined format.</short>
  428. <descr>
  429. <var>DateToStr</var> converts <var>Date</var> to a string representation. It uses
  430. <var>ShortDateFormat</var> as it's formatting string. It is hence completely
  431. equivalent to a <var>FormatDateTime('ddddd', Date)</var>.
  432. </descr>
  433. <errors>
  434. None.
  435. </errors>
  436. <seealso>
  437. <link id="TimeToStr"/>
  438. <link id="DateTimeToStr"/>
  439. <link id="FormatDateTime"/>,
  440. <link id="StrToDate"/>
  441. </seealso>
  442. <example file="sysutex/ex7"/>
  443. </element>
  444. <element name="DayOfWeek">
  445. <short>Returns the day of the week.</short>
  446. <descr>
  447. <var>DayOfWeek</var> returns the day of the week from <var>DateTime</var>.
  448. <var>Sunday</var> is counted as day 1, <var>Saturday</var> is counted as
  449. day 7. The result of <var>DayOfWeek</var> can serve as an index to
  450. the <var>LongDayNames</var> constant array, to retrieve the name of
  451. the day.
  452. </descr>
  453. <errors>
  454. None.
  455. </errors>
  456. <seealso>
  457. <link id="Date"/>
  458. <link id="DateToStr"/>
  459. </seealso>
  460. <example file="sysutex/ex8"/>
  461. </element>
  462. <element name="DecodeDate">
  463. <short>Decode a <var>TDateTime</var> to a year,month,day triplet</short>
  464. <descr>
  465. <var>DecodeDate</var> decodes the Year, Month and Day stored in <var>Date</var>,
  466. and returns them in the <var>Year</var>, <var>Month</var> and <var>Day</var> variables.
  467. </descr>
  468. <errors>
  469. None.
  470. </errors>
  471. <seealso>
  472. <link id="EncodeDate"/>
  473. <link id="DecodeTime"/>.
  474. </seealso>
  475. <example file="sysutex/ex9"/>
  476. </element>
  477. <element name="DecodeTime">
  478. <short>Decode a <var>TDateTime</var> to a hour,minute,second,millisec quartet</short>
  479. <descr>
  480. <var>DecodeDate</var> decodes the hours, minutes, second and milliseconds stored
  481. in <var>Time</var>, and returns them in the <var>Hour</var>, <var>Minute</var> and
  482. <var>Second</var> and <var>MilliSecond</var> variables.
  483. </descr>
  484. <errors>
  485. None.
  486. </errors>
  487. <seealso>
  488. <link id="EncodeTime"/>
  489. <link id="DecodeDate"/>.
  490. </seealso>
  491. <example file="sysutex/ex10"/>
  492. </element>
  493. <element name="EncodeDate">
  494. <short>Encode a Year,Month,Day to a <var>TDateTime</var> value.</short>
  495. <descr>
  496. <p>
  497. <var>EncodeDate</var> encodes the <var>Year</var>, <var>Month</var> and <var>Day</var> variables to
  498. a date in <var>TDateTime</var> format. It does the opposite of the
  499. <link id="DecodeDate"/> procedure.
  500. </p>
  501. <p>
  502. The parameters must lie withing valid ranges (boundaries included):
  503. </p>
  504. <dl>
  505. <dt>Year</dt><dd> must be between 1 and 9999.</dd>
  506. <dt>Month</dt><dd> must be within the range 1-12.</dd>
  507. <dt>Day</dt><dd> msut be between 1 and 31.</dd>
  508. </dl>
  509. </descr>
  510. <errors>
  511. In case one of the parameters is out of it's valid range, 0 is returned.
  512. </errors>
  513. <seealso>
  514. <link id="EncodeTime"/>
  515. <link id="DecodeDate"/>
  516. </seealso>
  517. <example file="sysutex/ex11"/>
  518. </element>
  519. <element name="EncodeTime">
  520. <short>Encode a Hour,Min,Sec,millisec to a <var>TDateTime</var> value.</short>
  521. <descr>
  522. <p>
  523. <var>EncodeTime</var> encodes the <var>Hour</var>, <var>Minute</var>, <var>Second</var>,
  524. <var>MilliSecond</var> variables to a <var>TDateTime</var> format result.
  525. It does the opposite of the <link id="DecodeTime"/> procedure.
  526. </p>
  527. <p>
  528. The parameters must have a valid range (boundaries included):
  529. </p>
  530. <dl>
  531. <dt>Hour</dt><dd> must be between 0 and 23.</dd>
  532. <dt>Minute,second</dt><dd> must both be between 0 and 59.</dd>
  533. <dt>Millisecond</dt><dd> must be between 0 and 999.</dd>
  534. </dl>
  535. </descr>
  536. <errors>
  537. In case one of the parameters is outside of it's valid range, 0 is returned.
  538. </errors>
  539. <seealso>
  540. <link id="EncodeDate"/>
  541. <link id="DecodeTime"/>
  542. </seealso>
  543. <example file="sysutex/ex12"/>
  544. </element>
  545. <element name="FileDateToDateTime">
  546. <short>Convert a <var>FileDate</var> value to a <var>TDateTime</var>
  547. value.</short>
  548. <descr>
  549. <var>FileDateToDateTime</var> converts the date/time encoded in <var>filedate</var>
  550. to a <var>TDateTime</var> encoded form. It can be used to convert date/time values
  551. returned by the <link id="FileAge"/> or <link id="FindFirst"/>/<link id="FindNext"/>
  552. functions to <var>TDateTime</var> form.
  553. </descr>
  554. <errors>
  555. None.
  556. </errors>
  557. <seealso>
  558. <link id="DateTimeToFileDate"/>
  559. </seealso>
  560. <example file="sysutex/ex13"/>
  561. </element>
  562. <element name="FormatDateTime">
  563. <short>Return a string representation of a <var>TDateTime</var> value with a given
  564. format.</short>
  565. <descr>
  566. <var>FormatDateTime</var> formats the date and time encoded in <var>DateTime</var>
  567. according to the formatting given in <var>FormatStr</var>. The complete list
  568. of formatting characters can be found in <link id="formatchars"/>.
  569. </descr>
  570. <errors>
  571. On error (such as an invalid character in the formatting string), and
  572. <var>EConvertError</var> exception is raised.
  573. </errors>
  574. <seealso>
  575. <link id="DateTimeToStr"/>
  576. <link id="DateToStr"/>
  577. <link id="TimeToStr"/>
  578. <link id="StrToDateTime"/>
  579. </seealso>
  580. <example file="sysutex/ex14"/>
  581. </element>
  582. <element name="IncMonth">
  583. <short>Increases the month in a <var>TDateTime</var> value with a given amount.</short>
  584. <descr>
  585. <var>IncMonth</var> increases the month number in <var>DateTime</var> with
  586. <var>NumberOfMonths</var>. It wraps the result as to get a month between 1 and
  587. 12, and updates the year accordingly. <var>NumberOfMonths</var> can be negative,
  588. and can be larger than 12 (in absolute value).
  589. </descr>
  590. <errors>
  591. None.
  592. </errors>
  593. <seealso>
  594. <link id="Date"/>
  595. <link id="Time"/>
  596. <link id="Now"/>
  597. </seealso>
  598. <example file="sysutex/ex15"/>
  599. </element>
  600. <element name="IsLeapYear">
  601. <short>Determine whether a year is a leap year.</short>
  602. <descr>
  603. <var>IsLeapYear</var> returns <var>True</var> if <var>Year</var> is a leap year,
  604. <var>False</var> otherwise.
  605. </descr>
  606. <errors>
  607. None.
  608. </errors>
  609. <seealso>
  610. <link id="IncMonth"/>
  611. <link id="Date"/>
  612. </seealso>
  613. <example file="sysutex/ex16"/>
  614. </element>
  615. <element name="MSecsToTimeStamp">
  616. <short>Convert a number of milliseconds to a <var>TDateTime</var> value.</short>
  617. <descr>
  618. <p>
  619. <var>MSecsTiTimeStamp</var> converts the given number of milliseconds to
  620. a <var>TTimeStamp</var> date/time notation.
  621. </p>
  622. <p>
  623. Use <var>TTimeStamp</var> variables if you need to keep very precise track of
  624. time.
  625. </p>
  626. </descr>
  627. <errors>
  628. None.
  629. </errors>
  630. <seealso>
  631. <link id="TimeStampToMSecs"/>
  632. <link id="DateTimeToTimeStamp"/>
  633. </seealso>
  634. <example file="sysutex/ex17"/>
  635. </element>
  636. <element name="Now">
  637. <short>Returns the current date and time.</short>
  638. <descr>
  639. <var>Now</var> returns the current date and time. It is equivalent to
  640. <var>Date+Time</var>.
  641. </descr>
  642. <errors>
  643. None.
  644. </errors>
  645. <seealso>
  646. <link id="Date"/>
  647. <link id="Time"/>
  648. </seealso>
  649. <example file="sysutex/ex18"/>
  650. </element>
  651. <element name="StrToDate">
  652. <short>Convert a date string to a <var>TDateTime</var> value.</short>
  653. <descr>
  654. <p>
  655. <var>StrToDate</var> converts the string <var>S</var> to a <var>TDateTime</var> date
  656. value. The Date must consist of 1 to three digits, separated by the
  657. <var>DateSeparator</var> character. If two numbers are given, they
  658. are supposed to form the day and month of the current year. If only
  659. one number is given, it is supposed to represent the day of the
  660. current month. (This is <em>not</em> supported in Delphi)
  661. </p>
  662. <p>
  663. The order of the digits (y/m/d, m/d/y, d/m/y) is determined from the
  664. <var>ShortDateFormat</var> variable.
  665. </p>
  666. </descr>
  667. <errors>
  668. On error (e.g. an invalid date or invalid character),
  669. an <var>EConvertError</var> exception is raised.
  670. </errors>
  671. <seealso>
  672. <link id="StrToTime"/>
  673. <link id="DateToStr"/>
  674. <link id="TimeToStr"/>
  675. </seealso>
  676. <example file="sysutex/ex19"/>
  677. </element>
  678. <element name="StrToDateTime">
  679. <short>Convert a date/time string to a <var>TDateTime</var> value.</short>
  680. <descr>
  681. <p>
  682. <var>StrToDateTime</var> converts the string <var>S</var> to a <var>TDateTime</var> date
  683. and time value. The Date must consist of 1 to three digits, separated by the
  684. <var>DateSeparator</var> character. If two numbers are given, they
  685. are supposed to form the day and month of the current year. If only
  686. one number is given, it is supposed to represent the day of the
  687. current month. (This is <em>not</em> supported in Delphi)
  688. </p>
  689. <p>
  690. The order of the digits (y/m/d, m/d/y, d/m/y) is determined from the
  691. <var>ShortDateFormat</var> variable.
  692. </p>
  693. </descr>
  694. <errors>
  695. On error (e.g. an invalid date or invalid character),
  696. an <var>EConvertError</var> exception is raised.
  697. </errors>
  698. <seealso>
  699. <link id="StrToDate"/>
  700. <link id="StrToTime"/>
  701. <link id="DateTimeToStr"/>
  702. </seealso>
  703. <example file="sysutex/ex20"/>
  704. </element>
  705. <element name="StrToTime">
  706. <short>Convert a time string to a <var>TDateTime</var> value.</short>
  707. <descr>
  708. <var>StrToTime</var> converts the string <var>S</var> to a <var>TDateTime</var> time
  709. value. The time must consist of 1 to 4 digits, separated by the
  710. <var>TimeSeparator</var> character. If two numbers are given, they
  711. are supposed to form the hour and minutes.
  712. </descr>
  713. <errors>
  714. On error (e.g. an invalid date or invalid character),
  715. an <var>EConvertError</var> exception is raised.
  716. </errors>
  717. <seealso>
  718. <link id="StrToDate"/>
  719. <link id="StrToDateTime"/>
  720. <link id="TimeToStr"/>
  721. </seealso>
  722. <example file="sysutex/ex21"/>
  723. </element>
  724. <element name="SystemTimeToDateTime">
  725. <short>Convert a system time to a <var>TDateTime</var> value.</short>
  726. <descr>
  727. <var>SystemTimeToDateTime</var> converts a <var>TSystemTime</var> record to a
  728. <var>TDateTime</var> style date/time indication.
  729. </descr>
  730. <errors>
  731. None.
  732. </errors>
  733. <seealso>
  734. <link id="DateTimeToSystemTime"/>
  735. </seealso>
  736. <example file="sysutex/ex22"/>
  737. </element>
  738. <element name="Time">
  739. <short>Returns the current time.</short>
  740. <descr>
  741. <var>Time</var> returns the current time in <var>TDateTime</var> format. The date
  742. part of the <var>TDateTimeValue</var> is set to zero.
  743. </descr>
  744. <errors>
  745. None.
  746. </errors>
  747. <seealso>
  748. <link id="Now"/>
  749. <link id="Date"/>
  750. </seealso>
  751. <example file="sysutex/ex23"/>
  752. </element>
  753. <element name="TimeStampToDateTime">
  754. <short>Convert a TimeStamp value to a <var>TDateTime</var> value.</short>
  755. <descr>
  756. <var>TimeStampToDateTime</var> converts <var>TimeStamp</var> to a <var>TDateTime</var>
  757. format variable. It is the inverse operation of <link id="DateTimeToTimeStamp"/>.
  758. </descr>
  759. <errors>
  760. None.
  761. </errors>
  762. <seealso>
  763. <link id="DateTimeToTimeStamp"/>
  764. <link id="TimeStampToMSecs"/>
  765. </seealso>
  766. <example file="sysutex/ex24"/>
  767. </element>
  768. <element name="TimeStampToMSecs">
  769. <short>Converts a timestamp to a number of milliseconds.</short>
  770. <descr>
  771. <p>
  772. <var>TimeStampToMSecs</var> converts <var>TimeStamp</var> to the number of seconds
  773. since <var>1/1/0001</var>.
  774. </p>
  775. <p>
  776. Use <var>TTimeStamp</var> variables if you need to keep very precise track of
  777. time.
  778. </p>
  779. <p>
  780. For an example, see <link id="MSecsToTimeStamp"/>.
  781. </p>
  782. </descr>
  783. <errors>
  784. None.
  785. </errors>
  786. <seealso>
  787. <link id="MSecsToTimeStamp"/>
  788. <link id="TimeStampToDateTime"/>
  789. </seealso>
  790. </element>
  791. <element name="TimeToStr">
  792. <short>Convert a <var>TDateTime</var> time to a string using a predefined format.</short>
  793. <descr>
  794. <var>TimeToStr</var> converts the time in <var>Time</var> to a string. It uses
  795. the <var>ShortTimeFormat</var> variable to see what formatting needs to be
  796. applied. It is therefor entirely equivalent to a
  797. <var>FormatDateTime('t',Time)</var> call.
  798. </descr>
  799. <errors>
  800. None.
  801. </errors>
  802. <seealso>
  803. </seealso>
  804. <example file="sysutex/ex25"/>
  805. </element>
  806. <element name="AddDisk">
  807. <short>Add a disk to the list of known disks (Unix only)</short>
  808. <descr>
  809. <p>
  810. On Linux both the <link id="DiskFree"/> and <link id="DiskSize"/> functions need a
  811. file on the specified drive, since is required for the statfs system call.
  812. </p>
  813. <p>
  814. These filenames are set in drivestr[0..26], and the first 4 have been
  815. preset to :
  816. </p>
  817. <dl>
  818. <dt>Disk 0</dt><dd><var>'.'</var> default drive - hence current directory is used.</dd>
  819. <dt>Disk 1</dt><dd><var>'/fd0/.'</var> floppy drive 1.</dd>
  820. <dt>Disk 2</dt><dd><var>'/fd1/.'</var> floppy drive 2.</dd>
  821. <dt>Disk 3</dt><dd><var>'/'</var> <file>C:</file> equivalent of DOS is the root partition.</dd>
  822. </dl>
  823. <p>
  824. Drives 4..26 can be set by your own applications with the <var>AddDisk</var> call.
  825. </p>
  826. <p>
  827. The <var>AddDisk</var> call adds <var>Path</var> to the names of drive files, and
  828. returns the number of the disk that corresponds to this drive. If you
  829. add more than 21 drives, the count is wrapped to 4.
  830. </p>
  831. </descr>
  832. <errors>
  833. None.
  834. </errors>
  835. <seealso>
  836. <link id="DiskFree"/>
  837. <link id="DiskSize"/>
  838. </seealso>
  839. </element>
  840. <element name="CreateDir">
  841. <short>Create a new directory</short>
  842. <descr>
  843. <p>
  844. <var>CreateDir</var> creates a new directory with name <var>NewDir</var>.
  845. If the directory doesn't contain an absolute path, then the directory is
  846. created below the current working directory.
  847. </p>
  848. <p>
  849. The function returns <var>True</var> if the directory was successfully
  850. created, <var>False</var> otherwise.
  851. </p>
  852. </descr>
  853. <errors>
  854. In case of an error, the function returns <var>False</var>.
  855. </errors>
  856. <seealso>
  857. <link id="RemoveDir"/>
  858. </seealso>
  859. <example file="sysutex/ex26"/>
  860. </element>
  861. <element name="DiskFree">
  862. <short>Return the amount of free diskspace</short>
  863. <descr>
  864. <p>
  865. <var>DiskFree</var> returns the free space (in bytes) on disk <var>Drive</var>.
  866. Drive is the number of the disk drive:
  867. </p>
  868. <dl>
  869. <dt>0</dt><dd> for the current drive.</dd>
  870. <dt>1</dt><dd> for the first floppy drive.</dd>
  871. <dt>2</dt><dd> for the second floppy drive.</dd>
  872. <dt>3</dt><dd> for the first hard-disk partition.</dd>
  873. <dt>4-26</dt><dd> for all other drives and partitions.</dd>
  874. </dl>
  875. <remark>
  876. Under linux, and Unix in general, the concept of disk is
  877. different than the dos one, since the filesystem is seen as one big
  878. directory tree. For this reason, the <var>DiskFree</var> and <link id="DiskSize"/>
  879. functions must be mimicked using filenames that reside on the partitions.
  880. For more information, see <link id="AddDisk"/>.
  881. </remark>
  882. </descr>
  883. <errors>
  884. On error, <var>-1</var> is returned.
  885. </errors>
  886. <seealso>
  887. <link id="DiskSize">DiskSize</link>
  888. <link id="AddDisk"/>
  889. </seealso>
  890. <example file="sysutex/ex27"/>
  891. </element>
  892. <element name="DiskSize">
  893. <short>Return the total amount of diskspace.</short>
  894. <descr>
  895. <p>
  896. <var>DiskSize</var> returns the size (in bytes) of disk <var>Drive</var>.
  897. Drive is the number of the disk drive:
  898. </p>
  899. <dl>
  900. <dt>0</dt><dd> for the current drive.</dd>
  901. <dt>1</dt><dd> for the first floppy drive.</dd>
  902. <dt>2</dt><dd> for the second floppy drive.</dd>
  903. <dt>3</dt><dd> for the first hard-disk parttion.</dd>
  904. <dt>4-26</dt><dd> for all other drives and partitions.</dd>
  905. </dl>
  906. <remark>
  907. Under linux, and Unix in general, the concept of disk is
  908. different than the dos one, since the filesystem is seen as one big
  909. directory tree. For this reason, the <link id="DiskFree"/> and <var>DiskSize</var>
  910. functions must be mimicked using filenames that reside on the partitions.
  911. For more information, see <link id="AddDisk"/>
  912. </remark>
  913. <p>
  914. For an example, see <link id="DiskFree">DiskFree</link>.
  915. </p>
  916. </descr>
  917. <errors>
  918. On error, <var>-1</var> is returned.
  919. </errors>
  920. <seealso>
  921. <link id="DiskFree"/>
  922. <link id="AddDisk"/>
  923. </seealso>
  924. </element>
  925. <element name="GetCurrentDir">
  926. <short>Return the current working directory of the application.</short>
  927. <descr>
  928. <var>GetCurrentDir</var> returns the current working directory.
  929. </descr>
  930. <errors>
  931. None.
  932. </errors>
  933. <seealso>
  934. <link id="SetCurrentDir"/>
  935. <link id="DiskFree"/>
  936. <link id="DiskSize"/>
  937. </seealso>
  938. <example file="sysutex/ex28"/>
  939. </element>
  940. <element name="RemoveDir">
  941. <short>Remove a directory from the filesystem.</short>
  942. <descr>
  943. <p>
  944. <var>RemoveDir</var> removes directory <var>Dir</var> from the disk.
  945. If the directory is not absolue, it is appended to the current working
  946. directory.
  947. </p>
  948. <p>
  949. For an example, see <link id="CreateDir"/>.
  950. </p>
  951. </descr>
  952. <errors>
  953. In case of error (e.g. the directory isn't empty) the function returns
  954. <var>False</var>. If successful, <var>True</var> is returned.
  955. </errors>
  956. <seealso>
  957. </seealso>
  958. </element>
  959. <element name="SetCurrentDir">
  960. <short>Set the current directory of the application.</short>
  961. <descr>
  962. <var>SetCurrentDir</var> sets the current working directory of your program
  963. to <var>NewDir</var>. It returns <var>True</var> if the function was successfull,
  964. <var>False</var> otherwise.
  965. </descr>
  966. <errors>
  967. In case of error, <var>False</var> is returned.
  968. </errors>
  969. <seealso>
  970. <link id="GetCurrentDir"/>
  971. </seealso>
  972. </element>
  973. <example file="sysutex/ex29"/>
  974. <element name="ChangeFileExt">
  975. <short>Change the extension of a filename.</short>
  976. <descr>
  977. <p>
  978. <var>ChangeFileExt</var> changes the file extension in <var>FileName</var> to
  979. <var>Extension</var>.
  980. The extension <var>Extension</var> includes the starting <var>.</var> (dot).
  981. The previous extension of <var>FileName</var> are all characters after the
  982. last <var>.</var>, the <var>.</var> character included.
  983. </p>
  984. <p>
  985. If <var>FileName</var> doesn't have an extension, <var>Extension</var> is just
  986. appended.
  987. </p>
  988. </descr>
  989. <errors>
  990. None.
  991. </errors>
  992. <seealso>
  993. <link id="ExtractFileName"/>
  994. <link id="ExtractFilePath"/>
  995. <link id="ExpandFileName"/>
  996. </seealso>
  997. </element>
  998. <element name="DeleteFile">
  999. <short>Delete a file from the filesystem.</short>
  1000. <descr>
  1001. <var>DeleteFile</var> deletes file <var>FileName</var> from disk. The function
  1002. returns <var>True</var> if the file was successfully removed, <var>False</var>
  1003. otherwise.
  1004. </descr>
  1005. <errors>
  1006. On error, <var>False</var> is returned.
  1007. </errors>
  1008. <seealso>
  1009. <link id="FileCreate"/>
  1010. <link id="FileExists"/>
  1011. </seealso>
  1012. <example file="sysutex/ex31"/>
  1013. </element>
  1014. <element name="DoDirSeparators">
  1015. <short>Convert known directory separators to the current directory separator.</short>
  1016. <descr>
  1017. This function replaces all known directory separators
  1018. to the directory separator character for the current system.
  1019. </descr>
  1020. <errors>
  1021. None.
  1022. </errors>
  1023. <seealso>
  1024. <link id="ExtractFileName"/>
  1025. <link id="ExtractFilePath"/>
  1026. </seealso>
  1027. <example file="sysutex/ex32"/>
  1028. </element>
  1029. <element name="ExpandFileName">
  1030. <short>Expand a relative filename to an absolute filename.</short>
  1031. <descr>
  1032. <var>ExpandFileName</var> expands the filename to an absolute filename.
  1033. It changes all directory separator characters to the one appropriate for the
  1034. system first.
  1035. </descr>
  1036. <errors>
  1037. None.
  1038. </errors>
  1039. <seealso>
  1040. <link id="ExtractFileName"/>
  1041. <link id="ExtractFilePath"/>
  1042. <link id="ExtractFileDir"/>,
  1043. <link id="ExtractFileDrive"/>
  1044. <link id="ExtractFileExt"/>
  1045. <link id="ExtractRelativePath"/>
  1046. </seealso>
  1047. <example file="sysutex/ex33"/>
  1048. </element>
  1049. <element name="ExpandUNCFileName">
  1050. <short>Expand a relative filename to an absolute UNC filename.</short>
  1051. <descr>
  1052. <var>ExpandUNCFileName</var> runs <link id="ExpandFileName"/> on <var>FileName</var>
  1053. and then attempts to replace the driveletter by the name of a shared disk.
  1054. </descr>
  1055. <errors>
  1056. None.
  1057. </errors>
  1058. <seealso>
  1059. <link id="ExtractFileName"/>
  1060. <link id="ExtractFilePath"/>
  1061. <link id="ExtractFileDir"/>,
  1062. <link id="ExtractFileDrive"/>
  1063. <link id="ExtractFileExt"/>
  1064. <link id="ExtractRelativePath"/>
  1065. </seealso>
  1066. </element>
  1067. <element name="ExtractFileDir">
  1068. <short>Extract the directory part of a filename.</short>
  1069. <descr>
  1070. <var>ExtractFileDir</var> returns only the directory part of <var>FileName</var>,
  1071. not including a driveletter. The directory name has NO ending directory
  1072. separator, in difference with <link id="ExtractFilePath"/>.
  1073. </descr>
  1074. <errors>
  1075. None.
  1076. </errors>
  1077. <seealso>
  1078. <link id="ExtractFileName"/>
  1079. <link id="ExtractFilePath"/>
  1080. <link id="ExtractFileDir"/>,
  1081. <link id="ExtractFileDrive"/>
  1082. <link id="ExtractFileExt"/>
  1083. <link id="ExtractRelativePath"/>
  1084. </seealso>
  1085. <example file="sysutex/ex34"/>
  1086. </element>
  1087. <element name="ExtractFileDrive">
  1088. <short>Extract the drive part from a filename.</short>
  1089. <descr>
  1090. <p>
  1091. <var>Extracts</var> the drive letter from a filename. Note that some
  1092. operating systems do not support drive letters.
  1093. </p>
  1094. <p>
  1095. For an example, see <link id="ExtractFileDir"/>.
  1096. </p>
  1097. </descr>
  1098. <errors>
  1099. </errors>
  1100. <seealso>
  1101. <link id="ExtractFileName"/>
  1102. <link id="ExtractFilePath"/>
  1103. <link id="ExtractFileDir"/>,
  1104. <link id="ExtractFileDrive"/>
  1105. <link id="ExtractFileExt"/>
  1106. <link id="ExtractRelativePath"/>
  1107. </seealso>
  1108. </element>
  1109. <element name="ExtractFileExt">
  1110. <short>Return the extension from a filename.</short>
  1111. <descr>
  1112. <p>
  1113. <var>ExtractFileExt</var> returns the extension (including the
  1114. <var>.</var>(dot) character) of <var>FileName</var>.
  1115. </p>
  1116. <p>
  1117. For an example, see <link id="ExtractFileDir"/>.
  1118. </p>
  1119. </descr>
  1120. <errors>
  1121. None.
  1122. </errors>
  1123. <seealso>
  1124. <link id="ExtractFileName"/>
  1125. <link id="ExtractFilePath"/>
  1126. <link id="ExtractFileDir"/>,
  1127. <link id="ExtractFileDrive"/>
  1128. <link id="ExtractFileExt"/>
  1129. <link id="ExtractRelativePath"/>
  1130. </seealso>
  1131. </element>
  1132. <element name="ExtractFileName">
  1133. <short>Extract the filename part from a full path filename.</short>
  1134. <descr>
  1135. <p>
  1136. <var>ExtractFileName</var> returns the filename part from <var>FileName</var>.
  1137. The filename consists of all characters after the last directory separator
  1138. character ('/' or '\') or drive letter.
  1139. </p>
  1140. <p>
  1141. The full filename can always be reconstucted by concatenating the result
  1142. of <link id="ExtractFilePath"/> and <var>ExtractFileName</var>.
  1143. </p>
  1144. <p>
  1145. For an example, see <link id="ExtractFileDir"/>.
  1146. </p>
  1147. </descr>
  1148. <errors>
  1149. None.
  1150. </errors>
  1151. <seealso>
  1152. <link id="ExtractFileName"/>
  1153. <link id="ExtractFilePath"/>
  1154. <link id="ExtractFileDir"/>,
  1155. <link id="ExtractFileDrive"/>
  1156. <link id="ExtractFileExt"/>
  1157. <link id="ExtractRelativePath"/>
  1158. </seealso>
  1159. </element>
  1160. <element name="ExtractFilePath">
  1161. <short>Extract the path from a filename.</short>
  1162. <descr>
  1163. <p>
  1164. <var>ExtractFilePath</var> returns the path part (including driveletter) from
  1165. <var>FileName</var>. The path consists of all characters before the last
  1166. directory separator character ('/' or '\'), including the directory
  1167. separator itself.
  1168. In case there is only a drive letter, that will be returned.
  1169. </p>
  1170. <p>
  1171. The full filename can always be reconstucted by concatenating the result
  1172. of <var>ExtractFilePath</var> and <link id="ExtractFileName"/>.
  1173. </p>
  1174. <p>
  1175. For an example, see <link id="ExtractFileDir"/>.
  1176. </p>
  1177. </descr>
  1178. <errors>
  1179. None.
  1180. </errors>
  1181. <seealso>
  1182. <link id="ExtractFileName"/>
  1183. <link id="ExtractFilePath"/>
  1184. <link id="ExtractFileDir"/>,
  1185. <link id="ExtractFileDrive"/>
  1186. <link id="ExtractFileExt"/>
  1187. <link id="ExtractRelativePath"/>
  1188. </seealso>
  1189. </element>
  1190. <element name="ExtractRelativePath">
  1191. <short>Extract a relative path from a filename, given a base directory.</short>
  1192. <descr>
  1193. <var>ExtractRelativePath</var> constructs a relative path to go from
  1194. <var>BaseName</var> to <var>DestName</var>. If <var>DestName</var> is on another drive
  1195. (Not on Linux) then the whole <var>Destname</var> is returned.
  1196. <em> Note:</em> This function does not exist in the Delphi unit.
  1197. </descr>
  1198. <errors>
  1199. None.
  1200. </errors>
  1201. <seealso>
  1202. <link id="ExtractFileName"/>
  1203. <link id="ExtractFilePath"/>
  1204. <link id="ExtractFileDir"/>,
  1205. <link id="ExtractFileDrive"/>
  1206. <link id="ExtractFileExt"/>,
  1207. </seealso>
  1208. <example file="sysutex/ex35"/>
  1209. </element>
  1210. <element name="FileAge">
  1211. <short>Return the timestamp of a file.</short>
  1212. <descr>
  1213. <var>FileAge</var> returns the last modification time of file <var>FileName</var>.
  1214. The FileDate format can be transformed to <var>TDateTime</var> format with the
  1215. <link id="FileDateToDateTime"/> function.
  1216. </descr>
  1217. <errors>
  1218. In case of errors, <var>-1</var> is returned.
  1219. </errors>
  1220. <seealso>
  1221. <link id="FileDateToDateTime"/>
  1222. <link id="FileExists"/>
  1223. <link id="FileGetAttr"/>
  1224. </seealso>
  1225. <example file="sysutex/ex36"/>
  1226. </element>
  1227. <element name="FileClose">
  1228. <short>Close a file handle.</short>
  1229. <descr>
  1230. <p>
  1231. <var>FileClose</var> closes the file handle <var>Handle</var>. After this call,
  1232. attempting to read or write from the handle will result in an error.
  1233. </p>
  1234. <p>
  1235. For an example, see <link id="FileCreate"/>
  1236. </p>
  1237. </descr>
  1238. <errors>
  1239. None.
  1240. </errors>
  1241. <seealso>
  1242. <link id="FileCreate"/>
  1243. <link id="FileWrite"/>
  1244. <link id="FileOpen"/>
  1245. <link id="FileRead"/>,
  1246. <link id="FileTruncate"/>
  1247. <link id="FileSeek"/>
  1248. </seealso>
  1249. </element>
  1250. <element name="FileCreate">
  1251. <short>Create a new file and return a handle to it.</short>
  1252. <descr>
  1253. <var>FileCreate</var> creates a new file with name <var>FileName</var> on the disk and
  1254. returns a file handle which can be used to read or write from the file with
  1255. the <link id="FileRead"/> and <link id="FileWrite"/> functions.
  1256. If a file with name <var>FileName</var> already existed on the disk, it is
  1257. overwritten.
  1258. </descr>
  1259. <errors>
  1260. If an error occurs (e.g. disk full or non-existent path), the function
  1261. returns <var>-1</var>.
  1262. </errors>
  1263. <seealso>
  1264. <link id="FileClose"/>
  1265. <link id="FileWrite"/>
  1266. <link id="FileOpen"/>
  1267. <link id="FileRead"/>,
  1268. <link id="FileTruncate"/>
  1269. <link id="FileSeek"/>
  1270. </seealso>
  1271. <example file="sysutex/ex37"/>
  1272. </element>
  1273. <element name="FileExists">
  1274. <short>Check whether a file exists in the filesystem.</short>
  1275. <descr>
  1276. <var>FileExists</var> returns <var>True</var> if a file with name <var>FileName</var>
  1277. exists on the disk, <var>False</var> otherwise.
  1278. </descr>
  1279. <errors>
  1280. None.
  1281. </errors>
  1282. <seealso>
  1283. <link id="FileAge"/>
  1284. <link id="FileGetAttr"/>
  1285. <link id="FileSetAttr"/>
  1286. </seealso>
  1287. <example file="sysutex/ex38"/>
  1288. </element>
  1289. <element name="FileGetAttr">
  1290. <short>Return attributes of a file.</short>
  1291. <descr>
  1292. <p>
  1293. <var>FileGetAttr</var> returns the attribute settings of file
  1294. <var>FileName</var>. The attribute is a <var>OR</var>-ed combination
  1295. of the following constants:
  1296. </p>
  1297. <dl>
  1298. <dt>faReadOnly</dt><dd> The file is read-only.</dd>
  1299. <dt>faHidden</dt>
  1300. <dd>
  1301. The file is hidden. (On unix, this means that the filename starts with a dot)
  1302. </dd>
  1303. <dt>faSysFile</dt>
  1304. <dd>
  1305. The file is a system file (On unix, this means that the file is a character, block or FIFO file).
  1306. </dd>
  1307. <dt>faVolumeId</dt>
  1308. <dd> Volume Label. Not possible under unix.</dd>
  1309. <dt>faDirectory</dt><dd> File is a directory.</dd>
  1310. <dt>faArchive</dt><dd> file is an archive. Not possible on Unix</dd>
  1311. </dl>
  1312. </descr>
  1313. <errors>
  1314. In case of error, -1 is returned.
  1315. </errors>
  1316. <seealso>
  1317. <link id="FileSetAttr"/>
  1318. <link id="FileAge"/>
  1319. <link id="FileGetDate"/>.
  1320. </seealso>
  1321. <example file="sysutex/ex40"/>
  1322. </element>
  1323. <element name="FileGetDate">
  1324. <short>Return the file time of an opened file.</short>
  1325. <descr>
  1326. <var>FileGetdate</var> returns the filetime of the opened file with filehandle
  1327. <var>Handle</var>. It is the same as <link id="FileAge"/>, with this difference that
  1328. <var>FileAge</var> only needs the file name, while <var>FilegetDate</var> needs an
  1329. open file handle.
  1330. </descr>
  1331. <errors>
  1332. On error, -1 is returned.
  1333. </errors>
  1334. <seealso>
  1335. <link id="FileAge"/>
  1336. </seealso>
  1337. <example file="sysutex/ex39"/>
  1338. </element>
  1339. <element name="FileOpen">
  1340. <short>Open an existing file and return a filehandle</short>
  1341. <descr>
  1342. <p>
  1343. <var>FileOpen</var> opens a file with name <var>FileName</var> with mode <var>Mode</var>.
  1344. <var>Mode</var> can be one of the following constants:
  1345. </p>
  1346. <dl>
  1347. <dt>fmOpenRead</dt><dd> The file is opened for reading.</dd>
  1348. <dt>fmOpenWrite</dt><dd> The file is opened for writing.</dd>
  1349. <dt>fmOpenReadWrite</dt><dd> The file is opened for reading and
  1350. writing.</dd>
  1351. </dl>
  1352. <p>
  1353. If the file has been successfully opened, it can be read from or written to
  1354. (depending on the <var>Mode</var> parameter) with the <link id="FileRead"/> and
  1355. <var>FileWrite</var> functions.
  1356. </p>
  1357. <remark>
  1358. Remark that you cannot open a file if it doesn't exist yet, i.e. it will not
  1359. be created for you. If you want tp create a new file, or overwrite an old
  1360. one, use the <link id="FileCreate"/> function.
  1361. </remark>
  1362. <p>
  1363. For an example, see <link id="FileOpen"/>
  1364. </p>
  1365. </descr>
  1366. <errors>
  1367. On Error, -1 is returned.
  1368. </errors>
  1369. <seealso>
  1370. <link id="FileClose"/>
  1371. <link id="FileWrite"/>
  1372. <link id="FileCreate"/>
  1373. <link id="FileRead"/>,
  1374. <link id="FileTruncate"/>
  1375. <link id="FileSeek"/>
  1376. </seealso>
  1377. </element>
  1378. <element name="FileRead">
  1379. <short>Read data from a filehandle in a buffer.</short>
  1380. <descr>
  1381. <p>
  1382. <var>FileRead</var> reads <var>Count</var> bytes from file-handle <var>Handle</var> and
  1383. stores them into <var>Buffer</var>. Buffer must be at least <var>Count</var> bytes
  1384. long. No checking on this is performed, so be careful not to overwrite any
  1385. memory. <var>Handle</var> must be the result of a <link id="FileOpen"/> call.
  1386. </p>
  1387. <p>
  1388. For an example, see <link id="FileCreate"/>
  1389. </p>
  1390. </descr>
  1391. <errors>
  1392. On error, -1 is returned.
  1393. </errors>
  1394. <seealso>
  1395. <link id="FileClose"/>
  1396. <link id="FileWrite"/>
  1397. <link id="FileCreate"/>
  1398. <link id="FileOpen"/>,
  1399. <link id="FileTruncate"/>
  1400. <link id="FileSeek"/>
  1401. </seealso>
  1402. </element>
  1403. <element name="FileSearch">
  1404. <short>Search for a file in a path.</short>
  1405. <descr>
  1406. <var>FileSearch</var> looks for the file <var>Name</var> in <var>DirList</var>, where
  1407. dirlist is a list of directories, separated by semicolons or colons.
  1408. It returns the full filename of the first match found.
  1409. </descr>
  1410. <errors>
  1411. On error, an empty string is returned.
  1412. </errors>
  1413. <seealso>
  1414. <link id="ExpandFileName"/>
  1415. <link id="FindFirst"/>
  1416. </seealso>
  1417. <example file="sysutex/ex41"/>
  1418. </element>
  1419. <element name="FileSeek">
  1420. <short>Set the current file position on a file handle.</short>
  1421. <descr>
  1422. <p>
  1423. <var>FileSeek</var> sets the file pointer on position <var>Offset</var>, starting from
  1424. <var>Origin</var>. Origin can be one of the following values:
  1425. </p>
  1426. <dl>
  1427. <dt>fsFromBeginning</dt>
  1428. <dd> <var>Offset</var> is relative to the first byte of the file. This
  1429. position is zero-based. i.e. the first byte is at offset 0.
  1430. </dd>
  1431. <dt>fsFromCurrent</dt><dd><var>Offset</var> is relative to the current position.</dd>
  1432. <dt>fsFromEnd</dt>
  1433. <dd><var>Offset</var> is relative to the end of the file.
  1434. This means that <var>Offset</var> can only be zero or negative in this case.
  1435. </dd>
  1436. </dl>
  1437. <p>
  1438. If successfull, the function returns the new file position, relative to the
  1439. beginning of the file.
  1440. </p>
  1441. <remark>
  1442. The abovementioned constants do not exist in Delphi.
  1443. </remark>
  1444. </descr>
  1445. <errors>
  1446. On error, -1 is returned.
  1447. </errors>
  1448. <seealso>
  1449. <link id="FileClose"/>
  1450. <link id="FileWrite"/>
  1451. <link id="FileCreate"/>
  1452. <link id="FileOpen"/>
  1453. <link id="FileRead"/>
  1454. <link id="FileTruncate"/>
  1455. </seealso>
  1456. <example file="sysutex/ex42"/>
  1457. </element>
  1458. <element name="FileSetAttr">
  1459. <short>Set the attributes of a file.</short>
  1460. <descr>
  1461. <p>
  1462. <var>FileSetAttr</var> sets the attributes of <var>FileName</var> to <var>Attr</var>.
  1463. If the function was successful, 0 is returned, -1 otherwise.
  1464. <var>Attr</var> can be set to an OR-ed combination of the pre-defined
  1465. <var>faXXX</var> constants.
  1466. </p>
  1467. <p>
  1468. This function is not implemented on Unixes.
  1469. </p>
  1470. </descr>
  1471. <errors>
  1472. On error, -1 is returned (always on Unixes).
  1473. </errors>
  1474. <seealso>
  1475. <link id="FileGetAttr"/>
  1476. <link id="FileGetDate"/>
  1477. <link id="FileSetDate"/>.
  1478. </seealso>
  1479. </element>
  1480. <element name="FileSetDate">
  1481. <short>Set the date of a file.</short>
  1482. <descr>
  1483. <p>
  1484. <var>FileSetDate</var> sets the file date of the file with handle <var>Handle</var>
  1485. to <var>Age</var>, where <var>Age</var> is a DOS date-and-time stamp value.
  1486. </p>
  1487. <p>
  1488. The function returns zero if successfull. (not on unixes, where it is not
  1489. implemented)
  1490. </p>
  1491. </descr>
  1492. <errors>
  1493. On Unix, -1 is always returned, since this is impossible to implement.
  1494. On Windows and DOS, a negative error code is returned.
  1495. </errors>
  1496. <seealso>
  1497. </seealso>
  1498. </element>
  1499. <element name="FileTruncate">
  1500. <short>Truncate an open file to a given size.</short>
  1501. <descr>
  1502. <p>
  1503. <var>FileTruncate</var> truncates the file with handle <var>Handle</var> to
  1504. <var>Size</var> bytes. The file must have been opened for writing prior
  1505. to this call. The function returns <var>True</var> is successful, <var>False</var>
  1506. otherwise.
  1507. </p>
  1508. <p>
  1509. For an example, see <link id="FileCreate"/>.
  1510. </p>
  1511. </descr>
  1512. <errors>
  1513. On error, the function returns <var>False</var>.
  1514. </errors>
  1515. <seealso>
  1516. <link id="FileClose"/>
  1517. <link id="FileWrite"/>
  1518. <link id="FileCreate"/>
  1519. <link id="FileOpen"/>
  1520. <link id="FileRead"/>
  1521. <link id="FileSeek"/>
  1522. </seealso>
  1523. </element>
  1524. <element name="FileWrite">
  1525. <short>Write data from a buffer to a given filehandle.</short>
  1526. <descr>
  1527. <p>
  1528. <var>FileWrite</var> writes <var>Count</var> bytes from <var>Buffer</var> to the file with
  1529. handle <var>Handle</var>. Prior to this call, the file must have been opened
  1530. for writing. <var>Buffer</var> must be at least <var>Count</var> bytes large, or
  1531. a memory access error may occur.
  1532. </p>
  1533. <p>
  1534. The function returns the number of bytes written, or -1 in case of an
  1535. error.
  1536. </p>
  1537. <p>
  1538. For an example, see <link id="FileCreate"/>.
  1539. </p>
  1540. </descr>
  1541. <errors>
  1542. In case of error, -1 is returned.
  1543. </errors>
  1544. <seealso>
  1545. <link id="FileClose"/>
  1546. <link id="FileCreate"/>
  1547. <link id="FileOpen"/>
  1548. <link id="FileRead"/>
  1549. <link id="FileTruncate"/>
  1550. <link id="FileSeek"/>
  1551. </seealso>
  1552. </element>
  1553. <element name="FindClose">
  1554. <short>Close a find handle</short>
  1555. <descr>
  1556. <p>
  1557. <var>FindClose</var> ends a series of <link id="FindFirst"/>/<link id="FindNext"/> calls,
  1558. and frees any memory used by these calls. It is <em> absolutely</em> necessary
  1559. to do this call, or huge memory losses may occur.
  1560. </p>
  1561. <p>
  1562. For an example, see <link id="FindFirst"/>.
  1563. </p>
  1564. </descr>
  1565. <errors>
  1566. None.
  1567. </errors>
  1568. <seealso>
  1569. <link id="FindFirst"/>
  1570. <link id="FindNext"/>
  1571. </seealso>
  1572. </element>
  1573. <element name="FindFirst">
  1574. <short>Start a file search and return a findhandle</short>
  1575. <descr>
  1576. <p>
  1577. <var>FindFirst</var> looks for files that match the name (possibly with
  1578. wildcards) in <var>Path</var> and attributes <var>Attr</var>. It then fills up the
  1579. <var>Rslt</var> record with data gathered about the file. It returns 0 if a file
  1580. matching the specified criteria is found, a nonzero value (-1 on linux)
  1581. otherwise.
  1582. </p>
  1583. <p>
  1584. The <var>Rslt</var> record can be fed to subsequent calls to <var>FindNext</var>, in
  1585. order to find other files matching the specifications.
  1586. </p>
  1587. <remark>
  1588. A <var>FindFirst</var> call must <em> always</em> be followed by a
  1589. <link id="FindClose">FindClose</link> call with the same <var>Rslt</var> record. Failure to do so will
  1590. result in memory loss.
  1591. </remark>
  1592. </descr>
  1593. <errors>
  1594. On error the function returns -1 on linux, a nonzero error code on Windows.
  1595. </errors>
  1596. <seealso>
  1597. <link id="FindClose"/>{FindCloseSys}, <link id="FindNext"/>.
  1598. </seealso>
  1599. <example file="sysutex/ex43"/>
  1600. </element>
  1601. <element name="FindNext">
  1602. <short>Find the next entry in a findhandle.</short>
  1603. <descr>
  1604. <p>
  1605. <var>FindNext</var> finds a next occurrence of a search sequence initiated by
  1606. <var>FindFirst</var>. If another record matching the criteria in Rslt is found, 0
  1607. is returned, a nonzero constant is returned otherwise.
  1608. </p>
  1609. <remark>
  1610. The last <var>FindNext</var> call must <em> always</em> be followed by a
  1611. <var>FindClose</var> call with the same <var>Rslt</var> record. Failure to do so will
  1612. result in memory loss.
  1613. </remark>
  1614. <p>
  1615. For an example, see <link id="FindFirst"/>
  1616. </p>
  1617. </descr>
  1618. <errors>
  1619. On error (no more file is found), a nonzero constant is returned.
  1620. </errors>
  1621. <seealso>
  1622. <link id="FindFirst"/>
  1623. <link id="FindClose"/>
  1624. </seealso>
  1625. </element>
  1626. <element name="GetDirs">
  1627. <short>Return a list of directory names from a path.</short>
  1628. <descr>
  1629. <var>GetDirs</var> splits DirName in a null-byte separated list of directory names,
  1630. <var>Dirs</var> is an array of <var>PChars</var>, pointing to these directory names.
  1631. The function returns the number of directories found, or -1 if none were found.
  1632. DirName must contain only OSDirSeparator as Directory separator chars.
  1633. </descr>
  1634. <errors>
  1635. None.
  1636. </errors>
  1637. <seealso>
  1638. <link id="ExtractRelativePath"/>
  1639. </seealso>
  1640. <example file="sysutex/ex45"/>
  1641. </element>
  1642. <element name="RenameFile">
  1643. <short>Rename a file.</short>
  1644. <descr>
  1645. <var>RenameFile</var> renames a file from <var>OldName</var> to <var>NewName</var>. The
  1646. function returns <var>True</var> if successful, <var>False</var> otherwise.
  1647. <em> Remark:</em> you cannot rename across disks or partitions.
  1648. </descr>
  1649. <errors>
  1650. On Error, <var>False</var> is returned.
  1651. </errors>
  1652. <seealso>
  1653. <link id="DeleteFile"/>
  1654. </seealso>
  1655. <example file="sysutex/ex44"/>
  1656. </element>
  1657. <element name="SetDirSeparators">
  1658. <short>Set the directory separators to the known directory separators.</short>
  1659. <descr>
  1660. <var>SetDirSeparators</var> returns <var>FileName</var> with all possible
  1661. DirSeparators replaced by <var>OSDirSeparator</var>.
  1662. </descr>
  1663. <errors>
  1664. None.
  1665. </errors>
  1666. <seealso>
  1667. <link id="ExpandFileName"/>
  1668. <link id="ExtractFilePath"/>
  1669. <link id="ExtractFileDir"/>
  1670. </seealso>
  1671. <example file="sysutex/ex47"/>
  1672. </element>
  1673. <element name="StrAlloc">
  1674. <short>Allocate a null-terminated string on the heap.</short>
  1675. <descr>
  1676. <p>
  1677. <var>StrAlloc</var> reserves memory on the heap for a string with length <var>Len</var>,
  1678. terminating <var>#0</var> included, and returns a pointer to it.
  1679. </p>
  1680. <p>
  1681. Additionally, <var>StrAlloc</var> allocates 4 extra bytes to store the size of
  1682. the allocated memory. Therefore this function is NOT compatible with the
  1683. <link id="StrAlloc"/> function of the <var>Strings</var> unit.
  1684. </p>
  1685. <p>
  1686. For an example, see <link id="StrBufSize"/>.
  1687. </p>
  1688. </descr>
  1689. <errors>
  1690. None.
  1691. </errors>
  1692. <seealso>
  1693. <link id="StrBufSize"/>
  1694. <link id="StrDispose"/>
  1695. <link id="StrAlloc"/>
  1696. </seealso>
  1697. </element>
  1698. <element name="StrBufSize">
  1699. <short>Return the size of a null-terminated string allocated on the heap.</short>
  1700. <descr>
  1701. <var>StrBufSize</var> returns the memory allocated for <var>Str</var>. This function
  1702. ONLY gives the correct result if <var>Str</var> was allocated using
  1703. <link id="StrAlloc">StrAlloc</link>.
  1704. </descr>
  1705. <errors>
  1706. If no more memory is available, a runtime error occurs.
  1707. </errors>
  1708. <seealso>
  1709. <link id="StrAlloc">StrAlloc</link>
  1710. <link id="StrDispose"/>
  1711. </seealso>
  1712. <example file="sysutex/ex46"/>
  1713. </element>
  1714. <element name="StrDispose">
  1715. <short>Dispose of a null-terminated string on the heap.</short>
  1716. <descr>
  1717. <p>
  1718. <var>StrDispose</var> frees any memory allocated for <var>Str</var>. This function
  1719. will only function correctly if <var>Str</var> has been allocated using
  1720. <link id="StrAlloc">StrAlloc</link> from the <file>SysUtils</file> unit.
  1721. </p>
  1722. <p>
  1723. For an example, see <link id="StrBufSize"/>.
  1724. </p>
  1725. </descr>
  1726. <errors>
  1727. If an invalid pointer is passed, or a pointer not allocated with
  1728. <var>StrAlloc</var>, an error may occur.
  1729. </errors>
  1730. <seealso>
  1731. <link id="StrBufSize"/>
  1732. <link id="StrAlloc"/>
  1733. <link id="StrDispose"/>
  1734. </seealso>
  1735. </element>
  1736. <element name="StrPCopy">
  1737. <short>Copy an ansistring to a null-terminated string.</short>
  1738. <descr>
  1739. <p>
  1740. <var>StrPCopy</var> Converts the Ansistring in <var>Source</var> to a Null-terminated
  1741. string, and copies it to <var>Dest</var>. <var>Dest</var> needs enough room to contain
  1742. the string <var>Source</var>, i.e. <var>Length(Source)+1</var> bytes.
  1743. </p>
  1744. <p>
  1745. For an example, see <link id="StrPCopy"/>.
  1746. </p>
  1747. </descr>
  1748. <errors>
  1749. No checking is performed to see whether <var>Dest</var> points to enough memory
  1750. to contain <var>Source</var>.
  1751. </errors>
  1752. <seealso>
  1753. <link id="StrPLCopy"/>
  1754. <link id="StrPCopy"/>
  1755. </seealso>
  1756. </element>
  1757. <element name="StrPLCopy">
  1758. <short>Copy a limited number of characters from an ansistring to a
  1759. null-terminated string.</short>
  1760. <descr>
  1761. <var>StrPLCopy</var> Converts maximally <var>MaxLen</var> characters of the
  1762. Ansistring in <var>Source</var> to a Null-terminated string, and copies
  1763. it to <var>Dest</var>. <var>Dest</var> needs enough room to contain
  1764. the characters.
  1765. </descr>
  1766. <errors>
  1767. No checking is performed to see whether <var>Dest</var> points to enough memory
  1768. to contain L characters of <var>Source</var>.
  1769. </errors>
  1770. <seealso>
  1771. <link id="StrPCopy"/>.
  1772. </seealso>
  1773. </element>
  1774. <element name="StrPas">
  1775. <short>Convert a null-terminated string to an ansistring.</short>
  1776. <descr>
  1777. <p>
  1778. Converts a null terminated string in <var>Str</var> to an Ansitring, and returns
  1779. this string. This string is NOT truncated at 255 characters as is the
  1780. </p>
  1781. <p>
  1782. For an example, see <link id="StrPas"/>.
  1783. </p>
  1784. </descr>
  1785. <errors>
  1786. None.
  1787. </errors>
  1788. <seealso>
  1789. <link id="StrPas"/>
  1790. </seealso>
  1791. </element>
  1792. <element name="AdjustLineBreaks">
  1793. <short>Convert possible line-endings to the currently valid line ending.</short>
  1794. <descr>
  1795. <var>AdjustLineBreaks</var> will change all <var>#13</var> characters with
  1796. <var>#13#10</var> on Windowsnt and dos. On linux, all <var>#13#10</var>
  1797. character pairs are converted to <var>#10</var> and single <var>#13</var>
  1798. characters also.
  1799. </descr>
  1800. <errors>
  1801. None.
  1802. </errors>
  1803. <seealso>
  1804. <link id="AnsiCompareStr"/>
  1805. <link id="AnsiCompareText"/>
  1806. </seealso>
  1807. <example file="sysutex/ex48"/>
  1808. </element>
  1809. <element name="AnsiCompareStr">
  1810. <short>Compare 2 ansistrings, case sensitive, ignoring accents characters.</short>
  1811. <descr>
  1812. <p>
  1813. <var>AnsiCompareStr</var> compares two strings and returns the following
  1814. result:
  1815. </p>
  1816. <dl>
  1817. <dt>&lt; 0</dt><dd> if <var>S1&lt;S2</var>.</dd>
  1818. <dt>0</dt><dd>if <var>S1=S2</var>.</dd>
  1819. <dt>&gt; 0</dt><dd> if <var>S1&gt;S2</var>.</dd>
  1820. </dl>
  1821. <p>
  1822. The comparision takes into account Ansi characters, i.e. it takes
  1823. care of strange accented characters. Contrary to <link id="AnsiCompareText"/>,
  1824. the comparision is case sensitive.
  1825. </p>
  1826. </descr>
  1827. <errors>
  1828. None.
  1829. </errors>
  1830. <seealso>
  1831. <link id="AdjustLineBreaks"/>
  1832. <link id="AnsiCompareText"/>
  1833. </seealso>
  1834. <example file="sysutex/ex49"/>
  1835. </element>
  1836. <element name="AnsiCompareText">
  1837. <short>Compare 2 ansistrings, case insensitive, ignoring accents characters.</short>
  1838. <descr>
  1839. <p>
  1840. <var>AnsiCompareText</var> compares two strings and returns the following
  1841. result:
  1842. </p>
  1843. <dl>
  1844. <dt>&lt;0</dt><dd>if <var>S1&lt;S2</var>.</dd>
  1845. <dt>0</dt><dd>if <var>S1=S2</var>.</dd>
  1846. <dt>&gt;0</dt><dd>if <var>S1&gt;S2</var>.</dd>
  1847. </dl>
  1848. <p>
  1849. the comparision takes into account Ansi characters, i.e. it takes
  1850. care of strange accented characters. Contrary to <link id="AnsiCompareStr"/>,
  1851. the comparision is case insensitive.
  1852. </p>
  1853. </descr>
  1854. <errors>
  1855. None.
  1856. </errors>
  1857. <seealso>
  1858. <link id="AdjustLineBreaks"/>
  1859. <link id="AnsiCompareText"/>
  1860. </seealso>
  1861. <example file="sysutex/ex50"/>
  1862. </element>
  1863. <element name="AnsiExtractQuotedStr">
  1864. <short>Removes the first quoted string from a string.</short>
  1865. <descr>
  1866. <var>AnsiExtractQuotedStr</var> returns the first quoted string in
  1867. <var>Src</var>, and deletes the result from <var>Src</var>. The resulting
  1868. string has with <var>Quote</var> characters removed from the beginning and
  1869. end of the string (if they are present), and double <var>Quote</var>
  1870. characters replaced by a single <var>Quote</var> characters.
  1871. As such, it revereses the action of <link id="AnsiQuotedStr"/>.
  1872. </descr>
  1873. <errors>
  1874. None.
  1875. </errors>
  1876. <seealso>
  1877. <link id="AnsiQuotedStr"/>
  1878. </seealso>
  1879. <example file="sysutex/ex51"/>
  1880. </element>
  1881. <element name="AnsiLastChar">
  1882. <short>Return a pointer to the last character of a string.</short>
  1883. <descr>
  1884. This function returns a pointer to the last character of <var>S</var>.
  1885. Since multibyte characters are not yet supported, this is the same
  1886. as <var>@S[Length(S)])</var>.
  1887. </descr>
  1888. <errors>
  1889. None.
  1890. </errors>
  1891. <seealso>
  1892. <link id="AnsiStrLastChar"/>
  1893. </seealso>
  1894. <example file="sysutex/ex52"/>
  1895. </element>
  1896. <element name="AnsiLowerCase">
  1897. <short>Return a lowercase version of a string.</short>
  1898. <descr>
  1899. <p>
  1900. <var>AnsiLowerCase</var> converts the string <var>S</var> to lowercase characters
  1901. and returns the resulting string.
  1902. It takes into account the operating system language
  1903. settings when doing this, so spcial characters are converted correctly as
  1904. well.
  1905. </p>
  1906. <remark>
  1907. On linux, no language setting is taken in account yet.
  1908. </remark>
  1909. </descr>
  1910. <errors>
  1911. None.
  1912. </errors>
  1913. <seealso>
  1914. <link id="AnsiUpperCase"/>
  1915. <link id="AnsiStrLower"/>
  1916. <link id="AnsiStrUpper"/>
  1917. </seealso>
  1918. <example file="sysutex/ex53"/>
  1919. </element>
  1920. <element name="AnsiQuotedStr">
  1921. <short>Return a quoted version of a string.</short>
  1922. <descr>
  1923. <p>
  1924. <var>AnsiQuotedString</var> quotes the string <var>S</var> and returns the result.
  1925. This means that it puts the <var>Quote</var> character at both the beginning and
  1926. end of the string and replaces any occurrence of <var>Quote</var> in <var>S</var>
  1927. with 2 <var>Quote</var> characters. The action of <var>AnsiQuotedString</var> can be
  1928. reversed by <link id="AnsiExtractQuotedStr"/>.
  1929. </p>
  1930. <p>
  1931. For an example, see <link id="AnsiExtractQuotedStr"/>
  1932. </p>
  1933. </descr>
  1934. <errors>
  1935. None.
  1936. </errors>
  1937. <seealso>
  1938. <link id="AnsiExtractQuotedStr"/>
  1939. </seealso>
  1940. </element>
  1941. <element name="AnsiStrComp">
  1942. <short>Compare two null-terminated strings. Case sensitive.</short>
  1943. <descr>
  1944. <p>
  1945. <var>AnsiStrComp</var> compares 2 <var>PChar</var> strings, and returns the following
  1946. result:
  1947. </p>
  1948. <dl>
  1949. <dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
  1950. <dt>0</dt><dd> if <var>S1=S2</var>.</dd>
  1951. <dt>&gt;0</dt><dd> if <var>S1>S2</var>.</dd>
  1952. </dl>
  1953. <p>
  1954. The comparision of the two strings is case-sensitive.
  1955. The function does not yet take internationalization settings into account.
  1956. </p>
  1957. </descr>
  1958. <errors>
  1959. None.
  1960. </errors>
  1961. <seealso>
  1962. <link id="AnsiCompareText"/>
  1963. <link id="AnsiCompareStr"/>
  1964. </seealso>
  1965. <example file="sysutex/ex54"/>
  1966. </element>
  1967. <element name="AnsiStrIComp">
  1968. <short>Compare two null-terminated strings. Case insensitive.</short>
  1969. <descr>
  1970. <p>
  1971. <var>AnsiStrIComp</var> compares 2 <var>PChar</var> strings, and returns the following
  1972. result:
  1973. </p>
  1974. <dl>
  1975. <dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
  1976. <dt>0</dt><dd> if <var>S1=S2</var>.</dd>
  1977. <dt>>0</dt><dd> if <var>S1>S2</var>.</dd>
  1978. </dl>
  1979. <p>
  1980. The comparision of the two strings is case-insensitive.
  1981. The function does not yet take internationalization settings into account.
  1982. </p>
  1983. </descr>
  1984. <errors>
  1985. None.
  1986. </errors>
  1987. <seealso>
  1988. <link id="AnsiCompareText"/>
  1989. <link id="AnsiCompareStr"/>
  1990. </seealso>
  1991. <example file="sysutex/ex55"/>
  1992. </element>
  1993. <element name="AnsiStrLastChar">
  1994. <short>Return a pointer to the last character of a string.</short>
  1995. <descr>
  1996. <p>
  1997. Return a pointer to the last character of the null-terminated string.
  1998. </p>
  1999. </descr>
  2000. <errors>
  2001. None.
  2002. </errors>
  2003. <seealso>
  2004. <link id="AnsiCompareText"/>
  2005. <link id="AnsiCompareStr"/>
  2006. </seealso>
  2007. <example file="sysutex/ex56"/>
  2008. </element>
  2009. <element name="AnsiStrLIComp">
  2010. <short>Compares a given number of characters of a string, case insensitive.</short>
  2011. <descr>
  2012. <p>
  2013. <var>AnsiStrLIComp</var> compares the first <var>Maxlen</var> characters of
  2014. 2 <var>PChar</var> strings, <var>S1</var> and <var>S2</var>, and returns the following
  2015. result:
  2016. </p>
  2017. <dl>
  2018. <dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
  2019. <dt>0</dt><dd> if <var>S1=S2</var>.</dd>
  2020. <dt>&gt;0</dt><dd> if <var>S1&gt;S2</var>.</dd>
  2021. </dl>
  2022. <p>
  2023. The comparision of the two strings is case-insensitive.
  2024. The function does not yet take internationalization settings into account.
  2025. </p>
  2026. </descr>
  2027. <errors>
  2028. None.
  2029. </errors>
  2030. <seealso>
  2031. <link id="AnsiCompareText"/>
  2032. <link id="AnsiCompareStr"/>
  2033. </seealso>
  2034. <example file="sysutex/ex57"/>
  2035. </element>
  2036. <element name="AnsiStrLower">
  2037. <short>Convert a null-terminated string to all-lowercase characters.</short>
  2038. <descr>
  2039. <p>
  2040. <var>AnsiStrLower</var> converts the PChar <var>Str</var> to lowercase characters
  2041. and returns the resulting pchar. Note that <var>Str</var> itself is modified,
  2042. not a copy, as in the case of <link id="AnsiLowerCase"/>.
  2043. It takes into account the operating system language
  2044. settings when doing this, so special characters are converted correctly as
  2045. well.
  2046. </p>
  2047. <remark>
  2048. On unix, no language setting is taken in account yet.
  2049. </remark>
  2050. </descr>
  2051. <errors>
  2052. None.
  2053. </errors>
  2054. <seealso>
  2055. <link id="AnsiStrUpper"/>
  2056. <link id="AnsiLowerCase"/>
  2057. </seealso>
  2058. <example file="sysutex/ex59"/>
  2059. </element>
  2060. <element name="AnsiStrUpper">
  2061. <short>Convert a null-terminated string to all-uppercase characters.</short>
  2062. <descr>
  2063. <p>
  2064. <var>AnsiStrUpper</var> converts the <var>PChar</var> <var>Str</var> to uppercase characters
  2065. and returns the resulting string. Note that <var>Str</var> itself is modified,
  2066. not a copy, as in the case of <link id="AnsiUpperCase"/>.
  2067. It takes into account the operating system language
  2068. settings when doing this, so special characters are converted correctly as
  2069. well.
  2070. </p>
  2071. <remark> On linux, no language setting is taken in account yet.
  2072. </remark>
  2073. </descr>
  2074. <errors>
  2075. None.
  2076. </errors>
  2077. <seealso>
  2078. <link id="AnsiUpperCase"/>
  2079. <link id="AnsiStrLower"/>
  2080. <link id="AnsiLowerCase"/>
  2081. </seealso>
  2082. <example file="sysutex/ex60"/>
  2083. </element>
  2084. <element name="AnsiUpperCase">
  2085. <short>Return an uppercase version of a string, taking into account special
  2086. characters.</short>
  2087. <descr>
  2088. <p>
  2089. <var>AnsiUpperCase</var> converts the string <var>S</var> to uppercase characters
  2090. and returns the resulting string.
  2091. It takes into account the operating system language
  2092. settings when doing this, so special characters are converted correctly as
  2093. well.
  2094. </p>
  2095. <remark>
  2096. On linux, no language setting is taken in account yet.
  2097. </remark>
  2098. </descr>
  2099. <errors>
  2100. None.
  2101. </errors>
  2102. <seealso>
  2103. <link id="AnsiStrUpper"/>
  2104. <link id="AnsiStrLower"/>
  2105. <link id="AnsiLowerCase"/>
  2106. </seealso>
  2107. <example file="sysutex/ex61"/>
  2108. </element>
  2109. <element name="AppendStr">
  2110. <short>Append one ansistring to another.</short>
  2111. <descr>
  2112. <p>
  2113. <var>AppendStr</var> appends <var>S</var> to Dest.
  2114. </p>
  2115. <p>
  2116. This function is provided for Delphi
  2117. compatibility only, since it is completely equivalent to <var>Dest:=Dest+S</var>.
  2118. </p>
  2119. </descr>
  2120. <errors>
  2121. None.
  2122. </errors>
  2123. <seealso>
  2124. <link id="AssignStr"/>
  2125. <link id="NewStr"/>
  2126. <link id="DisposeStr"/>
  2127. </seealso>
  2128. <example file="sysutex/ex62"/>
  2129. </element>
  2130. <element name="AssignStr">
  2131. <short>Assigns an ansistring to a null-terminated string.</short>
  2132. <descr>
  2133. <p>
  2134. <var>AssignStr</var> allocates <var>S</var> to <var>P</var>. The old value of <var>P</var> is
  2135. disposed of.
  2136. </p>
  2137. <p>
  2138. This function is provided for Delphi compatibility only. <var>AnsiStrings</var>
  2139. are managed on the heap and should be preferred to the mechanism of
  2140. dynamically allocated strings.
  2141. </p>
  2142. </descr>
  2143. <errors>
  2144. None.
  2145. </errors>
  2146. <seealso>
  2147. <link id="NewStr"/>
  2148. <link id="AppendStr"/>
  2149. <link id="DisposeStr"/>
  2150. </seealso>
  2151. <example file="sysutex/ex63"/>
  2152. </element>
  2153. <element name="BCDToInt">
  2154. <short>Convert a BCD coded integer to a normal integer.</short>
  2155. <descr>
  2156. <var>BCDToInt</var> converts a <var>BCD</var> coded integer to a normal integer.
  2157. </descr>
  2158. <errors>
  2159. None.
  2160. </errors>
  2161. <seealso>
  2162. <link id="StrToInt"/>
  2163. <link id="IntToStr"/>
  2164. </seealso>
  2165. <example file="sysutex/ex64"/>
  2166. </element>
  2167. <element name="CompareMem">
  2168. <short>Compare two memory areas.</short>
  2169. <descr>
  2170. <p>
  2171. <var>CompareMem</var> compares, byte by byte, 2 memory areas pointed
  2172. to by <var>P1</var> and <var>P2</var>, for a length of <var>L</var> bytes.
  2173. </p>
  2174. <p>
  2175. It returns the following values:
  2176. </p>
  2177. <dl>
  2178. <dt>&lt;0</dt><dd> if at some position the byte at <var>P1</var> is less than the byte at the
  2179. same postion at <var>P2</var>.
  2180. </dd>
  2181. <dt>0</dt><dd> if all <var>L</var> bytes are the same.</dd>
  2182. <dt>&gt;0</dt><dd>if at some position the byte at <var>P1</var> is greater than the
  2183. byte at the same postion at <var>P2</var>.</dd>
  2184. </dl>
  2185. </descr>
  2186. <errors>
  2187. </errors>
  2188. <seealso>
  2189. </seealso>
  2190. </element>
  2191. <element name="CompareStr">
  2192. <short>Compare 2 ansistrings case-sensitively, ignoring special characters.</short>
  2193. <descr>
  2194. <p>
  2195. <var>CompareStr</var> compares two strings, <var>S1</var> and <var>S2</var>,
  2196. and returns the following
  2197. result:
  2198. </p>
  2199. <dl>
  2200. <dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
  2201. <dt>0</dt><dd> if <var>S1=S2</var>.</dd>
  2202. <dt>&gt;0</dt><dd> if <var>S1&gt;S2</var>.</dd>
  2203. </dl>
  2204. <p>
  2205. The comparision of the two strings is case-sensitive.
  2206. The function does not take internationalization settings into account, it
  2207. simply compares ASCII values.
  2208. </p>
  2209. </descr>
  2210. <errors>
  2211. None.
  2212. </errors>
  2213. <seealso>
  2214. <link id="AnsiCompareText"/>
  2215. <link id="AnsiCompareStr"/>
  2216. <link id="CompareText"/>
  2217. </seealso>
  2218. <example file="sysutex/ex65"/>
  2219. </element>
  2220. <element name="CompareText">
  2221. <short>Compare 2 ansistrings case insensitive.</short>
  2222. <descr>
  2223. <p>
  2224. <var>CompareText</var> compares two strings, <var>S1</var> and <var>S2</var>,
  2225. and returns the following
  2226. result:
  2227. </p>
  2228. <dl>
  2229. <dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
  2230. <dt>0</dt><dd> if <var>S1=S2</var>.</dd>
  2231. <dt>&gt;0</dt><dd> if <var>S1&gt;S2</var>.</dd>
  2232. </dl>
  2233. <p>
  2234. The comparision of the two strings is case-insensitive.
  2235. The function does not take internationalization settings into account, it
  2236. simply compares ASCII values.
  2237. </p>
  2238. </descr>
  2239. <errors>
  2240. None.
  2241. </errors>
  2242. <seealso>
  2243. <link id="AnsiCompareText"/>
  2244. <link id="AnsiCompareStr"/>
  2245. <link id="CompareStr"/>
  2246. </seealso>
  2247. <example file="sysutex/ex66"/>
  2248. </element>
  2249. <element name="DisposeStr">
  2250. <short>Dispose an ansistring from the heap.</short>
  2251. <descr>
  2252. <p>
  2253. <var>DisposeStr</var> removes the dynamically allocated string <var>S</var> from the
  2254. heap, and releases the occupied memory.
  2255. </p>
  2256. <p>
  2257. This function is provided for Delphi compatibility only. <var>AnsiStrings</var>
  2258. are managed on the heap and should be preferred to the mechanism of
  2259. dynamically allocated strings.
  2260. </p>
  2261. <p>
  2262. For an example, see <link id="DisposeStr"/>.
  2263. </p>
  2264. </descr>
  2265. <errors>
  2266. None.
  2267. </errors>
  2268. <seealso>
  2269. <link id="NewStr"/>
  2270. <link id="AppendStr"/>
  2271. <link id="AssignStr"/>
  2272. </seealso>
  2273. </element>
  2274. <element name="FloatToStr">
  2275. <short>Convert a float value to a string using a fixed format.</short>
  2276. <descr>
  2277. <p>
  2278. <var>FloatToStr</var> converts the floating point variable <var>Value</var> to a
  2279. string representation. It will choose the shortest possible notation of the
  2280. two following formats:
  2281. </p>
  2282. <dl>
  2283. <dt>Fixed format</dt><dd> will represent the string in fixed notation,
  2284. </dd><dt>Decimal format</dt><dd> will represent the string in scientific
  2285. notation.</dd>
  2286. </dl>
  2287. <p>
  2288. More information on these formats can be found in <link id="FloatToStrF"/>.
  2289. <var>FloatToStr</var> is completely equivalent to the following call:
  2290. </p>
  2291. <code>
  2292. FloatToStrF(Value, ffGeneral,15, 0);
  2293. </code>
  2294. </descr>
  2295. <errors>
  2296. None.
  2297. </errors>
  2298. <seealso>
  2299. <link id="FloatToStrF"/>
  2300. <link id="FormatFloat"/>
  2301. <link id="StrToFloat"/>
  2302. </seealso>
  2303. <example file="sysutex/ex67"/>
  2304. </element>
  2305. <element name="FloatToStrF">
  2306. <short>Convert a float value to a string using a given format.</short>
  2307. <descr>
  2308. <p>
  2309. <var>FloatToStrF</var> converts the floating point number <var>value</var> to a string
  2310. representation, according to the settings of the parameters <var>Format</var>,
  2311. <var>Precision</var> and <var>Digits</var>.
  2312. </p>
  2313. <p>
  2314. The meaning of the <var>Precision</var> and <var>Digits</var> parameter depends on the
  2315. <var>Format</var> parameter. The format is controlled mainly by the <var>Format</var>
  2316. parameter. It can have one of the following values:
  2317. </p>
  2318. <dl>
  2319. <dt>ffcurrency</dt>
  2320. <dd> Money format. <var>Value</var> is converted to a string using
  2321. the global variables <var>CurrencyString</var>, <var>CurrencyFormat</var> and
  2322. <var>NegCurrencyFormat</var>. The <var>Digits</var> paramater specifies the number of digits
  2323. following the decimal point and should be in the range -1 to 18. If Digits
  2324. equals <var>-1</var>, <var>CurrencyDecimals</var> is assumed. The <var>Precision</var> parameter is ignored.
  2325. </dd>
  2326. <dt>ffExponent</dt>
  2327. <dd> Scientific format. <var>Value</var> is converted to a
  2328. string using scientific notation: 1 digit before the decimal point, possibly
  2329. preceded by a minus sign if <var>Value</var> is negative. The number of
  2330. digits after the decimal point is controlled by <var>Precision</var> and must lie
  2331. in the range 0 to 15.
  2332. </dd>
  2333. <dt>ffFixed</dt>
  2334. <dd> Fixed point format. <var>Value</var> is converted to a string
  2335. using fixed point notation. The result is composed of all digits of the
  2336. integer part of <var>Value</var>, preceded by a minus sign if <var>Value</var> is
  2337. negative. Following the integer part is <var>DecimalSeparator</var> and then the
  2338. fractional part of <var>Value</var>, rounded off to <var>Digits</var> numbers.
  2339. If the number is too large then the result will be in scientific notation.
  2340. </dd>
  2341. <dt>ffGeneral</dt>
  2342. <dd> General number format. The argument is converted to a
  2343. string using <var>ffExponent</var> or <var>ffFixed</var> format, depending on wich one
  2344. gives the shortest string. There will be no trailing zeroes. If <var>Value</var>
  2345. is less than <var>0.00001</var> or if the number of decimals left of the decimal
  2346. point is larger than <var>Precision</var> then scientific notation is used, and
  2347. <var>Digits</var> is the minimum number of digits in the exponent. Otherwise
  2348. <var>Digits</var> is ignored.
  2349. </dd>
  2350. <dt>ffnumber</dt>
  2351. <dd> Is the same as <var>ffFixed</var>, except that thousand separators
  2352. are inserted in the resultig string.
  2353. </dd>
  2354. </dl>
  2355. </descr>
  2356. <errors>
  2357. None.
  2358. </errors>
  2359. <seealso>
  2360. <link id="FloatToStr"/>
  2361. <link id="FloatToText"/>
  2362. </seealso>
  2363. <example file="sysutex/ex68"/>
  2364. </element>
  2365. <element name="FloatToText">
  2366. <short>Return a string representation of a float, with a given format.</short>
  2367. <descr>
  2368. <p>
  2369. <var>FloatToText</var> converts the floating point variable <var>Value</var> to a
  2370. string representation and stores it in <var>Buffer</var>. The conversion is
  2371. governed by <var>format</var>, <var>Precisison</var> and <var>Digits</var>.
  2372. more information on these parameters can be found in <link id="FloatToStrF"/>.
  2373. <var>Buffer</var> should point to enough space to hold the result. No checking on
  2374. this is performed.
  2375. </p>
  2376. <p>
  2377. The result is the number of characters that was copied in <var>Buffer</var>.
  2378. </p>
  2379. </descr>
  2380. <errors>
  2381. None.
  2382. </errors>
  2383. <seealso>
  2384. <link id="FloatToStr"/>
  2385. <link id="FloatToStrF"/>
  2386. </seealso>
  2387. <example file="sysutex/ex69"/>
  2388. </element>
  2389. <element name="FmtStr">
  2390. <short>Format a string with given arguments.</short>
  2391. <descr>
  2392. <var>FmtStr</var> calls <link id="Format"/> with <var>Fmt</var> and <var>Args</var> as arguments,
  2393. and stores the result in <var>Res</var>. For more information on how the
  2394. resulting string is composed, see <link id="Format"/>.
  2395. </descr>
  2396. <errors>
  2397. In case of error, a <var>EConvertError</var> exception is raised.
  2398. </errors>
  2399. <seealso>
  2400. <link id="Format"/>
  2401. <link id="FormatBuf"/>.
  2402. </seealso>
  2403. <example file="sysutex/ex70"/>
  2404. </element>
  2405. <element name="Format">
  2406. <short>Format a string with given arguments.</short>
  2407. <descr>
  2408. <p>
  2409. Format replaces all placeholders in<var>Fmt</var> with the arguments passed in
  2410. <var>Args</var> and returns the resulting string. A placeholder looks as follows:
  2411. </p>
  2412. <code>
  2413. '%' [Index':'] ['-'] [Width] ['.' Precision] ArgType
  2414. </code>
  2415. <p>
  2416. elements between single quotes must be typed as shown without the quotes,
  2417. and elements between square brackets <var>[ ]</var> are optional. The meaning
  2418. of the different elements is shown below:
  2419. </p>
  2420. <dl>
  2421. <dt>'%'</dt>
  2422. <dd> starts the placeholder. If you want to insert a literal
  2423. <var>%</var> character, then you must insert two of them : <var>%%</var>.
  2424. </dd>
  2425. <dt>Index ':'</dt>
  2426. <dd> takes the <var>Index</var>-th element in the argument array
  2427. as the element to insert.
  2428. </dd>
  2429. <dt>'-'</dt>
  2430. <dd> tells <var>Format</var> to left-align the inserted text. The default
  2431. behaviour is to right-align inserted text. This can only take effect if the
  2432. <var>Width</var> element is also specified.
  2433. </dd>
  2434. <dt>Width</dt>
  2435. <dd> the inserted string must have at least have <var>Width</var>
  2436. characters. If not, the inserted string will be padded with spaces. By
  2437. default, the string is left-padded, resulting in a right-aligned string.
  2438. This behaviour can be changed by the <var>'-'</var> character.
  2439. </dd>
  2440. <dt>'.' Precision</dt>
  2441. <dd> Indicates the precision to be used when converting
  2442. the argument. The exact meaning of this parameter depends on <var>ArgType</var>.
  2443. </dd>
  2444. </dl>
  2445. <p>
  2446. The <var>Index</var>, <var>Width</var> and <var>Precision</var> parameters can be replaced
  2447. by <var>*</var>, in which case their value will be read from the next element in
  2448. the <var>Args</var> array. This value must be an integer, or an
  2449. <var>EConvertError</var> exception will be raised.
  2450. </p>
  2451. <p>
  2452. The argument type is determined from <var>ArgType</var>. It can have one of the
  2453. following values (case insensitive):
  2454. </p>
  2455. <dl>
  2456. <dt>D</dt>
  2457. <dd>
  2458. Decimal format. The next argument in the <var>Args</var> array should be
  2459. an integer. The argument is converted to a decimal string,. If precision is
  2460. specified, then the string will have at least <var>Precision</var> digits in it.
  2461. If needed, the string is (left) padded with zeroes.
  2462. </dd>
  2463. <dt>E</dt>
  2464. <dd>
  2465. <p>
  2466. Scientific format. The next argument in the <var>Args</var> array should
  2467. be a Floating point value. The argument is converted to a decimal string
  2468. using scientific notation, using <link id="FloatToStrF"/>, where the optional
  2469. precision is used to specify the total number of decimals. (defalt a valueof
  2470. 15 is used). The exponent is formatted using maximally 3 digits.
  2471. </p>
  2472. <p>
  2473. In short, the <var>E</var> specifier formats it's argument as follows:
  2474. </p>
  2475. <code>
  2476. FloatToStrF(Argument,ffexponent,Precision,3)
  2477. </code>
  2478. </dd>
  2479. <dt>F</dt>
  2480. <dd>
  2481. <p>Fixed point format. The next argument in the <var>Args</var> array
  2482. should be a floating point value. The argument is converted to a
  2483. decimal string, using fixed notation (see <link id="FloatToStrF"/>).
  2484. <var>Precision</var> indicates the number of digits following the
  2485. decimal point.
  2486. </p>
  2487. <p>
  2488. In short, the <var>F</var> specifier formats it's argument as follows:
  2489. </p>
  2490. <code>
  2491. FloatToStrF(Argument,ffFixed,ffixed,9999,Precision)
  2492. </code>
  2493. </dd>
  2494. <dt>G</dt>
  2495. <dd>
  2496. <p>
  2497. General number format. The next argument in the <var>Args</var> array
  2498. should be a floating point value. The argument is converted to a decimal
  2499. string using fixed point notation or scientific notation, depending on which
  2500. gives the shortest result. <var>Precision</var> is used to determine the number
  2501. of digits after the decimal point.
  2502. </p>
  2503. <p>
  2504. In short, the <var>G</var> specifier formats it's argument as follows:
  2505. </p>
  2506. <code>
  2507. FloatToStrF(Argument,ffGeneral,Precision,3)
  2508. </code>
  2509. </dd>
  2510. <dt>M</dt>
  2511. <dd>
  2512. <p>Currency format. the next argument in the var{Args} array must
  2513. be a floating point value. The argument is converted to a decimal string
  2514. using currency notation. This means that fixed-point notation is used, but
  2515. that the currency symbol is appended. If precision is specified, then
  2516. then it overrides the <var>CurrencyDecimals</var> global variable used in the
  2517. <link id="FloatToStrF"/>
  2518. </p>
  2519. <p>
  2520. In short, the <var>M</var> specifier formats it's argument as follows:
  2521. </p>
  2522. <code>
  2523. FloatToStrF(Argument,ffCurrency,9999,Precision)
  2524. </code>
  2525. </dd>
  2526. <dt>N</dt>
  2527. <dd> Number format. This is the same as fixed point format, except that
  2528. thousand separators are inserted in the resulting string.
  2529. </dd>
  2530. <dt>P</dt>
  2531. <dd> Pointer format. The next argument in the <var>Args</var> array must be a
  2532. pointer (typed or untyped). The pointer value is converted to a string of
  2533. length 8, representing the hexadecimal value of the pointer.
  2534. </dd>
  2535. <dt>S</dt>
  2536. <dd> String format. The next argument in the <var>Args</var> array must be
  2537. a string. The argument is simply copied to the result string. If
  2538. <var>Precision</var> is specified, then only <var>Precision</var> characters are
  2539. copied to the result string.
  2540. </dd>
  2541. <dt>X</dt>
  2542. <dd> hexadecimal format. The next argument in the <var>Args</var> array must
  2543. be an integer. The argument is converted to a hexadecimal string with just
  2544. enough characters to contain the value of the integer. If <var>Precision</var>
  2545. is specified then the resulting hexadecimal representation will have at
  2546. least <var>Precision</var> characters in it (with a maximum value of 32).
  2547. </dd>
  2548. </dl>
  2549. </descr>
  2550. <errors>
  2551. <p>
  2552. In case of error, an <var>EConversionError</var> exception is raised. Possible
  2553. errors are:
  2554. </p>
  2555. <ol>
  2556. <li> Errors in the format specifiers.</li>
  2557. <li> The next argument is not of the type needed by a specifier.</li>
  2558. <li> The number of arguments is not sufficient for all format specifiers.</li>
  2559. </ol>
  2560. </errors>
  2561. <seealso>
  2562. <link id="FormatBuf"/>
  2563. </seealso>
  2564. <example file="sysutex/ex71"/>
  2565. </element>
  2566. <element name="FormatBuf">
  2567. <short>Format a string with given arguments and store the result in a buffer.</short>
  2568. <descr>
  2569. <var>FormatBuf</var> calls formatfloat with <var>Buf</var>.
  2570. </descr>
  2571. <errors>
  2572. </errors>
  2573. <seealso>
  2574. </seealso>
  2575. <example file="sysutex/ex72"/>
  2576. </element>
  2577. <element name="FormatFloat">
  2578. <short>Format a float according to a certain mask.</short>
  2579. <descr>
  2580. <p>
  2581. <var>FormatFloat</var> formats the floating-point value given by <var>Value</var> using
  2582. the format specifications in <var>Format</var>. The format specifier can give
  2583. format specifications for positive, negative or zero values (separated by
  2584. a semicolon).
  2585. </p>
  2586. <p>
  2587. If the formatspecifier is empty or the value needs more than 18 digits to
  2588. be correctly represented, the result is formatted with a call to
  2589. <link id="FloatToStrF"/> with the <var>ffGeneral</var> format option.
  2590. </p>
  2591. <p>
  2592. The following format specifiers are supported:
  2593. </p>
  2594. <dl>
  2595. <dt>0</dt>
  2596. <dd> is a digit place holder. If there is a corresponding digit in
  2597. the value being formatted, then it replaces the 0. If not, the 0 is left
  2598. as-is.
  2599. </dd>
  2600. <dt>#</dt>
  2601. <dd> is also a digit place holder. If there is a corresponding digit in
  2602. the value being formatted, then it replaces the #. If not, it is removed.
  2603. by a space.
  2604. </dd>
  2605. <dt>.</dt>
  2606. <dd> determines the location of the decimal point. Only the first '.'
  2607. character is taken into account. If the value contains digits after the
  2608. decimal point, then it is replaced by the value of the <var>DecimalSeparator</var>
  2609. character.
  2610. </dd>
  2611. <dt>,</dt>
  2612. <dd> determines the use of the thousand separator character in the
  2613. output string. If the format string contains one or more ',' charactes,
  2614. then thousand separators will be used. The <var>ThousandSeparator</var> character
  2615. is used.
  2616. </dd>
  2617. <dt>E+</dt>
  2618. <dd> determines the use of scientific notation. If 'E+' or 'E-' (or
  2619. their lowercase counterparts) are present then scientific notation is used.
  2620. The number of digits in the output string is determined by the number of
  2621. <var>0</var> characters after the '<var>E+</var>'
  2622. </dd>
  2623. <dt>;</dt>
  2624. <dd> This character separates sections for positive, negative, and zero numbers in the
  2625. format string.
  2626. </dd>
  2627. </dl>
  2628. </descr>
  2629. <errors>
  2630. If an error occurs, an exception is raised.
  2631. </errors>
  2632. <seealso>
  2633. <link id="FloatToStr"/>
  2634. </seealso>
  2635. <example file="sysutex/ex89"/>
  2636. </element>
  2637. <element name="IntToHex">
  2638. <short>Convert an integer value to a hexadecimal string.</short>
  2639. <descr>
  2640. <var>IntToHex</var> converts <var>Value</var> to a hexadecimal string
  2641. representation. The result will contain at least <var>Digits</var>
  2642. characters. If <var>Digits</var> is less than the needed number of characters,
  2643. the string will NOT be truncated. If <var>Digits</var> is larger than the needed
  2644. number of characters, the result is padded with zeroes.
  2645. </descr>
  2646. <errors>
  2647. None.
  2648. </errors>
  2649. <seealso>
  2650. <link id="IntToStr"/>, <var>StrToInt</var>
  2651. </seealso>
  2652. <example file="sysutex/ex73"/>
  2653. </element>
  2654. <element name="IntToStr">
  2655. <short>Convert an integer value to a decimal string.</short>
  2656. <descr>
  2657. <var>IntToStr</var> coverts <var>Value</var> to it's string representation.
  2658. The resulting string has only as much characters as needed to represent
  2659. the value. If the value is negative a minus sign is prepended to the
  2660. string.
  2661. </descr>
  2662. <errors>
  2663. None.
  2664. </errors>
  2665. <seealso>
  2666. <link id="IntToHex"/>
  2667. <link id="StrToInt"/>
  2668. </seealso>
  2669. <example file="sysutex/ex74"/>
  2670. </element>
  2671. <element name="IsValidIdent">
  2672. <short>Check whether a string is a valid identifier name.</short>
  2673. <descr>
  2674. <var>IsValidIdent</var> returns <var>True</var> if <var>Ident</var> can be used as a
  2675. compoent name. It returns <var>False</var> otherwise. <var>Ident</var> must consist of
  2676. a letter or underscore, followed by a combination of letters, numbers or
  2677. underscores to be a valid identifier.
  2678. </descr>
  2679. <errors>
  2680. None.
  2681. </errors>
  2682. <seealso>
  2683. </seealso>
  2684. <example file="sysutex/ex75"/>
  2685. </element>
  2686. <element name="LastDelimiter">
  2687. <short>Return the last occurrence of a set of delimiters in a string.</short>
  2688. <descr>
  2689. <var>LastDelimiter</var> returns the <em> last</em> occurrence of any character in
  2690. the set <var>Delimiters</var> in the string <var>S</var>.
  2691. </descr>
  2692. <errors>
  2693. </errors>
  2694. <seealso>
  2695. </seealso>
  2696. <example file="sysutex/ex88"/>
  2697. </element>
  2698. <element name="LeftStr">
  2699. <short>Return a number of characters starting at the left of a string.</short>
  2700. <descr>
  2701. <var>LeftStr</var> returns the <var>Count</var> leftmost characters of <var>S</var>.
  2702. It is equivalent to a call to <var>Copy(S,1,Count)</var>.
  2703. </descr>
  2704. <errors>
  2705. None.
  2706. </errors>
  2707. <seealso>
  2708. <link id="RightStr"/>
  2709. <link id="TrimLeft"/>
  2710. <link id="TrimRight"/>
  2711. <link id="Trim"/>
  2712. </seealso>
  2713. <example file="sysutex/ex76"/>
  2714. </element>
  2715. <element name="LoadStr">
  2716. <short>Load a string from the resource tables.</short>
  2717. <descr>
  2718. This function is not yet implemented. resources are not yet supported.
  2719. </descr>
  2720. <errors>
  2721. </errors>
  2722. <seealso>
  2723. </seealso>
  2724. </element>
  2725. <element name="LowerCase">
  2726. <short>Return a lowercase version of a string.</short>
  2727. <descr>
  2728. <var>LowerCase</var> returns the lowercase equivalent of <var>S</var>. Ansi characters
  2729. are not taken into account, only ASCII codes below 127 are converted. It is
  2730. completely equivalent to the lowercase function of the system unit, and is
  2731. provided for compatiibility only.
  2732. </descr>
  2733. <errors>
  2734. None.
  2735. </errors>
  2736. <seealso>
  2737. <link id="AnsiLowerCase"/>
  2738. <link id="UpperCase"/>
  2739. <link id="AnsiUpperCase"/>
  2740. </seealso>
  2741. <example file="sysutex/ex77"/>
  2742. </element>
  2743. <element name="NewStr">
  2744. <short>Allocate a new ansistring on the heap.</short>
  2745. <descr>
  2746. <p>
  2747. <var>NewStr</var> assigns a new dynamic string on the heap, copies <var>S</var> into
  2748. it, and returns a pointer to the newly assigned string.
  2749. </p>
  2750. <p>
  2751. This function is obsolete, and shouldn't be used any more. The
  2752. <var>AnsiString</var> mechanism also allocates ansistrings on the heap, and
  2753. should be preferred over this mechanism.
  2754. </p>
  2755. <p>
  2756. For an example, see <link id="AssignStr"/>.
  2757. </p>
  2758. </descr>
  2759. <errors>
  2760. If not enough memory is present, an EOutOfMemory exception will be raised.
  2761. </errors>
  2762. <seealso>
  2763. <link id="AssignStr"/>
  2764. <link id="DisposeStr"/>
  2765. </seealso>
  2766. </element>
  2767. <element name="QuotedStr">
  2768. <short>Return a quotes version of a string.</short>
  2769. <descr>
  2770. <var>QuotedStr</var> returns the string <var>S</var>, quoted with single quotes. This means
  2771. that <var>S</var> is enclosed in single quotes, and every single quote in <var>S</var>
  2772. is doubled. It is equivalent to a call to <var>AnsiQuotedStr(s, '''')</var>.
  2773. </descr>
  2774. <errors>
  2775. None.
  2776. </errors>
  2777. <seealso>
  2778. <link id="AnsiQuotedStr"/>
  2779. <link id="AnsiExtractQuotedStr"/>.
  2780. </seealso>
  2781. <example file="sysutex/ex78"/>
  2782. </element>
  2783. <element name="RightStr">
  2784. <short>Return a number of characters from a string, starting at the end.</short>
  2785. <descr>
  2786. <p>
  2787. <var>RightStr</var> returns the <var>Count</var> rightmost characters of <var>S</var>.
  2788. It is equivalent to a call to <var>Copy(S,Length(S)+1-Count,Count)</var>.
  2789. </p>
  2790. <p>
  2791. If <var>Count</var> is larger than the actual length of <var>S</var> only the real
  2792. length will be used.
  2793. </p>
  2794. </descr>
  2795. <errors>
  2796. None.
  2797. </errors>
  2798. <seealso>
  2799. <link id="LeftStr"/>
  2800. <link id="Trim"/>
  2801. <link id="TrimLeft"/>
  2802. <link id="TrimRight"/>
  2803. </seealso>
  2804. <example file="sysutex/ex79"/>
  2805. </element>
  2806. <element name="StrFmt">
  2807. <short>Format a string with given arguments, store the result in a buffer.</short>
  2808. <descr>
  2809. <var>StrFmt</var> will format <var>fmt</var> with <var>Args</var>, as the <link id="Format"/>
  2810. function does, and it will store the result in <var>Buffer</var>. The function
  2811. returns <var>Buffer</var>. <var>Buffer</var> should point to enough space to contain
  2812. the whole result.
  2813. </descr>
  2814. <errors>
  2815. for a list of errors, see <link id="Format"/>.
  2816. </errors>
  2817. <seealso>
  2818. <link id="StrLFmt"/>
  2819. <link id="FmtStr"/>
  2820. <link id="Format"/>
  2821. <link id="FormatBuf"/>
  2822. </seealso>
  2823. <example file="sysutex/ex80"/>
  2824. </element>
  2825. <element name="StrLFmt">
  2826. <short>Format a string with given arguments, but with limited length.</short>
  2827. <descr>
  2828. <var>StrLFmt</var> will format <var>fmt</var> with <var>Args</var>, as the <link id="Format"/>
  2829. function does, and it will store maximally <var>Maxlen characters</var> of the
  2830. result in <var>Buffer</var>. The function returns <var>Buffer</var>. <var>Buffer</var>
  2831. should point to enough space to contain <var>MaxLen</var> characters.
  2832. </descr>
  2833. <errors>
  2834. for a list of errors, see <link id="Format"/>.
  2835. </errors>
  2836. <seealso>
  2837. <link id="StrFmt"/>
  2838. <link id="FmtStr"/>
  2839. <link id="Format"/>
  2840. <link id="FormatBuf"/>
  2841. </seealso>
  2842. <example file="sysutex/ex81"/>
  2843. </element>
  2844. <element name="StrToFloat">
  2845. <short>Convert a string to a floating-point value.</short>
  2846. <descr>
  2847. <var>StrToFloat</var> converts the string <var>S</var> to a floating point value.
  2848. <var>S</var> should contain a valid stroing representation of a floating point
  2849. value (either in decimal or scientific notation). If the string
  2850. contains a decimal value, then the decimal separator character can either be
  2851. a '.' or the value of the <var>DecimalSeparator</var> variable.
  2852. </descr>
  2853. <errors>
  2854. If the string <var>S</var> doesn't contain a valid floating point string, then an
  2855. exception will be raised.
  2856. </errors>
  2857. <seealso>
  2858. <link id="TextToFloat"/>
  2859. <link id="FloatToStr"/>
  2860. <link id="FormatFloat"/>
  2861. <link id="StrToInt"/>
  2862. </seealso>
  2863. <example file="sysutex/ex90"/>
  2864. </element>
  2865. <element name="StrToInt">
  2866. <short>Convert a string to an integer value.</short>
  2867. <descr>
  2868. <p>
  2869. <var>StrToInt</var> will convert the string <var>S</var>to an integer.
  2870. If the string contains invalid characters or has an invalid format,
  2871. then an <var>EConvertError</var> is raised.
  2872. </p>
  2873. <p>
  2874. To be successfully converted, a string can contain a combination
  2875. of <var>numerical</var> characters, possibly preceded by a minus sign (<var>-</var>).
  2876. Spaces are not allowed.
  2877. </p>
  2878. </descr>
  2879. <errors>
  2880. In case of error, an <var>EConvertError</var> is raised.
  2881. </errors>
  2882. <seealso>
  2883. <link id="IntToStr"/>
  2884. <link id="StrToIntDef"/>
  2885. </seealso>
  2886. <example file="sysutex/ex82"/>
  2887. </element>
  2888. <element name="StrToIntDef">
  2889. <short>Convert a string to an integer value, with a default value.</short>
  2890. <descr>
  2891. <p>
  2892. <var>StrToIntDef</var> will convert a string to an integer. If the string contains
  2893. invalid characters or has an invalid format, then <var>Default</var> is returned.
  2894. </p>
  2895. <p>
  2896. To be successfully converted, a string can contain a combination of
  2897. <var>numerical</var> characters, possibly preceded by a minus sign (<var>-</var>).
  2898. Spaces are not allowed.
  2899. </p>
  2900. </descr>
  2901. <errors>
  2902. None.
  2903. </errors>
  2904. <seealso>
  2905. <link id="IntToStr"/>
  2906. <link id="StrToInt"/>
  2907. </seealso>
  2908. <example file="sysutex/ex83"/>
  2909. </element>
  2910. <element name="TextToFloat">
  2911. <short>Convert a buffer to a float value.</short>
  2912. <descr>
  2913. <p>
  2914. <var>TextToFloat</var> converts the string in <var>Buffer</var> to a floating point
  2915. value. <var>Buffer</var> should contain a valid stroing representation of a
  2916. floating point value (either in decimal or scientific notation).
  2917. If the buffer contains a decimal value, then the decimal separator
  2918. character can either be a '.' or the value of the <var>DecimalSeparator</var>
  2919. variable.
  2920. </p>
  2921. <p>
  2922. The function returns <var>True</var> if the conversion was successful.
  2923. </p>
  2924. </descr>
  2925. <errors>
  2926. If there is an invalid character in the buffer, then the function returns
  2927. <var>False</var>
  2928. </errors>
  2929. <seealso>
  2930. <link id="StrToFloat"/>
  2931. <link id="FloatToStr"/>
  2932. <link id="FormatFloat"/>
  2933. </seealso>
  2934. <example file="sysutex/ex91"/>
  2935. </element>
  2936. <element name="Trim">
  2937. <short>Trim whitespace from the ends of a string.</short>
  2938. <descr>
  2939. <p>
  2940. <var>Trim</var> strips blank characters (spaces) at the beginning and end of <var>S</var>
  2941. and returns the resulting string. Only <var>#32</var> characters are stripped.
  2942. </p>
  2943. <p>
  2944. If the string contains only spaces, an empty string is returned.
  2945. </p>
  2946. </descr>
  2947. <errors>
  2948. None.
  2949. </errors>
  2950. <seealso>
  2951. <link id="TrimLeft"/>
  2952. <link id="TrimRight"/>
  2953. </seealso>
  2954. <example file="sysutex/ex84"/>
  2955. </element>
  2956. <element name="TrimLeft">
  2957. <short>Trim whitespace from the beginning of a string.</short>
  2958. <descr>
  2959. <var>TrimLeft</var> strips blank characters (spaces) at the beginning of <var>S</var>
  2960. and returns the resulting string. Only <var>#32</var> characters are stripped.
  2961. If the string contains only spaces, an empty string is returned.
  2962. </descr>
  2963. <errors>
  2964. None.
  2965. </errors>
  2966. <seealso>
  2967. <link id="Trim"/>
  2968. <link id="TrimRight"/>
  2969. </seealso>
  2970. <example file="sysutex/ex85"/>
  2971. </element>
  2972. <element name="TrimRight">
  2973. <short>Trim whitespace from the end of a string.</short>
  2974. <descr>
  2975. <var>Trim</var> strips blank characters (spaces) at the end of <var>S</var>
  2976. and returns the resulting string. Only <var>#32</var> characters are stripped.
  2977. If the string contains only spaces, an empty string is returned.
  2978. </descr>
  2979. <errors>
  2980. None.
  2981. </errors>
  2982. <seealso>
  2983. <link id="Trim"/>
  2984. <link id="TrimLeft"/>
  2985. </seealso>
  2986. <example file="sysutex/ex86"/>
  2987. </element>
  2988. <element name="UpperCase">
  2989. <short>Return an uppercase version of a string.</short>
  2990. <descr>
  2991. <var>UpperCase</var> returns the uppercase equivalent of <var>S</var>. Ansi characters
  2992. are not taken into account, only ASCII codes below 127 are converted. It is
  2993. completely equivalent to the <var>UpCase</var> function of the system unit, and is
  2994. provided for compatiibility only.
  2995. </descr>
  2996. <errors>
  2997. None.
  2998. </errors>
  2999. <seealso>
  3000. <link id="AnsiLowerCase"/>
  3001. <link id="LowerCase"/>
  3002. <link id="AnsiUpperCase"/>
  3003. </seealso>
  3004. <example file="sysutex/ex87"/>
  3005. </element>
  3006. <element name="Unix">
  3007. <short>Unix unit.</short>
  3008. </element>
  3009. <element name="errors">
  3010. <short>Error descriptions.</short>
  3011. </element>
  3012. <element name="sysconst">
  3013. <short>Error and other message strings.</short>
  3014. </element>
  3015. <element name="GetLastOSError">
  3016. <short>Return the last code from the OS.</short>
  3017. <descr>
  3018. <p>
  3019. <var>GetLastOSError</var> returns the error code from the last operating
  3020. system call. It does not reset this code. In general, it should be called
  3021. when an operating system call reported an error condition. In that case,
  3022. <var>GetLastOSError</var> gives extended information about the error.
  3023. </p>
  3024. <p>
  3025. No assumptions should be made about the resetting of the error code by
  3026. subsequent OS calls. This may be platform dependent.
  3027. </p>
  3028. </descr>
  3029. <seealso>
  3030. <link id="RaiseLastOSError"/>
  3031. </seealso>
  3032. </element>
  3033. <!-- procedure Visibility: default -->
  3034. <element name="RaiseLastOSError">
  3035. <short>Raise an exception with the last Operating System error code.</short>
  3036. <descr>
  3037. <var>RaiseLastOSError</var> raises an <link id="EOSError"/> exception with
  3038. the error code returned by <var>GetLastOSError</var>. If the Error code is
  3039. nonzero, then the corresponding error message will be returned. If the error
  3040. code is zero, a standard message will be returned.
  3041. </descr>
  3042. <errors>
  3043. This procedure may not be implemented on all platforms. If it is not, then a
  3044. normal <link id="Exception"/> will be raised.
  3045. </errors>
  3046. <seealso>
  3047. <link id="EOSError"/>
  3048. <link id="GetLastOSError"/>
  3049. <link id="Exception"/>
  3050. </seealso>
  3051. </element>
  3052. <!-- function Visibility: default -->
  3053. <element name="GetEnvironmentVariable">
  3054. <short>Return the value of an environment variable.</short>
  3055. <descr>
  3056. <p>
  3057. <var>GetEnvironmentVariable</var> returns the value of the <var>EnvVar</var>
  3058. environment variable. If the specified variable does not exist or
  3059. <var>EnvVar</var> is empty, an empty string is returned.
  3060. </p>
  3061. </descr>
  3062. <seealso>
  3063. <link id="GetEnvironmentString"/>
  3064. <link id="GetEnvironmentVariableCount"/>
  3065. <example file="sysutex/ex93"/>
  3066. </seealso>
  3067. </element>
  3068. <!-- function Visibility: default -->
  3069. <element name="GetEnvironmentVariableCount">
  3070. <short>Return the number of variables in the environment.</short>
  3071. <descr>
  3072. <p>
  3073. <var>GetEnvironmentVariableCount</var> returns the number of variables in
  3074. the environment. The number is 1 based, but the result may be zero if there
  3075. are no environment variables.
  3076. </p>
  3077. </descr>
  3078. <errors>
  3079. If there is no environment, -1 may be returned.
  3080. </errors>
  3081. <seealso>
  3082. <link id="GetEnvironmentString"/>
  3083. <link id="GetEnvironmentVariable"/>
  3084. </seealso>
  3085. <example file="sysutex/ex92"/>
  3086. </element>
  3087. <element name="GetEnvironmentString">
  3088. <short>Return an environment variable by index.</short>
  3089. <descr>
  3090. <p>
  3091. <var>GetEnvironmentString</var> returns the <var>Index</var>-th environment
  3092. variable. The index is 1 based, and is bounded from above by the result of <link
  3093. id="GetEnvironmentVariableCount"/>.
  3094. </p>
  3095. <p>
  3096. For an example, <link id="GetEnvironmentVariableCount"/>.
  3097. </p>
  3098. </descr>
  3099. <errors>
  3100. If there is no environment, -1 may be returned.
  3101. </errors>
  3102. <seealso>
  3103. <link id="GetEnvironmentVariable"/>
  3104. <link id="GetEnvironmentVariableCount"/>
  3105. </seealso>
  3106. </element>
  3107. <!-- procedure Visibility: default -->
  3108. <element name="Sleep">
  3109. <short>Suspend execution of a program for a certain time.</short>
  3110. <descr>
  3111. <p>
  3112. <var>Sleep</var> suspends the execution of the program for
  3113. the specified number of milliseconds (<var>milliseconds</var>).
  3114. After the specified period has expired, program execution resumes.
  3115. </p>
  3116. <remark>The indicated time is not exact, i.e. it is a minimum time. No
  3117. guarantees are made as to the exact duration of the suspension.
  3118. </remark>
  3119. </descr>
  3120. </element>
  3121. <!-- function Visibility: default -->
  3122. <element name="ExecuteProcess">
  3123. <short>Execute another process (program).</short>
  3124. <descr>
  3125. <var>ExecuteProcess</var> will execute the program in <var>Path</var>,
  3126. passing it the arguments in <var>ComLine</var>. <var>ExecuteProcess</var>
  3127. will then wait for the program to finish, and will return the exit code of
  3128. the executed program. In case <var>ComLine</var> is a single string, it will
  3129. be split out in an array of strings, taking into account common whitespace
  3130. and quote rules.
  3131. </descr>
  3132. <errors>
  3133. In case the program could not be executed or an other error occurs,
  3134. an <link id="EOSError"/> exception will be raised.
  3135. </errors>
  3136. <seealso>
  3137. <link id="EOSError"/>
  3138. </seealso>
  3139. </element>
  3140. <!-- function Visibility: default -->
  3141. <element name="GetAppConfigDir">
  3142. <short>Return the appropriate directory for the application's configuration files.</short>
  3143. <descr>
  3144. <p>
  3145. <var>GetAppConfigDir</var> returns the name of a directory in which the
  3146. application should store its configuration files on the current OS.
  3147. If the parameter <var>Global</var> is <var>True</var> then the directory
  3148. returned is a global
  3149. directory, i.e. valid for all users on the system. If the parameter
  3150. <var>Global</var> is false, then the directory is specific for the user who
  3151. is executing the program. On systems that do not support multi-user
  3152. environments, these two directories may be the same.
  3153. </p>
  3154. <p>
  3155. The directory which is returned is the name of the directory where the application is
  3156. supposed to store files. This does not mean that the directory exists, or
  3157. that the user can write in this directory (especially if
  3158. <var>Global</var>=<var>True</var>). It just returns the name of the
  3159. appropriate location.
  3160. </p>
  3161. <p>
  3162. On systems where the operating system provides a call to determine this
  3163. location, this call will be used. On systems where there is no such call,
  3164. an algorithm is used which reflects common practice on that system.
  3165. </p>
  3166. <p>
  3167. The application name is deduced from the binary name via the <link id="ApplicationName"/>
  3168. call, but can be configured by means of the <link id="OnGetApplicationName"/> callback.
  3169. </p>
  3170. </descr>
  3171. <errors>
  3172. None.
  3173. </errors>
  3174. <seealso>
  3175. <link id="GetAppConfigFile"/>
  3176. <link id="ApplicationName"/>
  3177. <link id="OnGetApplicationName"/>
  3178. <link id="CreateDir"/>
  3179. <link id="SysConfigDir"/>
  3180. </seealso>
  3181. </element>
  3182. <!-- function Visibility: default -->
  3183. <element name="GetAppConfigFile">
  3184. <short>Return an appropriate name for an application configuration file.</short>
  3185. <descr>
  3186. <p>
  3187. <var>GetAppConfigFile</var> returns the name of a file in which the
  3188. application can store its configuration parameters. The <var>Global</var>
  3189. parameter determines whether it is a global configuration file
  3190. (value <var>True</var>) or a personal configuration file (value
  3191. <var>False</var>). The parameter <var>SubDir</var>, in case it is set to
  3192. <var>True</var>, will insert the name of a
  3193. directory before the filename. This can be used in case the application
  3194. needs to store other data than configuration data in an application-specific
  3195. directory. Default behaviour is to set this to <var>False</var>.
  3196. </p>
  3197. <p>
  3198. No assumptions should be made about the existence or writeability of this
  3199. file, or the directory where the file should reside.
  3200. </p>
  3201. <p>
  3202. On systems where the operating system provides a call to determine the
  3203. location of configuration files, this call will be used. On systems
  3204. where there is no such call, an algorithm is used which reflects common
  3205. practice on that system.
  3206. </p>
  3207. <p>
  3208. The application name is deduced from the binary name via the <link id="ApplicationName"/>
  3209. call, but can be configured by means of the <link id="OnGetApplicationName"/> callback.
  3210. </p>
  3211. </descr>
  3212. <errors>
  3213. None.
  3214. </errors>
  3215. <seealso>
  3216. <link id="GetAppConfigDir"/>
  3217. <link id="OnGetApplicationName"/>
  3218. <link id="ApplicationName"/>
  3219. <link id="CreateDir"/>
  3220. <link id="ConfigExtension"/>
  3221. <link id="SysConfigDir"/>
  3222. </seealso>
  3223. </element>
  3224. <!-- function Visibility: default -->
  3225. <element name="ApplicationName">
  3226. <short>Return a default application name</short>
  3227. <descr>
  3228. <var>ApplicationName</var> returns the name of the current application.
  3229. Standard this is equal to the result of <var>ParamStr(0)</var>, but it can
  3230. be customized by setting the <link id="OnGetApplicationName"/> callback.
  3231. </descr>
  3232. <errors>
  3233. None.
  3234. </errors>
  3235. <seealso>
  3236. <link id="GetAppConfigDir"/>
  3237. <link id="OnGetApplicationName"/>
  3238. <link id="GetAppConfigFile"/>
  3239. <link id="ConfigExtension"/>
  3240. </seealso>
  3241. </element>
  3242. <!-- constant Visibility: default -->
  3243. <element name="ConfigExtension">
  3244. <short>Default application configuration file extension.</short>
  3245. <descr>
  3246. <var>ConfigExtension</var> is the default extension used by the
  3247. <link id="GetAppConfigFile"/> call. It can be set to any valid extension for
  3248. the current OS.
  3249. </descr>
  3250. <errors>
  3251. </errors>
  3252. <seealso>
  3253. </seealso>
  3254. </element>
  3255. <!-- constant Visibility: default -->
  3256. <element name="SysConfigDir">
  3257. <short>System configuration directory.</short>
  3258. <descr>
  3259. <p>
  3260. <var>SysConfigDir</var> is the default system configuration directory. It is
  3261. set at application startup by the <file>sysutils</file> initialization
  3262. routines.
  3263. </p>
  3264. <p>
  3265. This directory may be returned by the <link id="GetAppConfigDir"/> call on
  3266. some systems.
  3267. </p>
  3268. </descr>
  3269. <errors>
  3270. </errors>
  3271. <seealso>
  3272. <link id="GetAppConfigDir"/>
  3273. </seealso>
  3274. </element>
  3275. <!-- function type Visibility: default -->
  3276. <element name="TGetAppNameEvent">
  3277. <short>Callback type to get customized application name.</short>
  3278. <descr>
  3279. This callback type is used by the <link id="OnGetApplicationName"/> to
  3280. return an alternative application name.
  3281. </descr>
  3282. <errors>
  3283. </errors>
  3284. <seealso>
  3285. </seealso>
  3286. </element>
  3287. <!-- variable Visibility: default -->
  3288. <element name="OnGetApplicationName">
  3289. <short>Callback to get a customized application name.</short>
  3290. <descr>
  3291. <p>
  3292. By default, the configuration file routines <link id="GetAppConfigDir"/> and
  3293. <link id="GetAppConfigFile"/> use a default application name to construct a
  3294. directory or filename. This callback can be used to provide an alternative
  3295. application name.
  3296. </p>
  3297. <p>
  3298. Since the result of this callback will be used to construct a filename, care
  3299. should be taken that the returned name does not contain directory separator
  3300. characters or characters that cannot appear in a filename.
  3301. </p>
  3302. </descr>
  3303. <errors>
  3304. </errors>
  3305. <seealso>
  3306. <link id="TGetAppNameEvent"/>
  3307. <link id="ApplicationName"/>
  3308. <link id="GetAppConfigDir"/>
  3309. <link id="GetAppConfigFile"/>
  3310. </seealso>
  3311. </element>
  3312. <!-- pointer type Visibility: default -->
  3313. <element name="PDayTable">
  3314. <short>Pointer to TDayTable type.</short>
  3315. </element>
  3316. <!-- array type Visibility: default -->
  3317. <element name="TDayTable">
  3318. <short>Array of day names.</short>
  3319. </element>
  3320. <!-- constant Visibility: default -->
  3321. <element name="HoursPerDay">
  3322. <short>Number of hours in a day.</short>
  3323. </element>
  3324. <!-- constant Visibility: default -->
  3325. <element name="MinsPerHour">
  3326. <short>Number of minutes per hour.</short>
  3327. </element>
  3328. <!-- constant Visibility: default -->
  3329. <element name="SecsPerMin">
  3330. <short>Number of seconds per minute</short>
  3331. </element>
  3332. <!-- constant Visibility: default -->
  3333. <element name="MSecsPerSec">
  3334. <short>Number of milliseconds per second</short>
  3335. </element>
  3336. <!-- constant Visibility: default -->
  3337. <element name="MinsPerDay">
  3338. <short>Number of minutes per day.</short>
  3339. </element>
  3340. <!-- constant Visibility: default -->
  3341. <element name="SecsPerDay">
  3342. <short>Number of seconds per day</short>
  3343. </element>
  3344. <!-- constant Visibility: default -->
  3345. <element name="MSecsPerDay">
  3346. <short>Number of milliseconds per day</short>
  3347. </element>
  3348. <!-- constant Visibility: default -->
  3349. <element name="DateDelta">
  3350. <short>Days between 1/1/0001 and 12/31/1899</short>
  3351. </element>
  3352. <!-- constant Visibility: default -->
  3353. <element name="UnixDateDelta">
  3354. <short>Number of days between 1.1.1900 and 1.1.1970</short>
  3355. </element>
  3356. <!-- constant Visibility: default -->
  3357. <element name="MonthDays">
  3358. <short>Array with number of days in the months for leap and non-leap years.</short>
  3359. </element>
  3360. <!-- constant Visibility: default -->
  3361. <element name="TwoDigitYearCenturyWindow">
  3362. <short>Window to determine what century 2 digit years are in.</short>
  3363. </element>
  3364. <!-- record type Visibility: default -->
  3365. <element name="TSystemTime">
  3366. <short>System time structure</short>
  3367. <descr>The System time structure contains the date/time in a
  3368. human-understandable format.
  3369. </descr>
  3370. </element>
  3371. <!-- variable Visibility: default -->
  3372. <element name="TSystemTime.Year">
  3373. <short>Year part</short>
  3374. </element>
  3375. <!-- variable Visibility: default -->
  3376. <element name="TSystemTime.Month">
  3377. <short>Month part</short>
  3378. </element>
  3379. <!-- variable Visibility: default -->
  3380. <element name="TSystemTime.Day">
  3381. <short>Day of month part</short>
  3382. </element>
  3383. <!-- variable Visibility: default -->
  3384. <element name="TSystemTime.Hour">
  3385. <short>Hour of the day</short>
  3386. </element>
  3387. <!-- variable Visibility: default -->
  3388. <element name="TSystemTime.Minute">
  3389. <short>Minute of the hour</short>
  3390. </element>
  3391. <!-- variable Visibility: default -->
  3392. <element name="TSystemTime.Second">
  3393. <short>Second of the minute</short>
  3394. </element>
  3395. <!-- variable Visibility: default -->
  3396. <element name="TSystemTime.MilliSecond">
  3397. <short>Milliseconds in the second</short>
  3398. </element>
  3399. <!-- record type Visibility: default -->
  3400. <element name="TTimeStamp">
  3401. <short>TimeStamp structure</short>
  3402. <descr>
  3403. <var>TTimeStamp</var> contains a timestamp, with the date and time parts
  3404. specified as separate <var>TDateTime</var> values.
  3405. </descr>
  3406. </element>
  3407. <!-- variable Visibility: default -->
  3408. <element name="TTimeStamp.Time">
  3409. <short>Time part</short>
  3410. </element>
  3411. <!-- variable Visibility: default -->
  3412. <element name="TTimeStamp.Date">
  3413. <short>Date part</short>
  3414. </element>
  3415. <!-- function Visibility: default -->
  3416. <element name="TryEncodeDate">
  3417. <short>Try to encode a date, and indicate success.</short>
  3418. <descr>
  3419. <var>TryEncodeDate</var> will check the validity of the <var>Year</var>,
  3420. <var>Month</var> and <var>Day</var> arguments, and if they are all valid,
  3421. then they will be encoded as a <var>TDateTime</var> value and returned in
  3422. <var>D</var>. The function will return <var>True</var> in this case. If an
  3423. inbvalid argument is passed, then <var>False</var> will be returned.
  3424. </descr>
  3425. <errors>
  3426. None. If an error occurs during the encoding, <var>False</var> is returned.
  3427. </errors>
  3428. <seealso>
  3429. <link id="EncodeDate"/>
  3430. <link id="DecodeDateFully"/>
  3431. <link id="DecodeDate"/>
  3432. <link id="TryEncodeTime"/>
  3433. </seealso>
  3434. </element>
  3435. <!-- function Visibility: default -->
  3436. <element name="TryEncodeTime">
  3437. <short>Try to encode a time, and indicate success.</short>
  3438. <descr>
  3439. <var>TryEncodeTime</var> will check the validity of the <var>Hour</var>,
  3440. <var>Min</var>, <var>Sec</var> and <var>MSec</var> arguments, and will
  3441. encode them in a <var>TDateTime</var> value which is returned in
  3442. <var>T</var>. If the arguments are valid, then <var>True</var> is returned,
  3443. otherwise <var>False</var> is returned.
  3444. </descr>
  3445. <errors>
  3446. None. If an error occurs during the encoding, <var>False</var> is returned.
  3447. </errors>
  3448. <seealso>
  3449. <link id="EncodeTime"/>
  3450. <link id="DecodeTime"/>
  3451. <link id="TryEncodeDate"/>
  3452. </seealso>
  3453. </element>
  3454. <!-- function Visibility: default -->
  3455. <element name="DecodeDateFully">
  3456. <short>Decode a date with additional date of the week.</short>
  3457. <descr>
  3458. <var>DecodeDateFully</var>, like <link id="DecodeDate"/>, decodes
  3459. <var>DateTime</var> in its parts and returns these in <var>Year</var>,
  3460. <var>Month</var>, <var>Day</var> but in addition returns the day of
  3461. the week in <var>DOW</var>.
  3462. </descr>
  3463. <errors>
  3464. None.
  3465. </errors>
  3466. <seealso>
  3467. <link id="EncodeDate"/>
  3468. <link id="TryEncodeDate"/>
  3469. <link id="DecodeDate"/>
  3470. </seealso>
  3471. </element>
  3472. <!-- procedure Visibility: default -->
  3473. <element name="GetLocalTime">
  3474. <short>Get the local time.</short>
  3475. <descr>
  3476. <var>GetLocalTime</var> returns the system time in a <link id="TSystemTime"/>
  3477. format.
  3478. </descr>
  3479. <errors>
  3480. None.
  3481. </errors>
  3482. <seealso>
  3483. <link id="Now"/>
  3484. <link id="Date"/>
  3485. <link id="Time"/>
  3486. <link id="TSystemTime"/>
  3487. </seealso>
  3488. </element>
  3489. <!-- pointer type Visibility: default -->
  3490. <element name="PString">
  3491. <short>Pointer to a ansistring</short>
  3492. </element>
  3493. <!-- enumeration type Visibility: default -->
  3494. <element name="TFloatFormat">
  3495. <short>Formats for the FloatToText function.</short>
  3496. <descr>
  3497. <var>TFloatFormat</var> is used to determine how a float value should be
  3498. formatted in the <link id="FloatToText"/> function.
  3499. </descr>
  3500. <seealso>
  3501. <link id="FloatToText"/>
  3502. <link id="FloatToStrF"/>
  3503. </seealso>
  3504. </element>
  3505. <!-- enumeration value Visibility: default -->
  3506. <element name="TFloatFormat.ffGeneral">
  3507. <short>General number format.</short>
  3508. </element>
  3509. <!-- enumeration value Visibility: default -->
  3510. <element name="TFloatFormat.ffExponent">
  3511. <short>Scientific format.</short>
  3512. </element>
  3513. <!-- enumeration value Visibility: default -->
  3514. <element name="TFloatFormat.ffFixed">
  3515. <short>Fixed point format.</short>
  3516. </element>
  3517. <!-- enumeration value Visibility: default -->
  3518. <element name="TFloatFormat.ffNumber">
  3519. <short>Fixed point format with thousand separatord</short>
  3520. </element>
  3521. <!-- enumeration value Visibility: default -->
  3522. <element name="TFloatFormat.ffCurrency">
  3523. <short>Monetary format.</short>
  3524. </element>
  3525. <!-- enumeration type Visibility: default -->
  3526. <element name="TFloatValue">
  3527. <short>Type of float to return in the buffer for TextToFloat.</short>
  3528. <descr>
  3529. <var>TFloatValue</var> determines which kind of value should be returned in
  3530. the (untyped) buffer used by the <link id="TextToFloat"/> function.
  3531. </descr>
  3532. <seealso>
  3533. <link id="TextToFloat"/>
  3534. </seealso>
  3535. </element>
  3536. <!-- enumeration value Visibility: default -->
  3537. <element name="TFloatValue.fvExtended">
  3538. <short>Extended value</short>
  3539. </element>
  3540. <!-- enumeration value Visibility: default -->
  3541. <element name="TFloatValue.fvCurrency">
  3542. <short>Currency value</short>
  3543. </element>
  3544. <!-- enumeration value Visibility: default -->
  3545. <element name="TFloatValue.fvSingle">
  3546. <short>Single value</short>
  3547. </element>
  3548. <!-- enumeration value Visibility: default -->
  3549. <element name="TFloatValue.fvReal">
  3550. <short>Real value</short>
  3551. </element>
  3552. <!-- enumeration value Visibility: default -->
  3553. <element name="TFloatValue.fvDouble">
  3554. <short>Double value</short>
  3555. </element>
  3556. <!-- enumeration value Visibility: default -->
  3557. <element name="TFloatValue.fvComp">
  3558. <short>Comp value</short>
  3559. </element>
  3560. <!-- set type Visibility: default -->
  3561. <element name="TReplaceFlags">
  3562. <short>Flags for StringReplace function</short>
  3563. <descr>
  3564. <var>TReplaceFlags</var> determines the behaviour of the
  3565. <link id="StringReplace"/> function.
  3566. </descr>
  3567. <seealso>
  3568. <link id="StringReplace"/>.
  3569. </seealso>
  3570. </element>
  3571. <!-- enumeration value Visibility: default -->
  3572. <element name="TReplaceFlags.rfReplaceAll">
  3573. <short>Replace all occurrences of the search string with the replacement string.</short>
  3574. </element>
  3575. <!-- enumeration value Visibility: default -->
  3576. <element name="TReplaceFlags.rfIgnoreCase">
  3577. <short>Search case insensitive.</short>
  3578. </element>
  3579. <!-- record type Visibility: default -->
  3580. <element name="TFloatRec">
  3581. <short>Record descriing a float value</short>
  3582. <descr>
  3583. <var>TFloatRec</var> is used to descibe a floating point value by the
  3584. <link id="FloatToDecimal"/> function.
  3585. </descr>
  3586. <seealso>
  3587. <link id="FloatToDecimal"/>
  3588. </seealso>
  3589. </element>
  3590. <!-- variable Visibility: default -->
  3591. <element name="TFloatRec.Exponent">
  3592. <short>Exponent part</short>
  3593. </element>
  3594. <!-- variable Visibility: default -->
  3595. <element name="TFloatRec.Negative">
  3596. <short>Sign part</short>
  3597. </element>
  3598. <!-- variable Visibility: default -->
  3599. <element name="TFloatRec.Digits">
  3600. <short>Digits of fraction</short>
  3601. </element>
  3602. <!-- constant Visibility: default -->
  3603. <element name="MinDateTime">
  3604. <short>Minimum <var>TDateTime</var> value.</short>
  3605. </element>
  3606. <!-- constant Visibility: default -->
  3607. <element name="MaxDateTime">
  3608. <short>Maximum <var>TDateTime</var> value.</short>
  3609. </element>
  3610. <!-- constant Visibility: default -->
  3611. <element name="MinCurrency">
  3612. <short>Minimum Currency value</short>
  3613. </element>
  3614. <!-- constant Visibility: default -->
  3615. <element name="MaxCurrency">
  3616. <short>Maximum currency value</short>
  3617. </element>
  3618. <!-- enumeration type Visibility: default -->
  3619. <element name="TTextLineBreakStyle">
  3620. <short>Line break style</short>
  3621. <descr>
  3622. <var>TTextLineBreakStyle</var> describes the style of linebreaks to be used
  3623. in the <link id="AdjustLineBreaks"/> function.
  3624. </descr>
  3625. <seealso>
  3626. <link id="AdjustLineBreaks"/>
  3627. </seealso>
  3628. </element>
  3629. <!-- enumeration value Visibility: default -->
  3630. <element name="TTextLineBreakStyle.tlbsLF">
  3631. <short>Linefeed only</short>
  3632. </element>
  3633. <element name="TTextLineBreakStyle.tlbsCR">
  3634. <short>Carriage-return only</short>
  3635. </element>
  3636. <!-- enumeration value Visibility: default -->
  3637. <element name="TTextLineBreakStyle.tlbsCRLF">
  3638. <short>Carriage-return and linefeed characters</short>
  3639. </element>
  3640. <!-- constant Visibility: default -->
  3641. <element name="DefaultTextLineBreakStyle">
  3642. <short>Default line break style for the current platform.</short>
  3643. </element>
  3644. <!-- constant Visibility: default -->
  3645. <element name="LeadBytes">
  3646. <short>Lead bytes in Multi-Byte character sets</short>
  3647. <descr>
  3648. <var>LeadBytes</var> contains the set of bytes that serve as lead byte in a
  3649. MBCS string.
  3650. </descr>
  3651. </element>
  3652. <!-- constant Visibility: default -->
  3653. <element name="EmptyStr">
  3654. <short>Empty String Constant</short>
  3655. </element>
  3656. <!-- constant Visibility: default -->
  3657. <element name="NullStr">
  3658. <short>Pointer to an empty string</short>
  3659. </element>
  3660. <!-- constant Visibility: default -->
  3661. <element name="EmptyWideStr">
  3662. <short>Empty wide string.</short>
  3663. </element>
  3664. <!-- function Visibility: default -->
  3665. <element name="CompareMemRange">
  3666. <short>Compare 2 memory locations</short>
  3667. <descr>
  3668. <p>
  3669. <var>CompareMemRange</var> compares the 2 memory locations pointed to by
  3670. <var>P1</var> and <var>P2</var> byte per byte. It stops comparing after
  3671. <var>Length</var> bytes have been compared, or when it has encountered 2
  3672. different bytes. The result is then
  3673. </p>
  3674. <dl>
  3675. <dt>&gt;0</dt><dd> if a byte in range <var>P1</var> was found that is bigger than the
  3676. corresponding byte in range <var>P2</var>.</dd>
  3677. <dt>0</dt><dd> if all bytes in range <var>P1</var> are the same as the corresponding
  3678. bytes in range <var>P2</var>.</dd>
  3679. <dt>&lt;0</dt><dd> if a byte in range <var>P1</var> was found that is less than the
  3680. corresponding byte in range <var>P2</var>.</dd>
  3681. </dl>
  3682. </descr>
  3683. <errors>
  3684. None.
  3685. </errors>
  3686. <seealso>
  3687. <link id="SameText"/>
  3688. </seealso>
  3689. </element>
  3690. <!-- function Visibility: default -->
  3691. <element name="SameText">
  3692. <short>Checks whether 2 strings are the same (case insensitive)</short>
  3693. <descr>
  3694. <var>SameText</var> calls <link id="CompareText"/> with <var>S1</var> and
  3695. <var>S2</var> as parameters and returns <var>True</var> if the result of
  3696. that call is zero, or <var>False</var> otherwise.
  3697. </descr>
  3698. <errors>
  3699. None.
  3700. </errors>
  3701. <seealso>
  3702. <link id="CompareText"/>
  3703. <link id="AnsiSameText"/>
  3704. <link id="AnsiSameStr"/>
  3705. </seealso>
  3706. </element>
  3707. <!-- function Visibility: default -->
  3708. <element name="AnsiSameText">
  3709. <short>Checks whether 2 strings are the same (case insensitive)</short>
  3710. <descr>
  3711. <var>SameText</var> calls <link id="AnsiCompareText"/> with <var>S1</var> and
  3712. <var>S2</var> as parameters and returns <var>True</var> if the result of
  3713. that call is zero, or <var>False</var> otherwise.
  3714. </descr>
  3715. <errors>
  3716. </errors>
  3717. <seealso>
  3718. <link id="AnsiCompareText"/>
  3719. <link id="SameText"/>
  3720. <link id="AnsiSameStr"/>
  3721. </seealso>
  3722. </element>
  3723. <!-- function Visibility: default -->
  3724. <element name="AnsiSameStr">
  3725. <short>Checks whether 2 strings are the same (case sensitive)</short>
  3726. <descr>
  3727. <var>SameText</var> calls <link id="AnsiCompareStr"/> with <var>S1</var> and
  3728. <var>S2</var> as parameters and returns <var>True</var> if the result of
  3729. that call is zero, or <var>False</var> otherwise.
  3730. </descr>
  3731. <errors>
  3732. None.
  3733. </errors>
  3734. <seealso>
  3735. <link id="AnsiCompareStr"/>
  3736. <link id="SameText"/>
  3737. <link id="AnsiSameText"/>
  3738. </seealso>
  3739. </element>
  3740. <!-- function Visibility: default -->
  3741. <element name="AnsiStrLComp">
  3742. <short>Compare a limited number of characters of 2 strings</short>
  3743. <descr>
  3744. <var>AnsiStrLComp</var> functions the same as <link id="AnsiStrComp"/>, but
  3745. compares at most <var>MaxLen</var> characters, if this is less than one of
  3746. the lengths of the passed strings. If the first <var>MaxLen</var> characters
  3747. in both strings are the same, then zero is returned.
  3748. </descr>
  3749. <errors>
  3750. None.
  3751. </errors>
  3752. <seealso>
  3753. <link id="AnsiStrComp"/>
  3754. <link id="AnsiStrIComp"/>
  3755. <link id="AnsiStrLIComp"/>
  3756. </seealso>
  3757. </element>
  3758. <!-- function Visibility: default -->
  3759. <element name="TryStrToInt">
  3760. <short>Try to convert a string to an integer, and report on success.</short>
  3761. <descr>
  3762. <var>TryStrToInt</var> tries to convert the string <var>S</var> to an
  3763. integer, and returns <var>True</var> if this was succesful. In that case the
  3764. converted integer is returned in <var>I</var>. If the conversion failed,
  3765. (an invalid string, or the value is out of range) then <var>False</var> is returned.
  3766. </descr>
  3767. <errors>
  3768. None. On error, <var>False</var> is returned.
  3769. </errors>
  3770. <seealso>
  3771. <link id="StrToInt"/>
  3772. <link id="TryStrToInt64"/>
  3773. <link id="StrToIntDef"/>
  3774. <link id="StrToInt64"/>
  3775. <link id="StrToInt64Def"/>
  3776. </seealso>
  3777. </element>
  3778. <!-- function Visibility: default -->
  3779. <element name="StrToInt64">
  3780. <short>Convert a string to an Int64 value.</short>
  3781. <descr>
  3782. <p>
  3783. <var>StrToInt64</var> converts the string <var>S</var> to a Int64 value, and
  3784. returns this value. The string can only contain numerical characters, and
  3785. optionally a minus sign as the first character. Whitespace is not allowed.
  3786. </p>
  3787. <p>
  3788. Hexadecimal values (starting with the $ character) are supported.
  3789. </p>
  3790. </descr>
  3791. <errors>
  3792. On error, a <link id="EConvertError"/> exception is raised.
  3793. </errors>
  3794. <seealso>
  3795. <link id="TryStrToInt64"/>
  3796. <link id="StrToInt64Def"/>
  3797. <link id="StrToInt"/>
  3798. <link id="TryStrToInt"/>
  3799. <link id="StrToIntDef"/>
  3800. </seealso>
  3801. </element>
  3802. <!-- function Visibility: default -->
  3803. <element name="TryStrToInt64">
  3804. <short>Try to convert a string to an int64 value, and report on success.</short>
  3805. <descr>
  3806. <p>
  3807. <var>TryStrToInt64</var> tries to convert the string <var>S</var> to a Int64 value, and
  3808. returns this value in <var>I</var> if successful. If the conversion was
  3809. succesful, the function result is <var>True</var>, or <var>False</var>
  3810. otherwise.
  3811. The string can only contain numerical characters, and
  3812. optionally a minus sign as the first character. Whitespace is not allowed.
  3813. </p>
  3814. <p>
  3815. Hexadecimal values (starting with the $ character) are supported.
  3816. </p>
  3817. </descr>
  3818. <errors>
  3819. None. On error, <var>False</var> is returned.
  3820. </errors>
  3821. <seealso>
  3822. <link id="StrToInt64"/>
  3823. <link id="StrToInt64Def"/>
  3824. <link id="StrToInt"/>
  3825. <link id="TryStrToInt"/>
  3826. <link id="StrToIntDef"/>
  3827. </seealso>
  3828. </element>
  3829. <!-- function Visibility: default -->
  3830. <element name="StrToInt64Def">
  3831. <short>Convert a string to an Int64 value, with a default value</short>
  3832. <descr>
  3833. <var>StrToInt64Def</var> tries to convert the string <var>S</var> to a Int64
  3834. value, and returns this value. If the conversion fails for some reason, the
  3835. value <var>Default</var> is returned instead.
  3836. </descr>
  3837. <errors>
  3838. None. On error, the <var>Default</var> value is returned.
  3839. </errors>
  3840. <seealso>
  3841. <link id="StrToInt64"/>
  3842. <link id="TryStrToInt64"/>
  3843. <link id="StrToInt"/>
  3844. <link id="TryStrToInt"/>
  3845. <link id="StrToIntDef"/>
  3846. </seealso>
  3847. </element>
  3848. <!-- function Visibility: default -->
  3849. <element name="StrToFloatDef">
  3850. <short>Convert a string to a float, with a default value.</short>
  3851. <descr>
  3852. <var>StrToFloatDef</var> tries to convert the string <var>S</var> to a
  3853. floating point value, and returns this value. If the conversion fails for
  3854. some reason, the value <var>Default</var> is returned instead.
  3855. </descr>
  3856. <errors>
  3857. None. On error, the <var>Default</var> value is returned.
  3858. </errors>
  3859. <seealso>
  3860. </seealso>
  3861. </element>
  3862. <!-- function Visibility: default -->
  3863. <element name="FloatToDateTime">
  3864. <short>Convert a float to a <var>TDateTime</var> value.</short>
  3865. <descr>
  3866. <var>FloatToDateTime</var> converts the <var>Value</var> floating point
  3867. value to a <var>TDateTime</var> value. It checks whether <var>Value</var> is
  3868. in the valid range of dates (determined by <link id="MinDateTime"/> and
  3869. <link id="MaxDateTime"/>). If not, an <link id="EConvertError"/> exception
  3870. is raised.
  3871. </descr>
  3872. <errors>
  3873. If <var>Value</var> is out of range, an <link id="EConvertError"/> exception
  3874. is raised.
  3875. </errors>
  3876. <seealso>
  3877. <link id="EConvertError"/>
  3878. <link id="MinDateTime"/>
  3879. <link id="MaxDateTime"/>
  3880. </seealso>
  3881. </element>
  3882. <!-- function Visibility: default -->
  3883. <element name="FloattoCurr">
  3884. <short>Convert a float to a Currency value.</short>
  3885. <descr>
  3886. <var>FloatToCurr</var> converts the <var>Value</var> floating point
  3887. value to a <var>Currency</var> value. It checks whether <var>Value</var> is
  3888. in the valid range of currencies (determined by <link id="MinCurrency"/> and
  3889. <link id="MaxCurrency"/>). If not, an <link id="EConvertError"/> exception
  3890. is raised.
  3891. </descr>
  3892. <errors>
  3893. If <var>Value</var> is out of range, an <link id="EConvertError"/> exception
  3894. is raised.
  3895. </errors>
  3896. <seealso>
  3897. <link id="EConvertError"/>
  3898. <link id="TryFloatToCurr"/>
  3899. <link id="MinCurrency"/>
  3900. <link id="MaxCurrency"/>
  3901. </seealso>
  3902. </element>
  3903. <!-- function Visibility: default -->
  3904. <element name="TryFloatToCurr">
  3905. <short>Try to convert a float value to a currency value and report on success.</short>
  3906. <descr>
  3907. <var>TryFloatToCurr</var> tries convert the <var>Value</var> floating point
  3908. value to a <var>Currency</var> value. If successful, the function returns
  3909. <var>True</var> and the resulting currency value is returned in
  3910. <var>AResult</var>. It checks whether <var>Value</var> is
  3911. in the valid range of currencies (determined by <link id="MinCurrency"/> and
  3912. <link id="MaxCurrency"/>). If not, <var>False</var> is returned.
  3913. </descr>
  3914. <errors>
  3915. If <var>Value</var> is out of range, <var>False</var> is returned.
  3916. </errors>
  3917. <seealso>
  3918. <link id="FloatToCurr"/>
  3919. <link id="MinCurrency"/>
  3920. <link id="MaxCurrency"/>
  3921. </seealso>
  3922. </element>
  3923. <!-- function Visibility: default -->
  3924. <element name="CurrToStr">
  3925. <short>Convert a currency value to a string.</short>
  3926. <descr>
  3927. <p>
  3928. <var>CurrToStr</var> will convert a currency value to a string with a
  3929. maximum of 15 digits, and precision 2. Calling <var>CurrToStr</var>
  3930. is equivalent to calling <link id="FloatToStrF"/>:
  3931. </p>
  3932. <code>
  3933. FloatToStrF(Value,ffNumber,15,2);
  3934. </code>
  3935. </descr>
  3936. <errors>
  3937. None.
  3938. </errors>
  3939. <seealso>
  3940. <link id="FloatToStrF"/>
  3941. <link id="StrToCurr"/>
  3942. </seealso>
  3943. </element>
  3944. <!-- function Visibility: default -->
  3945. <element name="StrToCurr">
  3946. <short>Convert a string to a currency value</short>
  3947. <descr>
  3948. <var>StrToCurr</var> converts a string to a currency value and returns the
  3949. value. The string
  3950. should contain a valid currency amount, without currency symbol. If the
  3951. conversion fails, an <link id="EConvertError"/> exception is raised.
  3952. </descr>
  3953. <errors>
  3954. On error, an <link id="EConvertError"/> exception is raised.
  3955. </errors>
  3956. <seealso>
  3957. <link id="CurrToStr"/>
  3958. <link id="StrToCurrDef"/>
  3959. </seealso>
  3960. </element>
  3961. <!-- function Visibility: default -->
  3962. <element name="StrToCurrDef">
  3963. <short>Convert a string to a currency value, using a default value</short>
  3964. <descr>
  3965. <var>StrToCurrDef</var> converts a string to a currency value and returns the
  3966. value. The string should contain a valid currency amount, without currency
  3967. symbol. If the conversion fails, the fallback <var>Default</var> value is returned.
  3968. </descr>
  3969. <errors>
  3970. On error, the <var>Default</var> value is returned.
  3971. </errors>
  3972. <seealso>
  3973. <link id="CurrToStr"/>
  3974. <link id="StrToCurr"/>
  3975. </seealso>
  3976. </element>
  3977. <!-- function Visibility: default -->
  3978. <element name="StrToBool">
  3979. <short>Convert a string to a boolean value</short>
  3980. <descr>
  3981. <var>StrToBool</var> will convert the string <var>S</var> to a boolean
  3982. value. The string <var>S</var> can contain one of <var>'True'</var>,
  3983. <var>'False'</var> (case is ignored) or a numerical value. If it contains a
  3984. numerical value, 0 is converted to <var>False</var>, all other values result
  3985. in <var>True</var>. If the string <var>S</var> contains no valid boolean,
  3986. then an <link id="EConvertError"/> exception is raised.
  3987. </descr>
  3988. <errors>
  3989. On error, an <link id="EConvertError"/> exception is raised.
  3990. </errors>
  3991. <seealso>
  3992. <link id="BoolToStr"/>
  3993. </seealso>
  3994. </element>
  3995. <!-- function Visibility: default -->
  3996. <element name="BoolToStr">
  3997. <short>Convert a boolean value to a string.</short>
  3998. <descr>
  3999. <var>BoolToStr</var> converts the boolean <var>B</var> to one of
  4000. the strings <var>'TRUE'</var> or <var>'FALSE'</var>
  4001. </descr>
  4002. <errors>
  4003. None.
  4004. </errors>
  4005. <seealso>
  4006. <link id="StrToBool"/>
  4007. </seealso>
  4008. </element>
  4009. <!-- function Visibility: default -->
  4010. <element name="StringReplace">
  4011. <short>Replace occurrences of one substring with another in a string.</short>
  4012. <descr>
  4013. <var>StringReplace</var> searches the string <var>S</var> for
  4014. occurrences of the string <var>OldPattern</var> and, if it is found,
  4015. replaces it with <var>NewPattern</var>. It returns the resulting string. The
  4016. behaviour of <var>StringReplace</var> can be runed with <var>Flags</var>,
  4017. which is of type <link id="TReplaceFlags"/>. Standard behaviour is to
  4018. replace only the first occurrence of <var>OldPattern</var>, and to search
  4019. case sensitively.
  4020. </descr>
  4021. <errors>
  4022. None.
  4023. </errors>
  4024. <seealso>
  4025. <link id="TReplaceFlags"/>
  4026. </seealso>
  4027. </element>
  4028. <!-- function Visibility: default -->
  4029. <element name="FloatToTextFmt">
  4030. <short>Convert a float value to a string using a given mask.</short>
  4031. <descr>
  4032. <p>
  4033. <var>FloatToTextFmt</var> returns a textual representation of
  4034. <var>Value</var> in the memory location pointed to by <var>Buffer</var>. it
  4035. uses the formatting specification in <var>Format</var> to do this. The
  4036. return value is the number of characters that were written in the buffer.
  4037. </p>
  4038. <p>
  4039. For a list of valid formatting characters, see <link id="FormatFloat"/>
  4040. </p>
  4041. </descr>
  4042. <errors>
  4043. No length checking is performed on the buffer. The buffer should point to
  4044. enough memory to hold the complete string. If this is not the case, an
  4045. access violation may occur.
  4046. </errors>
  4047. <seealso>
  4048. <link id="FormatFloat"/>
  4049. </seealso>
  4050. </element>
  4051. <!-- procedure Visibility: default -->
  4052. <element name="FloatToDecimal">
  4053. <short>Convert a float value to a <var>TFloatRec</var> value.</short>
  4054. <descr>
  4055. <var>FloatToDecimal</var> converts the float <var>Value</var> to a
  4056. float description in the <var>Result</var> <link id="TFloatRec"/> format.
  4057. It will store <var>Precision</var> digits in the <var>Digits</var> field, of
  4058. which at most <var>Decimal</var> decimals.
  4059. </descr>
  4060. <errors>
  4061. None.
  4062. </errors>
  4063. <seealso>
  4064. <link id="TFloatRec"/>
  4065. </seealso>
  4066. </element>
  4067. <!-- function Visibility: default -->
  4068. <element name="IsDelimiter">
  4069. <short>Check whether a given string is a delimiter character.</short>
  4070. <descr>
  4071. <var>IsDelimiter</var> checks whether the <var>Index</var>-th character in the
  4072. string <var>S</var> is a delimiter character as passed in
  4073. <var>Delimiters</var>. If <var>Index</var> is out of range, <var>False</var>
  4074. is returned.
  4075. </descr>
  4076. <errors>
  4077. None.
  4078. </errors>
  4079. <seealso>
  4080. <link id="LastDelimiter"/>
  4081. </seealso>
  4082. </element>
  4083. <!-- enumeration type Visibility: default -->
  4084. <element name="TMbcsByteType">
  4085. <short>Type of multi-byte character set.</short>
  4086. <descr>
  4087. </descr>
  4088. <errors>
  4089. </errors>
  4090. <seealso>
  4091. </seealso>
  4092. </element>
  4093. <!-- enumeration value Visibility: default -->
  4094. <element name="TMbcsByteType.mbSingleByte">
  4095. <short>Single bytes</short>
  4096. </element>
  4097. <!-- enumeration value Visibility: default -->
  4098. <element name="TMbcsByteType.mbLeadByte">
  4099. <short>Uses lead-byte</short>
  4100. </element>
  4101. <!-- enumeration value Visibility: default -->
  4102. <element name="TMbcsByteType.mbTrailByte">
  4103. <short>Uses trailing byte</short>
  4104. </element>
  4105. <!-- function Visibility: default -->
  4106. <element name="ByteType">
  4107. <short>Return the type of byte in an ansistring for a multi-byte character set</short>
  4108. <descr>
  4109. <var>ByteType</var> returns the type of byte in the ansistring <var>S</var>
  4110. at (1-based) position <var>Index</var>.
  4111. </descr>
  4112. <errors>
  4113. No checking on the index is performed.
  4114. </errors>
  4115. <seealso>
  4116. <link id="TMbcsByteType"/>
  4117. <link id="StrByteType"/>
  4118. </seealso>
  4119. </element>
  4120. <!-- function Visibility: default -->
  4121. <element name="StrByteType">
  4122. <short>Return the type of byte in a null-terminated string for a multi-byte character set</short>
  4123. <descr>
  4124. <var>StrByteType</var> returns the type of byte in the null-terminated
  4125. string <var>Str</var> at (0-based) position <var>Index</var>.
  4126. </descr>
  4127. <errors>
  4128. No checking on the index is performed.
  4129. </errors>
  4130. <seealso>
  4131. <link id="TMbcsByteType"/>
  4132. <link id="ByteType"/>
  4133. </seealso>
  4134. </element>
  4135. <!-- function Visibility: default -->
  4136. <element name="ByteToCharLen">
  4137. <short>Convert a length in bytes to a length in characters.</short>
  4138. <descr>
  4139. <var>ByteToCharLen</var> returns the number of bytes in <var>S</var>, but
  4140. limits the result to <var>MaxLen</var>
  4141. </descr>
  4142. <errors>
  4143. This function does not take into account MBCS yet.
  4144. </errors>
  4145. <seealso>
  4146. <link id="CharToByteLen"/>
  4147. <link id="ByteToCharIndex"/>
  4148. </seealso>
  4149. </element>
  4150. <!-- function Visibility: default -->
  4151. <element name="CharToByteLen">
  4152. <short>Convert a length in characters to a length in bytes.</short>
  4153. <descr>
  4154. <var>CharToByteLen</var> returns the number of bytes in <var>S</var>, but
  4155. limits the result to <var>MaxLen</var>
  4156. </descr>
  4157. <errors>
  4158. This function does not take into account MBCS yet.
  4159. </errors>
  4160. <seealso>
  4161. <link id="ByteToCharLen"/>
  4162. <link id="ByteToCharIndex"/>
  4163. </seealso>
  4164. </element>
  4165. <!-- function Visibility: default -->
  4166. <element name="ByteToCharIndex">
  4167. <short>Convert a character index in Bytes to an Index in characters</short>
  4168. <descr>
  4169. <var>ByteToCharIndex</var> returns the index (in characters) of the
  4170. <var>Index</var>-th byte in <var>S</var>.
  4171. </descr>
  4172. <errors>
  4173. This function does not take into account MBCS yet.
  4174. </errors>
  4175. <seealso>
  4176. <link id="CharToByteLen"/>
  4177. <link id="ByteToCharLen"/>
  4178. </seealso>
  4179. </element>
  4180. <!-- constant Visibility: default -->
  4181. <element name="SwitchChars">
  4182. <short>Characters which start a command-line switch</short>
  4183. <descr>
  4184. The characters in this set will be used by the <link id="FindCmdLineSwitch"/>
  4185. function to determine whether a command-line
  4186. argument is a switch (an option) or a value. If the first character of an
  4187. argument is in <var>SwitchChars</var>, it will be considered an option or
  4188. switch.
  4189. </descr>
  4190. <errors>
  4191. </errors>
  4192. <seealso>
  4193. <link id="FindCmdLineSwitch"/>
  4194. </seealso>
  4195. </element>
  4196. <!-- set type Visibility: default -->
  4197. <element name="TSysCharSet">
  4198. <short>Set of characters.</short>
  4199. <descr>
  4200. Generic set of characters type.
  4201. </descr>
  4202. <errors>
  4203. </errors>
  4204. <seealso>
  4205. </seealso>
  4206. </element>
  4207. <!-- function Visibility: default -->
  4208. <element name="FindCmdLineSwitch">
  4209. <short>Check whether a certain switch is present on the command-line.</short>
  4210. <descr>
  4211. <var>FindCmdLineSwitch</var> will check all command-line arguments for the
  4212. presence of the option <var>Switch</var>. It will return <var>True</var> if
  4213. it was found, <var>False</var> otherwise. Characters that appear in
  4214. <var>Chars</var> (default is <link id="SwitchChars"/>) are assumed to
  4215. indicate an option (switch). If the parameter <var>IgnoreCase</var> is
  4216. <var>True</var>, case will be ignored when looking for the switch. Default
  4217. is to search case sensitive.
  4218. </descr>
  4219. <errors>
  4220. None.
  4221. </errors>
  4222. <seealso>
  4223. <link id="SwitchChars"/>
  4224. </seealso>
  4225. </element>
  4226. <!-- alias type Visibility: default -->
  4227. <element name="THandle">
  4228. <short>File Handle type.</short>
  4229. <descr>
  4230. <var>THandle</var> refers to the definition of <var>THandle</var> in the
  4231. system unit, and is provided for backward compatibility only.
  4232. </descr>
  4233. </element>
  4234. <!-- procedure type Visibility: default -->
  4235. <element name="TProcedure">
  4236. <short>Procedural type</short>
  4237. <descr>
  4238. <var>TProcedure</var> is a general definition of a procedural callback.
  4239. </descr>
  4240. </element>
  4241. <!-- alias type Visibility: default -->
  4242. <element name="TFileName">
  4243. <short>Filename type</short>
  4244. <descr>
  4245. <var>TFileName</var> is used in the <link id="TSearchRec"/> definition.
  4246. </descr>
  4247. <seealso>
  4248. <link id="TSearchRec"/>
  4249. </seealso>
  4250. </element>
  4251. <!-- set type Visibility: default -->
  4252. <element name="TIntegerSet">
  4253. <short>Set with size of integer.</short>
  4254. <descr>
  4255. <var>TIntegerSet</var> is a generic integer subrange set definition whose
  4256. size fits in a single integer.
  4257. </descr>
  4258. </element>
  4259. <!-- record type Visibility: default -->
  4260. <element name="LongRec">
  4261. <short>Record describing a longint value</short>
  4262. <descr>
  4263. <var>LongRec</var> can be used to extract the parts of an long Integer: the
  4264. high and low word, or the 4 separate bytes as a zero-based array of bytes.
  4265. Note that the meaning of High and Low parts are different on various CPUs.
  4266. </descr>
  4267. <seealso>
  4268. <link id="WordRec"/>
  4269. <link id="Int64Rec"/>
  4270. </seealso>
  4271. </element>
  4272. <!-- record type Visibility: default -->
  4273. <element name="WordRec">
  4274. <short>Record describing a word value.</short>
  4275. <descr>
  4276. <var>LongRec</var> can be used to extract the parts of a word: the
  4277. high and low byte. Note that the meaning of the High and Low parts
  4278. are different on various CPUs.
  4279. </descr>
  4280. <seealso>
  4281. <link id="LongRec"/>
  4282. <link id="Int64Rec"/>
  4283. </seealso>
  4284. </element>
  4285. <!-- variable Visibility: default -->
  4286. <element name="WordRec.Lo">
  4287. <short>Low byte of the word.</short>
  4288. </element>
  4289. <!-- variable Visibility: default -->
  4290. <element name="WordRec.Hi">
  4291. <short>High byte of the word</short>
  4292. </element>
  4293. <!-- record type Visibility: default -->
  4294. <element name="Int64Rec">
  4295. <short>Record describing an Int64 value</short>
  4296. <descr>
  4297. <var>Int64Rec</var> can be used to extract the parts of a Int64: the
  4298. high and low cardinal, or a zero-based array of 4 words, or a zero based
  4299. array of 8 bytes. Note that the meaning of the High and Low parts
  4300. are different on various CPUs.
  4301. </descr>
  4302. <seealso>
  4303. <link id="LongRec"/>
  4304. <link id="WordRec"/>
  4305. </seealso>
  4306. </element>
  4307. <!-- pointer type Visibility: default -->
  4308. <element name="PByteArray">
  4309. <short>Pointer to an array of byte.</short>
  4310. <descr>
  4311. Generic pointer to <link id="TByteArray"/>. Use to access memory regions as
  4312. a byte array.
  4313. </descr>
  4314. <seealso>
  4315. <link id="TByteArray"/>
  4316. <link id="PWordArray"/>
  4317. <link id="TWordArray"/>
  4318. </seealso>
  4319. </element>
  4320. <!-- array type Visibility: default -->
  4321. <element name="TByteArray">
  4322. <short>Array of bytes</short>
  4323. <descr>
  4324. <var>TByteArray</var> is a generic array definition, mostly for use as a
  4325. base type of the <link id="PByteArray"/> type.
  4326. </descr>
  4327. <seealso>
  4328. <link id="PByteArray"/>
  4329. <link id="PWordArray"/>
  4330. <link id="TWordArray"/>
  4331. </seealso>
  4332. </element>
  4333. <!-- pointer type Visibility: default -->
  4334. <element name="PWordArray">
  4335. <short>Pointer to an array of word.</short>
  4336. <descr>
  4337. Generic pointer to <link id="TWordArray"/>. Use to access memory regions as
  4338. a word array.
  4339. </descr>
  4340. <seealso>
  4341. <link id="TWordArray"/>
  4342. <link id="PByteArray"/>
  4343. <link id="TByteArray"/>
  4344. </seealso>
  4345. </element>
  4346. <!-- array type Visibility: default -->
  4347. <element name="TWordArray">
  4348. <short></short>
  4349. <descr>
  4350. <var>TWordArray</var> is a generic array definition, mostly for use as a
  4351. base type of the <link id="PWordArray"/> type.
  4352. </descr>
  4353. <errors>
  4354. </errors>
  4355. <seealso>
  4356. <link id="PWordArray"/>
  4357. <link id="PByteArray"/>
  4358. <link id="TByteArray"/>
  4359. </seealso>
  4360. </element>
  4361. <!-- record type Visibility: default -->
  4362. <element name="TMethod">
  4363. <short>Record describing a method.</short>
  4364. <descr>
  4365. <var>TMethod</var> describes a general method pointer, and is used in
  4366. Run-Time Type Information handling.
  4367. </descr>
  4368. </element>
  4369. <!-- variable Visibility: default -->
  4370. <element name="TMethod.Code">
  4371. <short>Pointer to method code.</short>
  4372. </element>
  4373. <!-- variable Visibility: default -->
  4374. <element name="TMethod.Data">
  4375. <short>Pointer to object instance.</short>
  4376. </element>
  4377. <!-- object Visibility: default -->
  4378. <element name="Exception">
  4379. <short>Base class of all exceptions.</short>
  4380. <descr>
  4381. <var>Exception</var> is the base class for all exception handling routines
  4382. in the RTL and FCL. While it is possible to raise an exception with any
  4383. class descending from <var>TObject</var>, it is recommended to use
  4384. <var>Exception</var> as the basis of exception class objects:
  4385. the <var>Exception</var> class introduces properties to associate a message
  4386. and a help context with the exception being raised. What is more, the
  4387. <file>SysUtils</file> unit sets the necessary hooks to catch and display
  4388. unhandled exceptions: in such cases, the message displayed to the end user,
  4389. will be the message stored in the exception class.
  4390. </descr>
  4391. <seealso>
  4392. <link id="ExceptObject"/>
  4393. <link id="ExceptAddr"/>
  4394. <link id="ExceptionErrorMessage"/>
  4395. <link id="ShowException"/>
  4396. <link id="Abort"/>
  4397. </seealso>
  4398. </element>
  4399. <!-- constructor Visibility: public -->
  4400. <element name="Exception.Create">
  4401. <short>Constructs a new exception object with a given message.</short>
  4402. <var>Create</var> allocates a new exception object on the heap, and stores
  4403. <var>Msg</var> in the <link id="Exception.Message">Message</link> property.
  4404. <errors>
  4405. Construction may fail if there is not enough memory on the heap.
  4406. </errors>
  4407. <seealso>
  4408. <link id="Exception.CreateFmt"/>
  4409. <link id="Exception.Message"/>
  4410. </seealso>
  4411. </element>
  4412. <!-- constructor Visibility: public -->
  4413. <element name="Exception.CreateFmt">
  4414. <short>Constructs a new exception object and formats a new message.</short>
  4415. <p>
  4416. <var>CreateFmt</var> allocates a new exception object on the heap, and
  4417. fills the <link id="Exception.Message">Message</link> property with the result of a call to <link
  4418. id="Format"/> with <var>Msg</var> and <var>Args</var> as arguments.
  4419. </p>
  4420. <p>Using <var>CreateFmt</var> is equivalent to using the following code:</p>
  4421. <code>
  4422. Exception.Create(Format(Msg,Args));
  4423. </code>
  4424. <errors>
  4425. Construction may fail if there is not enough memory on the heap.
  4426. </errors>
  4427. <seealso>
  4428. <link id="Exception.Create"/>
  4429. <link id="Exception.Message"/>
  4430. <link id="Format"/>
  4431. </seealso>
  4432. </element>
  4433. <!-- constructor Visibility: public -->
  4434. <element name="Exception.CreateRes">
  4435. <short>Constructs a new exception object and gets the message from a resource.</short>
  4436. <p>
  4437. <var>CreateRes</var> allocates a new exception object on the heap, and stores
  4438. fetches the resource string <var>ResString</var> from the resources and
  4439. stores it in the <link id="Exception.Message">Message</link> property.
  4440. </p>
  4441. <remark>
  4442. Resources are not yet implemented in Free Pascal.
  4443. </remark>
  4444. <errors>
  4445. Construction may fail if there is not enough memory on the heap.
  4446. </errors>
  4447. <seealso>
  4448. <link id="Exception.Create"/>
  4449. <link id="Exception.CreateFmt"/>
  4450. <link id="Exception.CreateResFmt"/>
  4451. <link id="Exception.Message"/>
  4452. </seealso>
  4453. </element>
  4454. <!-- constructor Visibility: public -->
  4455. <element name="Exception.CreateResFmt">
  4456. <short>Constructs a new exception object and formats the message from a
  4457. reasource.</short>
  4458. <descr>
  4459. <var>CreateResFmt</var> does the same as <link
  4460. id="Exception.CreateFmt">CreateFmt</link>, but fetches
  4461. the message from the resource string <var>ResString</var>.
  4462. </descr>
  4463. <errors>
  4464. Construction may fail if there is not enough memory on the heap.
  4465. </errors>
  4466. <seealso>
  4467. <link id="Exception.Create"/>
  4468. <link id="Exception.CreateFmt"/>
  4469. <link id="Exception.CreateRes"/>
  4470. <link id="Exception.Message"/>
  4471. </seealso>
  4472. </element>
  4473. <!-- constructor Visibility: public -->
  4474. <element name="Exception.CreateHelp">
  4475. <short>Constructs a new exception object and sets the help context.</short>
  4476. <descr>
  4477. <var>CreateHelp</var> does the same as the <link
  4478. id="Exception.Create">Create</link> constructor,
  4479. but additionally stores <var>AHelpContext</var> in the <link
  4480. id="Exception.HelpContext">HelpContext</link> property.
  4481. </descr>
  4482. <seealso>
  4483. <link id="Exception.Create"/>
  4484. </seealso>
  4485. </element>
  4486. <!-- constructor Visibility: public -->
  4487. <element name="Exception.CreateFmtHelp">
  4488. <short>Constructs a new exception object and sets the help context and
  4489. formats the message</short>
  4490. <descr>
  4491. <var>CreateFmtHelp</var> does the same as the <link
  4492. id="Exception.CreateFmt">CreateFmt</link> constructor,
  4493. but additionally stores <var>AHelpContext</var> in the <link
  4494. id="Exception.HelpContext">HelpContext</link> property.
  4495. </descr>
  4496. <seealso>
  4497. <link id="Exception.CreateFmt"/>
  4498. </seealso>
  4499. </element>
  4500. <!-- constructor Visibility: public -->
  4501. <element name="Exception.CreateResHelp">
  4502. <short>Constructs a new exception object and sets the help context and
  4503. gets the message from a resource</short>
  4504. <descr>
  4505. <var>CreateResHelp</var> does the same as the <link
  4506. id="Exception.CreateRes">CreateRes</link> constructor,
  4507. but additionally stores <var>AHelpContext</var> in the <link
  4508. id="Exception.HelpContext">HelpContext</link> property.
  4509. </descr>
  4510. <seealso>
  4511. <link id="Exception.CreateRes"/>
  4512. </seealso>
  4513. </element>
  4514. <!-- constructor Visibility: public -->
  4515. <element name="Exception.CreateResFmtHelp">
  4516. <short>Constructs a new exception object and sets the help context and
  4517. formats the message from a resource</short>
  4518. <descr>
  4519. <var>CreateResFmtHelp</var> does the same as the <link
  4520. id="Exception.CreateResFmt">CreateResFmt</link> constructor,
  4521. but additionally stores <var>AHelpContext</var> in the <link
  4522. id="Exception.HelpContext">HelpContext</link> property.
  4523. </descr>
  4524. <seealso>
  4525. <link id="Exception.CreateResFmt"/>
  4526. </seealso>
  4527. </element>
  4528. <!-- property Visibility: public -->
  4529. <element name="Exception.helpcontext">
  4530. <short>Help context associated with the exception.</short>
  4531. <descr>
  4532. <var>HelpContext</var> is the help context associated with the exception,
  4533. and can be used to provide context-sensitive help when the exception error
  4534. message is displayed. It should be set in the exception constructor.
  4535. </descr>
  4536. <seealso>
  4537. <link id="Exception.CreateHelp"/>
  4538. <link id="Exception.Message"/>
  4539. </seealso>
  4540. </element>
  4541. <!-- property Visibility: public -->
  4542. <element name="Exception.message">
  4543. <short>Message associated with the exception.</short>
  4544. <descr>
  4545. <var>Message</var> provides additional information about the exception. It
  4546. is shown to the user in e.g. the <link id="ShowException"/> routine, and
  4547. should be set in the constructor when the exception is raised.
  4548. </descr>
  4549. <seealso>
  4550. <link id="Exception.Create"/>
  4551. <link id="Exception.HelpContext"/>
  4552. </seealso>
  4553. </element>
  4554. <!-- "class of" type Visibility: default -->
  4555. <element name="ExceptClass">
  4556. <short>Exception Class reference</short>
  4557. <descr>
  4558. <var>ExceptClass</var> is a <link id="Exception"/> class reference.
  4559. </descr>
  4560. <seealso>
  4561. <link id="Exception"/>
  4562. </seealso>
  4563. </element>
  4564. <!-- object Visibility: default -->
  4565. <element name="EExternal">
  4566. <short>External Exception.</short>
  4567. <descr>
  4568. <var>EExternal</var> is the base exception for all external exceptions, as
  4569. reported by the CPU or operating system, as opposed to internal exceptions,
  4570. which are raised by the program itself. The <file>SysUtils</file> unit
  4571. converts all operating system errors to descendents of <var>EExternal</var>.
  4572. </descr>
  4573. <seealso>
  4574. <link id="EInterror"/>
  4575. <link id="EExternal"/>
  4576. <link id="EMathError"/>
  4577. <link id="EExternalException"/>
  4578. <link id="EAccessViolation"/>
  4579. <link id="EPrivilege"/>
  4580. <link id="EStackOverflow"/>
  4581. <link id="EControlC"/>
  4582. </seealso>
  4583. </element>
  4584. <!-- object Visibility: default -->
  4585. <element name="EIntError">
  4586. <short>Integer operation error.</short>
  4587. <descr>
  4588. <var>EInterror</var> is used when the operating system or CPU signals an
  4589. integer operation error, e.g., an overflow.
  4590. </descr>
  4591. </element>
  4592. <!-- object Visibility: default -->
  4593. <element name="EDivByZero">
  4594. <short>Division by zero error.</short>
  4595. <descr>
  4596. <var>EDivByZero</var> is used when the operating system or CPU signals a
  4597. division by zero error.
  4598. </descr>
  4599. <link id="EIntError"/>
  4600. <link id="ERangeError"/>
  4601. <link id="EIntOverflow"/>
  4602. </element>
  4603. <!-- object Visibility: default -->
  4604. <element name="ERangeError">
  4605. <short>Range check error.</short>
  4606. <descr>
  4607. <var>ERangeError</var> is raised by the Free Pascal runtime library if
  4608. range checking is on, and a range check error occurs.
  4609. </descr>
  4610. <seealso>
  4611. <link id="EIntError"/>
  4612. <link id="EDivByZero"/>
  4613. <link id="EIntOverflow"/>
  4614. </seealso>
  4615. </element>
  4616. <!-- object Visibility: default -->
  4617. <element name="EIntOverflow">
  4618. <short>Integer overflow error.</short>
  4619. <descr>
  4620. <var>EIntOverflow</var> is used when the operating system or CPU signals a
  4621. integer overflow error.
  4622. </descr>
  4623. <seealso>
  4624. <link id="EIntError"/>
  4625. <link id="EDivByZero"/>
  4626. <link id="ERangeError"/>
  4627. </seealso>
  4628. </element>
  4629. <!-- object Visibility: default -->
  4630. <element name="EMathError">
  4631. <short>Mathematical error</short>
  4632. <descr>
  4633. <var>EMathError</var> is used when the operating system or CPU signals a
  4634. floating point overflow error.
  4635. </descr>
  4636. <seealso>
  4637. <link id="EIntError"/>
  4638. <link id="EIntOverflow"/>
  4639. <link id="EDivByZero"/>
  4640. <link id="ERangeError"/>
  4641. </seealso>
  4642. </element>
  4643. <!-- object Visibility: default -->
  4644. <element name="EInvalidOp">
  4645. <short>Invalid operation.</short>
  4646. <descr>
  4647. <var>EInvalidOp</var> is raised when an invalid operation is encountered.
  4648. </descr>
  4649. </element>
  4650. <!-- object Visibility: default -->
  4651. <element name="EZeroDivide">
  4652. <short>Division by zero error.</short>
  4653. <descr>
  4654. <var>EZeroDivide</var> occurs when a float division by zero occurs.
  4655. </descr>
  4656. <seealso>
  4657. <link id="EIntError"/>
  4658. <link id="EIntOverflow"/>
  4659. <link id="EDivByZero"/>
  4660. <link id="ERangeError"/>
  4661. </seealso>
  4662. </element>
  4663. <!-- object Visibility: default -->
  4664. <element name="EOverflow">
  4665. <short>Float overflow error.</short>
  4666. <descr>
  4667. <var>EOverflow</var> occurs when a float operation overflows. (i.e. result
  4668. is too big to represent).
  4669. </descr>
  4670. <seealso>
  4671. <link id="EIntError"/>
  4672. <link id="EIntOverflow"/>
  4673. <link id="EDivByZero"/>
  4674. <link id="ERangeError"/>
  4675. <link id="EUnderFlow"/>
  4676. </seealso>
  4677. </element>
  4678. <!-- object Visibility: default -->
  4679. <element name="EUnderflow">
  4680. <short>Float underflow error</short>
  4681. <descr>
  4682. <var>EOverflow</var> occurs when a float operation underflows (i.e. result
  4683. is too small to represent).
  4684. </descr>
  4685. <seealso>
  4686. <link id="EIntError"/>
  4687. <link id="EIntOverflow"/>
  4688. <link id="EDivByZero"/>
  4689. <link id="ERangeError"/>
  4690. <link id="EOverFlow"/>
  4691. </seealso>
  4692. </element>
  4693. <!-- object Visibility: default -->
  4694. <element name="EInOutError">
  4695. <short>Input/Output error</short>
  4696. <descr>
  4697. <var>EInOutError</var> is raised when a IO routine of Free Pascal returns an
  4698. error. The error is converted to an <var>EInOutError</var> only if the
  4699. input/output checking feature of FPC is turned on. The error code of the
  4700. input/output operation is returned in <link
  4701. id="EInOutError.ErrorCode">ErrorCode</link>.
  4702. </descr>
  4703. <seealso>
  4704. <link id="EInOutError.ErrorCode"/>
  4705. </seealso>
  4706. </element>
  4707. <!-- variable Visibility: public -->
  4708. <element name="EInOutError.ErrorCode">
  4709. <short>Error code for Input/Output operation.</short>
  4710. <descr>
  4711. <var>ErrorCode</var> contains the error code from the I/O operation which
  4712. raised the <link id="EInoutError"/> exception. An explanation of the error
  4713. codes can be found in the user's manual.
  4714. </descr>
  4715. </element>
  4716. <!-- object Visibility: default -->
  4717. <element name="EHeapMemoryError">
  4718. <short>Heap memory error</short>
  4719. <descr>
  4720. <var>EHeapMemoryError</var> is raised when an error occurs in heap
  4721. (dynamically allocated) memory.
  4722. </descr>
  4723. <seealso>
  4724. <link id="EHeapException"/>
  4725. <link id="EoutOfMemory"/>
  4726. <link id="EInvalidPointer"/>
  4727. </seealso>
  4728. </element>
  4729. <!-- alias type Visibility: default -->
  4730. <element name="EHeapException">
  4731. <short>Heap exception</short>
  4732. <descr>
  4733. <var>EHeapMemoryError</var> is raised when an error occurs in the heap
  4734. management routines.
  4735. </descr>
  4736. <seealso>
  4737. <link id="EHeapMemoryError"/>
  4738. <link id="EoutOfMemory"/>
  4739. <link id="EInvalidPointer"/>
  4740. </seealso>
  4741. </element>
  4742. <!-- object Visibility: default -->
  4743. <element name="EExternalException">
  4744. <short>External exception</short>
  4745. <descr>
  4746. <var>EExternalException</var> is raised when an external routine raises an
  4747. exception.
  4748. </descr>
  4749. <seealso>
  4750. <link id="EExternal"/>
  4751. </seealso>
  4752. </element>
  4753. <!-- object Visibility: default -->
  4754. <element name="EInvalidPointer">
  4755. <short>Invalid pointer operation</short>
  4756. <descr>
  4757. <var>EInvalidPointer</var> is raised when an invalid heap pointer is used.
  4758. </descr>
  4759. <seealso>
  4760. <link id="EHeapException"/>
  4761. <link id="EHeapMemoryError"/>
  4762. <link id="EOutOfMemory"/>
  4763. </seealso>
  4764. </element>
  4765. <!-- object Visibility: default -->
  4766. <element name="EOutOfMemory">
  4767. <short>Out of memory error.</short>
  4768. <descr>
  4769. <var>EOutOfMemory</var> occurs when memory can no longer be allocated on the
  4770. heap. An instance of <var>EOutOfMemory</var> is allocated on the heap at
  4771. program startup, so it is available when needed.
  4772. </descr>
  4773. <seealso>
  4774. <link id="EHeapException"/>
  4775. <link id="EHeapMemoryError"/>
  4776. <link id="EInvalidPointer"/>
  4777. </seealso>
  4778. </element>
  4779. <!-- object Visibility: default -->
  4780. <element name="EInvalidCast">
  4781. <short>Invalid typecast error.</short>
  4782. <descr>
  4783. <var>EInvalidCast</var> is raised when an invalid typecast error (using the
  4784. <var>as</var> operator) is encountered.
  4785. </descr>
  4786. <seealso>
  4787. <link id="EIntfCastError"/>
  4788. </seealso>
  4789. </element>
  4790. <!-- object Visibility: default -->
  4791. <element name="EVariantError">
  4792. <short>Variant error.</short>
  4793. <descr>
  4794. <var>EVariantError</var> is raised by the internal variant routines.
  4795. </descr>
  4796. </element>
  4797. <!-- object Visibility: default -->
  4798. <element name="EAccessViolation">
  4799. <short>Access Violation error</short>
  4800. <descr>
  4801. <var>EAccessViolation</var> is raised when the OS reports an Access
  4802. Violation, i.e. when invalid memory is accessed.
  4803. </descr>
  4804. </element>
  4805. <!-- object Visibility: default -->
  4806. <element name="EPrivilege">
  4807. <short>Privileged instruction error.</short>
  4808. <descr>
  4809. <var>EPrivilege</var> is raised when the OS reports that an invalid
  4810. instruction was executed.
  4811. </descr>
  4812. </element>
  4813. <!-- object Visibility: default -->
  4814. <element name="EStackOverflow">
  4815. <short>Stack overflow error.</short>
  4816. <descr>
  4817. <var>EStackOverflow</var> occurs when the stack has grown too big (e.g. by
  4818. infinite recursion).
  4819. </descr>
  4820. </element>
  4821. <!-- object Visibility: default -->
  4822. <element name="EControlC">
  4823. <short>Control-C (abort) was pressed on the console.</short>
  4824. <descr>
  4825. <var>EControlC</var> is raised when the user has pressed CTRL-C in a
  4826. console application.
  4827. </descr>
  4828. </element>
  4829. <!-- object Visibility: default -->
  4830. <element name="EConvertError">
  4831. <short>Conversion error.</short>
  4832. <descr>
  4833. <var>EConvertError</var> is raised by the various conversion routines in the
  4834. <file>SysUtils</file> unit. The message will contain more specific error
  4835. information.
  4836. </descr>
  4837. </element>
  4838. <!-- object Visibility: default -->
  4839. <element name="EAbort">
  4840. <short>Abort error.</short>
  4841. <descr>
  4842. <var>Abort</var> is raised by the <link id="Abort"/> procedure. It is not
  4843. displayed in GUI applications, and serves only to immediatly abort the current
  4844. procedure, and return control to the main program loop.
  4845. </descr>
  4846. <seealso>
  4847. <link id="Abort"/>
  4848. </seealso>
  4849. </element>
  4850. <!-- object Visibility: default -->
  4851. <element name="EAbstractError">
  4852. <short>Abstract error.</short>
  4853. <descr>
  4854. <var>EAbstractError</var> is raised when an abstract error occurs, i.e. when
  4855. an unimplemented abstract method is called.
  4856. </descr>
  4857. </element>
  4858. <!-- object Visibility: default -->
  4859. <element name="EAssertionFailed">
  4860. <short>Assertion failed error.</short>
  4861. <descr>
  4862. <var>EAssertionFailed</var> is raised when an application that is compiled
  4863. with assertions, encounters an invalid assertion.
  4864. </descr>
  4865. <errors>
  4866. </errors>
  4867. <seealso>
  4868. </seealso>
  4869. </element>
  4870. <!-- object Visibility: default -->
  4871. <element name="EPropReadOnly">
  4872. <short>Read-only property error.</short>
  4873. <descr>
  4874. <var>EPropReadOnly</var> is raised when an attempt is made to write to a
  4875. read-only property.
  4876. </descr>
  4877. <link id="EPropWriteOnly"/>
  4878. </element>
  4879. <!-- object Visibility: default -->
  4880. <element name="EPropWriteOnly">
  4881. <short>Write-only property error.</short>
  4882. <descr>
  4883. <var>EPropWriteOnly</var> is raised when an attempt is made to read from a
  4884. write-only property.
  4885. </descr>
  4886. <seealso>
  4887. <link id="EPropReadOnly"/>
  4888. </seealso>
  4889. </element>
  4890. <!-- object Visibility: default -->
  4891. <element name="EIntfCastError">
  4892. <short>Invalid interface cast error.</short>
  4893. <descr>
  4894. <var>EIntfCastError</var> is raised when an invalid interface cast is
  4895. encountered.
  4896. </descr>
  4897. <seealso>
  4898. <link id="EInvalidCast"/>
  4899. </seealso>
  4900. </element>
  4901. <!-- object Visibility: default -->
  4902. <element name="EInvalidContainer">
  4903. <short>Invalid container error.</short>
  4904. <descr>
  4905. <var>EInvalidContainer</var> is not yet used by Free Pascal, and is provided
  4906. for Delphi compatibility only.
  4907. </descr>
  4908. </element>
  4909. <!-- object Visibility: default -->
  4910. <element name="EInvalidInsert">
  4911. <short>Invalid insert error.</short>
  4912. <descr>
  4913. <var>EInvalidInsert</var> is not yet used by Free Pascal, and is provided
  4914. for Delphi compatibility only.
  4915. </descr>
  4916. </element>
  4917. <!-- object Visibility: default -->
  4918. <element name="EPackageError">
  4919. <short>Package error.</short>
  4920. <descr>
  4921. <var>EPackageError</var> is not yet used by Free Pascal, and is provided
  4922. for Delphi compatibility only.
  4923. </descr>
  4924. </element>
  4925. <!-- object Visibility: default -->
  4926. <element name="EOSError">
  4927. <short>Operating system error.</short>
  4928. <descr>
  4929. <var>EOSError</var> is raised when some Operating System call fails. The
  4930. <link id="EOSError.ErrorCode">ErrorCode</link> property contains the
  4931. operating system error code.
  4932. </descr>
  4933. <seealso>
  4934. <link id="EOSError.ErrorCode"/>
  4935. </seealso>
  4936. </element>
  4937. <!-- variable Visibility: public -->
  4938. <element name="EOSError.ErrorCode">
  4939. <short>Operating system error code.</short>
  4940. <descr>
  4941. <var>ErrorCode</var> contains the error code reported by the operating
  4942. system for the call which caused the <link id="EOSError"/> to be raised.
  4943. </descr>
  4944. <seealso>
  4945. <link id="EOSError"/>
  4946. </seealso>
  4947. </element>
  4948. <!-- object Visibility: default -->
  4949. <element name="ESafecallException">
  4950. <short>SafeCall exception.</short>
  4951. <descr>
  4952. <var>ESafecallException</var> is not yet used by Free Pascal, and is provided
  4953. for Delphi compatibility only.
  4954. </descr>
  4955. </element>
  4956. <!-- object Visibility: default -->
  4957. <element name="ENoThreadSupport">
  4958. <short>No Thread support error.</short>
  4959. <descr>
  4960. <var>ENoThreadSupport</var> is raised when some thread routines are invoked,
  4961. and thread support was not enabled when the program was compiled.
  4962. </descr>
  4963. </element>
  4964. <!-- function Visibility: default -->
  4965. <element name="ExceptObject">
  4966. <short>Current Exception object.</short>
  4967. <descr>
  4968. <var>ExceptObject</var> returns the currently treated exception object when
  4969. an exception is raised, and the stack is unwound.
  4970. </descr>
  4971. <errors>
  4972. If there is no exception, the function returns <var>Nil</var>
  4973. </errors>
  4974. <seealso>
  4975. <link id="ExceptAddr"/>
  4976. <link id="ExceptionErrorMessage"/>
  4977. <link id="ShowException"/>
  4978. </seealso>
  4979. </element>
  4980. <!-- function Visibility: default -->
  4981. <element name="ExceptAddr">
  4982. <short>Current exception address.</short>
  4983. <descr>
  4984. <var>ExceptAddr</var> returns the address from the currently treated
  4985. exception object when an exception is raised, and the stack is unwound.
  4986. </descr>
  4987. <seealso>
  4988. <link id="ExceptObject"/>
  4989. <link id="ExceptionErrorMessage"/>
  4990. <link id="ShowException"/>
  4991. </seealso>
  4992. </element>
  4993. <!-- function Visibility: default -->
  4994. <element name="ExceptionErrorMessage">
  4995. <short>Return a message describing the exception.</short>
  4996. <descr>
  4997. <p>
  4998. <var>ExceptionErrorMessage</var> creates a string that describes the
  4999. exception object <var>ExceptObject</var> at address <var>ExceptAddr</var>.
  5000. It can be used to display exception messages. The string will be stored in
  5001. the memory pointed to by <var>Buffer</var>, and will at most have
  5002. <var>Size</var> characters.
  5003. </p>
  5004. <p>
  5005. The routine checks whether <var>ExceptObject</var> is a <link
  5006. id="Exception"/> object or not, and adapts the output accordingly.
  5007. </p>
  5008. </descr>
  5009. <seealso>
  5010. <link id="ExceptObject"/>
  5011. <link id="ExceptAddr"/>
  5012. <link id="ShowException"/>
  5013. </seealso>
  5014. </element>
  5015. <!-- procedure Visibility: default -->
  5016. <element name="ShowException">
  5017. <short>Show the current exception to the user.</short>
  5018. <descr>
  5019. <p>
  5020. <var>ShowException</var> shows a message stating that a <var>ExceptObject</var>
  5021. was raised at address <var>ExceptAddr</var>. It uses <link
  5022. id="ExceptionErrorMessage"/> to create the message, and is aware of the fact
  5023. whether the application is a console application or a GUI application. For a
  5024. console application, the message is written to standard error output. For a
  5025. GUI application, <link id="OnShowException"/> is executed.
  5026. </p>
  5027. </descr>
  5028. <errors>
  5029. <p>
  5030. If, for a GUI application, <link id="OnShowException"/> is not set, no
  5031. message will be displayed to the user.
  5032. </p>
  5033. <p>
  5034. The exception message can be at most 255 characters long: It is possible
  5035. that no memory can be allocated on the heap, so ansistrings are not
  5036. available, so a shortstring is used to display the message.
  5037. </p>
  5038. </errors>
  5039. <seealso>
  5040. <link id="ExceptObject"/>
  5041. <link id="ExceptAddr"/>
  5042. <link id="ExceptionErrorMessage"/>
  5043. </seealso>
  5044. </element>
  5045. <!-- procedure Visibility: default -->
  5046. <element name="Abort">
  5047. <short>Abort program execution.</short>
  5048. <descr>
  5049. <var>Abort</var> raises an <link id="EAbort"/> exception.
  5050. </descr>
  5051. <seealso>
  5052. <link id="Abort"/>
  5053. </seealso>
  5054. </element>
  5055. <!-- procedure Visibility: default -->
  5056. <element name="OutOfMemoryError">
  5057. <short>Raise an <var>EOutOfMemory</var> exception</short>
  5058. <descr>
  5059. <var>OutOfMemoryError</var> raises an <link id="EOutOfMemory"/> exception,
  5060. with an exception object that has been allocated on the heap at program
  5061. startup. The program should neved create an <link id="EOutOfMemory"/>
  5062. exception, but always call this routine.
  5063. </descr>
  5064. <seealso>
  5065. <link id="EOutOfMemory"/>
  5066. </seealso>
  5067. </element>
  5068. <!-- procedure Visibility: default -->
  5069. <element name="Beep">
  5070. <short>Sound the system bell.</short>
  5071. <descr>
  5072. <var>Beep</var> sounds the system bell, if one is available.
  5073. </descr>
  5074. <errors>
  5075. This routine may not be implemented on all platforms.
  5076. </errors>
  5077. </element>
  5078. <!-- function Visibility: default -->
  5079. <element name="SysErrorMessage">
  5080. <short>Format a system error message.</short>
  5081. <descr>
  5082. <var>SysErrorMessage</var> returns a string that describes the operating
  5083. system error code <var>ErrorCode</var>.
  5084. </descr>
  5085. <errors>
  5086. This routine may not be implemented on all platforms.
  5087. </errors>
  5088. <seealso>
  5089. <link id="EOSError"/>
  5090. </seealso>
  5091. </element>
  5092. <!-- function type Visibility: default -->
  5093. <element name="TTerminateProc">
  5094. <short>Terminate procedure procedural variable.</short>
  5095. <descr>
  5096. <var>TTerminateProc</var> is the procedural type which should be used when
  5097. adding exit procedures.
  5098. </descr>
  5099. <seealso>
  5100. <link id="AddTerminateProc"/>
  5101. </seealso>
  5102. </element>
  5103. <!-- procedure Visibility: default -->
  5104. <element name="AddTerminateProc">
  5105. <short>Add a procedure to the exit chain.</short>
  5106. <descr>
  5107. <var>AddTerminateProc</var> adds <var>TermProc</var> to the list of exit
  5108. procedures. When the program exits, the list of exit procedures is run over,
  5109. and all procedures are called one by one, in the reverse order that they
  5110. were added to the exit chain.
  5111. </descr>
  5112. <errors>
  5113. If no memory is available on the heap, an exception may be raised.
  5114. </errors>
  5115. <seealso>
  5116. <link id="TTerminateProc"/>
  5117. <link id="CallTerminateProcs"/>
  5118. </seealso>
  5119. </element>
  5120. <!-- function Visibility: default -->
  5121. <element name="CallTerminateProcs">
  5122. <short>Call the exit chain procedures.</short>
  5123. <descr>
  5124. <var>CallTerminateProcs</var> is run on program exit. It executes all
  5125. terminate procedures that were added to the exit chain with <link
  5126. id="AddTerminateProc"/>, and does this in reverse order.
  5127. </descr>
  5128. <errors>
  5129. If one of the exit procedure raises an exception, it is <em>not</em> caught,
  5130. and the remaining exit procedures will not be executed.
  5131. </errors>
  5132. <seealso>
  5133. <link id="TTerminateProc"/>
  5134. <link id="AddTerminateProc"/>
  5135. </seealso>
  5136. </element>
  5137. <!-- variable Visibility: default -->
  5138. <element name="OnShowException">
  5139. <short>Callback to show unhandled exceptions.</short>
  5140. <descr>
  5141. <var>OnShowException</var> is the callback that <link id="ShowException"/>
  5142. uses to display a message in a GUI application. For GUI applications, this
  5143. variable should always be set. Note that no memory may be available when
  5144. this callback is called, so the callback should already have all resources
  5145. it needs, when the callback is set.
  5146. </descr>
  5147. <seealso>
  5148. <link id="ShowException"/>
  5149. <link id="ExceptionErrorMessage"/>
  5150. </seealso>
  5151. </element>
  5152. <!-- constant Visibility: default -->
  5153. <element name="filerecnamelength">
  5154. <short>Length of filerec filename field.</short>
  5155. <descr>
  5156. <var>filerecnamelength</var> describes the length of the <link
  5157. id="FileRec"/> filename field.
  5158. </descr>
  5159. </element>
  5160. <!-- record type Visibility: default -->
  5161. <element name="FileRec">
  5162. <short>Record describing an untyped file.</short>
  5163. <descr>
  5164. <p>
  5165. <var>FileRec</var> describes a untyped file. This record is made available
  5166. so it can be used to implement drivers for other than the normal file system
  5167. file records.
  5168. </p>
  5169. </descr>
  5170. <seealso>
  5171. <link id="TFileRec"/>
  5172. <link id="TextRec"/>
  5173. <link id="TTextRec"/>
  5174. </seealso>
  5175. </element>
  5176. <!-- variable Visibility: default -->
  5177. <element name="FileRec.Handle">
  5178. <short>Operating system file handle.</short>
  5179. </element>
  5180. <!-- variable Visibility: default -->
  5181. <element name="FileRec.Mode">
  5182. <short>Current file mode.</short>
  5183. </element>
  5184. <!-- variable Visibility: default -->
  5185. <element name="FileRec.RecSize">
  5186. <short>Record data size</short>
  5187. </element>
  5188. <!-- variable Visibility: default -->
  5189. <element name="FileRec._private">
  5190. <short>Private data. Do not use</short>
  5191. </element>
  5192. <!-- variable Visibility: default -->
  5193. <element name="FileRec.UserData">
  5194. <short>User data. Only use when implementing new type.</short>
  5195. </element>
  5196. <!-- variable Visibility: default -->
  5197. <element name="FileRec.name">
  5198. <short>File name</short>
  5199. </element>
  5200. <!-- constant Visibility: default -->
  5201. <element name="TextRecNameLength">
  5202. <short>Length of text file record filename field </short>
  5203. </element>
  5204. <!-- constant Visibility: default -->
  5205. <element name="TextRecBufSize">
  5206. <short>Buffer size of text file record.</short>
  5207. <var>TextRecBufSize</var> is the size of the default buffer in <link
  5208. id="TextRec"/>
  5209. </element>
  5210. <!-- array type Visibility: default -->
  5211. <element name="TextBuf">
  5212. <short>Text record buffer array type</short>
  5213. <descr>
  5214. <var>TextBuf</var> is the type for the default buffer in <link
  5215. id="TextRec"/>
  5216. </descr>
  5217. </element>
  5218. <!-- record type Visibility: default -->
  5219. <element name="TextRec">
  5220. <short>Record describing a text file type</short>
  5221. <descr>
  5222. <p>
  5223. <var>TextRec</var> describes a text file. This record is made available
  5224. so it can be used to implement drivers for other than the normal file system
  5225. file records.
  5226. </p>
  5227. <p>
  5228. To implement a driver, an <var>Assign</var> procedure must be implemented,
  5229. which fills in the various fields of the record. Most notably, the callback
  5230. functions must be filled in appropriately.
  5231. After this, the normal file operations will handle all necessary calls to the
  5232. various callbacks.
  5233. </p>
  5234. </descr>
  5235. <seealso>
  5236. <link id="TTextRec"/>
  5237. <link id="TFileRec"/>
  5238. <link id="FileRec"/>
  5239. </seealso>
  5240. </element>
  5241. <!-- variable Visibility: default -->
  5242. <element name="TextRec.Handle">
  5243. <short>Operating system handle for file.</short>
  5244. </element>
  5245. <!-- variable Visibility: default -->
  5246. <element name="TextRec.Mode">
  5247. <short>Open mode</short>
  5248. </element>
  5249. <!-- variable Visibility: default -->
  5250. <element name="TextRec.bufsize">
  5251. <short>Size of buffer.</short>
  5252. </element>
  5253. <!-- variable Visibility: default -->
  5254. <element name="TextRec._private">
  5255. <short>Private data. Do not use.</short>
  5256. </element>
  5257. <!-- variable Visibility: default -->
  5258. <element name="TextRec.bufpos">
  5259. <short>Current buffer position.</short>
  5260. </element>
  5261. <!-- variable Visibility: default -->
  5262. <element name="TextRec.bufend">
  5263. <short>Current buffer end.</short>
  5264. </element>
  5265. <!-- variable Visibility: default -->
  5266. <element name="TextRec.bufptr">
  5267. <short>Pointer to current buffer.</short>
  5268. </element>
  5269. <!-- variable Visibility: default -->
  5270. <element name="TextRec.openfunc">
  5271. <short>File open function. Allocates handle.</short>
  5272. </element>
  5273. <!-- variable Visibility: default -->
  5274. <element name="TextRec.inoutfunc">
  5275. <short>Read/write function</short>
  5276. </element>
  5277. <!-- variable Visibility: default -->
  5278. <element name="TextRec.flushfunc">
  5279. <short>Flush buffer function</short>
  5280. </element>
  5281. <!-- variable Visibility: default -->
  5282. <element name="TextRec.closefunc">
  5283. <short>Close handle function.</short>
  5284. </element>
  5285. <!-- variable Visibility: default -->
  5286. <element name="TextRec.UserData">
  5287. <short>User data for text rec.</short>
  5288. </element>
  5289. <!-- variable Visibility: default -->
  5290. <element name="TextRec.name">
  5291. <short>File name</short>
  5292. </element>
  5293. <!-- variable Visibility: default -->
  5294. <element name="TextRec.buffer">
  5295. <short>Default buffer.</short>
  5296. </element>
  5297. <!-- constant Visibility: default -->
  5298. <element name="HexDisplayPrefix">
  5299. <short>String to prepend to hexadecimal values</short>
  5300. <descr>
  5301. <var>HexDisplayPrefix</var> is used by the formatting routines to indicate
  5302. that the number which follows the prefix is in Hexadecimal notation.
  5303. </descr>
  5304. <errors>
  5305. Currently unused in Free Pascal.
  5306. </errors>
  5307. </element>
  5308. <!-- constant Visibility: default -->
  5309. <element name="PathDelim">
  5310. <short>Path (directory) delimiter.</short>
  5311. <descr>
  5312. <var>PathDelim</var> refers to the system unit's <var>DirectorySeparator</var>
  5313. constant, it is for Delphi compatibility only.
  5314. </descr>
  5315. <seealso>
  5316. <link id="DriveDelim"/>
  5317. <link id="PathSep"/>
  5318. </seealso>
  5319. </element>
  5320. <!-- constant Visibility: default -->
  5321. <element name="DriveDelim">
  5322. <short>Drive letter delimiter</short>
  5323. <descr>
  5324. <var>DriveDelim</var> refers to the system unit's <var>DriveSeparator</var>
  5325. constant, it is for Delphi compatibility only.
  5326. </descr>
  5327. <seealso>
  5328. <link id="PathDelim"/>
  5329. <link id="PathSep"/>
  5330. </seealso>
  5331. </element>
  5332. <!-- constant Visibility: default -->
  5333. <element name="PathSep">
  5334. <short>Path separator. (Separates paths in search path lists)</short>
  5335. <descr>
  5336. <var>PathSep</var> refers to the system unit's <var>PathSeparator</var>
  5337. constant, it is for Delphi compatibility only.
  5338. </descr>
  5339. <seealso>
  5340. <link id="PathDelim"/>
  5341. <link id="DriveDelim"/>
  5342. </seealso>
  5343. </element>
  5344. <!-- alias type Visibility: default -->
  5345. <element name="TFileRec">
  5346. <short>Record describing an untyped file.</short>
  5347. <descr>
  5348. Alias for <link id="FileRec"/> for Delphi compatibility.
  5349. </descr>
  5350. </element>
  5351. <!-- alias type Visibility: default -->
  5352. <element name="TTextRec">
  5353. <short>Record describing a text file.</short>
  5354. <descr>
  5355. Alias for <link id="TextRec"/> for Delphi compatibility.
  5356. </descr>
  5357. </element>
  5358. <!-- array type Visibility: default -->
  5359. <element name="TCaseTranslationTable">
  5360. <short>Type for case conversion tables.</short>
  5361. <descr>
  5362. <var>TCaseTranslationTable</var> is the type for a lookup table that can
  5363. convert 255 ascii characters.
  5364. </descr>
  5365. <seealso>
  5366. <link id="UpperCaseTable"/>
  5367. <link id="LowerCaseTable"/>
  5368. </seealso>
  5369. </element>
  5370. <!-- variable Visibility: default -->
  5371. <element name="UpperCaseTable">
  5372. <short>Table for conversion of characters to uppercase.</short>
  5373. <descr>
  5374. <var>UpperCaseTable</var> is used by the <link id="UpperCase"/> routine (and
  5375. friends) to convert a string to all-uppercase characters. It is filled with
  5376. the appropriate entries by the <file>SysUtils</file> unit initialization routines.
  5377. </descr>
  5378. <seealso>
  5379. <link id="TCaseTranslationTable"/>
  5380. <link id="LowerCaseTable"/>
  5381. <link id="UpperCase"/>
  5382. </seealso>
  5383. </element>
  5384. <!-- variable Visibility: default -->
  5385. <element name="LowerCaseTable">
  5386. <short>Table for conversion of characters to lowercase.</short>
  5387. <descr>
  5388. <var>LowerCaseTable</var> is used by the <link id="LowerCase"/> routine (and
  5389. friends) to convert a string to all-lowercase characters. It is filled with
  5390. the appropriate entries by the <file>SysUtils</file> unit initialization
  5391. routines.
  5392. </descr>
  5393. <seealso>
  5394. <link id="TCaseTranslationTable"/>
  5395. <link id="UpperCaseTable"/>
  5396. <link id="LowerCase"/>
  5397. </seealso>
  5398. </element>
  5399. <!-- constant Visibility: default -->
  5400. <element name="DateSeparator">
  5401. <short>Date separator character (subject to locale).</short>
  5402. <descr>
  5403. <var>DateSeparator</var> is the character used by various date/time
  5404. conversion routines as the character that separates the day from the month
  5405. and the month from the year in a date notation. It is used by the date
  5406. formatting routines. This constant is initialized by the
  5407. initialization routines of the <file>SysUtils</file> unit.
  5408. </descr>
  5409. <seealso>
  5410. <link id="LongDateFormat"/>
  5411. <link id="FormatDateTime"/>
  5412. <link id="DateSeparator"/>
  5413. </seealso>
  5414. </element>
  5415. <!-- constant Visibility: default -->
  5416. <element name="ShortDateFormat">
  5417. <short>Short Date Format string (subject to locale).</short>
  5418. <descr>
  5419. <var>ShortDateFormat</var> contains a template to format a date in a short
  5420. format. It is used by the date formatting routines.
  5421. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5422. </descr>
  5423. <seealso>
  5424. <link id="LongDateFormat"/>
  5425. <link id="FormatDateTime"/>
  5426. <link id="DateSeparator"/>
  5427. </seealso>
  5428. </element>
  5429. <!-- constant Visibility: default -->
  5430. <element name="LongDateFormat">
  5431. <short>Long date format string (subject to locale).</short>
  5432. <descr>
  5433. <var>LongDateFormat</var> contains a template to format a date in a long
  5434. format. It is used by the date formatting routines.
  5435. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5436. </descr>
  5437. <seealso>
  5438. <link id="ShortDateFormat"/>
  5439. <link id="FormatDateTime"/>
  5440. <link id="DateSeparator"/>
  5441. </seealso>
  5442. </element>
  5443. <!-- constant Visibility: default -->
  5444. <element name="ShortMonthNames">
  5445. <short>Names of months, abbreviated form.</short>
  5446. <descr>
  5447. <var>ShortMonthNames</var> is an array with the abbreviated names of months.
  5448. It is used by the date formatting routines.
  5449. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5450. </descr>
  5451. <seealso>
  5452. <link id="ShortDateFormat"/>
  5453. <link id="FormatDateTime"/>
  5454. <link id="LongMonthNames"/>
  5455. <link id="ShortDayNames"/>
  5456. </seealso>
  5457. </element>
  5458. <!-- constant Visibility: default -->
  5459. <element name="LongMonthNames">
  5460. <short>Full names of months.</short>
  5461. <descr>
  5462. <var>LongMonthNames</var> is an array with the full names of months.
  5463. It is used by the date formatting routines.
  5464. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5465. </descr>
  5466. <seealso>
  5467. <link id="ShortDateFormat"/>
  5468. <link id="FormatDateTime"/>
  5469. <link id="ShortMonthNames"/>
  5470. </seealso>
  5471. </element>
  5472. <!-- constant Visibility: default -->
  5473. <element name="ShortDayNames">
  5474. <short>Names of days, abbreviated form.</short>
  5475. <descr>
  5476. <var>ShortDayNames</var> is an array with the abbreviated names of days.
  5477. It is used by the date formatting routines.
  5478. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5479. </descr>
  5480. <seealso>
  5481. <link id="ShortDateFormat"/>
  5482. <link id="FormatDateTime"/>
  5483. <link id="LongDayNames"/>
  5484. <link id="ShortMonthNames"/>
  5485. </seealso>
  5486. </element>
  5487. <!-- constant Visibility: default -->
  5488. <element name="LongDayNames">
  5489. <short>Full names of days.</short>
  5490. <descr>
  5491. <var>LongDayNames</var> is an array with the full names of days.
  5492. It is used by the date formatting routines.
  5493. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5494. </descr>
  5495. <seealso>
  5496. <link id="ShortDateFormat"/>
  5497. <link id="FormatDateTime"/>
  5498. <link id="ShortDayNames"/>
  5499. <link id="ShortMonthNames"/>
  5500. </seealso>
  5501. </element>
  5502. <!-- constant Visibility: default -->
  5503. <element name="ShortTimeFormat">
  5504. <short>Short time format string (subject to locale).</short>
  5505. <descr>
  5506. <var>ShortTimeFormat</var> contains a template to format a time in a short
  5507. notation. It is used by the time formatting routines.
  5508. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5509. </descr>
  5510. <seealso>
  5511. <link id="LongTimeFormat"/>
  5512. <link id="FormatDateTime"/>
  5513. <link id="TimeSeparator"/>
  5514. </seealso>
  5515. </element>
  5516. <!-- constant Visibility: default -->
  5517. <element name="LongTimeFormat">
  5518. <short>Long time format string (subject to locale)</short>
  5519. <descr>
  5520. <var>LongTimeFormat</var> contains a template to format a time in full
  5521. notation. It is used by the time formatting routines.
  5522. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5523. </descr>
  5524. <seealso>
  5525. <link id="ShortTimeFormat"/>
  5526. <link id="FormatDateTime"/>
  5527. <link id="TimeSeparator"/>
  5528. </seealso>
  5529. </element>
  5530. <!-- constant Visibility: default -->
  5531. <element name="TimeSeparator">
  5532. <short>Time separator character.</short>
  5533. <descr>
  5534. <var>TimeSeparator</var> is used by the time formatting routines to separate
  5535. the hours from the minutes and the minutes from the seconds.
  5536. It is used by the time formatting routines.
  5537. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5538. </descr>
  5539. <seealso>
  5540. <link id="ShortTimeFormat"/>
  5541. <link id="FormatDateTime"/>
  5542. <link id="LongTimeFormat"/>
  5543. <link id="TimeAMString"/>
  5544. <link id="TimePMString"/>
  5545. </seealso>
  5546. </element>
  5547. <!-- constant Visibility: default -->
  5548. <element name="TimeAMString">
  5549. <short>AM indicator string.</short>
  5550. <descr>
  5551. <var>TimeAMString</var> is used to display the AM symbol in the time
  5552. formatting routines.
  5553. It is used by the time formatting routines.
  5554. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.</descr>
  5555. <errors>
  5556. </errors>
  5557. <seealso>
  5558. <link id="ShortTimeFormat"/>
  5559. <link id="FormatDateTime"/>
  5560. <link id="LongTimeFormat"/>
  5561. <link id="TimePMString"/>
  5562. </seealso>
  5563. </element>
  5564. <!-- constant Visibility: default -->
  5565. <element name="TimePMString">
  5566. <short>PM indicator string.</short>
  5567. <descr>
  5568. <var>TimePMString</var> is used to display the PM symbol in the time
  5569. formatting routines.
  5570. It is used by the time formatting routines.
  5571. This constant is initialized by the initialization routines of the <file>SysUtils</file> unit.
  5572. </descr>
  5573. <seealso>
  5574. <link id="ShortTimeFormat"/>
  5575. <link id="FormatDateTime"/>
  5576. <link id="LongTimeFormat"/>
  5577. <link id="TimeAMString"/>
  5578. </seealso>
  5579. </element>
  5580. <!-- constant Visibility: default -->
  5581. <element name="DecimalSeparator">
  5582. <short>Decimal point separator.</short>
  5583. <descr>
  5584. <var>DecimalSeparator</var> is used to display the decimal symbol in
  5585. floating point numbers or currencies.
  5586. It is used by the float formatting routines.
  5587. This constant is initialized by the initialization routines of the
  5588. <file>SysUtils</file> unit.
  5589. </descr>
  5590. <seealso>
  5591. <link id="ThousandSeparator"/>
  5592. <link id="Format"/>
  5593. <link id="FormatFloat"/>
  5594. <link id="FloatToStr"/>
  5595. </seealso>
  5596. </element>
  5597. <!-- constant Visibility: default -->
  5598. <element name="ThousandSeparator">
  5599. <short>Thousand grouping character.</short>
  5600. <descr>
  5601. <var>ThousandSeparator</var> is used to separate groups of thousands in
  5602. floating point numbers or currencies. It is used by the float formatting routines.
  5603. This constant is initialized by the initialization routines of the
  5604. <file>SysUtils</file> unit.
  5605. </descr>
  5606. <seealso>
  5607. <link id="DecimalSeparator"/>
  5608. <link id="Format"/>
  5609. <link id="FormatFloat"/>
  5610. <link id="FloatToStr"/>
  5611. </seealso>
  5612. </element>
  5613. <!-- constant Visibility: default -->
  5614. <element name="CurrencyDecimals">
  5615. <short>Number of decimals in currency amounts.</short>
  5616. <descr>
  5617. <var>CurrencyDecimals</var> is the number of decimals to be used when
  5618. formatting a currency. It is used by the float formatting routines.
  5619. This constant is initialized by the initialization routines of the
  5620. <file>SysUtils</file> unit.
  5621. </descr>
  5622. <seealso>
  5623. <link id="Format"/>
  5624. <link id="DecimalSeparator"/>
  5625. </seealso>
  5626. </element>
  5627. <!-- constant Visibility: default -->
  5628. <element name="CurrencyFormat">
  5629. <short>Format string for currencies.</short>
  5630. <descr>
  5631. <var>CurrencyFormat</var> is the default format string for positive currencies.
  5632. It is used by the float formatting routines.
  5633. This constant is initialized by the initialization routines of the
  5634. <file>SysUtils</file> unit.
  5635. </descr>
  5636. <seealso>
  5637. <link id="CurrencyDecimals"/>
  5638. <link id="NegCurrFormat"/>
  5639. <link id="CurrencyString"/>
  5640. <link id="Format"/>
  5641. <link id="FloatToText"/>
  5642. </seealso>
  5643. </element>
  5644. <!-- constant Visibility: default -->
  5645. <element name="NegCurrFormat">
  5646. <short>Format string for negative currencies.</short>
  5647. <descr>
  5648. <var>CurrencyFormat</var> is the default format string for negative currencies.
  5649. It is used by the float formatting routines.
  5650. This constant is initialized by the initialization routines of the
  5651. <file>SysUtils</file> unit.
  5652. </descr>
  5653. <seealso>
  5654. <link id="CurrencyDecimals"/>
  5655. <link id="CurrencyFormat"/>
  5656. <link id="CurrencyString"/>
  5657. <link id="Format"/>
  5658. <link id="FloatToText"/>
  5659. </seealso>
  5660. </element>
  5661. <!-- constant Visibility: default -->
  5662. <element name="CurrencyString">
  5663. <short>Name of currency.</short>
  5664. <descr>
  5665. <var>CurrencyString</var> is the currency symbol for the current locale.
  5666. It is used by the float formatting routines.
  5667. This constant is initialized by the initialization routines of the
  5668. <file>SysUtils</file> unit.
  5669. </descr>
  5670. <seealso>
  5671. <link id="CurrencyDecimals"/>
  5672. <link id="NegCurrFormat"/>
  5673. <link id="CurrencyFormat"/>
  5674. <link id="Format"/>
  5675. <link id="FloatToText"/>
  5676. </seealso>
  5677. </element>
  5678. <!-- function Visibility: default -->
  5679. <element name="strlen">
  5680. <short>Length of a null-terminated string.</short>
  5681. <descr>
  5682. Returns the length of the null-terminated string <var>P</var>.
  5683. </descr>
  5684. <errors>
  5685. None.
  5686. </errors>
  5687. <seealso>
  5688. <link id="StrNew"/>
  5689. </seealso>
  5690. <example file="stringex/ex1"/>
  5691. </element>
  5692. <!-- function Visibility: default -->
  5693. <element name="strcopy">
  5694. <short>Copy a null-terminated string</short>
  5695. <descr>
  5696. Copy the null terminated string in <var>Source</var> to <var>Dest</var>, and
  5697. returns a pointer to <var>Dest</var>. <var>Dest</var> needs enough room to contain
  5698. <var>Source</var>, i.e. <var>StrLen(Source)+1</var> bytes.
  5699. </descr>
  5700. <errors>
  5701. No length checking is performed.
  5702. </errors>
  5703. <seealso>
  5704. <link id="StrPCopy"/>
  5705. <link id="StrLCopy"/>
  5706. <link id="StrECopy"/>
  5707. </seealso>
  5708. <example file="stringex/ex4"/>
  5709. </element>
  5710. <!-- function Visibility: default -->
  5711. <element name="strlcopy">
  5712. <short>Copy a null-terminated string, limited in length.</short>
  5713. <descr>
  5714. Copies <var>MaxLen</var> characters from <var>Source</var> to <var>Dest</var>, and makes
  5715. <var>Dest</var> a null terminated string.
  5716. </descr>
  5717. <errors>
  5718. No length checking is performed.
  5719. </errors>
  5720. <seealso>
  5721. <link id="StrCopy"/>
  5722. <link id="StrECopy"/>
  5723. </seealso>
  5724. <example file="stringex/ex5"/>
  5725. </element>
  5726. <!-- function Visibility: default -->
  5727. <element name="strecopy">
  5728. <short>Copy a null-terminated string, return a pointer to the end.</short>
  5729. <descr>
  5730. Copies the Null-terminated string in <var>Source</var> to <var>Dest</var>, and
  5731. returns a pointer to the end (i.e. the terminating Null-character) of the
  5732. copied string.
  5733. </descr>
  5734. <errors>
  5735. No length checking is performed.
  5736. </errors>
  5737. <seealso>
  5738. <link id="StrLCopy"/>
  5739. <link id="StrCopy"/>
  5740. </seealso>
  5741. <example file="stringex/ex6"/>
  5742. </element>
  5743. <!-- function Visibility: default -->
  5744. <element name="strend">
  5745. <short>Return a pointer to the end of a null-terminated string</short>
  5746. <descr>
  5747. Returns a pointer to the end of <var>P</var>. (i.e. to the terminating
  5748. null-character.
  5749. </descr>
  5750. <errors>
  5751. None.
  5752. </errors>
  5753. <seealso>
  5754. <link id="StrLen"/>
  5755. </seealso>
  5756. <example file="stringex/ex7"/>
  5757. </element>
  5758. <!-- function Visibility: default -->
  5759. <element name="strcat">
  5760. <short>Concatenate 2 null-terminated strings.</short>
  5761. <descr>
  5762. Attaches <var>Source</var> to <var>Dest</var> and returns <var>Dest</var>.
  5763. </descr>
  5764. <errors>
  5765. No length checking is performed.
  5766. </errors>
  5767. <seealso>
  5768. <link id="StrLCat"/>
  5769. </seealso>
  5770. <example file="stringex/ex11"/>
  5771. </element>
  5772. <!-- function Visibility: default -->
  5773. <element name="strcomp">
  5774. <short>Compare 2 null-terminated strings, case sensitive.</short>
  5775. <descr>
  5776. <p>
  5777. Compares the null-terminated strings <var>S1</var> and <var>S2</var>.
  5778. The result is
  5779. </p>
  5780. <ul>
  5781. <li> A negative <var>Longint</var> when <var>S1&lt;S2</var>.
  5782. </li>
  5783. <li> 0 when <var>S1=S2</var>.
  5784. </li>
  5785. <li> A positive <var>Longint</var> when <var>S1&gt;S2</var>.
  5786. </li>
  5787. </ul>
  5788. <p>
  5789. For an example, see <link id="StrLComp"/>.
  5790. </p>
  5791. </descr>
  5792. <errors>
  5793. None.
  5794. </errors>
  5795. <seealso>
  5796. <link id="StrLComp"/>
  5797. <link id="StrIComp"/>
  5798. <link id="StrLIComp"/>
  5799. </seealso>
  5800. </element>
  5801. <!-- function Visibility: default -->
  5802. <element name="strlcomp">
  5803. <short>Compare limited number of characters of 2 null-terminated strings </short>
  5804. <descr>
  5805. <p>
  5806. Compares maximum <var>L</var> characters of the null-terminated strings
  5807. <var>S1</var> and <var>S2</var>.
  5808. The result is
  5809. </p>
  5810. <ul>
  5811. <li> A negative <var>Longint</var> when <var>S1&lt;S2</var>.
  5812. </li>
  5813. <li> 0 when <var>S1=S2</var>.
  5814. </li>
  5815. <li> A positive <var>Longint</var> when <var>S1&gt;S2</var>.
  5816. </li>
  5817. </ul>
  5818. </descr>
  5819. <errors>
  5820. None.
  5821. </errors>
  5822. <seealso>
  5823. <link id="StrComp"/>
  5824. <link id="StrIComp"/>
  5825. <link id="StrLIComp"/>
  5826. </seealso>
  5827. <example file="stringex/ex8"/>
  5828. </element>
  5829. <!-- function Visibility: default -->
  5830. <element name="stricomp">
  5831. <short>Compare 2 null-terminated strings, case insensitive.</short>
  5832. <descr>
  5833. <p>
  5834. Compares the null-terminated strings <var>S1</var> and <var>S2</var>, ignoring case.
  5835. The result is
  5836. </p>
  5837. <ul>
  5838. <li> A negative <var>Longint</var> when <var>S1&lt;S2</var>.
  5839. </li>
  5840. <li> 0 when <var>S1=S2</var>.
  5841. </li>
  5842. <li> A positive <var>Longint</var> when <var>S1&gt;S2</var>.
  5843. </li>
  5844. </ul>
  5845. </descr>
  5846. <errors>
  5847. None.
  5848. </errors>
  5849. <seealso>
  5850. <link id="StrLComp"/>
  5851. <link id="StrComp"/>
  5852. <link id="StrLIComp"/>
  5853. </seealso>
  5854. <example file="stringex/ex8"/>
  5855. </element>
  5856. <!-- function Visibility: default -->
  5857. <element name="strmove">
  5858. <short>Move a null-terminated string to new location.</short>
  5859. <descr>
  5860. Copies <var>MaxLen</var> characters from <var>Source</var> to <var>Dest</var>. No
  5861. terminating null-character is copied.
  5862. Returns <var>Dest</var>
  5863. </descr>
  5864. <errors>
  5865. None.
  5866. </errors>
  5867. <seealso>
  5868. <link id="StrLCopy"/>
  5869. <link id="StrCopy"/>
  5870. </seealso>
  5871. <example file="stringex/ex10"/>
  5872. </element>
  5873. <!-- function Visibility: default -->
  5874. <element name="strlcat">
  5875. <short>Concatenate 2 null-terminated strings, with length boundary.</short>
  5876. <descr>
  5877. Adds <var>MaxLen</var> characters from <var>Source</var> to <var>Dest</var>, and adds a
  5878. terminating null-character. Returns <var>Dest</var>.
  5879. </descr>
  5880. <errors>
  5881. None.
  5882. </errors>
  5883. <seealso>
  5884. <link id="StrCat"/>
  5885. </seealso>
  5886. <example file="stringex/ex12"/>
  5887. </element>
  5888. <!-- function Visibility: default -->
  5889. <element name="strscan">
  5890. <short>Find first occurrence of a character in a null-terminated string.</short>
  5891. <descr>
  5892. Returns a pointer to the first occurrence of the character <var>C</var> in the
  5893. null-terminated string <var>P</var>. If <var>C</var> does not occur, returns
  5894. <var>Nil</var>.
  5895. </descr>
  5896. <errors>
  5897. None.
  5898. </errors>
  5899. <seealso>
  5900. <link id="StrRScan"/>
  5901. <link id="StrPos"/>
  5902. </seealso>
  5903. <example file="stringex/ex13"/>
  5904. </element>
  5905. <!-- function Visibility: default -->
  5906. <element name="strrscan">
  5907. <short>Find last occurrence of a character in a null-terminated string.</short>
  5908. <descr>
  5909. <p>
  5910. Returns a pointer to the last occurrence of the character <var>C</var> in the
  5911. null-terminated string <var>P</var>. If <var>C</var> does not occur, returns
  5912. <var>Nil</var>.
  5913. </p>
  5914. <p>
  5915. For an example, see <link id="StrScan"/>.
  5916. </p>
  5917. </descr>
  5918. <errors>
  5919. None.
  5920. </errors>
  5921. <seealso>
  5922. <link id="StrScan"/>
  5923. <link id="StrPos"/>
  5924. </seealso>
  5925. </element>
  5926. <!-- function Visibility: default -->
  5927. <element name="strlower">
  5928. <short>Convert null-terminated string to all-lowercase.</short>
  5929. <descr>
  5930. Converts <var>P</var> to an all-lowercase string. Returns <var>P</var>.
  5931. </descr>
  5932. <errors>
  5933. None.
  5934. </errors>
  5935. <seealso>
  5936. <link id="StrUpper"/>
  5937. </seealso>
  5938. <example file="stringex/ex14"/>
  5939. </element>
  5940. <!-- function Visibility: default -->
  5941. <element name="strupper">
  5942. <short>Convert null-terminated string to all-uppercase</short>
  5943. <descr>
  5944. <p>
  5945. Converts <var>P</var> to an all-uppercase string. Returns <var>P</var>.
  5946. </p>
  5947. <p>
  5948. For an example, see <link id="StrLower"/>
  5949. </p>
  5950. </descr>
  5951. <errors>
  5952. None.
  5953. </errors>
  5954. <seealso>
  5955. <link id="StrLower"/>
  5956. </seealso>
  5957. </element>
  5958. <!-- function Visibility: default -->
  5959. <element name="strlicomp">
  5960. <short>Compare limited number of characters in 2 null-terminated strings,
  5961. ignoring case.</short>
  5962. <descr>
  5963. <p>
  5964. Compares maximum <var>L</var> characters of the null-terminated strings <var>S1</var>
  5965. and <var>S2</var>, ignoring case.
  5966. The result is
  5967. </p>
  5968. <ul>
  5969. <li> A negative <var>Longint</var> when <var>S1&lt;S2</var>.
  5970. </li>
  5971. <li> 0 when <var>S1=S2</var>.
  5972. </li>
  5973. <li> A positive <var>Longint</var> when <var>S1&gt;S2</var>.
  5974. </li>
  5975. </ul>
  5976. <p>
  5977. For an example, see <link id="StrIComp"/>
  5978. </p>
  5979. </descr>
  5980. <errors>
  5981. None.
  5982. </errors>
  5983. <seealso>
  5984. <link id="StrLComp"/>
  5985. <link id="StrComp"/>
  5986. <link id="StrIComp"/>
  5987. </seealso>
  5988. </element>
  5989. <!-- function Visibility: default -->
  5990. <element name="strpos">
  5991. <short>Find position of one null-terminated substring in another.</short>
  5992. <descr>
  5993. Returns a pointer to the first occurrence of <var>S2</var> in <var>S1</var>.
  5994. If <var>S2</var> does not occur in <var>S1</var>, returns <var>Nil</var>.
  5995. </descr>
  5996. <errors>
  5997. None.
  5998. </errors>
  5999. <seealso>
  6000. <link id="StrScan"/>
  6001. <link id="StrRScan"/>
  6002. </seealso>
  6003. <example file="stringex/ex15"/>
  6004. </element>
  6005. <!-- function Visibility: default -->
  6006. <element name="strnew">
  6007. <short>Allocate room for new null-terminated string.</short>
  6008. <descr>
  6009. Copies <var>P</var> to the Heap, and returns a pointer to the copy.
  6010. </descr>
  6011. <errors>
  6012. Returns <var>Nil</var> if no memory was available for the copy.
  6013. </errors>
  6014. <seealso>
  6015. <link id="StrCopy"/>
  6016. <link id="StrDispose"/>
  6017. </seealso>
  6018. <example file="stringex/ex16"/>
  6019. </element>
  6020. <!-- function Visibility: default -->
  6021. <element name="AnsiCompareFileName">
  6022. <short>Compare 2 filenames.</short>
  6023. <descr>
  6024. <p>
  6025. <var>AnsiCompareFileName</var> compares 2 filenames <var>S1</var> and
  6026. <var>S2</var>, and returns
  6027. </p>
  6028. <dl>
  6029. <dt>&lt; 0</dt>
  6030. <dd>if <var>S1</var>&lt;<var>S2</var>. </dd>
  6031. <dt>= 0</dt> <dd>if <var>S1=S2</var>. </dd>
  6032. <dt>&gt; 0</dt>
  6033. <dd>if <var>S1</var>&gt;<var>S2</var>. </dd>
  6034. </dl>
  6035. <p>
  6036. The function actually checks <var>FileNameCaseSensitive</var> and returns
  6037. the result of <link id="AnsiCompareStr"/> or <link id="AnsiCompareText"/>
  6038. depending on whether <var>FileNameCaseSensitive</var> is <var>True</var> or
  6039. <var>False</var>
  6040. </p>
  6041. </descr>
  6042. <errors>
  6043. None.
  6044. </errors>
  6045. <seealso>
  6046. <link id="AnsiCompareStr"/>
  6047. <link id="AnsiCompareText"/>
  6048. <link id="AnsiLowerCaseFileName"/>
  6049. </seealso>
  6050. </element>
  6051. <!-- function Visibility: default -->
  6052. <element name="AnsiLowerCaseFileName">
  6053. <short>Convert filename to lowercase.</short>
  6054. <descr>
  6055. <p>
  6056. <var>AnsiLowerCaseFileName</var> simply returns the result of
  6057. </p>
  6058. <code>
  6059. AnsiLowerCase(S);
  6060. </code>
  6061. </descr>
  6062. <seealso>
  6063. <link id="AnsiLowerCase"/>
  6064. <link id="AnsiCompareFileName"/>
  6065. <link id="AnsiUpperCaseFileName"/>
  6066. </seealso>
  6067. </element>
  6068. <!-- function Visibility: default -->
  6069. <element name="AnsiUpperCaseFileName">
  6070. <short>Convert filename to uppercase.</short>
  6071. <descr>
  6072. <p>
  6073. <var>AnsiUpperCaseFileName</var> simply returns the result of
  6074. </p>
  6075. <code>
  6076. AnsiUpperCase(S);
  6077. </code>
  6078. </descr>
  6079. <seealso>
  6080. <link id="AnsiUpperCase"/>
  6081. <link id="AnsiCompareFileName"/>
  6082. <link id="AnsiLowerCaseFileName"/>
  6083. </seealso>
  6084. </element>
  6085. <!-- function Visibility: default -->
  6086. <element name="AnsiPos">
  6087. <short>Return Position of one ansistring in another.</short>
  6088. <descr>
  6089. <var>AnsiPos</var> does the same as the standard <var>Pos</var> function.
  6090. </descr>
  6091. <seealso>
  6092. <link id="AnsiStrPos"/>
  6093. <link id="AnsiStrScan"/>
  6094. <link id="AnsiStrRScan"/>
  6095. </seealso>
  6096. </element>
  6097. <!-- function Visibility: default -->
  6098. <element name="AnsiStrPos">
  6099. <short>Return position of one null-terminated substring in another</short>
  6100. <descr>
  6101. <var>AnsiStrPos</var> returns a pointer to the first occurrence of
  6102. <var>SubStr</var> in <var>Str</var>. If <var>SubStr</var> does not occur in
  6103. <var>Str</var> then <var>Nil</var> is returned.
  6104. </descr>
  6105. <errors>
  6106. An access violation may occur if either <var>Str</var> or <var>SubStr</var>
  6107. point to invalid memory.
  6108. </errors>
  6109. <seealso>
  6110. <link id="AnsiPos"/>
  6111. <link id="AnsiStrScan"/>
  6112. <link id="AnsiStrRScan"/>
  6113. </seealso>
  6114. </element>
  6115. <!-- function Visibility: default -->
  6116. <element name="AnsiStrRScan">
  6117. <short>Find last occurrence of a character in a null-terminated string.</short>
  6118. <descr>
  6119. <var>AnsiStrPos</var> returns a pointer to the <em>last</em> occurrence of
  6120. the character <var>Chr</var> in <var>Str</var>. If <var>Chr</var> does not occur in
  6121. <var>Str</var> then <var>Nil</var> is returned.
  6122. </descr>
  6123. <errors>
  6124. An access violation may occur if <var>Str</var> points to invalid memory.
  6125. </errors>
  6126. <seealso>
  6127. <link id="AnsiPos"/>
  6128. <link id="AnsiStrScan"/>
  6129. <link id="AnsiStrPos"/>
  6130. </seealso>
  6131. </element>
  6132. <!-- function Visibility: default -->
  6133. <element name="AnsiStrScan">
  6134. <short>Find first occurrence of a character in a null-terminated string.</short>
  6135. <descr>
  6136. <var>AnsiStrPos</var> returns a pointer to the <em>first</em> occurrence of
  6137. the character <var>Chr</var> in <var>Str</var>. If <var>Chr</var> does not occur in
  6138. <var>Str</var> then <var>Nil</var> is returned.
  6139. </descr>
  6140. <errors>
  6141. An access violation may occur if <var>Str</var> points to invalid memory.
  6142. </errors>
  6143. <seealso>
  6144. <link id="AnsiPos"/>
  6145. <link id="AnsiStrScan"/>
  6146. <link id="AnsiStrPos"/>
  6147. </seealso>
  6148. </element>
  6149. <!-- constant Visibility: default -->
  6150. <element name="DirSeparators">
  6151. <short>Characters that are known directory separators.</short>
  6152. <descr>
  6153. <var>DirSeparators</var> is a set of characters which are known directory
  6154. separator characters on all supported platforms. This set is used by the
  6155. <link id="SetDirSeparators"/> call to correct pathnames for the current
  6156. platform.
  6157. </descr>
  6158. <seealso>
  6159. <link id="DoDirSeparators"/>
  6160. <link id="SetDirSeparators"/>
  6161. </seealso>
  6162. </element>
  6163. <!-- function Visibility: default -->
  6164. <element name="IncludeTrailingPathDelimiter">
  6165. <short>Add trailing directory separator to a pathname, if needed.</short>
  6166. <descr>
  6167. <var>IncludeTrailingPathDelimiter</var> adds a trailing path delimiter
  6168. character (<link id="PathDelim"/>) to <var>Path</var> if none is present
  6169. yet, and returns the result. If <var>Path</var> is empty, nothing is added.
  6170. </descr>
  6171. <seealso>
  6172. <link id="IncludeTrailingBackslash"/>
  6173. <link id="ExcludeTrailingPathDelimiter"/>
  6174. <link id="PathDelim"/>
  6175. <link id="IsPathDelimiter"/>
  6176. </seealso>
  6177. </element>
  6178. <!-- function Visibility: default -->
  6179. <element name="IncludeTrailingBackslash">
  6180. <short>Add trailing directory separator to a pathname, if needed.</short>
  6181. <descr>
  6182. <var>IncludeTrailingBackslash</var> is provided for backwards compatibility
  6183. with Delphi. Use <link id="IncludeTrailingPathDelimiter"/> instead.
  6184. </descr>
  6185. <seealso>
  6186. <link id="IncludeTrailingPathDelimiter"/>
  6187. <link id="ExcludeTrailingPathDelimiter"/>
  6188. <link id="PathDelim"/>
  6189. <link id="IsPathDelimiter"/>
  6190. </seealso>
  6191. </element>
  6192. <!-- function Visibility: default -->
  6193. <element name="ExcludeTrailingPathDelimiter">
  6194. <short>Strip trailing directory separator from a pathname, if needed.</short>
  6195. <descr>
  6196. <var>ExcludeTrailingPathDelimiter</var> removes the trailing path delimiter
  6197. character (<link id="PathDelim"/>) from <var>Path</var> if it is present,
  6198. and returns the result.
  6199. </descr>
  6200. <seealso>
  6201. <link id="ExcludeTrailingBackslash"/>
  6202. <link id="IncludeTrailingPathDelimiter"/>
  6203. <link id="PathDelim"/>
  6204. <link id="IsPathDelimiter"/>
  6205. </seealso>
  6206. </element>
  6207. <!-- function Visibility: default -->
  6208. <element name="ExcludeTrailingBackSlash">
  6209. <short>Strip trailing directory separator from a pathname, if needed.</short>
  6210. <descr>
  6211. <var>ExcludeTrailingBackslash</var> is provided for backwards compatibility
  6212. with Delphi. Use <link id="ExcludeTrailingPathDelimiter"/> instead.
  6213. </descr>
  6214. <seealso>
  6215. <link id="IncludeTrailingPathDelimiter"/>
  6216. <link id="ExcludeTrailingPathDelimiter"/>
  6217. <link id="PathDelim"/>
  6218. <link id="IsPathDelimiter"/>
  6219. </seealso>
  6220. </element>
  6221. <!-- function Visibility: default -->
  6222. <element name="IsPathDelimiter">
  6223. <short>Is the character at the given position a pathdelimiter ?</short>
  6224. <descr>
  6225. <var>IsPathDelimiter</var> returns <var>True</var> if the character at
  6226. position <var>Index</var> equals <link id="PathDelim"/>, i.e. if it is a
  6227. path delimiter character for the current platform.
  6228. </descr>
  6229. <errors>
  6230. <link id="IncludeTrailingPathDelimiter"/>
  6231. <link id="ExcludeTrailingPathDelimiter"/>
  6232. <link id="PathDelim"/>
  6233. </errors>
  6234. <seealso>
  6235. </seealso>
  6236. </element>
  6237. <!-- function Visibility: default -->
  6238. <element name="SameFileName">
  6239. <short>Are two filenames referring to the same file ?</short>
  6240. <descr>
  6241. <var>SameFileName</var> returns <var>True</var> if calling <link
  6242. id="AnsiCompareFileName"/> with arguments <var>S1</var> and <var>S2</var>
  6243. returns 0, and returns <var>False</var> otherwise.
  6244. </descr>
  6245. <errors>
  6246. None.
  6247. </errors>
  6248. <seealso>
  6249. <link id="AnsiCompareFileName"/>
  6250. </seealso>
  6251. </element>
  6252. <!-- record type Visibility: default -->
  6253. <element name="TSearchRec">
  6254. <short>Record describing a search handle or result </short>
  6255. <descr>
  6256. <p>
  6257. <var>TSearchRec</var> is a search handle description record. It is
  6258. initialized by a call to <link id="FindFirst"/> and can be used to do
  6259. subsequent calls to <link id="FindNext"/>. It contains the result of these
  6260. function calls. It must be used to close the search sequence with a call to
  6261. <link id="FindClose"/>.
  6262. </p>
  6263. <remark>
  6264. Not all fields of this record should be used. Some of the fields are for
  6265. internal use only.
  6266. </remark>
  6267. </descr>
  6268. <seealso>
  6269. <link id="FindFirst"/>
  6270. <link id="FindNext"/>
  6271. <link id="FindClose"/>
  6272. </seealso>
  6273. </element>
  6274. <!-- variable Visibility: default -->
  6275. <element name="TSearchRec.Time">
  6276. <short>Timestamp of the file.</short>
  6277. </element>
  6278. <!-- variable Visibility: default -->
  6279. <element name="TSearchRec.Size">
  6280. <short>Size of the file.</short>
  6281. </element>
  6282. <!-- variable Visibility: default -->
  6283. <element name="TSearchRec.Attr">
  6284. <short>Attributes of the file.</short>
  6285. </element>
  6286. <!-- variable Visibility: default -->
  6287. <element name="TSearchRec.Name">
  6288. <short>File name (no directory part)</short>
  6289. </element>
  6290. <!-- variable Visibility: default -->
  6291. <element name="TSearchRec.ExcludeAttr">
  6292. <short>Attributes to exclude from search (do not use).</short>
  6293. </element>
  6294. <!-- variable Visibility: default -->
  6295. <element name="TSearchRec.FindHandle">
  6296. <short>Internal OS handle (do not use).</short>
  6297. </element>
  6298. <!-- constant Visibility: default -->
  6299. <element name="faReadOnly">
  6300. <short>Read-Only file.</short>
  6301. <descr>
  6302. Attribute of a file, meaning the file is read-only.
  6303. Used in <link id="TSearchRec"/> and <link id="FindFirst"/>
  6304. </descr>
  6305. <seealso>
  6306. <link id="TSearchRec"/>
  6307. <link id="FindFirst"/>
  6308. </seealso>
  6309. </element>
  6310. <!-- constant Visibility: default -->
  6311. <element name="faHidden">
  6312. <short>Hidden file.</short>
  6313. <descr>Attribute of a file, meaning the file is hidden. On unix, this means
  6314. the filename starts with a dot character.</descr>
  6315. <descr>
  6316. Attribute of a file, meaning the file is read-only.
  6317. Used in <link id="TSearchRec"/> and <link id="FindFirst"/>
  6318. </descr>
  6319. <seealso>
  6320. <link id="TSearchRec"/>
  6321. <link id="FindFirst"/>
  6322. </seealso>
  6323. </element>
  6324. <!-- constant Visibility: default -->
  6325. <element name="faSysFile">
  6326. <short>System file (Dos/Windows only)</short>
  6327. <descr>
  6328. Attribute of a file, meaning the file is a system file.
  6329. Used in <link id="TSearchRec"/> and <link id="FindFirst"/>
  6330. </descr>
  6331. <seealso>
  6332. <link id="TSearchRec"/>
  6333. <link id="FindFirst"/>
  6334. </seealso>
  6335. </element>
  6336. <!-- constant Visibility: default -->
  6337. <element name="faVolumeId">
  6338. <short>Volume id (Dos/Windows only)</short>
  6339. <descr>
  6340. Attribute of a file, meaning the file contains the volume ID.
  6341. Used in <link id="TSearchRec"/> and <link id="FindFirst"/>
  6342. </descr>
  6343. <seealso>
  6344. <link id="TSearchRec"/>
  6345. <link id="FindFirst"/>
  6346. </seealso>
  6347. </element>
  6348. <!-- constant Visibility: default -->
  6349. <element name="faDirectory">
  6350. <short>File is a directory</short>
  6351. <descr>
  6352. Attribute of a file, meaning the file is a directory.
  6353. Used in <link id="TSearchRec"/> and <link id="FindFirst"/>
  6354. </descr>
  6355. <seealso>
  6356. <link id="TSearchRec"/>
  6357. <link id="FindFirst"/>
  6358. </seealso>
  6359. </element>
  6360. <!-- constant Visibility: default -->
  6361. <element name="faArchive">
  6362. <short>Archive bit is set</short>
  6363. <descr>
  6364. Attribute of a file, meaning the file has the archive bit set.
  6365. Used in <link id="TSearchRec"/> and <link id="FindFirst"/>
  6366. </descr>
  6367. <seealso>
  6368. <link id="TSearchRec"/>
  6369. <link id="FindFirst"/>
  6370. </seealso>
  6371. </element>
  6372. <!-- constant Visibility: default -->
  6373. <element name="faAnyFile">
  6374. <short>Match any file</short>
  6375. <descr>
  6376. Use this attribute in the <link id="FindFirst"/> call to find all matching
  6377. files.
  6378. </descr>
  6379. <seealso>
  6380. <link id="FindFirst"/>
  6381. </seealso>
  6382. </element>
  6383. <!-- constant Visibility: default -->
  6384. <element name="fmOpenRead">
  6385. <short>Open file in read-only mode</short>
  6386. <descr>
  6387. <var>fmOpenRead</var> is used in the <link id="FileOpen"/> call to open a
  6388. file in read-only mode.
  6389. </descr>
  6390. <seealso>
  6391. <link id="FileOpen"/>
  6392. </seealso>
  6393. </element>
  6394. <!-- constant Visibility: default -->
  6395. <element name="fmOpenWrite">
  6396. <short>Open file in write-only mode</short>
  6397. <descr>
  6398. <var>fmOpenWrite</var> is used in the <link id="FileOpen"/> call to open a
  6399. file in write-only mode.
  6400. </descr>
  6401. <seealso>
  6402. <link id="FileOpen"/>
  6403. </seealso>
  6404. </element>
  6405. <!-- constant Visibility: default -->
  6406. <element name="fmOpenReadWrite">
  6407. <short>Open file in read/write mode.</short>
  6408. <descr>
  6409. <var>fmOpenReadWrite</var> is used in the <link id="FileOpen"/> call to open a
  6410. file in read-write mode.
  6411. </descr>
  6412. <seealso>
  6413. <link id="FileOpen"/>
  6414. </seealso>
  6415. </element>
  6416. <!-- constant Visibility: default -->
  6417. <element name="fmShareCompat">
  6418. <short>Open file in DOS share-compatibility mode</short>
  6419. <descr>
  6420. <var>fmOpenShareCompat</var> is used in the <link id="FileOpen"/> call
  6421. OR-ed together with one of <link id="fmOpenReadWrite"/>, <link
  6422. id="fmOpenRead"/> or <link id="fmOpenWrite"/>,to open a
  6423. file in a sharing modus that is equivalent to sharing implemented in MS-DOS.
  6424. </descr>
  6425. <seealso>
  6426. <link id="FileOpen"/>
  6427. </seealso>
  6428. </element>
  6429. <!-- constant Visibility: default -->
  6430. <element name="fmShareExclusive">
  6431. <short>Lock file for exclusive use</short>
  6432. <descr>
  6433. <var>fmOpenShareExclusive</var> is used in the <link id="FileOpen"/> call
  6434. OR-ed together with one of <link id="fmOpenReadWrite"/>, <link
  6435. id="fmOpenRead"/> or <link id="fmOpenWrite"/>, to open a
  6436. file exclusively.
  6437. </descr>
  6438. <seealso>
  6439. <link id="FileOpen"/>
  6440. </seealso>
  6441. </element>
  6442. <!-- constant Visibility: default -->
  6443. <element name="fmShareDenyWrite">
  6444. <short>Lock file so other processes can only read.</short>
  6445. <descr>
  6446. <var>fmOpenShareExclusive</var> is used in the <link id="FileOpen"/> call
  6447. OR-ed together with one of <link id="fmOpenReadWrite"/>, <link
  6448. id="fmOpenRead"/> or <link id="fmOpenWrite"/>, to open a
  6449. file exclusively.
  6450. </descr>
  6451. <seealso>
  6452. <link id="FileOpen"/>
  6453. </seealso>
  6454. </element>
  6455. <!-- constant Visibility: default -->
  6456. <element name="fmShareDenyRead">
  6457. <short>Lock file so other processes cannot read.</short>
  6458. <descr>
  6459. <var>fmOpenShareExclusive</var> is used in the <link id="FileOpen"/> call
  6460. OR-ed together with one of <link id="fmOpenReadWrite"/>, <link
  6461. id="fmOpenRead"/> or <link id="fmOpenWrite"/>, to open a
  6462. file so other processes cannot read from it.
  6463. </descr>
  6464. <seealso>
  6465. <link id="FileOpen"/>
  6466. </seealso>
  6467. </element>
  6468. <!-- constant Visibility: default -->
  6469. <element name="fmShareDenyNone">
  6470. <short>Do not lock file.</short>
  6471. <descr>
  6472. <var>fmOpenShareExclusive</var> is used in the <link id="FileOpen"/> call
  6473. OR-ed together with one of <link id="fmOpenReadWrite"/>, <link
  6474. id="fmOpenRead"/> or <link id="fmOpenWrite"/>, to open a
  6475. file so other processes can read/write the file as well.
  6476. </descr>
  6477. <seealso>
  6478. <link id="FileOpen"/>
  6479. </seealso>
  6480. </element>
  6481. <!-- constant Visibility: default -->
  6482. <element name="fsFromBeginning">
  6483. <short>Start seek operation from beginning of file.</short>
  6484. <descr>
  6485. <var>fsFromBeginning</var> is used to indicate in the <link id="FileSeek"/>
  6486. call that a seek operation should be started at the start of the file.
  6487. </descr>
  6488. <seealso>
  6489. <link id="FileSeek"/>
  6490. </seealso>
  6491. </element>
  6492. <!-- constant Visibility: default -->
  6493. <element name="fsFromCurrent">
  6494. <short>Start seek operation from current position in file.</short>
  6495. <descr>
  6496. <var>fsFromBeginning</var> is used to indicate in the <link id="FileSeek"/>
  6497. call that a seek operation should be started at the current position in the file.
  6498. </descr>
  6499. <seealso>
  6500. <link id="FileSeek"/>
  6501. </seealso>
  6502. </element>
  6503. <!-- constant Visibility: default -->
  6504. <element name="fsFromEnd">
  6505. <short>Start seek operation from end of file.</short>
  6506. <descr>
  6507. <var>fsFromBeginning</var> is used to indicate in the <link id="FileSeek"/>
  6508. call that a seek operation should be started at the last position in the file.
  6509. </descr>
  6510. <seealso>
  6511. <link id="FileSeek"/>
  6512. </seealso>
  6513. </element>
  6514. <!-- function Visibility: default -->
  6515. <element name="DirectoryExists">
  6516. <short>Check whether a directory exists in the file system.</short>
  6517. <descr>
  6518. <var>DirectoryExists</var> checks whether <var>Directory</var> exists in the
  6519. filesystem and is actually a directory. If this is the case, the function
  6520. returns <var>True</var>, otherwise <var>False</var> is returned.
  6521. </descr>
  6522. <seealso>
  6523. <link id="FileExists"/>
  6524. </seealso>
  6525. </element>
  6526. <!-- function Visibility: default -->
  6527. <element name="FileIsReadOnly">
  6528. <short>Check whether a file is read-only.</short>
  6529. <descr>
  6530. <var>FileIsReadOnly</var> checks whether <var>FileName</var> exists in the
  6531. filesystem and is a read-only file. If this is the case, the function
  6532. returns <var>True</var>, otherwise <var>False</var> is returned.
  6533. </descr>
  6534. <seealso>
  6535. <link id="FileExists"/>
  6536. </seealso>
  6537. </element>
  6538. <!-- function Visibility: default -->
  6539. <element name="GetFileHandle">
  6540. <short>Extract OS handle from an untyped file or text file.</short>
  6541. <descr>
  6542. <var>GetFileHandle</var> returns the operating system handle for the file
  6543. descriptor <var>F</var>. It can be used in various file operations which are
  6544. not directly supported by the pascal language.
  6545. </descr>
  6546. </element>
  6547. <!-- function Visibility: default -->
  6548. <element name="InterLockedIncrement">
  6549. <short>Thread-safe integer increment.</short>
  6550. <descr>
  6551. <var>InterlockedIncrement</var> increments <var>Target</var> in a
  6552. thread-safe way, and returns the new value of <var>Target</var>
  6553. </descr>
  6554. <seealso>
  6555. <link id="InterlockedDecrement"/>
  6556. <link id="InterlockedExchange"/>
  6557. <link id="InterlockedExchangeAdd"/>
  6558. </seealso>
  6559. </element>
  6560. <!-- function Visibility: default -->
  6561. <element name="InterLockedDecrement">
  6562. <short>Thread-safe integer decrement</short>
  6563. <descr>
  6564. <var>InterlockedDecrement</var> decrements <var>Target</var> in a
  6565. thread-safe way, and returns the new value of <var>Target</var>
  6566. </descr>
  6567. <seealso>
  6568. <link id="InterlockedIncrement"/>
  6569. <link id="InterlockedExchange"/>
  6570. <link id="InterlockedExchangeAdd"/>
  6571. </seealso>
  6572. </element>
  6573. <!-- function Visibility: default -->
  6574. <element name="InterLockedExchange">
  6575. <short>Thread-safe exchange of 2 values.</short>
  6576. <descr>
  6577. <var>InterlockedDecrement</var> replaces <var>Target</var> with
  6578. <var>Source</var> in a thread-safe way, and returns the old value
  6579. of <var>Target</var>
  6580. </descr>
  6581. <seealso>
  6582. <link id="InterlockedIncrement"/>
  6583. <link id="InterlockedDecrement"/>
  6584. <link id="InterlockedExchange"/>
  6585. <link id="InterlockedExchangeAdd"/>
  6586. </seealso>
  6587. </element>
  6588. <!-- function Visibility: default -->
  6589. <element name="InterLockedExchangeAdd">
  6590. <short>Thread-safe exchange of 2 values</short>
  6591. <descr>
  6592. <var>InterlockedDecrement</var> adds to <var>Target</var> the value of
  6593. <var>Source</var> in a thread-safe way, and returns the old value
  6594. of <var>Target</var>
  6595. </descr>
  6596. <seealso>
  6597. <link id="InterlockedIncrement"/>
  6598. <link id="InterlockedDecrement"/>
  6599. <link id="InterlockedExchange"/>
  6600. </seealso>
  6601. </element>
  6602. <!-- procedure Visibility: default -->
  6603. <element name="FreeAndNil">
  6604. <short>Free object if needed, and set object reference to <var>Nil</var></short>
  6605. <descr>
  6606. <var>FreeAndNil</var> will free the object in <var>Obj</var> and will
  6607. set the reference in <var>Obj</var> to <var>Nil</var>. The reference is set
  6608. to <var>Nil</var> first, so if an exception occurs in the destructor of the
  6609. object, the reference will be <var>Nil</var> anyway.
  6610. </descr>
  6611. <errors>
  6612. Exceptions that occur during the destruction of <var>Obj</var> are not
  6613. caught.
  6614. </errors>
  6615. </element>
  6616. <element name="GetTempDir">
  6617. <short>Return name of system's temporary directory</short>
  6618. <descr>
  6619. <p>
  6620. <var>GetTempDir</var> returns the temporary directory of the system. If
  6621. <var>Global</var> is <var>True</var> (the default value) it returns the
  6622. system temporary directory, if it is <var>False</var> then a directory
  6623. private to the user is returned. The returned name will end with a
  6624. directory delimiter character.
  6625. </p>
  6626. <p>
  6627. These directories may be the same. No guarantee is made that this directory
  6628. exists or is writeable by the user.
  6629. </p>
  6630. <p>
  6631. The <link id="OnGetTempDir"/> handler may be set to provide custom handling
  6632. of this routine: One could implement callbacks which take into consideration
  6633. frameworks like KDE or GNOME, and return a different value from the default
  6634. system implementation.
  6635. </p>
  6636. </descr>
  6637. <errors>
  6638. On error, an empty string is returned.
  6639. </errors>
  6640. <seealso>
  6641. <link id="OnGetTempDir"/>
  6642. <link id="GetTempFileName"/>
  6643. </seealso>
  6644. </element>
  6645. <element name="GetTempFileName">
  6646. <short>Return the name of a temporary file.</short>
  6647. <descr>
  6648. <p>
  6649. <var>GetTempFileName</var> returns the name of a temporary file in directory
  6650. <var>Dir</var>. The name of the file starts with <var>Prefix</var>.
  6651. </p>
  6652. <p>
  6653. If <var>Dir</var> is empty, the value returned by <var>GetTempDir</var> is
  6654. used, and if <var>Prefix</var> is empty, 'TMP' is used.
  6655. </p>
  6656. <p>
  6657. The <link id="OnGetTempFile"/> handler may be set to provide custom handling
  6658. of this routine: One could implement callbacks which take into consideration
  6659. frameworks like KDE or GNOME, and return a different value from the default
  6660. system implementation.
  6661. </p>
  6662. </descr>
  6663. <errors>
  6664. On error, an empty string is returned.
  6665. </errors>
  6666. <seealso>
  6667. <link id="GetTempDir"/>
  6668. <link id="OnGetTempFile"/>
  6669. </seealso>
  6670. </element>
  6671. <element name="OnGetTempDir">
  6672. <short>Handler for <link id="#rtl.sysutils.GetTempDir">GetTempDir</link> function.</short>
  6673. <descr>
  6674. <var>OnGetTempDir</var> can be used to provide custom behaviour for the
  6675. <link id="GetTempDir"/> function. Note that the returned name should have a
  6676. trailing directory delimiter character.
  6677. </descr>
  6678. <seealso>
  6679. <link id="GetTempDir"/>
  6680. <link id="OnGetTempFile"/>
  6681. </seealso>
  6682. </element>
  6683. <element name="OnGetTempFile">
  6684. <short>Handler for <link id="#rtl.sysutils.GetTempFileName">GetTempFileName</link> function.</short>
  6685. <descr>
  6686. <var>OnGetTempDir</var> can be used to provide custom behaviour for the
  6687. <link id="GetTempFileName"/> function. Note that the values for
  6688. <var>Prefix</var> and <var>Dir</var> should be observed.
  6689. </descr>
  6690. <seealso>
  6691. <link id="OnGetTempDir"/>
  6692. <link id="GetTempFileName"/>
  6693. </seealso>
  6694. </element>
  6695. <element name="TGetTempDirEvent">
  6696. <short>Function prototype for <link id="#rtl.sysutils.OnGetTempDir">OnGetTempDir</link> handler.</short>
  6697. </element>
  6698. <element name="TGetTempFileEvent">
  6699. <short>Function prototype for <link id="#rtl.sysutils.OnGetTempFile">OnGetTempFile</link> handler.</short>
  6700. </element>
  6701. </module>
  6702. </package>
  6703. </fpdoc-descriptions>