MapBasic Référence V12

Transcription

MapBasic Référence V12
MapBasic
Version 12.0
Référence
Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis et ne sauraient
en aucune manière engager le distributeur ou ses représentants. Aucune partie de ce manuel ne peut être
reproduite ou transmise par quelque moyen que ce soit, électronique ou mécanique, y compris par photocopie,
sans permission expresse et écrite de Pitney Bowes Software Inc., 29 quai Aulagnier, 92601 Asnières sur
Seine Cedex.
© 2013 Pitney Bowes Software Inc. Tous droits réservés. Pitney Bowes Software Inc. est une filiale en propriété
exclusive de Pitney Bowes Inc. Pitney Bowes, le logo d'entreprise, MapInfo, Group 1 Software et MapBasic
sont des marques commerciales de Pitney Bowes Software Inc. Toutes les autres marques et marques
commerciales appartiennent à leurs détenteurs respectifs.
Les coordonnées de tous les bureaux de Pitney Bowes Software Inc. sont disponibles à l'adresse suivante :
http://www.pb.com/contact-us.
©
2013 Adobe Systems Incorporated. Tous droits réservés. Adobe, le logo Adobe, Acrobat et le logo Adobe
PDF sont soit des marques déposées, soit des marques commerciales d'Adobe Systems Incorporated aux
États-Unis et/ou dans d'autres pays.
©
2013 Contributeurs OpenStreetMap, CC-BY-SA; voir OpenStreetMap http://www.openstreetmap.org
(licence disponible sur www.opendatacommons.org/licenses/odbl) et CC-BY-SA
http://creativecommons.org/licenses/by-sa/2.0
libtiff © 1988-1997 Sam Leffler, © 2013 Silicon Graphics Inc. Tous droits réservés.
libgeotiff © 2013 Niles D. Ritter.
Amigo, Portions © 1999 Three D Graphics, Inc. Tous droits réservés.
Halo Image Library © 1993 Media Cybernetics Inc. Tous droits réservés.
Portions de LEAD Technologies, Inc. © 1991-2013. Tous droits réservés.
Portions © 1993-2013 Ken Martin, Will Schroeder, Bill Lorensen. Tous droits réservés.
ECW par ERDAS © 1993-2013 Intergraph Corporation, appartenant à Hexagon Group et/ou à ses fournisseurs.
Tous droits réservés.
Portions © 2013 Intergraph Corporation, appartenant à Hexagon Group. Tous droits réservés.
MrSID, MrSID Decompressor et le logo MrSID sont des marques de LizardTech, une société Celartem. Utilisées
sous licence. Des parties de ce logiciel sont sous copyright © 1995-1998 LizardTech, une société Celartem,
et/ou de l'Université de Californie ou sont protégées par les brevets numéros 5 710 835 ou 5 467 110 déposés
aux États-Unis et sont utilisées sous licence. Tous droits réservés. MrSID est protégé par des brevets et
copyrights américains et internationaux. L'application des traités et brevets étrangers est en instance. La
duplication et toute utilisation non autorisée sont interdites.
Contient FME® Objects © 2005-2013 Safe Software Inc., Tous droits réservés.
Crystal Reports © 2013 SAP AG. Tous droits réservés. Crystal Reports® et Business Objects™ sont une ou
des marques commerciales ou déposées de SAP AG en Allemagne et dans plusieurs autres pays.
Amyuni PDF Converter © 2000-2013, AMYUNI Consultants – AMYUNI Technologies. Tous droits réservés.
Civic England – Public Sector Symbols Copyright © 2013 West London Alliance. Les symboles peuvent être
utilisés gratuitement. Pour plus d'informations sur ces symboles, notamment sur la manière de les obtenir pour
les utiliser dans d'autres applications, rendez-vous sur le site Web de West London Alliance à l'adresse
suivante : http://www.westlondonalliance.org
©
2006-2013 TomTom International BV. Tous droits réservés. Ce matériel est la propriété de TomTom. Il est
protégé par les droits d'auteur et tout autre droit de propriété intellectuelle appartenant ou étant accordé sous
licence à TomTom. L'utilisation que vous faites de ce matériel est soumise aux termes d'un contrat de licence.
Vous serez tenu pour responsable en cas de reproduction ou de divulgation non autorisée de ce matériel.
Microsoft Bing : Le contenu de tout service Bing est Copyright © 2013 Microsoft Corporation et/ou ses
fournisseurs, One Microsoft Way, Redmond, WA 98052, États-Unis. Tous droits réservés. Microsoft ou ses
fournisseurs détiennent le titre, copyright et tout autre droit de propriété intellectuelle du service Bing et de son
contenu. Microsoft, Windows, Windows Live, le logo Windows, MSN, le logo MSN (papillon), Bing et d'autres
produits et services de Microsoft peuvent être des marques déposées ou des marques commerciales de
Microsoft aux États-Unis et/ou dans d'autres pays.
Ce produit contient l'application 7-Zip, qui est sous licence publique générale limitée (LGPL) de GNU, version 3,
29 juin 2007, avec restriction unRAR. La licence est téléchargeable sur http://www.7-zip.org/license.txt. La
licence GNU est téléchargeable sur http://www.gnu.org/licenses/lgpl.html. Le code source est disponible
sur http://www.7-zip.org.
Les produits nommés dans ce document peuvent être des marques de leurs constructeurs respectifs et sont
reconnus comme tels. Les noms de marque sont utilisés dans cette documentation au profit du propriétaire
de la marque, sans intention de lui porter atteinte.
juillet 18, 2013
Sommaire
Chapitre 1: Introduction à MapBasic.......................................................................23
Conventions.......................................................................................................................24
Présentation du langage...................................................................................................24
Principes essentiels de MapBasic...................................................................................25
Variables........................................................................................................................25
Boucles et branches.......................................................................................................25
Sortie et impression.......................................................................................................25
Procédures (Main et Sub)..............................................................................................25
Gestion des erreurs........................................................................................................26
Fonctions...........................................................................................................................26
Fonctions personnalisées..............................................................................................26
Fonctions de conversion de données............................................................................26
Fonctions de date et d'heure..........................................................................................27
Fonctions mathématiques..............................................................................................27
Fonctions chaîne............................................................................................................28
Utilisation de tables...........................................................................................................28
Création et modification des tables................................................................................28
Requêtes dans les tables...............................................................................................29
Utilisation de données distantes....................................................................................29
Utilisation de fichiers (autres que des tables) ...............................................................30
Entrée/sortie de fichier...................................................................................................30
Noms de fichiers et de répertoires.................................................................................31
Utilisation de cartes et d'objets graphiques...................................................................31
Création d'objets carte...................................................................................................31
Modification des objets carte.........................................................................................32
Requête dans des objets carte......................................................................................32
Utilisation de styles des objets.......................................................................................33
Utilisation de fenêtres Carte...........................................................................................33
Utilisation de fenêtres de conception de légende..........................................................34
Utilisation de fenêtres Légende cartographique............................................................34
Création de l'interface utilisateur.....................................................................................34
ButtonPads (barres d'outils)...........................................................................................34
Boîtes de dialogue.........................................................................................................35
Menus............................................................................................................................35
Fenêtres.........................................................................................................................35
Gestionnaires d'événements système...........................................................................36
Communication avec d'autres applications ..................................................................36
DDE (Dynamic Data Exchange, Windows uniquement) ...............................................36
Cartographie intégrée ...................................................................................................37
Instructions et fonctions spéciales.................................................................................37
Obtention d'un support technique...................................................................................37
Contacter le support technique .....................................................................................38
Défaillances du logiciel..................................................................................................39
Autres ressources..........................................................................................................39
Chapitre 2: Nouveautés et améliorations des fonctions et instructions de MapBasic.41
Nouvelles fonctions et instructions de MapBasic.........................................................42
Ajouts aux fonctions et instructions existantes............................................................42
Chapitre 3: Référence du langage MapBasic de A à Z..........................................49
Conventions d'instruction et de fonction.......................................................................50
Descriptions d'instruction et de fonction.......................................................................50
Fonction Abs( ) ..............................................................................................................50
Fonction Acos( ) ............................................................................................................51
Instruction Add Cartographic Frame..............................................................................52
Instruction Add Column..................................................................................................54
Instruction Add Designer Frame....................................................................................60
Instruction Add Designer Text........................................................................................63
Instruction Add Map.......................................................................................................64
Fonction AdornmentInfo( ).............................................................................................67
Instruction Alter Button...................................................................................................69
Instruction Alter ButtonPad............................................................................................70
Instruction Alter Cartographic Frame.............................................................................75
Instruction Alter Control..................................................................................................76
Instruction Alter Designer Frame...................................................................................78
Instruction Alter Designer Text.......................................................................................82
Instruction Alter MapInfoDialog......................................................................................84
6
MapBasic 12.0
Instruction Alter Menu....................................................................................................86
Instruction Alter Menu Bar.............................................................................................90
Instruction Alter Menu Item............................................................................................92
Instruction Alter Object...................................................................................................94
Instruction Alter Table...................................................................................................100
Fonction ApplicationDirectory$( ).................................................................................101
Fonction ApplicationName$( )......................................................................................102
Fonction Area( )...........................................................................................................103
Fonction AreaOverlap( )...............................................................................................104
Fonction Asc( ).............................................................................................................104
Fonction Asin( )............................................................................................................105
Fonction Ask( ).............................................................................................................106
Fonction Atn( )..............................................................................................................107
Instruction AutoLabel...................................................................................................108
Instruction Beep...........................................................................................................109
Instruction Browse........................................................................................................109
Fonction BrowserInfo( )................................................................................................111
Clause Brush................................................................................................................112
Fonction Buffer( ).........................................................................................................114
Fonction ButtonPadInfo( )............................................................................................115
Instruction Call.............................................................................................................117
Fonction CartesianArea( )............................................................................................119
Fonction CartesianBuffer( )..........................................................................................120
Fonction CartesianConnectObjects( )..........................................................................121
Fonction CartesianDistance( ).....................................................................................121
Fonction CartesianObjectDistance( )...........................................................................122
Fonction CartesianObjectLen( )...................................................................................123
Fonction CartesianOffset( )..........................................................................................124
Fonction CartesianOffsetXY( ).....................................................................................125
Fonction CartesianPerimeter( )....................................................................................126
Fonction Centroid( ).....................................................................................................127
Fonction CentroidX( )...................................................................................................128
Fonction CentroidY( )...................................................................................................129
Clause CharSet............................................................................................................129
Fonction ChooseProjection$( )....................................................................................132
Fonction Chr$( )...........................................................................................................133
Instruction Close All.....................................................................................................134
Instruction Close Connection.......................................................................................134
Référence
7
Instruction Close File....................................................................................................135
Instruction Close Table.................................................................................................135
Instruction Close Window............................................................................................136
Fonction ColumnInfo( )................................................................................................138
Fonction Combine( ).....................................................................................................140
Fonction CommandInfo( )............................................................................................141
Instruction Commit Table ............................................................................................146
Fonction ConnectObjects( ).........................................................................................151
Instruction Continue ....................................................................................................152
Clause Control Button / OKButton / CancelButton ......................................................152
Clause Control CheckBox............................................................................................153
Clause Control DocumentWindow...............................................................................154
Clause Control EditText...............................................................................................155
Clause Control GroupBox............................................................................................157
Clause Control ListBox / MultiListBox..........................................................................157
Clause Control PenPicker/BrushPicker/SymbolPicker/FontPicker..............................160
Fonction ControlPointInfo( ).........................................................................................161
Clause Control PopupMenu.........................................................................................162
Clause Control RadioGroup.........................................................................................163
Clause Control StaticText.............................................................................................164
Fonction ConvertToPline( )..........................................................................................165
Fonction ConvertToRegion( ).......................................................................................166
Fonction ConvexHull( )................................................................................................167
Clause CoordSys.........................................................................................................167
Fonction CoordSysName$( ) ......................................................................................171
Fonction CoordSysStringToEPSG( )............................................................................172
Fonction CoordSysStringToPRJ$( ) ............................................................................173
Fonction CoordSysStringToWKT$( )............................................................................174
Fonction Cos( ) ............................................................................................................174
Instruction Create Adornment......................................................................................175
Instruction Create Arc..................................................................................................179
Instruction Create ButtonPad.......................................................................................180
Instruction Create ButtonPad As Default.....................................................................184
Instruction Create ButtonPads As Default ..................................................................185
Instruction Create Cartographic Legend......................................................................185
Fonction CreateCircle( )...............................................................................................189
Instruction Create Collection........................................................................................191
Instruction Create Cutter..............................................................................................192
8
MapBasic 12.0
Instruction Create Designer Legend............................................................................193
Instruction Create Ellipse.............................................................................................200
Instruction Create Frame.............................................................................................201
Instruction Create Grid.................................................................................................203
Instruction Create Index...............................................................................................211
Instruction Create Legend............................................................................................211
Fonction CreateLine( ).................................................................................................212
Instruction Create Line.................................................................................................213
Instruction Create Map.................................................................................................214
Instruction Create Map3D............................................................................................215
Instruction Create Menu...............................................................................................217
Instruction Create Menu Bar........................................................................................222
Instruction Create Multipoint........................................................................................224
Instruction Create Object.............................................................................................225
Instruction Create Pline................................................................................................230
Fonction CreatePoint( )................................................................................................231
Instruction Create Point...............................................................................................233
Instruction Create PrismMap.......................................................................................234
Instruction Create Query..............................................................................................236
Instruction Create Ranges...........................................................................................236
Instruction Create Rect................................................................................................239
Instruction Create Redistricter.....................................................................................240
Instruction Create Region............................................................................................241
Instruction Create Report From Table..........................................................................243
Instruction Create RoundRect......................................................................................243
Instruction Create Styles..............................................................................................245
Instruction Create Table...............................................................................................246
Fonction CreateText( )..................................................................................................252
Instruction Create Text.................................................................................................253
Fonction CurDate( )......................................................................................................255
Fonction CurDateTime( )..............................................................................................255
Fonction CurrentBorderPen( ) .....................................................................................256
Fonction CurrentBrush( ).............................................................................................256
Fonction CurrentFont( )................................................................................................257
Fonction CurrentLinePen( )..........................................................................................258
Fonction CurrentPen( )................................................................................................259
Fonction CurrentSymbol( ) ..........................................................................................259
Fonction CurTime( ) ....................................................................................................260
Référence
9
Fonction DateWindow( )..............................................................................................261
Fonction Day( ) ............................................................................................................261
Instruction DDEExecute...............................................................................................262
Fonction DDEInitiate( ).................................................................................................263
Instruction DDEPoke....................................................................................................266
Fonction DDERequest$( )............................................................................................267
Instruction DDETerminate............................................................................................269
Instruction DDETerminateAll........................................................................................270
Instruction Declare Function........................................................................................270
Instruction Declare Method..........................................................................................272
Instruction Declare Sub................................................................................................274
Instruction Define.........................................................................................................276
Fonction DeformatNumber$( ).....................................................................................277
Instruction Delete.........................................................................................................278
Instruction Dialog.........................................................................................................279
Instruction Dialog Preserve..........................................................................................285
Instruction Dialog Remove...........................................................................................286
Instruction Dim.............................................................................................................287
Fonction Distance( ).....................................................................................................292
Instruction Do Case...End Case...................................................................................293
Instruction Do...Loop....................................................................................................294
Instruction Drop Index..................................................................................................296
Instruction Drop Map....................................................................................................297
Instruction Drop Table..................................................................................................298
Instruction End MapInfo...............................................................................................299
Instruction End Program..............................................................................................299
Procédure EndHandler................................................................................................300
Fonction EOF( )............................................................................................................301
Fonction EOT( )............................................................................................................301
Fonction EPSGToCoordSysString$( )..........................................................................302
Fonction Erase( )..........................................................................................................303
Fonction Err( )..............................................................................................................304
Instruction Error............................................................................................................305
Fonction Error$( ).........................................................................................................305
Instruction Exit Do........................................................................................................306
Instruction Exit For.......................................................................................................306
Instruction Exit Function...............................................................................................307
Instruction Exit Sub......................................................................................................308
10
MapBasic 12.0
Fonction Exp( ).............................................................................................................308
Instruction Export.........................................................................................................309
Fonction ExtractNodes( ).............................................................................................312
Instruction Farthest......................................................................................................313
Instruction Fetch...........................................................................................................315
Fonction FileAttr( )........................................................................................................317
Fonction FileExists( )....................................................................................................318
Fonction FileOpenDlg( )...............................................................................................319
Fonction FileSaveAsDlg( )...........................................................................................321
Instruction Find.............................................................................................................322
Instruction Find Using..................................................................................................326
Fonction Fix( )..............................................................................................................327
Clause Font..................................................................................................................328
Instruction For...Next....................................................................................................330
Procédure ForegroundTaskSwitchHandler..................................................................331
Fonction Format$( )......................................................................................................332
Fonction FormatDate$( )..............................................................................................335
Fonction FormatNumber$( ).........................................................................................336
Fonction FormatTime$( )..............................................................................................337
Instruction FME Refresh Table.....................................................................................338
Fonction FrontWindow( )..............................................................................................338
Instruction Function...End Function.............................................................................339
Instruction Geocode.....................................................................................................342
Fonction GeocodeInfo( )..............................................................................................346
Instruction Get..............................................................................................................349
Fonction GetCurrentPath$( )........................................................................................351
Fonction GetDate( ) .....................................................................................................352
Fonction GetFolderPath$( ) ........................................................................................352
Fonction GetGridCellValue( ).......................................................................................353
Fonction GetMetadata$( )............................................................................................354
Fonction GetPreferencePath$( ) .................................................................................355
Fonction GetSeamlessSheet( ) ...................................................................................356
Fonction GetTime() .....................................................................................................357
Instruction Global.........................................................................................................357
Instruction Goto............................................................................................................358
Instruction Graph..........................................................................................................359
Fonction GridTableInfo( ).............................................................................................360
Fonction GroupLayerInfo.............................................................................................361
Référence
11
Fonction HomeDirectory$( ) ........................................................................................362
Fonction HotlinkInfo( ) .................................................................................................363
Fonction Hour( )...........................................................................................................364
Instruction If...Then......................................................................................................365
Instruction Import.........................................................................................................366
Instruction Include........................................................................................................371
Instruction Input #.........................................................................................................372
Instruction Insert...........................................................................................................373
Fonction InStr( )...........................................................................................................374
Fonction Int( )...............................................................................................................375
Fonction IntersectNodes( )...........................................................................................376
Fonction IsGridCellNull( ).............................................................................................377
Fonction IsogramInfo( )................................................................................................377
Fonction IsPenWidthPixels( ).......................................................................................380
Instruction Kill...............................................................................................................381
Fonction LabelFindByID( )...........................................................................................381
Fonction LabelFindFirst( )............................................................................................383
Fonction LabelFindNext( )............................................................................................384
Fonction LabelInfo( )....................................................................................................384
Fonction LabelOverrideInfo( )......................................................................................387
Fonction LayerControlInfo( )........................................................................................392
Fonction LayerControlSelectionInfo( ).........................................................................393
Fonction LayerInfo( )....................................................................................................394
Fonction LayerListInfo( )..............................................................................................403
Fonction LayerStyleInfo( )............................................................................................404
Instruction Layout.........................................................................................................406
Fonction LCase$( ).......................................................................................................407
Fonction Left$( )...........................................................................................................408
Fonction LegendFrameInfo( )......................................................................................408
Fonction LegendInfo( ).................................................................................................411
Fonction LegendStyleInfo( ).........................................................................................412
Fonction LegendTextFrameInfo( )................................................................................414
Fonction Len( ).............................................................................................................415
Fonction LibraryServiceInfo( )......................................................................................416
Fonction Like( )............................................................................................................417
Instruction Line Input....................................................................................................418
Fonction LocateFile$( )................................................................................................419
Fonction LOF( )............................................................................................................420
12
MapBasic 12.0
Fonction Log( ).............................................................................................................421
Fonction LTrim$( )........................................................................................................422
Procédure Main............................................................................................................422
Fonction MakeBrush( ).................................................................................................424
Fonction MakeCustomSymbol( )..................................................................................424
Fonction MakeDateTime( )...........................................................................................426
Fonction MakeFont( ) ..................................................................................................426
Fonction MakeFontSymbol( ).......................................................................................427
Fonction MakePen( )....................................................................................................428
Fonction MakeSymbol( )..............................................................................................429
Instruction Map.............................................................................................................430
Fonction Map3DInfo( ).................................................................................................433
Fonction MapperInfo( ).................................................................................................436
Fonction Maximum( )...................................................................................................441
Fonction MBR( )...........................................................................................................442
InstructionMenu Bar.....................................................................................................443
Fonction MenuItemInfoByHandler( )............................................................................443
Fonction MenuItemInfoByID( ).....................................................................................445
Instruction Metadata.....................................................................................................445
Fonction MGRSToPoint( )............................................................................................448
Fonction Mid$( )...........................................................................................................449
Fonction MidByte$( )....................................................................................................450
Fonction Minimum( )....................................................................................................451
Fonction Minute( ) .......................................................................................................451
Fonction Month( ) ........................................................................................................452
Instruction Nearest.......................................................................................................453
Instruction Note............................................................................................................456
Fonction NumAllWindows( ).........................................................................................457
Fonction NumberToDate( ) ..........................................................................................457
Fonction NumberToDateTime( ) ..................................................................................458
Fonction NumberToTime( )..........................................................................................459
Fonction NumCols( )....................................................................................................459
Fonction NumTables( ).................................................................................................460
Fonction NumWindows( ).............................................................................................461
Fonction ObjectDistance( ) .........................................................................................461
Fonction ObjectGeography( ).......................................................................................462
Fonction ObjectInfo( )...................................................................................................464
Fonction ObjectLen( )...................................................................................................468
Référence
13
Fonction ObjectNodeHasM( )......................................................................................469
Fonction ObjectNodeHasZ( ).......................................................................................470
Fonction ObjectNodeM( ).............................................................................................472
Fonction ObjectNodeX( ).............................................................................................473
Fonction ObjectNodeY( ).............................................................................................474
Fonction ObjectNodeZ( )..............................................................................................475
Instruction Objects Check............................................................................................476
Instruction Objects Clean.............................................................................................477
Instruction Objects Combine........................................................................................479
Instruction Objects Disaggregate.................................................................................480
Instruction Objects Enclose.........................................................................................482
Instruction Objects Erase.............................................................................................483
Instruction Objects Intersect........................................................................................485
Instruction Objects Move.............................................................................................486
Instruction Objects Offset.............................................................................................488
Instruction Objects Overlay..........................................................................................489
Instruction Objects Pline..............................................................................................489
Instruction Objects Snap..............................................................................................491
Instruction Objects Split...............................................................................................493
Fonction Offset( ).........................................................................................................495
Fonction OffsetXY( ).....................................................................................................496
Instruction OnError.......................................................................................................497
Instruction Open Connection.......................................................................................498
Instruction Open File....................................................................................................500
Instruction Open Report...............................................................................................502
Instruction Open Table.................................................................................................502
Instruction Open Window.............................................................................................505
Fonction Overlap( )......................................................................................................506
Fonction OverlayNodes( )............................................................................................506
Instruction Pack Table..................................................................................................507
Fonction PathToDirectory$( ).......................................................................................508
Fonction PathToFileName$( )......................................................................................509
Fonction PathToTableName$( )...................................................................................510
Clause Pen...................................................................................................................511
Fonction PenWidthToPoints( ).....................................................................................513
Fonction Perimeter( )...................................................................................................514
Fonction PointsToPenWidth( ).....................................................................................515
Fonction PointToMGRS$( )..........................................................................................516
14
MapBasic 12.0
Fonction PointToUSNG$( )..........................................................................................517
Instruction Print............................................................................................................519
Instruction Print #.........................................................................................................520
Instruction PrintWin......................................................................................................520
Fonction PrismMapInfo( ).............................................................................................521
Fonction ProgramDirectory$( ).....................................................................................524
Instruction ProgressBar...............................................................................................525
Fonction Proper$( )......................................................................................................527
Fonction ProportionOverlap( )......................................................................................528
Instruction Put..............................................................................................................528
Instruction Randomize.................................................................................................529
Fonction RasterTableInfo( )..........................................................................................530
Fonction RegionInfo( ).................................................................................................532
Fonction ReadControlValue( )......................................................................................533
Instruction ReDim.........................................................................................................535
Instruction Register Table............................................................................................536
Instruction Relief Shade...............................................................................................544
Instruction Reload Symbols.........................................................................................544
Procédure RemoteMapGenHandler............................................................................545
Procédure RemoteMsgHandler...................................................................................546
Fonction RemoteQueryHandler( )................................................................................547
Instruction Remove Cartographic Frame.....................................................................548
Instruction Remove Designer Frame...........................................................................548
Instruction Remove Designer Text...............................................................................549
Instruction Remove Map..............................................................................................549
Instruction Rename File...............................................................................................551
Instruction Rename Table............................................................................................551
Instruction Reproject....................................................................................................552
Instruction Resume......................................................................................................552
Fonction RVB( )............................................................................................................553
Fonction Right$( ).........................................................................................................554
Fonction Rnd( )............................................................................................................555
Instruction Rollback......................................................................................................556
Fonction Rotate( )........................................................................................................557
Fonction RotateAtPoint( ).............................................................................................557
Fonction Round( )........................................................................................................558
Fonction RTrim$( ).......................................................................................................559
Instruction Run Application..........................................................................................560
Référence
15
Instruction Run Command...........................................................................................561
Instruction Run Menu Command.................................................................................562
Instruction Run Program..............................................................................................565
Instruction Save File.....................................................................................................566
Instruction Save MWS..................................................................................................567
Instruction Save Window.............................................................................................569
Instruction Save Workspace........................................................................................571
Fonction SearchInfo( )..................................................................................................571
Fonction SearchPoint( )...............................................................................................574
Fonction SearchRect( ) ...............................................................................................575
Fonction Second( ) ......................................................................................................576
Fonction Seek()............................................................................................................576
Instruction Seek...........................................................................................................577
Procédure SelChangedHandler...................................................................................577
Instruction Select..........................................................................................................579
Fonction SelectionInfo( )..............................................................................................588
Instruction Server Begin Transaction...........................................................................589
Instruction Server Bind Column...................................................................................590
Instruction Server Close...............................................................................................591
Fonction Server_ColumnInfo( )....................................................................................592
Instruction Server Commit...........................................................................................594
Fonction Server_Connect( ).........................................................................................594
Fonction Server_ConnectInfo( )...................................................................................602
Instruction Server Create Map.....................................................................................603
Instruction Server Create Table...................................................................................606
Instruction Server Create Workspace..........................................................................609
Instruction Server Disconnect......................................................................................610
Fonction Server_DriverInfo( ).......................................................................................610
Fonction Server_EOT( )...............................................................................................611
Fonction Server_Execute( ).........................................................................................612
Instruction Server Fetch...............................................................................................613
Fonction Server_GetODBCHConn( )...........................................................................615
Fonction Server_GetODBCHStmt( )............................................................................616
Instruction Server Link Table........................................................................................616
Fonction Server_NumCols( ).......................................................................................619
Fonction Server_NumDrivers( )...................................................................................620
Instruction Server Refresh...........................................................................................620
Instruction Server Remove Workspace.......................................................................621
16
MapBasic 12.0
Instruction Server Rollback..........................................................................................622
Instruction Server Set Map..........................................................................................622
Instruction Server Versioning.......................................................................................623
Instruction Server Workspace Merge...........................................................................625
Instruction Server Workspace Refresh........................................................................627
Fonction SessionInfo( )................................................................................................628
Instruction Set Adornment...........................................................................................629
Instruction Set Application Window..............................................................................633
Instruction Set Area Units............................................................................................633
Instruction Set Browse.................................................................................................635
Instruction Set Buffer Version.......................................................................................637
Instruction Set Cartographic Legend...........................................................................638
Instruction Set Combine Version..................................................................................639
Instruction Set Command Info.....................................................................................640
Instruction Set Connection Geocode...........................................................................641
Instruction Set Connection Isogram.............................................................................644
Instruction Set CoordSys.............................................................................................646
Instruction Set Date Window( )....................................................................................647
Instruction Set Datum Transform Version ...................................................................648
Instruction Set Designer Legend..................................................................................649
Instruction Set Digitizer................................................................................................650
Instruction Set Distance Units......................................................................................652
Instruction Set Drag Threshold....................................................................................653
Instruction Set Event Processing.................................................................................653
Instruction Set File Timeout.........................................................................................654
Instruction Set Format..................................................................................................655
Instruction Set Graph...................................................................................................656
Instruction Set Handler................................................................................................660
Instruction Set Layout..................................................................................................661
Instruction Set Legend.................................................................................................664
Instruction Set LibraryServiceInfo................................................................................667
Instruction Set Map......................................................................................................668
Instruction Set Map3D..................................................................................................710
Instruction Set Next Document....................................................................................712
Instruction Set Paper Units..........................................................................................713
Instruction Set Path......................................................................................................714
Instruction Set PrismMap.............................................................................................715
Instruction Set ProgressBars.......................................................................................716
Référence
17
Instruction Set Redistricter...........................................................................................717
Instruction Set Resolution............................................................................................719
Instruction Set Shade...................................................................................................720
Instruction Set Style.....................................................................................................721
Instruction Set Table.....................................................................................................722
Instruction Set Target...................................................................................................725
Instruction Set Window................................................................................................725
Fonction Sgn( ).............................................................................................................735
Instruction Shade.........................................................................................................736
Fonction Sin( )..............................................................................................................749
Fonction Space$( ).......................................................................................................749
Fonction SphericalArea( )............................................................................................750
Fonction SphericalConnectObjects( )..........................................................................751
Fonction SphericalDistance( )......................................................................................752
Fonction SphericalObjectDistance( )...........................................................................753
Fonction SphericalObjectLen( )...................................................................................753
Fonction SphericalOffset( )..........................................................................................754
Fonction SphericalOffsetXY( )......................................................................................755
Fonction SphericalPerimeter( )....................................................................................756
Fonction Sqr( ).............................................................................................................757
Instruction StatusBar....................................................................................................758
Instruction Stop............................................................................................................759
Fonction Str$( )............................................................................................................760
Fonction String$( )........................................................................................................761
Fonction StringCompare( )...........................................................................................762
Fonction StringCompareIntl( )......................................................................................763
Fonction StringToDate( )..............................................................................................763
Fonction StringToDateTime( ) .....................................................................................765
Fonction StringToTime( ) .............................................................................................765
Fonction StyleAttr( ) ....................................................................................................766
Fonction StyleOverrideInfo( ).......................................................................................769
Instruction Sub...End Sub............................................................................................771
Clause Symbol.............................................................................................................773
Fonction SystemInfo( ).................................................................................................776
Fonction TableInfo( )....................................................................................................779
Fonction TableListInfo( )...............................................................................................784
Fonction TableListSelectionInfo( )................................................................................785
Fonction/Tan( ).............................................................................................................786
18
MapBasic 12.0
Fonction TempFileName$( ).........................................................................................787
Instruction Terminate Application.................................................................................787
Fonction TextSize( ).....................................................................................................788
Fonction Time( )...........................................................................................................789
Fonction Timer( )..........................................................................................................789
Procédure ToolHandler................................................................................................790
Fonction TriggerControl( )............................................................................................792
Fonction TrueFileName$( )..........................................................................................792
Instruction Type............................................................................................................793
Fonction UBound( )......................................................................................................794
Fonction UCase$( )......................................................................................................795
Instruction UnDim.........................................................................................................796
Fonction UnitAbbr$( )...................................................................................................796
Fonction UnitName$( ).................................................................................................797
Instruction Unlink..........................................................................................................798
Instruction Update........................................................................................................799
Instruction Update Window..........................................................................................800
Clause URL..................................................................................................................800
Fonction USNGToPoint( )............................................................................................801
Fonction Val( )..............................................................................................................802
Fonction Weekday( )....................................................................................................803
Instruction WFS Refresh Table....................................................................................804
Fonction WKTToCoordSysString$( )............................................................................805
Instruction While...Wend..............................................................................................806
Procédure WinChangedHandler..................................................................................807
Procédure WinClosedHandler.....................................................................................808
Fonction WindowID( )...................................................................................................809
Fonction WindowInfo( )................................................................................................810
Procédure WinFocusChangedHandler........................................................................816
Instruction Write #........................................................................................................817
Fonction Year( )............................................................................................................818
Annexe A: Bibliothèques HTTP et FTP.................................................................821
Procédure
Procédure
Procédure
Procédure
Procédure
Référence
MICloseContent( ).........................................................................................823
MICloseFtpConnection( ).............................................................................823
MICloseFtpFileFind( )...................................................................................824
MICloseHttpConnection( )...........................................................................824
MICloseHttpFile( ).........................................................................................825
19
Procédure MICloseSession( ).........................................................................................825
Fonction MICreateSession( )..........................................................................................826
Fonction MICreateSessionFull( )....................................................................................826
Fonction MIErrorDlg( )....................................................................................................828
Fonction MIFindFtpFile( )................................................................................................830
Fonction MIFindNextFtpFile( )........................................................................................830
Fonction MIGetContent( )...............................................................................................831
Fonction MIGetContentBuffer( ).....................................................................................832
Fonction MIGetContentLen( ).........................................................................................832
Fonction MIGetContentString( ).....................................................................................833
Fonction MIGetContentToFile( ).....................................................................................833
Fonction MIGetContentType( ).......................................................................................834
Fonction MIGetCurrentFtpDirectory( )..........................................................................835
Fonction MIGetErrorCode( )...........................................................................................836
Fonction MIGetErrorMessage( ).....................................................................................836
Fonction MIGetFileURL( )...............................................................................................837
Fonction MIGetFtpConnection( )....................................................................................837
Fonction MIGetFtpFile( ).................................................................................................838
Fonction MIGetFtpFileFind( )..........................................................................................840
Procédure MIGetFtpFileName( ).....................................................................................841
Fonction MIGetHttpConnection( )..................................................................................841
Fonction MIIsFtpDirectory( )...........................................................................................842
Fonction MIIsFtpDots( )..................................................................................................843
Fonction MIOpenRequest( )............................................................................................843
Fonction MIOpenRequestFull( ).....................................................................................844
Fonction MIParseURL( )..................................................................................................846
Fonction MIPutFtpFile( ).................................................................................................847
Fonction MIQueryInfo( )..................................................................................................848
Fonction MIQueryInfoStatusCode( )..............................................................................849
Fonction MISaveContent( ).............................................................................................850
Fonction MISendRequest( )............................................................................................851
Fonction MISendSimpleRequest( )................................................................................852
Fonction MISetCurrentFtpDirectory( )...........................................................................852
Fonction MISetSessionTimeout( )..................................................................................853
Annexe B: Bibliothèque XML.................................................................................855
Procédure MIXmlAttributeListDestroy( ).......................................................................857
Fonction MIXmlDocumentCreate( )...............................................................................857
20
MapBasic 12.0
Procédure MIXmlDocumentDestroy( )...........................................................................858
Fonction MIXmlDocumentGetNamespaces( )...............................................................858
Fonction MIXmlDocumentGetRootNode( )...................................................................859
Fonction MIXmlDocumentLoad( )..................................................................................859
Fonction MIXmlDocumentLoadXML( )..........................................................................860
Fonction MIXmlDocumentLoadXMLString( )................................................................861
Fonction MIXmlDocumentSetProperty( )......................................................................862
Fonction MIXmlGetAttributeList( ).................................................................................863
Fonction MIXmlGetChildList( ).......................................................................................864
Fonction MIXmlGetNextAttribute( )...............................................................................864
Fonction MIXmlGetNextNode( )......................................................................................865
Procédure MIXmlNodeDestroy( )...................................................................................866
Fonction MIXmlNodeGetAttributeValue( ).....................................................................866
Fonction MIXmlNodeGetFirstChild( ).............................................................................867
Fonction MIXmlNodeGetName( )...................................................................................867
Fonction MIXmlNodeGetParent( )..................................................................................868
Fonction MIXmlNodeGetText( )......................................................................................869
Fonction MIXmlNodeGetValue( )....................................................................................869
Procédure MIXmlNodeListDestroy( ).............................................................................870
Procédure MIXmlSCDestroy( ).......................................................................................871
Fonction MIXmlSCGetLength( ).....................................................................................871
Fonction MIXmlSCGetNamespace( ).............................................................................872
Fonction MIXmlSelectNodes( ).......................................................................................872
Fonction MIXmlSelectSingleNode( )..............................................................................873
Annexe C: Tableau des codes de caractères.......................................................875
Tableau des codes de caractères - Définitions............................................................876
Annexe D: Résumé des Opérateurs......................................................................877
Opérateurs numériques..................................................................................................878
Opérateurs de comparaison...........................................................................................878
Opérateurs logiques........................................................................................................879
Opérateurs géographiques.............................................................................................879
Priorité .........................................................................................................................880
Conversions de type automatique.................................................................................881
Caractères génériques....................................................................................................882
Référence
21
Annexe E: Fichier de définitions MapBasic..........................................................883
Fichier MAPBASIC.DEF..................................................................................................884
22
MapBasic 12.0
Introduction à MapBasic
Ce manuel décrit toutes les instructions et fonctions du langage de programmation
de l'environnement de développement MapBasic. Pour connaître les concepts
sur lesquels repose la programmation MapBasic ou sur la manière d'utiliser
l'environnement de développement MapBasic, consultez le Guide de
l'utilisateur MapBasic.
Cette section aborde les rubriques suivantes :
•
•
•
•
•
•
•
•
•
•
•
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Présentation du langage . . . . . . . . . . . . . . . . . . . . . . . . . .24
Principes essentiels de MapBasic . . . . . . . . . . . . . . . . . .25
Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
Utilisation de tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Utilisation de fichiers (autres que des tables) . . . . . . . .30
Utilisation de cartes et d'objets graphiques . . . . . . . . . .31
Création de l'interface utilisateur . . . . . . . . . . . . . . . . . . .34
Communication avec d'autres applications . . . . . . . . . .36
Instructions et fonctions spéciales . . . . . . . . . . . . . . . . . .37
Obtention d'un support technique . . . . . . . . . . . . . . . . . .37
1
Conventions
Conventions
Ce guide utilise les conventions suivantes pour désigner des éléments spécifiques dans le texte :
Convention
If, Call, Map, Browse, Area
Signification
Les mots en gras dont la première lettre est en
majuscule sont des mots-clés MapBasic.
Dans ce guide, la première lettre de chaque mot-clé
est en majuscule ; toutefois, lorsque vous écrivez
des programmes MapBasic, vous pouvez entrer
des mots-clés en majuscule, en minuscule ou les
deux.
Main, Pen, Object
Les mots qui ne sont pas en gras et dont la
première lettre est en majuscule sont généralement
des noms de procédures spéciales ou des types
de variable.
table, handler, window_id
Les mots en italique représentent les paramètres
des instructions MapBasic. Lorsque vous créez
une instruction MapBasic, vous devez fournir une
expression adéquate pour chaque paramètre.
[ window_id ], [ Interactive ]
Les mots-clés ou les paramètres qui apparaissent
entre crochets sont facultatifs.
{ On | Off }
Lorsqu'une expression syntaxique apparaît entre
accolades, ces dernières contiennent une liste de
mots-clés ou de paramètres, séparés par une barre
verticale ( | ). Vous devez choisir l'une des options
répertoriées. Ainsi, dans l'exemple présenté à
gauche ({ On | Off }), vous devez choisir On ou
Off.
"Note "Hello,world!"
Des exemples de programmes réels sont présentés
dans la police Courier.
Présentation du langage
Les pages suivantes offrent une présentation du langage MapBasic. Des descriptions de tâches
apparaissent à gauche ; les noms d'instruction et de fonction correspondants apparaissent en gras à
droite. Les noms de fonction sont suivis de parenthèses ( ).
24
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Principes essentiels de MapBasic
Variables
Déclarer des variables locales ou globales
Dim,Global
Redimensionner des variables de tableau
ReDim, UBound( ), UnDim
Déclarer une structure de données personnalisée Type
Boucles et branches
Boucles
For...Next, Exit For, Do...Loop, Exit Do,
While...Wend
Branches
If...Then, Do Case, GoTo
Autre contrôle de flux
End Program, Terminate Application, End
MapInfo
Sortie et impression
Imprimer le contenu d'une fenêtre
PrintWin
Imprimer du texte dans une fenêtre Message
Print
Paramétrer une fenêtre Mise en page
Layout, Create Frame, Set Window
Exporter une fenêtre dans un fichier
Save Window
Contrôler l'imprimante
Set Window, Window Info( )
Procédures (Main et Sub)
Définir une procédure
Declare Sub, Sub...End Sub
Appeler une procédure
Call
Fermer une procédure
Exit Sub
Procédure principale
Main
Référence
25
Gestion des erreurs
Gestion des erreurs
Paramétrer un gestionnaire d'erreurs
OnError
Renvoyer des informations sur l'erreur actuelle
Err( ), Error$( )
Renvoyer à partir du gestionnaire d'erreurs
Resume
Simuler une erreur
Error
Fonctions
Fonctions personnalisées
Définir une fonction personnalisée
Declare Function, Function...End Function
Fermer une fonction
Exit Function
Fonctions de conversion de données
Convertir des chaînes en codes
Asc( )
Convertir des codes en chaînes
Chr$( )
Convertir des chaînes en nombres
Val( )
Convertir des nombres en chaînes
Str$( ), Format$( )
Convertir un nombre ou une chaîne en date
NumberToDate( ), StringToDate( )
Convertir en une année à 2 chiffres
Set Date Window, DateWindow( )
Convertir des types d'objet
ConvertToRegion( ), ConvertToPline( )
Convertir des étiquettes en texte
LabelInfo( )
Convertir un objet point en coordonnée du système PointToMGRS$( )
de référence de carroyage militaire
Convertir une coordonnée du système de référence MGRSToPoint( )
de carroyage militaire en objet point
Convertir un objet point en coordonnée de la grille PointToUSNG$(obj, datumid)
nationale US (USNG)
Convertir une coordonnée de la grille nationale US USNGToPoint(string)
(USNG) en objet point
26
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Fonctions de date et d'heure
Obtenir la date du jour
CurDate( )
Extraire une partie d'une valeur Date
Day( ), Month( ), Weekday( ), Year( )
Obtenir l'heure en cours sous forme de chaîne
formatée
Time( )
Créer une date à partir d'un nombre ou d'une
chaîne
NumberToDate( ), StringToDate( )
Obtenir la valeur Time ou DateTime en cours
CurTime( ), CurDateTime( )
Obtenir la valeur Date ou Time d'une valeur
DateTime
GetDate( ), GetTime( )
Créer une valeur DateTime ou Time à partir d'un
nombre
NumberToDateTime( ), NumberToTime( )
Créer une valeur DateTime à partir de deux valeurs MakeDateTime( )
Date et Time individuelles
Créer une valeur DateTime ou Time à partir d'une StringToDateTime( ), StringToTime( )
chaîne
Créer la représentation sous forme de chaîne d'une FormatDate$( ), FormatTime$( )
valeur Date ou Time
Extraire une partie d'une valeur Time
Hour( ), Minute( ), Second( )
Définir et obtenir la règle d'une entrée d'année à
deux chiffres
Set Date Window( ), DateWindow( )
Fonctions mathématiques
Fonctions trigonométriques
Cos( ), Sin( ), Tan( ), Acos( ), Asin( ), Atn( )
Fonctions géographiques
Area( ), Perimeter( ), Distance( ), ObjectLen( ),
CartesianArea( ), CartesianPerimeter( ),
CartesianDistance( ), CartesianObjectLen( ),
SphericalArea( ), SphericalPerimeter( ),
SphericalDistance( ), SphericalObjectLen( )
Nombres aléatoires
Randomize, Rnd( )
Fonctions liées aux signes
Abs( ), Sgn( )
Fractions de troncature
Fix( ), Int( ), Round( )
Autres fonctions mathématiques
Exp( ), Log( ), Minimum( ), Maximum( ), Sqr( )
Référence
27
Fonctions chaîne
Fonctions chaîne
Majuscule/minuscule
UCase$( ), LCase$( ), Proper$( )
Trouver une sous-chaîne
InStr( )
Extraire une partie d'une chaîne
Left$( ), Right$( ), Mid$( ), MidByte$( )
Supprimer les espaces d'une chaîne
LTrim$( ), RTrim$( )
Formater les nombres en chaînes
Format$( ), Str$( ), Set Format, FormatNumber$(
), DeformatNumber$( )
Déterminer la longueur d'une chaîne
Len( )
Convertir les codes de caractères
Chr$( ), Asc( )
Comparer des chaînes
Like( ), StringCompare( ), StringCompareIntl( )
Répéter une séquence de chaîne
Space$( ), String$( )
Renvoyer un nom d'unité
UnitAbbr$( ), UnitName$( )
Convertir un objet point en coordonnée du système PointToMGRS$( )
de référence de carroyage militaire
Convertir une coordonnée du système de référence MGRSToPoint( )
de carroyage militaire en objet point
Convertir une chaîne EPSG en clause CoordSys
EPSGToCoordSysString$( )
Convertir un objet point en coordonnée de la grille PointToUSNG$(obj, datumid)
nationale US (USNG)
Convertir une coordonnée de la grille nationale US USNGToPoint(string)
(USNG) en objet point
Utilisation de tables
Création et modification des tables
28
Ouvrir une table existante
Open Table
Fermer au moins une table
Close Table, Close All
Créer une table vide
Create Table
Transformer un fichier en table
Register Table
Importer/exporter des tables/fichiers
Import, Export
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Modifier la structure d'une table
Alter Table, Add Column, Create Index, Drop
Index, Create Map, Drop Map
Créer un fichier Crystal Reports
Create Report From Table
Charger un fichier Crystal Reports
Open Report
Ajouter, modifier, supprimer des lignes
Insert, Update, Delete
Compacter une table
Pack table
Contrôler les paramètres d'une table
Set Table
Enregistrer les modifications récentes
Commit Table
Supprimer les modifications récentes
Rollback
Renommer une table
Rename Table
Supprimer une table
Drop Table
Requêtes dans les tables
Positionner le curseur sur une ligne
Fetch, EOT( )
Sélectionner des données (en utilisant Selection) Select, SelectionInfo( )
Trouver des objets carte par adresse
Find, Find Using, CommandInfo( )
Trouver des objets carte à un emplacement
SearchPoint( ), SearchRect( ), SearchInfo( )
Obtenir des informations de table
NumTables( ), TableInfo( )
Obtenir des informations de colonne
NumCols( ), ColumnInfo( )
Créer une table de requête dans la fenêtre
Données
Create Query
Interroger les métadonnées d'une table
GetMetadata$( ), Metadata
Interroger des tables logiques
TableInfo( ), GetSeamlessSheet( )
Tables de requête raster ou grille :
fonction RasterTableInfo( ), GridTableInfo( ),
fonction GetGridCellValue( ), fonction
IsGridCellNull( ), fonction
getcurrentpathfunction( )
Utilisation de données distantes
Créer une table
Server Create Table
Communiquer avec le serveur de données
Server_Connect( ), Server_ConnectInfo( )
Référence
29
Utilisation de fichiers (autres que des tables)
Commencer l'utilisation d'un serveur distant
Server Begin Transaction
Affecter un stockage local
Server Bind Column
Obtenir des informations de colonne
Server_ColumnInfo( ), Server_NumCols( )
Envoyer une instruction SQL
Server_Execute( )
Positionner le curseur sur une ligne
Server Fetch, Server_EOT( )
Enregistrer des modifications
Server Commit
Annuler des changements
Server Rollback
Libérer les ressources distantes
Server Close
Rendre des données distantes cartographiables
Server Create Map
Modifier les styles d'objet
Server Set Map
Synchroniser une table liée
Server Refresh
Créer une table liée
Server Link Table
Rapatrier une table liée
Unlink
Se déconnecter d'un serveur
Server Disconnect
Récupérer des informations sur le pilote
Server_DriverInfo( ), Server_NumDrivers( )
Obtenir le handle de connexion ODBC
Server_GetODBCHConn( )
Obtenir le handle d'instruction ODBC
Server_GetODBCHStmt( )
Définir les styles des objets
Server Create Style
Utilisation de fichiers (autres que des tables)
Entrée/sortie de fichier
30
Ouvrir ou créer un fichier
Open File
Fermer un fichier
Close File
Supprimer un fichier
Kill
Renommer un fichier
Rename File
Copier un fichier
Save File
Lire dans un fichier
Get, Seek, Input #, Line Input
Écrire dans un fichier
Put, Print #, Write #
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Déterminer le statut d'un fichier
EOF( ), LOF( ), Seek( ), FileAttr( ), FileExists( )
Transformer un fichier en table
Register Table
Essayer à nouveau lors d'une erreur de partage
Set File Timeout
Noms de fichiers et de répertoires
Renvoyer les répertoires système
ProgramDirectory$( ), HomeDirectory$( ),
ApplicationDirectory$( )
Extraire une partie d'un nom de fichier
PathToTableName$( ), PathToDirectory$( ),
PathToFileName$( )
Renvoyer un nom de fichier complet
TrueFileName$( )
Laisser l'utilisateur choisir un fichier
FileOpenDlg( ), FileSaveAsDlg( )
Renvoyer un nom de fichier temporaire
TempFileName$( )
Localiser des fichiers
LocateFile$( ), GetFolderPath$( )
Utilisation de cartes et d'objets graphiques
Création d'objets carte
Instructions de création
Create Arc, Create Ellipse, Create Frame, Create
Line, Create Object, Create PLine, Create Point,
Create Rect, Create Region, Create RoundRect,
Create Text, AutoLabel, Create Multipoint,
Create Collection
Fonctions de création
CreateCircle( ), CreateLine( ), CreatePoint( ),
CreateText( )
Opérations avancées
Create Object, Buffer( ), CartesianBuffer( ),
CartesianOffset( ), CartesianOffsetXY( ),
ConvexHull( ), Offset( ), OffsetXY( ),
SphericalOffset( ), SphericalOffsetXY( )
Stocker un objet dans une table
Insert, Update
Créer des régions
Objects Enclose
Référence
31
Modification des objets carte
Modification des objets carte
Modifier un attribut d'objet
Alter Object
Modifier le type d'objet
ConvertToRegion( ), ConvertToPLine( )
Décaler des objets
Objects Offset, Objects Move
Définir la cible de modification
Set target
Supprimer une partie d'un objet
CreateCutter, Objects Erase, Erase( ), Objects
Intersect, Overlap( )
Fusionner des objets
Objects Combine, Combine( ), Create Object
Pivoter des objets
Rotate( ), RotateAtPoint( )
Découper des objets
Objects Pline, Objects Split
Ajouter des nœuds aux intersections
Objects Overlay, OverlayNodes( )
Contrôler la résolution d'un objet
Set Resolution
Stocker un objet dans une table
Insert, Update
Rechercher des données incorrectes dans des
objets
Objects Check
Traitement d'objet
Objects Disaggregate, Objects Snap, Objects
Clean
Requête dans des objets carte
32
Renvoyer des valeurs calculées
Area( ), Perimeter( ), Distance( ), ObjectLen( ),
Overlap( ), AreaOverlap( ), ProportionOverlap(
)
Renvoyer des valeurs de coordonnées
ObjectGeography( ), MBR( ), ObjectNodeX( ),
ObjectNodeY( ), ObjectNodeZ( ), Centroid( ),
CentroidX( ), CentroidY( ), ExtractNodes( ),
IntersectNodes( )
Renvoyer des paramètres pour les unités de
coordonnées, de distance, de surface et papier
SessionInfo( )
Configurer des unités de mesure
Set Area Units, Set Distance Units, Set Paper
Units, UnitAbbr$( ), UnitName$( )
Configurer un système de coordonnées
Set CoordSys
Renvoyer des paramètres de style
ObjectInfo( )
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Interroger les étiquettes d'une couche de carte
LabelFindByID( ), LabelFindFirst( ),
LabelFindNext( ), Labelinfo( )
Utilisation de styles des objets
Renvoyer les styles actuels
CurrentPen( ), CurrentBorderPen( ),
CurrentBrush( ), CurrentFont( ),
CurrentLinePen( ), CurrentSymbol( ), Set Style,
TextSize( )
Renvoyer un style en partie
Fonction LayerStyleInfo( ), StyleAttr( )
Créer des valeurs de style
MakePen( ), MakeBrush( ), MakeFont( ),
MakeSymbol( ), MakeCustomSymbol( ),
MakeFontSymbol( ), Set Style, RGB( )
Interroger le style d'un objet
ObjectInfo( )
Modifier le style d'un objet
Alter Object
Recharger des styles de symboles
Reload Symbols
Clauses de style
Pen clause, Brush clause, Symbol clause, Font
clause
Utilisation de fenêtres Carte
Ouvrir une fenêtre Carte
Map
Créer/modifier des vues 3D
Create Map3D, Set Map3D, Map3DInfo( ), Create
PrismMap, Set PrismMap, PrismMapInfo( )
Ajouter une couche à une carte
Add Map
Supprimer une couche de carte
Remove Map
Étiqueter les objets d'une couche
AutoLabel
Interroger les paramètres d'une carte
MapperInfo( ), Fonction LabelOverrideInfo( ),
LayerInfo( ), Fonction StyleOverrideInfo( )
Modifier les paramètres d'une carte
Set Map
Créer ou modifier des couches thématiques
Shade, Set Shade, Create Ranges, Create
Styles, Create Grid, Relief Shade
Interroger les étiquettes d'une couche de carte
LabelFindByID( ), LabelFindFirst( ),
LabelFindNext( ), Labelinfo( ),
LabelOverrideInfo( )
Référence
33
Utilisation de fenêtres de conception de légende
Utilisation de fenêtres de conception de légende
Créer une légende cartographique
Create Designer Legend
Actualiser et définir l'orientation d'une fenêtre
Set Designer Legend
Créer, modifier et supprimer un cadre de légende Add Designer Frame, Alter Designer Frame,
Remove Designer Frame
Utilisation de fenêtres Légende cartographique
La fenêtre Légende cartographique est antérieure la fenêtre de conception de légende créée dans la
version 11.5. La fenêtre Légende cartographique permet aux utilisateurs qui ont créé des cartes et des
légendes dans la version MapInfo Professional 11.5 précédente de conserver l'aspect et l'apparence
de ces légendes. Pour les nouveaux projets, nous vous recommandons vivement d'utiliser la fenêtre de
conception de légende pour garantir la compatibilité de vos légendes de carte avec les versions futures
de MapInfo Professional.
Créer une légende de carte et une légende de carte Create Cartographic Legend, Create Legend
thématique
Actualiser et définir les propriétés d'une fenêtre
Set Cartographic Legend
Créer, modifier et supprimer un cadre de légende Add Cartographic Frame, Alter Cartographic
Frame, Remove Cartographic Frame
Création de l'interface utilisateur
ButtonPads (barres d'outils)
34
Créer un ButtonPad
Create ButtonPad
Modifier un ButtonPad
Alter ButtonPad
Modifier un bouton
Alter Button
Interroger le statut d'une barre
ButtonPadInfo( )
Réagir à l'utilisation d'un bouton
CommandInfo( )
Restaurer les barres standard
Create ButtonPad As Default, Create
ButtonPads As Default
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Boîtes de dialogue
Afficher une boîte de dialogue standard
Ask( ), Note, ProgressBar, FileOpenDlg( ),
FileSaveAsDlg( ), GetSeamlessSheet( )
Afficher une boîte de dialogue personnalisée
Dialog
Opérations de gestionnaire de boîtes de dialogue Alter Control, TriggerControl( ),
ReadControlValue( ), Dialog Preserve, Dialog
Remove
Déterminer si l'utilisateur a cliqué sur OK
CommandInfo(CMD_INFO_DLG_OK)
Désactiver les barres de progression
Set ProgressBars
Modifier une boîte de dialogue standard MapInfo
Professional
Alter MapInfoDialog
Menus
Définir un nouveau menu
Create Menu
Redéfinir la barre de menus
Create Menu Bar
Modifier un menu
Alter Menu, Alter Menu Item
Modifier la barre de menus
Alter Menu Bar, Menu Bar
Appeler une commande de menu
Run Menu Command
Interroger l'état d'une option de menu
MenuItemInfoByHandler( ), MenuItemInfoByID(
)
Fenêtres
Afficher ou masquer une fenêtre
Open Window, Close Window, Set Window
Ouvrir une nouvelle fenêtre
Map, Browse, Graph, Layout, Create
Redistricter, Create Legend, Create
Cartographic Legend, LegendFrameInfo
Déterminer l'identifiant d'une fenêtre
FrontWindow( ), WindowID( )
Modifier une fenêtre existante
Set Map, Shade, Add Map, Remove Map, Set
Browse, Set Graph, Set Layout, Create Frame,
Set Legend, Set Cartographic Legend, Set
Redistricter, StatusBar, Alter Cartographic
Frame, Add Cartographic Frame, Remove
Cartographic Frame
Référence
35
Gestionnaires d'événements système
Renvoyer les paramètres d'une fenêtre
WindowInfo( ), MapperInfo( ), LayerInfo( )
Imprimer le contenu d'une fenêtre
PrintWin
Contrôler la mise à jour d'une fenêtre
Set Event Processing, Update Window, Control
DocumentWindow clause
Nombre total de fenêtres
NumWindows( ), NumAllWindows( )
Gestionnaires d'événements système
Réagir à une sélection
SelChangedHandler
Réagir à la fermeture d'une fenêtre
WinClosedHandler
Réagir aux modifications apportées à une carte
WinChangedHandler
Réagir à la mise au point d'une fenêtre
WinFocusChangedHandler
Réagir à une requête DDE
RemoteMsgHandler, RemoteQueryHandler( )
Réagir à la méthode OLE Automation
RemoteMapGenHandler
Fournir un outil personnalisé
ToolHandler
Réagir à la fermeture d'une application
EndHandler
Réagir à l'obtention ou la perte de ciblage MapInfo ForegroundTaskSwitchHandler
Professional
Désactiver les gestionnaires d'événements
Set Handler
Communication avec d'autres applications
DDE (Dynamic Data Exchange, Windows uniquement)
36
Démarrer une conversation DDE
DDEInitiate( )
Envoyer une commande DDE
DDEExecute
Envoyer une valeur via DDE
DDEPoke
Récupérer une valeur via DDE
DDERequest$( )
Fermer une conversation DDE
DDETerminate, DDETerminateAll
Répondre à une requête
RemoteMsgHandler, RemoteQueryHandler( ),
CommandInfo(CMD_INFO_MSG)
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Cartographie intégrée
Définir une fenêtre parent de MapInfo Professional Set Application Window
Définir un parent de fenêtre Carte
Set Next Document
Créer une fenêtre Légende
Create Legend
Instructions et fonctions spéciales
Définir le nom et la liste d'arguments d'une
méthode/fonction dans un assemblage .Net
Declare Method( )
Lancer un autre programme
Run Program
Renvoyer des informations concernant le système SystemInfo( )
Exécuter une chaîne en tant que commande
interprétée
Run Command
Enregistrer un fichier de document
Save Workspace
Lancer un fichier de document ou un fichier MBX
Run Application
Configurer une tablette à numériser
Set Digitizer
Envoyer un son dans le haut-parleur
Beep
Définir les données devant être lues par
CommandInfo
Set Command Info
Définir la durée du délai pour faire glisser un objet Set Drag Threshold
Obtention d'un support technique
Pitney Bowes Software Inc. offre une période de support technique gratuite pour tout achat et toute mise
à niveau de logiciels, afin de vous permettre d'être productif dès le début. À l'issue de la période gratuite,
Pitney Bowes Software Inc. offre une grande variété de services de support technique étendu pour les
particuliers, les entreprises et les utilisateurs professionnels.
Le support technique est là pour vous aider et votre appel est important. Cette section répertorie les
informations que vous devez fournir lorsque vous contactez votre centre de support technique local. Elle
explique également certaines procédures de support technique de sorte que vous sachiez à quoi vous
attendre quant au traitement et à la résolution de votre problème spécifique.
Lorsque vous contactez le support technique, n'oubliez pas de fournir votre numéro de série, de partenaire
ou de contrat.
Référence
37
Contacter le support technique
Contacter le support technique
Pour bénéficier du support technique, vous devez enregistrer votre produit. Vous pouvez le faire très
facilement au cours de l'installation ou à tout moment pendant les heures de bureau, en contactant
directement le service à la clientèle.
Le support technique complet de MapBasic est fourni pour la version en cours, ainsi que pour les deux
versions précédentes.
Coordonnées du support technique
Des options de support technique étendu sont disponibles auprès de chacun de nos centres de support
technique dans les régions États-Unis, Europe/Moyen-Orient/Afrique et Asie-Pacifique. Pour contacter
le centre le plus proche, reportez-vous à la section de contact du support technique sur notre site
Web :
www.mapinfo.com/support
Système de gestion en ligne des cas du support technique
Le système de gestion en ligne des cas du support technique offre un autre moyen de consigner et de
gérer les cas auprès de notre centre de support technique. Si vous n'avez pas d'ID utilisateur, vous
devez vous enregistrer lorsque vous accédez pour la première fois au site.
http://go.pbinsight.com/online-case-management
Avant d'appeler
Avant de contacter le support technique, préparez les informations suivantes :
1. Numéro de série : pour bénéficier du support technique, vous devez disposer d'un numéro de série
enregistré.
2. Nom et entreprise : la personne qui appelle doit être le contact mentionné sur le contrat de support
technique.
3. Version du produit pour lequel vous demandez de l'aide.
4. Nom du système d'exploitation et version.
5. Brève explication du problème. Les détails qui peuvent s'avérer utiles sont les suivants :
• Les messages d'erreur
• La nature du problème et le contexte dans lequel il se produit
• La fréquence : le problème revient-il régulièrement ou de façon imprévisible ?
Temps de réponse attendu
La plupart des problèmes peuvent être résolus lors de votre premier appel. Si ce n'est pas possible, le
support technique vous fera parvenir une réponse avant la fin de la journée ouvrable. Un représentant
transmettra un état de l'avancement chaque jour ouvrable jusqu'à ce que le problème soit résolu.
38
MapBasic 12.0
Chapitre 1: Introduction à MapBasic
Les demandes de support technique transmises par e-mail ou via le système de suivi en ligne sont
traitées de la même façon que les demandes téléphoniques. Toutefois, il faut compter inévitablement
un délai de quelques heures, le temps que le message soit transmis et pris en compte.
Défaillances du logiciel
S'il s'avère que le problème provient d'un défaut du logiciel, votre représentant le consignera dans la
base de données des bugs de Pitney Bowes Software Inc. et vous fournira un numéro d'incident que
vous pourrez utiliser pour suivre l'avancement de sa résolution. Les futurs correctifs et mises à niveau
résolvent bon nombre des bugs consignés du produit.
Autres ressources
Base de données des archives MapInfo-L
Pitney Bowes Software Inc. Corporation, en association avec Bill Thoen, fournit une base de données
des articles de MapInfo-L, consultable sur le Web. Ces articles sont actuellement organisés par fils de
discussion et par date.
Avis de non-responsabilité : bien que Corporation fournisse cette base de données en tant que service
auprès de sa communauté d'utilisateurs, l'administration de la liste de diffusion MapInfo-L est assurée
par Bill Thoen. Pour plus d'informations sur MapInfo-L, consultez la page Web disponible à l'adresse
http://groups.google.com/group/mapinfo-l?hl=en.
Référence
39
Nouveautés et améliorations
des fonctions et instructions
de MapBasic
Voici plusieurs nouvelles instructions et fonctions ajoutées à l'API MapBasic qui
vous aident à travailler avec le positionnement des étiquettes et l'habillage de la
barre d'échelle.
Cette section aborde les rubriques suivantes :
• Nouvelles fonctions et instructions de MapBasic . . . . . .42
• Ajouts aux fonctions et instructions existantes . . . . . . .42
2
Nouvelles fonctions et instructions de MapBasic
Nouvelles fonctions et instructions de MapBasic
Ce qui suit est une nouvelle fonction de cette version :
• Instruction Add Designer Text - ajoute des cadres de texte à une fenêtre de conception de légende
existante.
• Fonction AdornmentInfo( ) - renvoie des informations sur les habillages comme les barres d'échelle.
• Instruction Alter Designer Text - modifie le texte dans un cadre de texte et la position de celui-ci
dans une fenêtre de conception de légende.
• Fonction LegendTextFrameInfo( ) - renvoie des informations sur un cadre de texte dans une fenêtre
de conception de légende.
• Instruction Remove Designer Text - supprime les cadres de texte d'une fenêtre de conception de
légende.
Ajouts aux fonctions et instructions existantes
Cette version de MapBasic ajoute des fonctionnalités aux fonctions et instructions suivantes :
Instruction Create Adornment et instruction Set Adornment
Les instructions Create Adornment et Set Adornment disposent de deux nouvelles clauses, Background
Brush et Background Pen, qui indiquent la trame et la bordure de remplissage de l'arrière-plan lors de
la création ou modification d'une barre d'échelle.
[ Background [ Brush ... ] [Pen ... ] ]
En outre, la clause de barre d'échelle possède un nouveau jeton facultatif de contrôle de mise à l'échelle
automatique :
[ Auto [ { On | Off } ] ]
Instruction Create Designer Legend
L'instruction Create Designer Legend comporte une nouvelle clause, Legend Text Frame, qui crée
un cadre de texte dans la fenêtre de conception de légende. Vous pouvez créer un cadre de texte pour
ajouter un titre de légende, un sous-titre ou un texte descriptif (des informations sur le copyright par
exemple).
[ Legend Text Frame [ Text { frame_text [ Font... ] }
[ Position ( x, y ) [ Units paper_units ] ] ] ]
Fonction LabelInfo( )
La fonction LabelInfo( ) dispose d'un code attribute mis à jour.
42
MapBasic 12.0
Chapitre 2: Nouveautés et améliorations des fonctions et instructions de MapBasic
Code attribute
ID
Valeur renvoyée par Labelinfo( )
LABEL_INFO_POSITION
2
Valeur entière comprise entre 0 et 8, indiquant la position
de l'étiquette par rapport à son emplacement d'ancrage.
La valeur renvoyée correspond à l'un des codes suivants
:
•
•
•
•
•
•
•
•
•
•
LAYER_INFO_LBL_POS_AUTO (-1),
LAYER_INFO_LBL_POS_CC (0),
LAYER_INFO_LBL_POS_TL (1),
LAYER_INFO_LBL_POS_TC (2),
LAYER_INFO_LBL_POS_TR (3),
LAYER_INFO_LBL_POS_CL (4),
LAYER_INFO_LBL_POS_CR (5),
LAYER_INFO_LBL_POS_BL (6),
LAYER_INFO_LBL_POS_BC (7),
LAYER_INFO_LBL_POS_BR (8).
Par exemple, si l'étiquette est située dans la zone
inférieure droite du point d'ancrage, sa position est de 8.
Si l'étiquette est centrée horizontalement et verticalement
au-dessus de son point d'ancrage, sa position est de 0.
Si l'étiquette est positionnée automatiquement, sa position
est -1.
Fonction LabelOverrideInfo( )
La fonction LabelOverrideInfo( ) inclut désormais de nouveaux codes attribute.
Code attribute
ID
Valeur renvoyée par LabelOverrideInfo( )
LBL_OVR_INFO_AUTO_POSITION 21
Valeur logique : TRUE si l'option d'étiquetage de région
avancé de remplacement des paramètres d'étiquetage
est activée ou désactivée.
LBL_OVR_INFO_AUTO_SIZES
22
Valeur entière : indique le nombre de tailles de police qui
peuvent être utilisées lorsque vous tentez d'insérer les
étiquettes dans des régions lors du remplacement des
paramètres d'étiquetage. Le nombre de polices peut varier
de 1 à 10. Une valeur 0 (zéro) indique que la valeur par
défaut est choisie, pour que MapInfo Professional
définisse le nombre de polices à utiliser.
LBL_OVR_INFO_SUPPRESS_IF_NO_FIT 23
Valeur logique : TRUE si l'option d'étiquetage est On. Si,
après l'application d'incréments descendants de la taille
de police facultative, l'étiquette est encore plus grande
que la région, alors l'étiquette n'est pas dessinée.
Référence
43
Ajouts aux fonctions et instructions existantes
Code attribute
ID
Valeur renvoyée par LabelOverrideInfo( )
LBL_OVR_INFO_AUTO_SIZE_STEP 24
Valeur entière : définit le pourcentage global de l'incrément
de taille de police utilisé pour redimensionner
automatiquement la police des étiquettes pour adapter
une étiquette lors du remplacement des paramètres
d'étiquetage. Si la taille de la police originale est de 24
pts et que l'incrément correspond à 66, la police la plus
petite sera donc 66 % plus petite que 24 pts (la plus petite
police est de 8 pts).
LBL_OVR_INFO_CURVED_BEST_POSITION 25
Valeur logique : indique si le positionnement automatique
des étiquettes alignées est activé ou désactivé.
LBL_OVR_INFO_CURVED_FALLBACK 26
Valeur logique : indique si l'option de tolérance de création
d'une étiquette pivotée est activée ou désactivée.
LBL_OVR_INFO_USE_ABBREVIATION 27
Valeur logique : indique si l'utilisation des abréviations est
activée ou désactivée.
LBL_OVR_INFO_ABBREVIATION_EXPR 28
Renvoie l'expression de champ utilisée pour les étiquettes
abrégées.
LBL_OVR_INFO_AUTO_CALLOUT
Valeur logique : TRUE si l'option d'étiquetage de région
avancé du rendu de renvoi du remplacement des
paramètres d'étiquetage est activée.
29
Fonction LayerInfo( )
La fonction LayerInfo( ) inclut désormais de nouveaux codes attribute.
Code attribute
44
ID
Valeur renvoyée par LayerInfo( ) :
LAYER_INFO_LBL_AUTO_POSITION 54
Valeur logique : indique si l'option d'étiquetage de région
avancé de la couche est activée ou désactivée.
LAYER_INFO_LBL_AUTO_SIZES
55
Valeur logique : définit le nombre de tailles de polices qui
peuvent être utilisées lors d'une tentative d'ajustement
des étiquettes dans les régions. Le nombre de polices
peut varier de 1 à 10. Une valeur 0 (zéro) indique que la
valeur par défaut est choisie, pour que MapInfo
Professional définisse le nombre de polices à utiliser.
LAYER_INFO_LBL_SUPPRESS_IF_NO_FIT 56
Valeur logique : indique si cette option d'étiquetage est
Activée ou Désactivée. Si, après l'application
d'incréments descendants de la taille de police facultative,
l'étiquette est encore plus grande que la région, alors
l'étiquette n'est pas dessinée.
LAYER_INFO_LBL_AUTO_SIZE_STEP 57
Valeur d'entier court : définit le pourcentage global de
l'incrément de taille de police utilisé pour redimensionner
automatiquement la police de l'étiquette en vue de son
MapBasic 12.0
Chapitre 2: Nouveautés et améliorations des fonctions et instructions de MapBasic
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
ajustement. Si la taille de la police originale est de 24 pts
et que l'incrément correspond à 66, la police la plus petite
sera donc 66 % plus petite que 24 pts (la plus petite police
est de 8 pts).
LAYER_INFO_LBL_CURVED_BEST_POSITION 58
Valeur logique : indique si le positionnement automatique
des étiquettes alignées est activé ou désactivé.
LAYER_INFO_LBL_CURVED_FALLBACK 59
Valeur logique : indique si l'option de tolérance de création
d'une étiquette pivotée est activée ou désactivée.
LAYER_INFO_LBL_USE_ABBREVIATION 60
Valeur logique : indique si l'utilisation des abréviations est
activée ou désactivée.
LAYER_INFO_ABBREVIATION_EXPR 61
Renvoie l'expression de champ utilisée pour les étiquettes
abrégées.
LAYER_INFO_LBL_AUTO_CALLOUT 62
Valeur logique : indique si l'option d'étiquetage de région
avancé du rendu de renvoi de la couche est activée ou
désactivée.
LAYER_INFO_LBL_ORDER
Valeur d'entier court : ordre d'étiquetage de la couche.
63
Fonction LegendFrameInfo( )
La fonction LegendFrameInfo( ) inclut désormais de nouveaux codes attribute.
Code attribute
ID
Valeur renvoyée par LegendFrameInfo( ) :
FRAME_INFO_LINE_SAMPLE_WIDTH 19
Renvoie la largeur d'un exemple de ligne en unités papier
MapBasic. Renvoie -1 pour la fenêtre Légende
cartographique.
FRAME_INFO_REGION_SAMPLE_WIDTH 20
Renvoie la largeur d'un exemple de région en unités papier
MapBasic. Renvoie -1 pour la fenêtre Légende
cartographique. Pour obtenir des détails sur les unités
papier, consultez la section Instruction Set Paper Units.
FRAME_INFO_REGION_SAMPLE_HEIGHT 21
Renvoie la hauteur d'un exemple de région en unités
papier MapBasic. Renvoie -1 pour la fenêtre Légende
cartographique. Pour obtenir des détails sur les unités
papier, consultez la section Instruction Set Paper Units.
Fonction LegendInfo( )
La fonction LegendInfo( ) inclut désormais un nouveau code attribute.
Référence
45
Ajouts aux fonctions et instructions existantes
Code attribute
ID
LEGEND_INFO_NUM_TEXTFRAMES 8
Valeur renvoyée par LegendInfo( ) :
Renvoie le nombre de cadres de texte dans la fenêtre de
conception de légende en cours.
Fonction MapperInfo( )
La fonction MapperInfo( ) inclut désormais de nouveaux codes et attributes.
Paramètre attribute
ID
Valeur renvoyée par MapperInfo( )
MAPPER_INFO_DISPLAY
15
Entier court indiquant l'aspect de la carte affiché dans la
barre d'état. Correspond à l'instruction class="- topic/xref
">Set Map Display. La valeur renvoyée est l'une des
suivantes :
•
•
•
•
MAPPER_INFO_LABELS_SELECTABLE 30
MAPPER_INFO_DISPLAY_SCALE (0)
MAPPER_INFO_DISPLAY_ZOOM (1)
MAPPER_INFO_DISPLAY_POSITION (2)
MAPPER_INFO_DISPLAY_CARTOGRAPHIC_SCALE
(3)
Valeur logique indiquant si les étiquettes peuvent être
sélectionnées dans la fenêtre Carte.
Instruction Run Menu Command
L'instruction Run Menu Command inclut désormais une nouvelle syntaxe pour lancer une page web
contenant un référentiel des applications MapBasic développées par les membres de la communauté
MapInfo Professional.
RUN MENU COMMAND M_MBTOOL_GET_MB_UTILITIES
ou
RUN MENU COMMAND 1811
' if running from MapBasic window
Instruction Set Map
L'instruction Set Map inclut désormais une nouvelle syntaxe pour prendre en charge les améliorations
apportées aux étiquettes alignées, qui est décrite sous Gestion des propriétés de chaque étiquette
et sous Ajout de remplacements pour les étiquettes d'une couche.
Set Map
[ Layer layer_id
[ Label
. . .
[ AutoPosition { On | Off } ]
[ AutoSizes { number_font_sizes | Default } ]
[ AutoSizeStep percentage_value ]
[ SuppressIfNoFit { On | Off } ]
[ AutoCallout { On | Off } ]
] ]
46
MapBasic 12.0
Chapitre 2: Nouveautés et améliorations des fonctions et instructions de MapBasic
Les clauses Follow Path et Percent Over ont été introduites dans la version 11.5.3 pour mieux contrôler
les étiquettes alignées. La clause Fallback a été ajoutée dans cette version, elle permet de créer une
étiquette droite qui peut pivoter lorsqu'une étiquette alignée ne peut pas être créée. Pour plus
d'informations, reportez-vous aux sections Gestion des propriétés de chaque étiquette, Ajout de
remplacements pour les étiquettes d'une couche et Modification des remplacements des
paramètres d'étiquetage d'une couche.
Set Map
[ Window window_id ]
[Layer layer_id
[ Label
[ Follow Path [ BestPosition { On | Off } ]
[Percent Over percent ] [ Fallback { On | Off } ] ]
] ]
Si vos étiquettes chevauchent d'autres étiquettes ou n'entrent pas dans une région et par conséquent
ne peuvent être dessinées, vous pouvez choisir d'utiliser une autre expression de champ d'abréviation.
Votre table de données doit comporter une colonne des abréviations pour utiliser cette fonction. Pour
plus d'informations, reportez-vous aux sections Gestion des propriétés de chaque étiquette, Ajout
de remplacements pour les étiquettes d'une couche et Modification des remplacements des
paramètres d'étiquetage d'une couche.
Set Map
[ Window window_id ]
[Layer layer_id
[ Label
[ Abbreviation { On | Off } Abbreviate with { field_expression } ]
]
L'instruction Set Map comporte une nouvelle clause Label pour spécifier qu'une couche dispose d'une
priorité élevée lors de l'affichage de ses étiquettes sur la carte. Vous pouvez inclure une clé Selection
qui active ou désactive la sélection d'étiquette pour l'ensemble de la carte. Pour plus d'informations,
reportez-vous à la section Gestion du comportement des étiquettes.
Set Map
[ Label [ Selection { On | Off } ] [ Priority layer_id [, layer_id2... ]
] ]
L'instruction Set Map dispose d'une nouvelle clause Cartographic pour afficher l'échelle de la carte.
Pour plus d'informations, reportez-vous à la section Modification du comportement de la carte entière.
Set Map
[ Window window_id ]
[ Display { [ Cartographic ] | Position | Zoom } ]
Modifier les tailles des pavés
Vous pouvez désormais modifier les tailles des pavés après la création d'une légende à l'aide des
instructions Alter Designer Frame, Set Legend et Create Designer Legend. Chaque cadre peut
posséder ses propres paramètres de taille de pavé.
Les nouvelles clauses suivantes contrôlent le dimensionnement du pavé :
[ Region [ Height region_height [ Units paper_units ] ] ]
[ Region [ Width region_width [ Units paper_units ] ] ]
[ Line [ Width line_width [ Units paper_units ] ] ]
Référence
47
Ajouts aux fonctions et instructions existantes
Les nouvelles clauses suivantes activent ou désactivent le redimensionnement automatique du pavé
de légende en fonction de la taille de la police :
[ Auto Font Size { On | Off } ]
48
MapBasic 12.0
Référence du langage
MapBasic de A à Z
Cette section décrit le langage MapBasic en détail. Les instructions et descriptions
de fonctions y sont triées par ordre alphabétique.
Cette section aborde les rubriques suivantes :
• Conventions d'instruction et de fonction . . . . . . . . . . . . .50
• Descriptions d'instruction et de fonction . . . . . . . . . . . . .50
3
Conventions d'instruction et de fonction
Conventions d'instruction et de fonction
Chaque fonction et instruction est décrite dans le format suivant :
Objectif
Brève description de la fonction, de la clause ou de l'instruction.
Restrictions
Informations sur les limitations (par exemple, « La fonction DDEInitiate n'est disponible que sous Microsoft
Windows. » ou « Vous ne pouvez pas émettre d'instruction For…Next dans la fenêtre MapBasic »).
Syntaxe
Forme sous laquelle vous devez utiliser la fonction ou l'instruction et explication du ou des arguments.
Valeur renvoyée
Type de valeur renvoyée par la fonction.
Description
Explication détaillée du rôle de la fonction ou de l'instruction et toute autre information pertinente.
Exemple
Court exemple.
Une description se termine par une liste de liens vers des fonctions ou instructions associées.
La plupart des instructions MapBasic peuvent être entrées directement dans MapInfo Professional, par
l'intermédiaire de la fenêtre MapBasic. Si une instruction ne peut pas être entrée par l'intermédiaire de
la fenêtre MapBasic, la section Restrictions identifie la limitation. Généralement, les instructions de
contrôle du flux (telles que les instructions de boucle ou de branche) ne peuvent pas être entrées par
l'intermédiaire de la fenêtreMapBasic.
Descriptions d'instruction et de fonction
Les rubriques suivantes décrivent les fonctions, les instructions et les clauses. Certaines rubriques
fournissent plus de détails sur la façon d'appliquer une fonction ou une instruction.
Fonction Abs( )
Objectif
Renvoie la valeur absolue d'un nombre. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Abs ( num_expr )
50
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
num_expr représente une expression numérique.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Abs( ) renvoie la valeur absolue de l'expression spécifiée par num_expr.
Si la valeur de num_expr est supérieure ou égale à zéro, Abs( ) renvoie une valeur égale à num_expr.
Si la valeur de num_expr est négative, Abs( ) renvoie une valeur égale à la valeur de num_expr multipliée
par moins un (-1).
Exemple
Dim f_x, f_y As Float
f_x = -2.5
f_y = Abs(f_x)
' f_y now equals 2.5
Voir également
Fonction Sgn( )
Fonction Acos( )
Objectif
Renvoie l'arc cosinus d'un nombre. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
Acos ( num_expr )
num_expr est une expression numérique comprise entre un et moins un inclus.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Acos( ) renvoie l'arc cosinus de la valeur numérique de num_expr. En d'autres termes,
Acos( ) renvoie l'angle dont le cosinus est égal à num_expr.
Le résultat renvoyé par Acos( ) représente un angle exprimé en radians. Cet angle se situera entre zéro
et Pi radians (en supposant que Pi soit égal à environ 3,141593 et que Pi/2 radians représente 90
degrés).
Référence
51
Instruction Add Cartographic Frame
Pour convertir une valeur exprimée en degrés en radians, multipliez cette valeur par DEG_2_RAD. Pour
convertir une valeur exprimée en radians en degrés, multipliez cette valeur par RAD_2_DEG. Votre
programme doit inclure le fichier MAPBASIC.DEF pour référencer DEG_2_RAD ou RAD_2_DEG.
Comme les valeurs des cosinus sont comprises entre un et moins un, la valeur de l'expression num_expr
ne doit pas être supérieure à un ni être inférieure à moins un.
Exemple
Include "MAPBASIC.DEF"
Dim x, y As Float
x = 0.5
y = Acos(x) * RAD_2_DEG
' y will now be equal to 60,
' since the cosine of 60 degrees is 0.5
Voir également
Fonction Asin( ), Fonction Atn( ), Fonction Cos( ), Fonction Sin( ), Fonction Tan( )
Instruction Add Cartographic Frame
L'instruction Add Cartographic Framepermet d'ajouter des cadres cartographiques à une légende
cartographique existante créée à l'aide de l'instruction Create Cartographic Legend. Vous pouvez
exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Add Cartographic Frame
[ Window legend_window_id ]
[ Custom ]
[ Default Frame Title { def_frame_title } [ Font... ] ]
[ Default Frame Subtitle { def_frame_subtitle } [ Font... ] ]
[ Default Frame Style { def_frame_style } [ Font... ] ]
[ Default Frame Border Pen... pen_expr ]
Frame From Layer { map_layer_id | map_layer_name }
[ Position ( x , y ) [ Units paper_units ] ]
[ Using
[ Column { column | object [ FromMapCatalog { On | Off }]} ]
[ Label { expression | default } ]
[ Title [ frame_title ] [ Font... ] ]
[ SubTitle [ frame_subtitle ] [ Font... ] ]
[ Border Pen... ]
[ Style [Font...] [ NoRefresh ]
[ Text { style_name } { Line Pen...
| Region Pen... Brush...
| Symbol Symbol... } ]
[ , ... ]
]
[ , ... ]
legend_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
def_frame_title est une chaîne qui définit un titre de cadre par défaut. Elle peut inclure le caractère
spécial « # » qui sera remplacé par le nom de la couche active.
52
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
def_frame_subtitle est une chaîne qui définit un sous-titre de cadre par défaut. Elle peut inclure le
caractère spécial « # » qui sera remplacé par le nom de la couche active.
def_frame_style est une chaîne qui s'affiche en regard des symboles dans chaque cadre. Le caractère
« # » sera remplacé par le nom de la couche. Le caractère « % » sera remplacé par le texte « Ligne »,
« Point » ou « Région », selon le symbole. Par exemple, "% of #" deviendra "Region of States" pour la
couche STATES.TAB.
pen_expr est une expression Pen (MakePen( width, pattern, color ), par exemple). Si une bordure par
défaut est définie, elle devient alors la valeur par défaut du cadre. S'il existe une clause de bordure au
niveau du cadre, elle est utilisée à la place de la valeur par défaut.
map_layer_id ou map_layer_name identifie une couche de la carte. Il peut s'agir d'un entier court (par
exemple, utilisez 1 pour spécifier la couche de carte supérieure, différente de la couche Dessin) ou d'une
chaîne représentant le nom d'une table figurant dans la carte. Pour une couche thématique, vous devez
spécifier l'expression map_layer_id.
paper_units est une chaîne qui représente le nom d'une unité papier (par exemple, « cm » pour
centimètres).
frame_title est une chaîne qui définit un titre de cadre. Si une clause Title est définie ici pour un cadre,
elle sera utilisée à la place de l'expression def_frame_title.
frame_subtitle est une chaîne qui définit un sous-titre de cadre. Si une clause SubTitle est définie ici
pour un cadre, elle est alors utilisée à la place de def_frame_subtitle.
column est le nom d'une colonne d'attributs de la table de couches du cadre ou la colonne objet (ce qui
signifie que les styles de légende sont basés sur les styles uniques du fichier de carte). La valeur par
défaut est « objet ».
style_name est une chaîne qui s'affiche près de chaque symbole, ligne ou région dans un cadre
personnalisé.
Description
Si le mot-clé Custom est inclus, chaque section du cadre doit inclure une clause Position. Si le mot-clé
Custom est omis et que la légende est mise en page au format portrait ou paysage, les cadres seront
ajoutés à la fin.
La clause Position contrôle la position du cadre dans la fenêtre Légende. La position du coin supérieur
gauche de la fenêtre Légende correspond à 0, 0. Les valeurs de Position utilisent les paramètres des
unités papier, tels que « in » pour inches (pouces) ou « cm » pour centimètres. (Reportez-vous à la
section Instruction Set Paper Units). Le paramètre d'unités papier actuelles de MapBasic est défini
par défaut en pouces. Un programme MapBasic peut modifier ce paramètre au moyen de l'instruction
Set Paper Units. Vous pouvez remplacer les unités papier actuelles en incluant la sous-clause facultative
Units dans la clause Position.
Les valeurs par défaut de cette instruction s'appliquent uniquement aux cadres créés dans cette
instruction. Elles n'affectent en rien les cadres existants. es valeurs par défaut des cadres utilisées dans
l'instruction Create Cartographic Legend n'ont aucun effet sur les cadres créés dans cette instruction.
Lorsque vous effectuez un enregistrement dans un document, la clause FromMapCatalog OFF est
écrite dans le document si elle est spécifiée. Pour ce faire, il faut agrandir la version de document à 800.
Référence
53
Instruction Add Column
Si la clause FromMapCatalog ON est spécifiée, nous ne l'écrivons pas dans le document, car il s'agit
du comportement par défaut. Cela évite d'avoir à agrandir la version de document.
FromMapCatalog ON récupère les styles de MapCatalog pour une table en accès direct. Si la table
n'est pas en accès direct, MapBasic revient au comportement par défaut d'une table sans accès direct
plutôt que de générer une erreur. Le comportement par défaut d'une table sans accès direct est
FromMapCatalog Off (styles de la carte, par exemple).
FromMapCatalog OFF récupère les styles uniques d'une carte pour la table en accès direct du serveur.
Pour que cela fonctionne, il doit s'agir d'une table en accès direct qui prend en charge les styles par
enregistrement. Si la table en accès direct ne prend pas en charge les styles par enregistrement, le
système revient au comportement par défaut des tables en accès direct, qui consiste à obtenir les styles
par défaut de MapCatalog (FromMapCatalog ON).
Label est une expression ou valeur par défaut valide (ce qui signifie que la trame de style du cadre par
défaut est utilisée lors de la création de chaque texte de style, à moins que la clause Style ne contienne
du texte). La valeur par défaut est default.
La clause Style et le mot-clé NoRefresh permettent de créer un cadre personnalisé qui ne sera pas
remplacé lors du rafraîchissement de la légende. Si le mot-clé NoRefresh est utilisé dans la clause
Style, les styles de la table ne sont pas analysés. Dans ce cas, la clause Style doit contenir votre liste
de définitions personnalisée pour les styles qui figurent dans le cadre. Pour ce faire, utilisez la clause
Text et la clause Line, Region ou Symbol appropriée.
Voir également
Instruction Create Cartographic Legend, Instruction Set Cartographic Legend, Instruction Alter
Cartographic Frame, Instruction Remove Cartographic Frame
Instruction Add Column
Objectif
Ajoute une nouvelle colonne temporaire dans une table ouverte ou met à jour une colonne existante
avec les données d'une autre table. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Syntaxe
Add Column table ( column [ datatype ] )
{ Values const [ , const ... ] |
From source_table
Set To expression
[ Where { dest_column = source_column |
Within | Contains | Intersects } ]
[ Dynamic ] }
table est le nom de la table à laquelle la colonne va être ajoutée.
column est le nom d'une nouvelle colonne à ajouter à cette table.
datatype est le type de données de la colonne, défini par Char(width), Float, Integer, SmallInt,
Decimal(width, decimal_places), DateTime, Date ou Logical. Si le type n'est pas spécifié, Float est défini
par défaut. Une valeur DateTime est une valeur entière stockée sur 9 octets : 4 octets pour la date et 5
54
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
octets pour l'heure. Les 5 octets pour l'heure comprennent 2 octets pour les millisecondes, 1 octet pour
les secondes, 1 octet pour les minutes et 1 octet pour les heures.
source_table est le nom d'une deuxième table ouverte.
expression est l'expression utilisée pour calculer les valeurs à stocker dans la nouvelle colonne. Cette
expression extrait généralement les données de source_table et elle peut comporter des fonctions
d'agrégation.
dest_column est le nom d'une colonne de la table de destination (table).
source_column est le nom d'une colonne de source_table.
Dynamic désigne une colonne calculée dynamiquement pouvant être automatiquement mise à jour. Si
vous incluez ce mot-clé, les modifications qui seront apportées par la suite à la table source seront
automatiquement appliquées à la table de destination.
Description
L'instruction Add Column crée une nouvelle colonne temporaire pour une table MapInfo Professional
existante. La nouvelle colonne ne sera pas enregistrée de façon permanente sur le disque. Toutefois,
si la colonne temporaire est basée sur des tables de base et si vous enregistrez un document alors que
la colonne temporaire est utilisée, le document inclura les informations relatives à la colonne temporaire
de façon à reconstruire la colonne temporaire si le document est rechargé. Pour ajouter une colonne
permanente à une table, utilisez l'instruction Alter Table et l'instruction Update.
Voir également
Instruction Alter Table, Instruction Update
Remplissage de la nouvelle colonne avec des valeurs explicites
La clause Values permet de spécifier une liste de valeurs explicites séparées par des virgules à stocker
dans la nouvelle colonne.
Dans l'exemple ci-dessous, une colonne temporaire est ajoutée à une table de régions « ward ». Les
valeurs de la nouvelle colonne sont explicitement spécifiées grâce à la clause Value.
Open Table "wards"
Add Column wards(percent_dem)
Values 31,17,22,24,47,41,66,35,32,88
Remplissage de la nouvelle colonne avec des valeurs d'une autre table
Si vous spécifiez une clause From au lieu d'une clause Values, MapBasic dérive les valeurs de la
nouvelle colonne à partir d'une table séparée (source_table). Les deux tables doivent déjà être ouvertes.
Lorsque vous utilisez une clause From, MapInfo Professional joint les deux tables. Pour spécifier le
mode de jointure des deux tables, incluez la clause facultative Where. Si vous omettez la clause Where,
MapInfo Professional tente automatiquement de joindre les deux tables en suivant la méthode la plus
appropriée.
Une clause Where se présentant sous la forme Where column = column joint les deux tables en
établissant une correspondance entre les valeurs de leurs colonnes. Cette méthode est appropriée si
une colonne de l'une de vos tables comprend des valeurs qui correspondent à une colonne de l'autre
Référence
55
Instruction Add Column
table (lorsque, par exemple, vous ajoutez une colonne à la table States et que votre autre table comprend
également une colonne contenant des noms d'États).
Si les deux tables contiennent des objets carte, la clause Where peut spécifier une jointure géographique.
Par exemple, si vous spécifiez la clause Where Contains, MapInfo Professional construit une jointure
en vérifiant si les objets de source_table contiennent des objets de la table en cours de modification.
Dans l'exemple suivant, une colonne « Comté » est ajoutée à une table « Stores ». La nouvelle colonne
contiendra des noms de comtés extraits d'une table de régions des comtés séparée :
Add Column
stores(county char(20)
'add "county" column
From counties
'derive data from counties table...
Set to cname
'using the counties table's "cname" column
Where Contains
'join: where a county contains a store site
La méthode Where Contains est appropriée lorsque vous ajoutez une colonne à une table d'objets
point et que la table secondaire représente les objets qui contiennent les points.
Dans l'exemple suivant, une colonne temporaire est ajoutée à la table States. Les valeurs de la nouvelle
colonne sont dérivées d'une deuxième table (City_1K, une table des grandes villes américaines). Une
fois l'instruction Add Column exécutée, chaque ligne de la table States contient le nombre de grandes
villes présentes dans l'État en question.
Open Table "states" Interactive
Open Table "city_1k" Interactive
Add Column states(num_cities)
From city_1k
'derive values from other table
Set To Count(*) 'count cities in each state
Where Within
'join: where cities fall within state
Dans cet exemple, la clause Set To spécifie une fonction d'agrégation : Count(*). Les fonctions
d'agrégation sont décrites ci-dessous.
Remplissage d'une colonne existante avec des valeurs d'une autre table
Pour mettre à jour une colonne existante au lieu d'en ajouter une nouvelle, omettez le paramètre de
type de données et spécifiez la clause From au lieu de la clause Values. Lors de la mise à jour d'une
colonne existante, MapBasic ignore la clause Dynamic.
Remplissage de la nouvelle colonne avec des données d'agrégation
Si vous spécifiez une clause From, vous pouvez calculer les valeurs de la nouvelle colonne en agrégeant
les données de la deuxième table. Pour agréger les données, spécifiez une clause Set To qui comporte
une fonction d'agrégation.
Le tableau suivant répertorie toutes les fonctions d'agrégation disponibles.
56
Function
Valeur stockée dans la nouvelle colonne
Avg( col )
Moyenne des valeurs des lignes de la table source.
Count( * )
Nombre de lignes de la table source qui
correspondent à la ligne de la table mise à jour.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Function
Valeur stockée dans la nouvelle colonne
Max( col )
La plus grande des valeurs des lignes de la table
source.
Min( col )
La plus petite des valeurs des lignes de la table
source.
Sum( col )
Somme des valeurs des lignes de la table source.
WtAvg( col, weight_col )
Moyenne pondérée des valeurs de la table source.
Le calcul de la moyenne est pondéré de telle sorte
que les lignes qui contiennent une valeur
weight_col élevée aient plus d'impact que les lignes
qui contiennent une valeur weight_col peu élevée.
Proportion Avg( col )
Calcul de la moyenne qui effectue des réglages en
se basant sur la proportion d'un objet contenue
dans un autre objet.
Proportion Sum( col )
Calcul de la somme qui effectue des réglages en
se basant sur la proportion d'un objet contenue
dans un autre objet.
Proportion WtAvg( col , weight_col )
Calcul de la moyenne pondérée qui effectue des
réglages en se basant sur la proportion d'un objet
contenue dans un autre objet.
Remarque: Count renvoie une valeur entière. Toutes les autres fonctions renvoient une valeur à virgule
flottante. (Aucune fonction MapBasic, d'agrégation ou autre, ne renvoie de valeur décimale.
Les champs décimaux servent uniquement à stocker les données. L'opération arithmétique
s'effectue à l'aide de nombres à virgule flottante.)
La plupart des fonctions d'agrégation agissent sur les valeurs de données uniquement. Les trois dernières
fonctions (Proportion Sum, Proportion Avg, Proportion WtAvg) effectuent des calculs qui prennent en
compte les relations géographiques. Cela est mieux illustré par un exemple.
Supposons que vous disposiez d'une table Counties qui contient aussi bien les limites que des
informations démographiques (telles que la population) de chaque comté. Vous disposez également
d'une table Risk qui contient un objet région. L'objet région de la table Risk représente une zone à risque.
Il peut par exemple s'agir d'une zone inondable du fait de la proximité d'une rivière.
Référence
57
Instruction Add Column
1 Frontières des comtés 2 Tampon de la zone à risques
Disposant de ces deux tables, vous souhaiterez peut-être calculer la population qui vit dans la région à
risque. Si la moitié de la zone d'un comté est comprise dans cette région à risque, vous en conclurez
que la moitié de la population de ce comté court un risque. Si un tiers de la zone d'un comté est comprise
dans cette région à risque, vous en conclurez que le tiers de la population de ce comté court un risque,
etc.
L'exemple ci-dessous calcule la population courant un risque à l'aide de la fonction d'agrégation
Proportion Sum, puis insère le résultat du calcul dans une nouvelle colonne (population_concernée) :
Add Column Risk(population_at_risk Integer)
From counties
Set To Proportion Sum(county_pop)
Where Intersects
Pour chaque comté se situant, au moins en partie, dans une région à risque, MapInfo Professional ajoute
une partie ou l'ensemble de la valeur pop_comté des comtés dans le calcul du total.
Pour générer des résultats, la fonction Proportion Sum part du principe que le nombre totalisé est
réparti uniformément sur toute la région. Si vous utilisez Proportion Sum pour calculer les statistiques
de population d'une région dont la moitié est comprise dans une autre région, MapInfo Professional
ajoute la moitié de la population de cette région au total. Toutefois, en réalité, une zone représentant la
moitié d'une région ne contient pas nécessairement la moitié de sa population. La population de l'État
de New York, par exemple, n'est pas répartie uniformément car un large pourcentage de la population
vit dans la ville de New York.
Si vous utilisez la fonction Proportion Sum dans des cas où les valeurs de données ne sont pas réparties
uniformément, les résultats risquent de ne pas être réalistes. Pour obtenir des résultats précis, utilisez
des objets région plus petits (par exemple, travaillez au niveau des comtés plutôt que des États).
58
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
La fonction d'agrégation Proportion Avg calcule la moyenne en tenant compte du pourcentage d'un
objet couvert par un autre objet. Pour reprendre l'exemple précédent, supposons que la table County
contienne une colonne (âge_moyen) qui indique l'âge moyen dans chaque comté.
L'instruction suivante calcule l'âge moyen au sein de la zone à risque :
Add Column Risk(age Float)
From Counties
Set To Proportion Avg(median_age)
Where Intersects
Pour chaque ligne de la table County, MapInfo Professional calcule le pourcentage de la zone à risque
couverte par le comté. Ce calcul génère un nombre compris entre zéro et un, inclus. MapInfo Professional
multiplie ce nombre par la valeur âge_moyen du comté et ajoute le résultat au calcul du total. Ainsi, si
la valeur âge_moyen d'un comté est de 50 et si le comté couvre 10 % de la zone à risque, MapInfo
Professional ajoute 5 (cinq) au calcul du total car 10 % de 50 est égal à 5.
Les fonctions Proportion Sum et Proportion Avg conservent des calculs de totaux. Par exemple :
Si la moitié du comté se trouve dans la zone à risque, vous ajoutez la moitié de la valeur au calcul du
total. Si elle est égale à 10 %, vous ajoutez 10 % de la valeur au calcul du total. Toutefois, la fonction
Proportion Avg doit représenter une moyenne, donc si 4 comtés se trouvent dans la zone à risque, vous
devez diviser le calcul du total par 4.
Si 50 % du comté 1 sont dans la zone à risque et que la population de ce comté est de 66, vous ajoutez
33 au calcul du total.
Si 30 % du comté 2 croisent la zone à risque et que la population est de 100, vous ajoutez 30 au calcul
du total.
Si 20 % du comté 3 sont dans la zone à risque et que la population est de 50, vous ajoutez 10 au calcul
du total.
Si 10 % du comté 4 sont dans la zone à risque et que la population est de 60, vous ajoutez 6 au calcul
du total.
La fonction Proportion Sum est égale à : 33+30+10+6 = 82
La fonction Proportion Avg est égale à : (33+30+10+6)/4 = 20 (ou 21 selon l'arrondi, mais plutôt 20).
La fonction Proportion WtAvg est semblable à la fonction Proportion Avg, mais elle vous permet en
plus de spécifier une colonne de données pour pondérer le calcul de la moyenne. La pondération est
aussi proportionnelle. Par exemple :
La moyenne pondérée doit prendre une valeur pondérée d'une autre colonne (pour l'exemple précédent,
il y a une colonne intitulée « Pourcentage rural » dans la table County. Si le risque concerne les
inondations et que les zones rurales se trouvent dans des régions inondables, vous voudrez uniquement
inclure la population des zones rurales pour le risque.
Si 50 % du comté 1 se trouvent dans la zone à risque et que la population de ce comté est de 66, avec
un pourcentage rural de 0,8, vous ajoutez (0,5 * 66 * 0,8) = 26.
Si les comtés 3, 4 et 5 sont ruraux à 50 % :
comté 3 : 0,3 * 100 * 0,5 = 15
comté 4 : 0,2 * 50 * 0,5 = 5
comté 5 : 0,1 * 60 * 0,5 = 3
Référence
59
Instruction Add Designer Frame
La moyenne pondérée de la proportion est donc : (26 + 15 + 5 + 3)/4 = 12
Utilisation des fonctions Proportion... sur des objets non régionaux
Lorsque vous utilisez les fonctions Proportion et que la table source contient des objets région, MapInfo
Professional calcule les pourcentages en se basant sur le chevauchement des régions. Toutefois, lorsque
la table source contient des objets non régionaux, MapInfo Professional traite chaque objet comme s'il
se trouvait complètement à l'intérieur ou complètement à l'extérieur de la région de destination (selon
que le centroïde de l'objet non régional se trouve à l'intérieur ou à l'extérieur de la région de destination).
Colonnes dynamiques
Si vous incluez le mot-clé facultatif Dynamic, la nouvelle colonne devient une colonne calculée
dynamiquement, ce qui signifie que les modifications qui seront apportées par la suite à la table source
seront automatiquement appliquées à la table de destination.
Si vous créez une colonne dynamique et que vous fermez la table source utilisée pour la calculer, les
valeurs de la colonne sont figées (la colonne n'est plus mise à jour de façon dynamique).
De même, si vous fermez l'une des cartes utilisées pour une jointure géographique alors que celle-ci
est utilisée pour créer une colonne dynamique, les valeurs de la colonne sont figées.
Instruction Add Designer Frame
L'instruction Add Designer Frame ajoute des cadres de légende à une fenêtre de conception de légende
existante créée à l'aide de l'instruction Create Designer Legend. Vous pouvez exécuter cette instruction
à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Add Designer Frame
[ Window legend_window_id ]
[ Custom ]
Frame From Layer { map_layer_id | map_layer_name }
[ Position ( x , y ) [ Units paper_units ] ]
[ Using
[ Column { column | object [ FromMapCatalog { On | Off } ] } ]
[ Label { expression | default } ]
[ Title [ frame_title ] ]
[ SubTitle [ frame_subtitle ] ]
[ Columns number_of_columns ] |
[ Height frame_height [ Units paper_units ] ]
[ Style [ NoRefresh ]
[ Text { style_name } { Line Pen...
| Region Pen... Brush...
| Symbol Symbol... } ]
[ , ... ] ] ]
legend_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
map_layer_id ou map_layer_name identifie une couche de la carte. Il peut s'agir d'un entier court (par
exemple, utilisez 1 pour spécifier la couche de carte supérieure, différente de la couche Dessin) ou d'une
60
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
chaîne représentant le nom d'une table figurant dans la carte. Pour une couche thématique, vous devez
spécifier l'expression map_layer_id.
paper_units est une chaîne qui représente le nom d'une unité papier : cm (centimètres), mm (millimètres),
in (pouces), pt (points), et pica.
win_height est une chaîne spécifiant la hauteur du cadre de légende en unités papier. Pour obtenir des
détails sur les unités papier, consultez la section Instruction Set Paper Units.
frame_title est une chaîne qui définit un titre de cadre. Si une clause Title est définie ici pour un cadre,
elle sera utilisée à la place de l'expression def_frame_title.
frame_subtitle est une chaîne qui définit un sous-titre de cadre. Si une clause SubTitle est définie ici
pour un cadre, elle est alors utilisée à la place de def_frame_subtitle.
column est le nom d'une colonne d'attributs de la table de couches du cadre ou la colonne objet (ce qui
signifie que les styles de légende sont basés sur les styles uniques du fichier de carte). La valeur par
défaut est « objet ».
number_of_columns est le nombre de colonnes à afficher dans un cadre.
frame_height remplace la clause Columns lorsque l'utilisateur redimensionne un cadre de légende.
Hauteur du cadre en unités papier. Valeur écrite dans le document WOR lorsque le cadre a été
manuellement redimensionné.
style_name est une chaîne qui s'affiche près de chaque symbole, ligne ou région dans un cadre
personnalisé.
Description
Les propriétés par défaut définies dans l'instruction Create Designer Legend sont utilisées lors de
l'ajout de nouveaux cadres. Vous écrasez ces propriétés par défaut lorsque vous définissez des propriétés
de manière explicite pour les cadres que vous ajoutez. Contrairement à l'instruction Add Cartographic
Frame, l'instruction Add Designer Frame prend en charge une clause Columns qui vous permet de
spécifier le nombre de colonnes à utiliser dans un cadre de légende.
Si le mot-clé Custom est inclus, chaque section du cadre doit inclure une clause Position. Si le mot-clé
Custom est omis et que la légende est mise en page au format portrait ou paysage, les cadres seront
ajoutés à la fin.
Frame From Layer peut être une valeur (un entier court) comme 1 permettant de spécifier la couche
de carte supérieure autre que la couche Dessin ou une chaîne représentant le nom de couche d'une
carte existante. Pour une couche thématique, vous devez spécifier l'expression map_layer_id.
La clause Position contrôle la position du cadre dans la fenêtre de conception de légende. La position
au coin supérieur gauche de la fenêtre de conception de légende correspond à 0, 0.Les valeurs de
Position utilisent les paramètres des unités papier, tels que « in » pour inches (pouces) ou « cm » pour
centimètres. Le paramètre d'unités papier actuelles de MapBasic est défini par défaut en pouces. Un
programme MapBasic peut modifier ce paramètre au moyen de l'instruction Set Paper Units. Vous
pouvez remplacer les unités papier actuelles en incluant la sous-clause facultative Units dans la clause
Position.
Les valeurs par défaut de cette instruction s'appliquent uniquement aux cadres créés dans cette
instruction. Elles n'affectent en rien les cadres existants. es valeurs par défaut des cadres utilisées dans
l'instruction Create Cartographic Legend n'ont aucun effet sur les cadres créés dans cette instruction.
Référence
61
Instruction Add Designer Frame
Column est le nom d'une colonne d'attributs de la table de couches du cadre ou la colonne objet (ce
qui signifie que les styles de légende sont basés sur les styles uniques du fichier de carte). La valeur
par défaut est object.
Lorsque vous effectuez un enregistrement dans un document, la clause FromMapCatalog OFF est
écrite dans le document si elle est spécifiée. La taille du document doit être agrandie à 800. Si la clause
FromMapCatalog ON est spécifiée, nous ne l'écrivons pas dans le document, car il s'agit du
comportement par défaut. Dans ce cas, nous n'avons pas à agrandir la version du document.
FromMapCatalog ON récupère les styles de MapCatalog pour une table en accès direct. Si la table
n'est pas en accès direct, MapBasic revient au comportement par défaut d'une table sans accès direct
plutôt que de générer une erreur. Le comportement par défaut d'une table sans accès direct est
FromMapCatalog Off (styles de la carte, par exemple).
FromMapCatalog OFF récupère les styles uniques d'une carte pour la table en accès direct du serveur.
Pour que cela fonctionne, il doit s'agir d'une table en accès direct qui prend en charge les styles par
enregistrement. Si la table en accès direct ne prend pas en charge les styles par enregistrement, le
système revient au comportement par défaut des tables en accès direct, qui consiste à obtenir les styles
par défaut de MapCatalog (FromMapCatalog ON).
Label est une expression ou valeur par défaut valide (ce qui signifie que la trame de style du cadre par
défaut est utilisée lors de la création de chaque texte de style, à moins que la clause Style ne contienne
du texte). La valeur par défaut est default.
La clause Title est une chaîne qui définit un titre de cadre. Si une clause Title est définie pour un cadre,
elle remplace def_frame_title.
La clause SubTitle est une chaîne qui définit un sous-titre de cadre. Si une clause SubTitle est définie
pour un cadre, elle remplace def_frame_subtitle.
La clause Columns est le nombre de colonnes à afficher dans un cadre.
paper_units est une chaîne qui représente le nom d'une unité papier. Pour obtenir des détails sur les
unités papier, consultez la section Instruction Set Paper Units.
La clause Style et le mot-clé NoRefresh permettent de créer un cadre personnalisé qui ne sera pas
remplacé lors du rafraîchissement de la légende. Si le mot-clé NoRefresh est utilisé dans la clause
Style, les styles de la table ne sont pas analysés. Dans ce cas, la clause Style doit contenir votre liste
de définitions personnalisée pour les styles qui figurent dans le cadre. Pour ce faire, utilisez la clause
Text et la clause Line, Region ou Symbol appropriée.
Exemple
Vous pouvez ouvrir un certain nombre de fenêtres de documents à l'aide de la fonction NumAllWindows(
), puis basculer de l'une à l'autre à l'aide de la fonction WindowID( ) ou de la fonction WindowInfo( )
pour trouver une fenêtre de légende par type et identifiant à utiliser dans l'instruction Add Legend
Designer.
Dim i, wndLegend as integer
for i = 1 to NumWindows()
If WindowInfo(WindowID(i), WIN_INFO_TYPE) = WIN_LEGEND_DESIGNER then
wndLegend = WindowInfo(WindowID(i), WIN_INFO_WINDOWID)
end if
next
62
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Cet exemple ajoute des cadres.
Add Designer Frame Window wndLegend Frame From Layer 2 Columns 2
Voir également
Instruction Create Designer Legend, Instruction Set Designer Legend, Instruction Alter Designer
Frame, Instruction Remove Designer Frame
Instruction Add Designer Text
L'instruction Add Designer Text ajoute des cadres de texte à une fenêtre de conception de légende
existante créée à l'aide de l'instruction Create Designer Legend. Vous pouvez exécuter cette instruction
à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Add Designer Text
[ Window legend_window_id ]
[ Legend Text Frame [ Text { frame_text [ Font... ] }
[ Position ( x, y ) [ Units paper_units ] ] ] ]
legend_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
frame_text est un texte pour un titre de légende, un sous-titre ou un texte descriptif (des informations
sur le copyright par exemple).
x indique la distance souhaitée entre la partie supérieure du document et celle de la fenêtre.
y indique la distance souhaitée entre la partie gauche du document et celle de la fenêtre.
Remarque: Le document désigne ici l'espace client (la barre de titre, la barre d'outils et la barre d'état
sont donc exclues).
paper_units est une chaîne qui représente le nom d'une unité papier : cm (centimètres), mm (millimètres),
in (pouces), pt (points), et pica.
•
•
•
•
•
1 pouce (in) = 2,54 centimètres, 254 millimètres, 6 picas, 72 points
1 point (pt) = 0,01389 pouce, 0,03528 centimètre, 0,35278 millimètre, 0,08333 pica
1 pica = 0,16667 pouce, 0,42333 centimètre, 4,23333 millimètres, 12 points
1 centimètre (cm) = 0,39370 pouce, 10 millimètres, 2,36220 picas, 28,34646 points
1 millimètre (mm) = 0,1 centimètre, 0,03937 pouce, 0,23622 pica, 2,83465 points
Description
Legend Text Frame crée un cadre de texte dans la fenêtre de conception de légende.
Si Text n'indique pas la clause Font, la police par défaut est utilisée.
La clause Position contrôle la position du cadre dans la fenêtre de conception de légende. La position
au coin supérieur gauche de la fenêtre de conception de légende correspond à 0, 0. Les valeurs de
Position utilisent les paramètres des unités papier, tels que « in » pour inches (pouces) ou « cm » pour
centimètres. (Reportez-vous à l'Instruction Set Paper Units). Le paramètre d'unités papier actuelles
de MapBasic est défini par défaut en pouces. Un programme MapBasic peut modifier ce paramètre au
Référence
63
Instruction Add Map
moyen de l'instruction Set Paper Units. Vous pouvez remplacer les unités papier actuelles en incluant
la sous-clause facultative Units dans la clause Position.
Exemple
Add Designer Text Window frontwindow()
Legend Text Frame
Text "This is My title" Font("Batang", 3, 12, 16711680)
Voir également
instruction Create Designer Legend, instruction Alter Designer Text, instruction Remove Designer
Text
Instruction Add Map
Objectif
Ajoute une ou plusieurs couches graphiques, ou un groupe de couches, dans une fenêtre Carte. Vous
pouvez également sélectionner un groupe de couches de destination et/ou une position dans lesquels
les nouvelles couches seront insérées.
Syntaxe 1
Add Map
[ Window window_id ] [ Auto ]
Layer table [ , table [ Animate ] ... ]
[ [ DestGroupLayer group_id ] Position position ]
window_id est l'identifiant de fenêtre d'une fenêtre Carte.
table est le nom d'une table ouverte cartographiable à ajouter à une fenêtre Carte.
group_id est l'identifiant d'un groupe de couches, soit sous forme de valeur entière (numéro du groupe),
soit sous forme de chaîne (nom du groupe).
position est l'index à base 1 du groupe de destination dans lequel la nouvelle liste de couches sera
insérée.
Syntaxe 2
Add Map
[ Window window_id ] [ Auto ]
GroupLayer ( "friendly_name" [ , item ... ] )
[ [ DestGroupLayer group_id ] Position position ]
où :
item = table | [ GroupLayer ( "friendly_name" [ , item ... ])
Description
L'instruction Add Map ajoute une ou plusieurs tables ouvertes, ou un groupe de couches, à une fenêtre
Carte. Il est cependant impossible de procéder à ces deux opérations simultanément dans une même
instruction. Le groupe de couches peut contenir plusieurs groupes de couches imbriqués. MapInfo
Professional rafraîchit ensuite automatiquement la fenêtre Carte, sauf si vous avez désactivé cette
64
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
fonction à l'aide d'une instruction Set Event Processing Off ou d'une instruction Set Map Redraw
Off.
Le paramètre window_id est un identifiant de fenêtre entier qui représente une fenêtre Carte ouverte.
Pour obtenir un identifiant de fenêtre, appelez la fonction FrontWindow( ) et la fonction WindowID(
). Si l'instruction Add Map ne spécifie pas de valeur window_id, l'instruction affecte la fenêtre Carte
supérieure.
Si vous incluez le mot-clé facultatif Auto, MapInfo Professional tente de positionner automatiquement
la couche de carte, ou le groupe de couches, à un endroit approprié dans le jeu de couches. Une table
raster ou une carte d'objets région est placée plus près des couches inférieures de la fenêtre Carte,
alors qu'une carte d'objets point est placée au-dessus.
Si vous omettez le mot-clé Auto, la table indiquée devient la couche supérieure de la fenêtre. En d'autres
termes, la nouvelle couche de la table est rafraîchie en dernier lors du rafraîchissement de la carte. Vous
pouvez utiliser l'instruction Set Map pour modifier l'ordre des couches dans la fenêtre Carte.
Si DestGroupLayer est indiqué, le mot-clé Auto ne sera pas pris en compte et la liste ou le groupe de
couches sera inséré(e) dans la liste de couches, dans le groupe indiqué et à la position spécifiée. L'ID
de groupe 0 désigne la liste de niveau supérieur. Si DestGroupLayer n'est pas indiqué, l'ID de groupe
est défini par défaut sur 0.
Position est l'index à base 1 du groupe de destination dans lequel la nouvelle liste de couches sera
insérée. Si celui-ci n'est pas indiqué, c'est la première position dans le groupe qui est utilisée (position
= 1). Si la position indiquée dépasse le nombre d'éléments autorisés dans le groupe de destination, les
nouvelles couches et/ou groupes de couches seront insérés à la fin du groupe de destination.
Les ID de couche et de groupe peuvent être des numéros ou des noms. Les ID de groupe sont compris
entre 0 et le nombre total de groupes dans la liste.
Remarque: Il est impossible d'insérer les couches et/ou les groupes de couches au milieu d'un ensemble
de couches thématiques. Celles-ci sont en effet insérées selon un ordre spécifique au fur
et à mesure de leur création et cet ordre doit être conservé. Si, en raison de la position de
destination choisie, les nouvelles couches sont insérées dans un ensemble de couches
thématiques, leur positionnement final fera l'objet d'un ajustement pour éviter ce cas de
figure.
Ajout de couches de projections différentes
Si la couche ajoutée est une table raster et que la carte ne contient pas encore de couches raster, la
carte adopte le système de coordonnées et la projection de l'image raster. Si une fenêtre Carte contient
plusieurs couches raster, elle adopte de façon dynamique la projection de l'image qui occupe la plus
grande partie de la fenêtre à cet instant.
Si la fonction de reprojection d'images raster est activée, MapInfo Professional conserve le système de
coordonnées de la carte, même si vous y ajoutez une table raster.
Si la couche ajoutée n'est pas une table raster, MapInfo Professional continue d'afficher la fenêtre Carte
à l'aide du système de coordonnées et de la projection qui étaient utilisés avant l'instruction Add Map,
même si la table spécifiée est stockée avec une projection et/ou un système de coordonnées d'origine
différents. Lorsque la projection d'origine d'une table diffère de la projection de la fenêtre Carte, MapInfo
Professional convertit les coordonnées de la table « à la volée » afin que la totalité de la fenêtre Carte
soit affichée avec la même projection.
Référence
65
Instruction Add Map
Remarque: Lorsque MapInfo Professional convertit les couches d'une carte de cette façon, la mise à
jour de la carte prend plus de temps car MapInfo Professional doit effectuer des
transformations mathématiques tout en dessinant la carte.
Utilisation de couches d'animation pour accélérer le rafraîchissement des cartes
Si l'instruction Add Map inclut le mot-clé Animate, la couche ajoutée devient une couche spéciale dite
d'animation. Lorsqu'un objet de la couche d'animation est déplacé, la fenêtre Carte est mise à jour très
rapidement car MapInfo Professional ne met à jour que la couche d'animation.
Pour obtenir un exemple de couches d'animation, reportez-vous à l'exemple de programme
ANIMATOR.MB.
La couche d'animation est utile dans les applications en temps réel, dans lesquelles les caractéristiques
des cartes sont fréquemment mises à jour. Vous pouvez, par exemple, développer une application de
gestion de parc automobile dans laquelle chaque véhicule est représenté comme un objet point. Vous
pouvez recevoir les coordonnées actuelles des véhicules à l'aide de la technologie GPS (Global
Positioning System) et mettre à jour les objets point pour afficher l'emplacement actuel des véhicules
sur la carte. Dans les types d'applications où les objets de la carte sont constamment en mouvement,
la carte est mise à jour beaucoup plus rapidement si les objets mis à jour sont enregistrés dans la couche
d'animation plutôt que dans une couche classique.
Dans l'exemple ci-dessous, une table (Vehicles) est ouverte et convertie en une couche d'animation :
Open Table "vehicles" Interactive
Add Map Layer vehicles Animate
En règle générale, la dernière table suivie du mot-clé Animate correspond à la couche d'animation.
Celle-ci doit être unique.
Pour terminer le traitement de la couche d'animation, émettez une instruction Remove Map Layer
Animate.
Les couches d'animation sont soumises à des restrictions spéciales. Par exemple, les utilisateurs ne
peuvent pas cliquer sur les objets d'une couche d'animation à l'aide de l'outil Informations. Par ailleurs,
chaque fenêtre Carte ne peut contenir qu'une seule couche d'animation. Pour plus d'informations sur
les couches d'animations, reportez-vous au Guide de l'utilisateur de MapBasic.
Exemple
Open Table "world"
Map From world
Open Table "cust1992" As customers
Open Table "lead1992" As leads
Add Map Auto Layer customers, leads
Exemple d'ajout d'un groupe de couches :
Open Table world
Open Table worldcap
Add Map Auto GroupLayer("new group", worldcap, world)
Open Table ocean
Add Map Layer ocean DestGrouplayer "new group" position 3
Voir également
Instruction Map, Instruction Remove Map, Instruction Set Map
66
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction AdornmentInfo( )
Objectif
Renvoie des informations sur les habillages comme les barres d'échelle. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
AdornmentInfo( window_id, attribute )
window_id est un identifiant de fenêtre entier. La fenêtre doit être un habillage.
attribute est un code entier qui indique le type d'informations à renvoyer. Reportez-vous au tableau
ci-dessous pour les valeurs :
Valeur renvoyée
Nombre à virgule flottante, entier court, entier, valeur logique, pen (ligne), brush (trame), font (police)
ou chaîne, en fonction du paramètre attribute.
Description
La fonction AdornmentInfo( ) peut renvoyer plusieurs attributs. Les codes sont définis dans le fichier
MAPBASIC.DEF.
Paramètre attribute
ID
Valeur renvoyée par AdornmentInfo( )
ADORNMENT_INFO_TYPE
1
Entier.
Type d'habillage : 0 (zéro) pour la barre d'échelle.
ADORNMENT_INFO_MAP_WINDOWID 2
Entier. WindowID de la fenêtre carte parent.
ADORNMENT_INFO_IS_FIXED_POSITION 3
Logique. True pour position fixe, false pour position
d'ancrage.
ADORNMENT_INFO_FIXED_POSITION_X 4
Nombre à virgule flottante. Valeur X de la position fixe.
ADORNMENT_INFO_FIXED_POSITION_Y 5
Nombre à virgule flottante. Valeur Y de la position fixe.
ADORNMENT_INFO_FIXED_POSITION_UNITS 6
Char. Unités des valeurs de décalage X et Y de la position
d'ancrage.
ADORNMENT_INFO_DOCKED_POSITION 7
Entier court. Renvoie la position d'ancrage.
ADORNMENT_INFO_DOCKED_OFFSET_X 8
Nombre à virgule flottante. Valeur X du décalage par
rapport à la position d'ancrage.
ADORNMENT_INFO_DOCKED_OFFSET_Y 9
Nombre à virgule flottante. Valeur Y du décalage par
rapport à la position d'ancrage.
ADORNMENT_INFO_DOCKED_OFFSET_UNITS 10
Char. Unités des valeurs de décalage X et Y de la position
d'ancrage.
Référence
67
Fonction AdornmentInfo( )
Paramètre attribute
68
ID
Valeur renvoyée par AdornmentInfo( )
ADORNMENT_INFO_BACKGROUND_PEN 11
Pen (ligne). Style de bordure de l'arrière-plan de
l'habillage.
ADORNMENT_INFO_BACKGROUND_BRUSH 12
Brush (trame). Style de trame de remplissage de
l'arrière-plan de l'habillage.
ADORNMENT_INFO_SCALEBAR_TYPE 20
Entier court. Type de la barre d'échelle.
ADORNMENT_INFO_SCALEBAR_MAP_UNITS 21
Char. Unités de la distance de la carte sur la barre
d'échelle.
ADORNMENT_INFO_SCALEBAR_PAPER_UNITS 22
Char. Unités de papier dans la barre d'échelle. Pour
obtenir des détails sur les unités papier, consultez la
section Instruction Set Paper Units.
ADORNMENT_INFO_SCALEBAR_BAR_LENGTH 23
Nombre à virgule flottante. Taille d'origine de la barre
d'échelle.
ADORNMENT_INFO_SCALEBAR_BAR_DISPLAY_LENGTH 24
Nombre à virgule flottante. Taille du tracé de la barre
d'échelle.
ADORNMENT_INFO_SCALEBAR_BAR_HEIGHT 25
Nombre à virgule flottante. Hauteur de la barre d'échelle.
ADORNMENT_INFO_SCALEBAR_AUTO_SCALING 26
Logique. Pour marquer l'activation ou désactivation de la
mise à l'échelle automatique.
ADORNMENT_INFO_SCALEBAR_SHOW_CARTO_SCALE 27
Logique. Pour afficher l'échelle cartographique dans la
barre d'outils.
ADORNMENT_INFO_SCALEBAR_BAR_PEN 28
Pen (ligne). Style de ligne utilisé pour dessiner la barre
d'échelle.
ADORNMENT_INFO_SCALEBAR_BAR_BRUSH 29
Brush (trame). Trame, remplissage utilisé pour dessiner
la barre d'échelle.
ADORNMENT_INFO_SCALEBAR_BAR_FONT 30
Font (police) Police utilisée pour afficher le texte dans la
barre d'échelle.
ADORNMENT_INFO_SCALEBAR_BAR_DISPLAY_SCALE 31
Nombre à virgule flottante. Valeur numérique de l'échelle
qui s'affiche dans la barre d'échelle.
ADORNMENT_INFO_SB_AUTOOFF_SCALE 32
Nombre à virgule flottante. Valeur d'échelle non arrondie
utilisée si la mise à l'échelle automatique est désactivée.
ADORNMENT_INFO_SB_AUTOON_SCALE 33
Nombre à virgule flottante. Valeur d'échelle arrondie
utilisée si la mise à l'échelle automatique est activée.
ADORNMENT_INFO_SB_SCALE_STRING 34
Char. Valeur de l'échelle affichée, mais sous la forme
d'une chaîne formatée (tels que des points décimaux et
des séparateurs de milliers).
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée par AdornmentInfo( )
ADORNMENT_INFO_SB_CARTO_VALUE 35
Nombre à virgule flottante. Valeur de l'échelle
cartographique sous forme de valeur numérique, sans
arrondi.
ADORNMENT_INFO_SB_CARTO_STRING 36
Char. Échelle cartographique sous forme de chaîne
formatée.
Exemple
print AdornmentInfo(MapperInfo(FrontWindow(), 201), 1)
Instruction Alter Button
Objectif
Active, désactive, sélectionne ou désélectionne un bouton à partir d'un ButtonPad (barre d'outils).
Syntaxe
Alter Button { handler | ID button_id }
[ { Enable | Disable } ]
[ { Check | Uncheck } ]
handler est le gestionnaire qui est déjà affecté à un bouton existant. Le handler peut porter le nom d'une
procédure MapBasic ou d'un code de commande standard (M_TOOLS_RULER ou
M_WINDOW_LEGEND, par exemple) provenant de MENU.DEF.
button_id est un numéro d'identification entier unique du bouton.
Description
Si l'instruction Alter Button spécifie un gestionnaire (nom d'une procédure, par exemple), MapInfo
Professional modifie tous les boutons qui appellent ce gestionnaire. Si l'instruction spécifie un numéro
button_id, MapInfo Professional ne modifie que le bouton qui correspond à cet ID.
Le mot-clé Disable change l'état du bouton en grisé, de sorte que l'utilisateur ne puisse pas sélectionner
le bouton.
Le mot-clé Enable réactive un bouton qui était désactivé.
Le mot-clé Check sélectionne et le mot-clé Uncheck désélectionne les boutons de type ToggleButton
(bouton Afficher statistiques, par exemple). Le mot-clé Check a pour effet « d'enfoncer » un contrôle
ToggleButton, tandis que le mot-clé Uncheck a pour effet de « relâcher » le bouton. Par exemple,
l'instruction suivante sélectionne le bouton Afficher statistiques :
Alter Button M_WINDOW_STATISTICS Check
Remarque: L'activation ou la désactivation d'un bouton MapInfo Professional standard n'appelle pas
automatiquement l'action de ce bouton. Dans la pratique, l'activation du bouton
Afficher/Cacher statistiques n'affiche pas la fenêtre Statistiques, mais influe uniquement
sur l'apparence du bouton. Pour appeler une action comme si l'utilisateur avait activé ou
Référence
69
Instruction Alter ButtonPad
désactivé le bouton, il convient d'émettre l'instruction appropriée. Dans cet exemple,
l'instruction appropriée est l'instruction Open Window Statistics.
De la même manière, vous pouvez utiliser le mot-clé Check pour modifier l'apparence d'un ToolButton.
Dans la pratique, l'activation d'un ToolButton ne sélectionne toutefois pas l'outil en question, mais ne
fait que changer l'apparence de ce bouton. Pour qu'un outil standard devienne l'outil actif, il convient
d'émettre une instruction Run Menu Command, comme dans l'exemple ci-dessous :
Run Menu Command M_TOOLS_RULER
Pour qu'un outil personnalisé devienne l'outil actif, utilisez la syntaxe Run Menu Command ID IDnum.
Voir également
Instruction Alter ButtonPad, Instruction Create ButtonPad, Instruction Run Menu Command
Instruction Alter ButtonPad
Objectif
Affiche/masque un ButtonPad (barre d'outils) ou ajoute/supprime des boutons.
Syntaxe
Alter ButtonPad { current_title | ID pad_num }
[ Add button_definition [ button_definition ... ] ]
[ Remove { handler_num | ID button_id } [ , ... ] ]
[ Title new_title ]
[ Width width ]
[ Position ( x, y ) [ Units unit_name ] ]
[ ToolbarPosition ( row, column ) ]
[ { Show | Hide } ]
[ { Fixed | Float | Top | Left | Right | Bottom } ]
[ Destroy ]
current_title est la chaîne de titre de la barre d'outils (« Général », par exemple).
pad_num est le numéro d'identification d'une barre d'outils standard :
•
•
•
•
•
•
•
1 pour la barre d'outils Général
2 pour la barre d'outils Dessin
3 pour la barre d'outils Outils
4 pour la barre d'outils Standard
5 pour la barre d'outils Système de gestion de base de données (DBMS)
6 pour les services Web
7 Réservé
handler_numest un code de gestionnaire entier (M_TOOLS_RULER (1710), par exemple) provenant
de MENU.DEF.
button_id est le numéro d'identification unique d'un bouton personnalisé.
new_title est une chaîne qui devient le nouveau titre de la barre d'outils. Elle est visible lorsque la barre
d'outils est flottante.
70
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
width correspond à la largeur de la barre en termes de boutons inclus.
x, y spécifient la position de la barre d'outils lorsqu'elle est flottante, exprimée en unités papier. Pour
obtenir des détails sur les unités papier, consultez la section Instruction Set Paper Units.
unit_name est une chaîne qui représente le nom d'une unité papier (« cm » pour centimètres, par
exemple).
row, column spécifient la position de la barre d'outils lorsqu'elle est ancrée (par exemple, 0, 0 place la
barre à gauche de la ligne supérieure des barres d'outils et 0, 1 représente la deuxième barre d'outils
sur la ligne supérieure).
• La position row démarre au niveau supérieur et sa valeur augmente au fur et à mesure qu'elle descend
vers le niveau inférieur. Il s'agit d'une valeur relative aux lignes qui se trouvent à cette position
(supérieure ou inférieure). Lorsqu'une barre de menus se trouve à la même position, les nombres
deviennent alors relatifs à cette barre. Si une barre d'outils est située juste en dessous de la barre de
menus, sa valeur row est 0. Si elle est située directement au-dessus de la barre de menus, sa valeur
row est -1.
• La position column démarre à gauche et sa valeur augmente au fur et à mesure qu'elle se déplace
vers la droite. Il s'agit d'une valeur relative aux colonnes qui se trouvent à cette position (à gauche ou
à droite). Par exemple, si une barre d'outils est ancrée à gauche et que la barre de menus est ancrée
sur la position gauche, le numéro de la colonne à gauche de la barre de menus est -1. Le numéro de
la colonne à droite de la barre de menus est 0.
Chaque clause button_definition peut être composée du mot-clé Separator ou disposer de la syntaxe
suivante :
{ PushButton | ToggleButton | ToolButton }
Calling { procedure | menu_code | OLE methodname | DDE server, topic }
[ ID button_id ]
[ Icon icon_code [ File file_spec ] ]
[ Cursor cursor_code [ File file_spec ] ]
[ DrawMode dm_code ]
[ HelpMsg msg ]
[ ModifierKeys { On | Off } ]
[ { Enable | Disable } ]
[ { Check | Uncheck } ]
procedure correspond à la procédure de gestionnaire qui doit être appelée lors de l'utilisation d'un bouton.
menu_code est un code de menu standard de MapInfo Professional, issu du fichier MENU.DEF,
(M_FILE_OPEN (102), par exemple). MapInfo Professional exécute la commande de menu lorsque
l'utilisateur clique sur le bouton.
methodname est une chaîne définissant un nom de méthode OLE. Pour plus d'informations sur la syntaxe
de la clause Calling OLE reportez-vous à la section Instruction Create ButtonPad.
server et topic sont des chaînes qui spécifient un serveur DDE et un nom de rubrique. Pour plus
d'informations sur la syntaxe de la clause Calling DDE, reportez-vous à la section Instruction Create
ButtonPad.
button_id spécifie le numéro d'identification unique du bouton. Ce numéro peut être utilisé en tant que
balise dans l'aide, en tant que paramètre permettant au gestionnaire d'identifier le bouton utilisé (dans
les cas où un même gestionnaire pourrait être appelé par différents boutons) ou en tant que paramètre
à utiliser avec l'instruction Alter Button.
Référence
71
Instruction Alter ButtonPad
Icon icon_code spécifie l'icône devant s'afficher sur le bouton icon_code peut correspondre à l'un des
codes d'icône MapInfo standard répertoriés dans ICONS.DEF, (MI_ICON_RULER (11), par exemple).
Si la sous-clause File spécifie le nom d'un fichier qui contient des ressources d'icône, icon_code est un
identifiant de ressource entier indiquant une ressource dans le fichier. Il est possible de définir la taille
des boutons avec un identifiant de fichier de ressources de icon_code pour les boutons de petite taille
et icon_code+1 pour les boutons de grande taille (avec des identifiants de fichier de ressources de
icon_code et icon_code+1 respectivement).
Cursor cursor_code spécifie la forme du pointeur de la souris lorsque l'utilisateur se sert de l'outil
ToolButton. cursor_codeest un code (MI_CURSOR_ARROW (0), par exemple) provenant d'ICONS.DEF.
Cette clause s'applique uniquement aux boutons d'outils. Si la sous-clause File définit le nom d'un fichier
contenant des ressources de type icône, cursor_code est un identifiant entier correspondant à une
ressource du fichier.
dm_code indique si l'utilisateur peut effectuer un clic et un glisser ou uniquement un clic avec l'outil.
dm_code est un code (DM_CUSTOM_LINE (33), par exemple) provenant d'ICONS.DEF. S'applique
uniquement aux ToolButtons.
msg est une chaîne qui donne des indications sur la barre d'état du bouton et spécifie, le cas échéant,
une info-bulle. La première partie de msg est le message d'aide de la barre d'état. Si la chaîne msg
inclut les caractères \n, le texte qui suit apparaîtra comme message d'aide dans l'info-bulle.
La clause ModifierKeys ne s'applique qu'aux ToolButtons. Elle indique si les touches Maj et Ctrl influent
sur le tracé du « ruban élastique » lorsque l'utilisateur fait glisser la souris tout en utilisant un ToolButton.
La valeur définie par défaut est Off (les touches de modification restent sans effet).
Description
Utilisez l'instruction Alter ButtonPad pour afficher, masquer, modifier ou supprimer un ButtonPad
existant. Pour plus d'informations sur les ButtonPads, reportez-vous au Guide de l'utilisateur MapBasic.
Pour afficher ou masquer un ButtonPad, incluez le mot-clé Show ou Hide (reportez-vous aux exemples
ci-après). L'utilisateur peut également afficher et masquer des ButtonPads en sélectionnant Options >
Barre d'outils.
Pour indiquer si la barre est fixée en haut de l'écran (« ancrage ») ou est flottante comme une fenêtre,
incluez respectivement le mot-clé Fixed ou le mot-clé Float. L'utilisateur peut également indiquer si la
barre peut être ancrée ou non en la faisant glisser vers le sommet de l'écran ou à partir de celui-ci. Pour
un plus grand contrôle de l'endroit de l'écran où la barre est ancrée, servez-vous des mots-clés Top
(équivalent de Fixed), Left, Right ou Bottom.
Lorsqu'une barre est flottante, sa position est contrôlée par la clause Position. Lorsqu'une barre est
ancrée, sa position est contrôlée par la clause ToolbarPosition.
Pour supprimer un ButtonPad, incluez le mot-clé Destroy. Une fois un ButtonPad supprimé, il n'apparaît
plus dans la boîte de dialogue accessible en sélectionnant Options > Barres d'outils.
L'instruction Alter ButtonPad peut ajouter des boutons à des ButtonPads existants (Général et Dessin,
par exemple). Vous pouvez ajouter trois types de contrôles de boutons : les contrôles PushButton (sur
lesquels l'utilisateur peut cliquer pour afficher, par exemple, une boîte de dialogue), les contrôles
ToggleButton (que l'utilisateur peut sélectionner en cliquant dessus, puis désélectionner en recliquant
dessus) et les contrôles ToolButton (que l'utilisateur peut sélectionner, puis utiliser pour cliquer sur une
fenêtre Carte ou Mise en page).
72
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Si vous incluez le mot-clé facultatif Disable lorsque vous ajoutez un bouton, le bouton est désactivé (il
apparaît en grisé) lorsqu'il s'affiche. Les instructions Alter Button peuvent activer le bouton. Si toutefois
le gestionnaire du bouton est une commande MapInfo Professional standard, MapInfo Professional
active ou désactive automatiquement le bouton selon que la commande est actuellement activée ou
non.
Si vous incluez le mot-clé facultatif Check lorsque vous ajoutez un ToggleButton ou un ToolButton, le
bouton est automatiquement sélectionné (« activé ») lorsqu'il s'affiche pour la première fois.
Si l'utilisateur effectue un clic pendant qu'il utilise un outil ToolButton personnalisé, MapInfo Professional
appelle automatiquement le gestionnaire de l'outil, sauf si l'utilisateur annule l'opération (en appuyant
sur la touche Echap pendant qu'il fait glisser la souris, par exemple). Une procédure de gestionnaire
peut appeler CommandInfo( ) pour déterminer si l'utilisateur a effectué un clic. Lorsque plusieurs outils
appellent la même procédure de gestionnaire, la procédure peut appeler CommandInfo( ) pour déterminer
l'ID du bouton en cours d'utilisation.
Icônes et curseurs personnalisés
La clause Icon spécifie l'icône qui s'affiche sur le bouton. Si vous omettez la clause File, le paramètre
n doit se référer à l'un des codes d'icône répertoriés dans ICONS.DEF (MI_ICON_RULER (11), par
exemple).
Remarque: MapInfo Professional intègre de nombreuses icônes qui ne font pas partie de l'interface
utilisateur courante. Pour voir une démonstration de ces icônes, exécutez l'exemple de
programme ICONDEMO.MBX. Cet exemple de programme présente des icônes et vous
permet de copier un code de définition d'icône dans le Presse-papiers (pour que vous
puissiez le coller dans votre programme par la suite).
La sous-clause File file_spec se réfère à un fichier DLL qui contient des ressources bitmap. Le paramètre
n se réfère à l'ID d'une ressource bitmap. Pour plus d'informations sur la création d'icônes Windows,
reportez-vous au Guide de l'utilisateur MapBasic.
La définition d'un ToolButton peut également inclure une clause Cursor, qui contrôle l'apparence du
pointeur de la souris pendant que l'utilisateur utilise l'outil personnalisé. Les codes de curseur disponibles,
tels que MI_CURSOR_CROSSHAIR (138) ou MI_CURSOR_ARROW (0), sont répertoriés dans le
fichierICONS.DEF. La procédure de spécification d'un curseur personnalisé est semblable à celle d'une
icône personnalisée.
Pour connaître les spécifications concernant la taille des icônes personnalisées selon les différentes
versions de MapInfo Professional, reportez-vous à la section Instruction Create ButtonPad À propos
de la taille des icônes.
Modes de dessin personnalisés
Une définition ToolButton peut inclure une clause DrawMode, qui indique si l'utilisateur peut effectuer
un glisser avec l'outil (pour tracer une ligne, par exemple) ou seulement effectuer un clic (pour dessiner
un point, par exemple). Les modes de dessin disponibles sont répertoriés dans le tableau ci-dessous.
Les codes figurant dans la colonne de gauche sont définis dans ICONS.DEF.
Référence
73
Instruction Alter ButtonPad
Paramètre DrawMode
ID
Description
DM_CUSTOM_POINT
34
L'utilisateur ne peut pas effectuer de glisser pendant qu'il
utilise l'outil personnalisé.
DM_CUSTOM_LINE
33
Pendant que l'utilisateur effectue un glisser, une ligne relie
le curseur à l'emplacement où l'utilisateur a cliqué.
DM_CUSTOM_RECT
32
Pendant que l'utilisateur effectue un glisser, une zone
rectangulaire apparaît.
DM_CUSTOM_CIRCLE
30
Pendant que l'utilisateur effectue un glisser, une zone
circulaire apparaît.
DM_CUSTOM_ELLIPSE
31
Pendant que l'utilisateur effectue un glisser, une zone
elliptique apparaît. Si vous incluez la clause ModifierKeys,
l'utilisateur peut forcer la zone à prendre une forme
circulaire en maintenant la touche Maj enfoncée.
DM_CUSTOM_POLYGON
35
L'utilisateur peut dessiner un polygone. Pour récupérer
l'objet dessiné par l'utilisateur, utilisez l'appel de fonction
: fonction CommandInfo( )
(CMD_INFO_CUSTOM_OBJ).
DM_CUSTOM_POLYLINE
36
L'utilisateur peut dessiner une polyligne. Pour récupérer
l'objet dessiné par l'utilisateur, utilisez l'appel de fonction
: fonction CommandInfo( )
(CMD_INFO_CUSTOM_OBJ).
Tous les modes de dessin, à l'exception de DM_CUSTOM_POINT (34), prennent en charge la fonction
Autoscroll, qui permet à l'utilisateur de faire défiler une carte ou une mise en page en cliquant sur le
bord de la fenêtre et en le faisant glisser. Pour désactiver la fonction Autoscroll, reportez-vous à la section
Instruction Set Window.
Remarque: MapBasic prend en charge un autre mode de dessin dont les utilisateurs de MapInfo
Professional ne disposent pas. Si un ToolButton personnalisé comporte la clause Calling
suivante : Calling M_TOOLS_SEARCH_POLYGON (1733), l'outil autorise alors l'utilisateur
à dessiner un polygone. Lorsque l'utilisateur effectue un double-clic pour fermer le polygone,
MapInfo Professional sélectionne tous les objets (dans les couches sélectionnables de la
carte) figurant dans ce polygone. Le polygone n'est pas enregistré.
Exemples
L'exemple suivant affiche le ButtonPad Général et masque le ButtonPad Dessin :
Alter ButtonPad "Main" Show
Alter ButtonPad "Drawing" Hide
L'exemple suivant ancre le ButtonPad Général et définit sa position d'ancrage sur 0,0 (en haut à gauche)
:
Alter ButtonPad "Main" Fixed ToolbarPosition(0,0)
74
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
L'exemple suivant déplace le ButtonPad Général de telle sorte qu'il devienne flottant au lieu d'être ancré
et définit sa position de flottement sur la moitié d'un pouce à l'intérieur de l'angle supérieur gauche de
l'écran.
Alter ButtonPad "Main" Float Position(0.5,0.5) Units "in"
L'exemple de programme ScaleBar contient l'instruction Alter ButtonPad qui ajoute un ToolButton
personnalisé au ButtonPad Outils. (Notez que « ID 3 » identifie le ButtonPad Outils.)
Alter ButtonPad ID 3
Add
Separator
ToolButton
Icon MI_ICON_CROSSHAIR
HelpMsg "Draw a distance scale on a map\nScale Bar"
Cursor MI_CURSOR_CROSSHAIR
DrawMode DM_CUSTOM_POINT
Calling custom_tool_routine
Show
Remarque: Le mot-clé Separator insère un espace entre le dernier bouton du ButtonPad Outils et le
nouveau bouton MI_CURSOR_CROSSHAIR (138).
Voir également
Instruction Alter Button, Fonction ButtonPadInfo( ), Instruction Create ButtonPad, Instruction
Set Window
Instruction Alter Cartographic Frame
Objectif
L'instruction Alter Cartographic Frame modifie la position, le titre, le sous-titre, la bordure et le style
des cadres d'une légende cartographique existante créée à l'aide de l'instruction Create Cartographic
Legend. (Pour modifier la taille, la position ou le titre de la fenêtre Légende, utilisez l'instruction Set
Window.) Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Cette instruction ne peut pas modifier le titre, le sous-titre ou les polices d'un cadre thématique dans la
fenêtre de conception de légende. Pour effectuer ces modifications, utilisez l'instruction Set Legend.
Syntaxe
Alter Cartographic Frame
[ Window legend_window_id ]
Id { frame_id }
[ Position ( x, y ) [ Units paper_units ] ]
[ Title [ frame_title ] [ Font... ] ]
[ SubTitle [ frame_subtitle ] [ Font... ] ]
[ Border Pen... ]
[ Style [ Font... ]
[ ID { id } Text { style_name } ]
[Line Pen... | Region Pen... Brush... | Symbol Symbol... ] ]
[ , ... ]
legend_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
Référence
75
Instruction Alter Control
frame_id est l'identifiant du cadre de la légende. Vous ne pouvez pas utiliser un nom de couche. Par
exemple, trois cadres sur une légende doivent porter les identifiants 1, 2 et 3 consécutifs.
frame_title est une chaîne qui définit un titre de cadre.
frame_subtitle est une chaîne qui définit un sous-titre de cadre.
id est la position de ce cadre dans la liste de styles. Pour obtenir des informations sur le nombre de
styles d'un cadre, utilisez la fonction LegendFrameInfo( ) avec l'attribut FRAME_NUM_STYLES (13).
style_name est une chaîne qui s'affiche à côté de chaque symbole du cadre spécifié dans ID. Le caractère
« # » sera remplacé par le nom de la couche. Le caractère « % » sera remplacé par le texte « Ligne »,
« Point » ou « Région », selon le symbole. Par exemple, "% of #" deviendra "Region of States" pour la
couche STATES.TAB.
Description
Si aucune clause Window n'est spécifiée, MapInfo Professional utilise la fenêtre Légende supérieure.
La clause Position contrôle la position du cadre dans la fenêtre Légende. La position du coin supérieur
gauche de la fenêtre Légende correspond à 0, 0. Les valeurs de Position utilisent les paramètres des
unités papier, tels que « in » pour inches (pouces) ou « cm » pour centimètres. (Reportez-vous à la
section Instruction Set Paper Units). Le paramètre d'unités papier actuelles de MapBasic est défini
par défaut en pouces. Un programme MapBasic peut modifier ce paramètre au moyen de l'instruction
Set Paper Units. Une instruction Alter Cartographic Frame peut remplacer les unités papier actuelles
en incluant la sous-clause facultative Units dans la clause Position.
Les clauses Title et SubTitle acceptent du nouveau texte, une nouvelle police ou les deux.
La clause Style doit contenir la liste de définitions des styles figurant dans le cadre. Vous pouvez
uniquement mettre à jour le type Style d'un style personnalisé. Vous pouvez mettre à jour le type Text
de tous les styles. Il est impossible d'ajouter ou de supprimer des styles dans un type de cadre.
Voir également
Instruction Create Cartographic Legend, Instruction Set Cartographic Legend, Instruction Add
Cartographic Frame, Instruction Remove Cartographic Frame
Instruction Alter Control
Objectif
Change l'état d'un contrôle dans la boîte de dialogue personnalisée active.
Syntaxe
Alter Control id_num
[ Title { title | From Variable array_name } ]
[ Value value ]
[ { Enable | Disable } ]
[ { Show | Hide } ]
[ Active ]
id_num est un entier qui identifie l'un des contrôles de la boîte de dialogue active.
76
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
title est une chaîne qui représente le nouveau titre à affecter au contrôle.
array_name est le nom d'une variable de tableau. Il permet de réinitialiser le contenu des contrôles
ListBox, MultiListBox et PopupMenu.
value est la nouvelle valeur à associer au contrôle spécifié.
Restrictions
Vous ne pouvez pas exécuter cette instruction via la fenêtre MapBasic.
Description
L'instruction Alter Control modifie un ou plusieurs attributs d'un contrôle de la boîte de dialogue active.
L'instruction Alter Control ne doit de ce fait être émise que lorsque la boîte de dialogue est active (à
partir d'une procédure de gestionnaire qui est appelée par l'un des contrôles de la boîte de dialogue,
par exemple). Si plusieurs boîtes de dialogue sont imbriquées à l'écran, l'instruction Alter Control influe
uniquement sur les contrôles de la boîte de dialogue qui se trouve au premier plan.
The id_num spécifie le contrôle de la boîte de dialogue à modifier. Il correspond au paramètre id_num
indiqué dans la clause ID de l'instruction Dialog.
Chacune des clauses facultatives (Title, Value, Enable/Disable, Hide/Show, Active) modifie un attribut
différent d'un contrôle de boîte de dialogue. Notez que toutes ces clauses peuvent être incluses dans
une seule instruction. Une seule instruction Alter Control peut de ce fait changer le nom, la valeur et
l'état activé/désactivé d'un contrôle de boîte de dialogue.
Certains attributs ne s'appliquent pas à tous les types de contrôles. Par exemple, un contrôle Button
peut être activé ou désactivé sans avoir d'attribut Value.
La clause Title réinitialise le texte qui figure dans la plupart des contrôles (sauf pour les contrôles Picker
et EditText ; pour réinitialiser le contenu d'un contrôle EditText, définissez son attribut Value). Si le
contrôle est un contrôle ListBox, MultiListBox ou PopupMenu, la clause Title peut lire le nouveau contenu
du contrôle à partir d'un tableau de variables de chaîne, en spécifiant une clause From Variable.
Le mot-clé Active ne s'applique qu'aux contrôles EditText. Une instruction Alter Control...Active place
le focus clavier sur le contrôle EditText spécifié.
Utilisez les mots-clés Hide et Show pour afficher et masquer respectivement les contrôles.
Pour désélectionner tous les éléments d'un contrôle MultiListBox, utilisez un paramètre de valeur nul.
Pour ajouter un élément de liste à l'ensemble des éléments MultiListBox sélectionnés, émettez une
instruction Alter Control avec une valeur entière positive correspondant au numéro de l'élément de
liste.
Remarque: Dans ce cas, n'émettez pas l'instruction Alter Control à partir du gestionnaire du contrôle
MultiListBox.
Vous pouvez utiliser une instruction Alter Control pour modifier le texte qui s'affiche dans un contrôle
StaticText. MapInfo Professional ne peut toutefois pas augmenter la taille du contrôle StaticText une
fois qu'il a été créé. Par conséquent, si vous planifiez de modifier la longueur d'un contrôle StaticText,
vous pouvez y ajouter des espaces lorsque vous le définissez pour la première fois. Par exemple,
l'instruction Dialog pourrait inclure la clause suivante :
Control StaticText ID 1 Title "Message goes here" + Space$(30)
Référence
77
Instruction Alter Designer Frame
Exemple
Dans l'exemple suivant, une boîte de dialogue qui contient deux cases à cocher, un bouton OK et un
bouton Cancel, est créée. Le bouton OK est initialement désactivé (il apparaît en grisé). Le bouton OK
ne devient disponible que lorsque l'utilisateur active l'une des deux ou les deux cases à cocher.
Include "mapbasic.def"
Declare Sub Main
Declare Sub checker
Sub Main
Dim browse_it, map_it As Logical
Dialog
Title "Display a file"
Control CheckBox
Title "Display in a Browse window"
Value 0
Calling checker
ID 1
Into browse_it
Control CheckBox
Title "Display in a Map window"
Value 0
Calling checker
ID 2
Into map_it
Control CancelButton
Control OKButton
ID 3
Disable
If CommandInfo(CMD_INFO_DLG_OK) Then
' ... then the user clicked OK...
End If
End Sub
Sub checker
' If either check box is checked,
' enable the OK button; otherwise, Disable it.
If ReadControlValue(1) Or ReadControlValue(2) Then
Alter Control 3 Enable
Else
Alter Control 3 Disable
End If
End Sub
Instruction Alter Designer Frame
Objectif
L'instruction Alter Designer Frame modifie la position, le titre, le sous-titre et le style des cadres d'une
légende existante créée à l'aide de l'instruction Create Designer Legend. (Pour modifier la taille, la
position ou le titre de la fenêtre Légende, utilisez l'instruction Set Window.) Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Cette instruction ne peut pas modifier le titre, le sous-titre ou les polices d'un cadre thématique dans la
fenêtre de conception de légende. Pour effectuer ces modifications, utilisez l'instruction Set Legend.
78
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
Alter Designer Frame
[ Window legend_window_id ]
Id { frame_id }
[ Position ( x, y ) [ Units paper_units ] ]
[ Title [ frame_title ] [ Font... ] ]
[ SubTitle [ frame_subtitle ] [ Font... ] ]
[ Columns number_of_columns ] |
[ Height frame_height [ Units paper_units ] ]
[ Region [ Height region_height [ Units paper_units ] ] ]
[ Region [ Width region_width [ Units paper_units ] ] ]
[ Line [ Width line_width [ Units paper_units ] ] ]
[ Auto Font Size { On | Off } ]
[ Order { Default | Ascending | Descending |
{ Custom id | id : id [ , id | id : id ... ] ... } } ]
[ Style [ Font... ]
[ ID { id } Text { style_name } ]
[Line Pen... | Region Pen... Brush... | Symbol Symbol... ] ]
[ , ... ]
legend_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
frame_id est l'identifiant du cadre de la légende. Vous ne pouvez pas utiliser un nom de couche. Par
exemple, trois cadres sur une légende doivent porter les identifiants 1, 2 et 3 consécutifs.
paper_units est une chaîne qui représente le nom d'une unité papier. Pour obtenir des détails sur les
unités papier, consultez la section Instruction Set Paper Units.
frame_title est une chaîne qui définit un titre de cadre.
frame_subtitle est une chaîne qui définit un sous-titre de cadre.
number_of_columns est le nombre de colonnes à afficher dans un cadre.
frame_height remplace la clause Columns lorsque l'utilisateur redimensionne un cadre de légende.
Hauteur du cadre en unités papier. Valeur écrite dans le document WOR lorsque le cadre a été
manuellement redimensionné.
region_height est une valeur qui représente la nouvelle hauteur d'un pavé dans le cadre de la carte de
la fenêtre de conception de légende. Vous pouvez spécifier de 8 à 144 points, de 0,666667 à 12 picas,
de 0,111111 à 2 pouces, de 0,282222 à 5,08 millimètres ou de 0,282222 à 5,08 centimètres. Si elle
n'est pas spécifiée, la valeur par défaut de 32 points est utilisée (peut être définie comme une préférence).
region_width est une valeur qui représente la nouvelle largeur d'un pavé dans le cadre de la carte de la
fenêtre de conception de légende. Vous pouvez spécifier de 8 à 144 points, de 0,666667 à 12 picas, de
0,111111 à 2 pouces, de 0,282222 à 5,08 millimètres ou de 0,282222 à 5,08 centimètres. Si elle n'est
pas spécifiée, la valeur par défaut de 32 points est utilisée (peut être définie comme une préférence).
line_width est une valeur qui représente la nouvelle largeur d'un segment de ligne dans le cadre de la
carte de la fenêtre de conception de légende. Vous pouvez spécifier de 12 à 144 points, de 1 à 12 picas,
de 0,666667 à 2 pouces, de 4,23333 à 50,80 millimètres ou de 4,23333 à 50,80 centimètres. Si elle
n'est pas spécifiée, la valeur par défaut de 36 points est utilisée (peut être définie comme une préférence).
id est la position de ce cadre dans la liste de styles. Pour obtenir des informations sur le nombre de
styles d'un cadre, utilisez la fonction LegendFrameInfo( ) avec l'attribut FRAME_NUM_STYLES (13).
Référence
79
Instruction Alter Designer Frame
style_name est une chaîne qui s'affiche à côté de chaque symbole du cadre spécifié dans ID. Le caractère
« # » sera remplacé par le nom de la couche. Le caractère « % » sera remplacé par le texte « Ligne »,
« Point » ou « Région », selon le symbole. Par exemple, « % of # » deviendra « Region of States » pour
la couche STATES.TAB.
Description
Si aucune clause Window n'est spécifiée, MapInfo Professional utilise la fenêtre Légende supérieure.
La clause Position contrôle la position du cadre dans la fenêtre Légende. La position au coin supérieur
gauche de la fenêtre Légende correspond à 0, 0. Les valeurs de Position utilisent les paramètres des
unités papier, tels que « in » pour inches (pouces) ou « cm » pour centimètres. Le paramètre d'unités
papier actuelles de MapBasic est défini par défaut en pouces. Un programme MapBasic peut modifier
ce paramètre au moyen de l'instruction Set Paper Units. Une instruction Alter Designer Frame peut
remplacer les unités papier actuelles grâce à l'inclusion de la sous-clause facultative Units dans la
clause Position.
Les clauses Title et SubTitle acceptent du texte nouveau et/ou une nouvelle police.
La clause Columns est le nombre de colonnes à afficher dans un cadre.
La clause Region Height indique une hauteur spécifique pour un pavé dans le cadre de légende de la
fenêtre de conception de légende.
La clause Region Width indique une largeur spécifique pour un pavé dans le cadre de légende de la
fenêtre de conception de légende.
La clause Line Width indique une largeur spécifique pour un échantillon de ligne dans le cadre de
légende de la fenêtre de conception de légende.
Auto Font Size active ou désactive le redimensionnement du pavé de la légende en fonction du paramètre
de taille de police.
La clause Order permet d'ajouter la fonctionnalité de tri ou de personnalisation de l'ordre des lignes des
légendes. Vous pouvez trier les légendes par étiquette de style ou suivant votre propre ordre. Les options
d'ordre de tri sont les suivantes : Par défaut, Ordre Croissant, Ordre Décroissant et Ordre
Personnalisé. La clause Order est uniquement écrite dans un document si la légende est triée dans
l'ordre croissant, décroissant ou personnalisé.
Un ordre de tri Par défaut correspond à l'ordre que l'assistant Créer une légende utilise pour créer les
lignes de légende. Si vous créez une légende en fonction de styles uniques, cet ordre s'applique à ces
styles, qui sont alors affichés sous forme de lignes dans la légende.
Si vous sélectionnez l'ordre de tri Personnalisé, les valeursid sont des identifiants de ligne commençant
par 1, triés de haut en bas. Si vous regardez la liste de lignes de la boîte de dialogue Propriétés du
cadre de légende, l'identifiant de la première ligne est égal à 1, et ainsi de suite, dans l'ordre croissant
jusqu'en bas de la liste. Pour plus d'informations, reportez-vous à la section Options d'ordre
personnalisé.
La clause Display contrôle l'affichage de chaque ligne. Chaque ligne de MapBasic commence par la
clause Style. À la fin de chaque clause Style se trouve une clause Display facultative. Display On rend
la ligne visible. Display Off masque la ligne. Si la clause Display est absente, la ligne est visible. La
clause Display est écrite uniquement dans un fichier de document pour des styles non visibles dans un
cadre de légende.
80
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Remarque: La clause Columns ou Height s'applique aux légendes et aux légendes thématiques.
Cependant, il convient de spécifier l'ensemble des autres propriétés de légende thématique
via l'instruction Set Legend.
Les unités papier sont les suivantes : cm (centimètres), mm (millimètres), in (pouces), pt (points) et
pica. Les conversions entre ces unités sont les suivantes :
• 1 pouce (in) = 2,54 centimètres, 254 millimètres, 6 picas, 72 points
• 1 point (pt) = 0,01389 pouce, 0,03528 centimètre, 0,35278 millimètre, 0,08333 pica
• 1 pica = 0,16667 pouce, 0,42333 centimètre, 4,23333 millimètres, 12 points
• 1 centimètre (cm) = 0,39370 pouce, 10 millimètres, 2,36220 picas, 28,34646 points
• 1 millimètre (mm) = 0,1 centimètre, 0,03937 pouce, 0,23622 pica, 2,83465 points
La clause Style doit contenir la liste de définitions des styles figurant dans le cadre. Vous pouvez
uniquement mettre à jour le type Style d'un cadre de légende créé à l'aide du mot-clé NoRefresh. Vous
pouvez mettre à jour le type Text de tous les styles. Il est impossible d'ajouter ou de supprimer des styles
dans un type de cadre.
Seules les clauses suivantes s'appliquent aux légendes thématiques. Il s'agit des clauses :
[ Position ( x, y ) [ Units paper_units ] ]
[ Columns number_of_columns ] |
[ Height frame_height [ Units paper_units ] ]
Exemple
L'exemple suivant modifie l'échantillon de style 1 Frame 1 d'une couche de points Cities. Il met à jour
le titre, le sous-titre et le texte en regard de ses symboles.
Alter Designer Frame
Window FrontWindow()
ID 1
Position (1, .5) Units "in"
Title "Big Cities"
Subtitle "125 Biggest Cities"
Style Font ("Arial",2,12,255)
ID 1 Text "City Points"
Voir également
Instruction Add Designer Frame, Instruction Create Designer Legend, Instruction Remove Designer
Frame, Instruction Set Designer Legend
Options d'ordre personnalisé
Les deux instructions Create Designer Legend et Alter Designer Frame incluent maintenant une
clause Order avec la possibilité de spécifier un ordre de tri personnalisé.
Custom id | id : id [ , id | id : id ... ]
Où ce qui suit indique une plage d'identifiants de ligne dans l'ordre croissant (Id2 > Id1) :
Id1 : Id2
Référence
81
Instruction Alter Designer Text
Modification de l'ordre d'une liste
La syntaxe d'un ordre personnalisé de lignes de légende est similaire à la clause Order (pour modifier
l'ordre des couches) dans l'instruction Set Map. Elle est relativement facile à utiliser si vous souhaitez
modifier l'ordre en début de liste ; il est par contre plus compliqué de le faire en fin de liste. Par exemple,
si vous souhaitez inverser l'ordre des trois premières lignes, il vous suffit d'utiliser la commande suivante :
Order Custom 3, 2, 1
Vous n'avez pas besoin de mentionner les autres lignes. Si vous disposez de 10 lignes et que vous
souhaitez intervertir les deux dernières, vous devez mentionner tous les identifiants comme suit :
Order Custom 1, 2, 3, 4, 5, 6, 7, 8, 10, 9
Pour rendre cette commande plus compacte, utilisez la syntaxe suivante :
Order Custom 1:8, 10, 9
Indication d'une plage de valeurs
Pour indiquer une plage de valeurs, utilisez les deux points (:), comme dans les exemples suivants :
Long form:
Order Custom 2, 5, 6, 7, 8, 9, 10, 1, 3, 4
Short
Order
Order
Order
form:
Custom 2, 5:10, 1, 3, 4
Custom 2, 5:10, 1, 3:4 (same as above but also valid)
Custom 2, 5:10, 1 (same as above but also valid)
Long form:
Order Custom 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19,
20, 11
Short form:
Order Custom 1:10, 12:20, 11
La liste de valeurs ne doit pas comporter de doublons : cela entraînerait une erreur. L'exemple suivant
provoque une erreur :
Order Custom 1:5, 8, 4:7
les ID des lignes 4 et 5 sont des doublons. Pour voir cela, développez la syntaxe suivante (qui provoque
une erreur) :
Order Custom 1, 2, 3, 4, 5, 8, 4, 5, 6, 7
Il est possible d'utiliser la syntaxe alternative pour créer ou modifier une légende dans la fenêtre de
conception de légende. Pour les documents, la syntaxe courte est utilisée lorsque les légendes de la
fenêtre de conception de légende comportent plus de 50 lignes triées dans un ordre personnalisé.
Instruction Alter Designer Text
L'instruction Alter Designer Text modifie le texte dans un cadre de texte et la position du cadre de texte
dans la fenêtre de conception de légende. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
82
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
Alter Designer Text
[ Window legend_window_id ]
[ ID textframe_id [ Text { frame_text [ Font... ] }
[ Position ( x, y ) [ Units paper_units ] ] ] ]
legend_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
textframe_id est l'identifiant unique d'un cadre de texte (pas d'un cadre de légende) dans la fenêtre de
conception de légende.
frame_text est un texte pour un titre de légende, un sous-titre ou un texte descriptif (des informations
sur le copyright par exemple).
x indique la distance souhaitée entre la partie supérieure du document et celle de la fenêtre.
y indique la distance souhaitée entre la partie gauche du document et celle de la fenêtre.
Remarque: Le document désigne ici l'espace client (la barre de titre, la barre d'outils et la barre d'état
sont donc exclues).
paper_units est une chaîne qui représente le nom d'une unité papier : cm (centimètres), mm (millimètres),
in (pouces), pt (points), et pica.
•
•
•
•
•
1 pouce (in) = 2,54 centimètres, 254 millimètres, 6 picas, 72 points
1 point (pt) = 0,01389 pouce, 0,03528 centimètre, 0,35278 millimètre, 0,08333 pica
1 pica = 0,16667 pouce, 0,42333 centimètre, 4,23333 millimètres, 12 points
1 centimètre (cm) = 0,39370 pouce, 10 millimètres, 2,36220 picas, 28,34646 points
1 millimètre (mm) = 0,1 centimètre, 0,03937 pouce, 0,23622 pica, 2,83465 points
Description
Si Text n'indique pas la clause Font, la police par défaut est utilisée.
La clause Position contrôle la position du cadre dans la fenêtre de conception de légende. La position
au coin supérieur gauche de la fenêtre de conception de légende correspond à 0, 0. Les valeurs de
Position utilisent les paramètres des unités papier, tels que « in » pour inches (pouces) ou « cm » pour
centimètres. (Reportez-vous à l'Instruction Set Paper Units). Le paramètre d'unités papier actuelles
de MapBasic est défini par défaut en pouces. Un programme MapBasic peut modifier ce paramètre au
moyen de l'instruction Set Paper Units. Vous pouvez remplacer les unités papier actuelles en incluant
la sous-clause facultative Units dans la clause Position.
Exemple
Alter Designer Text Window frontwindow()
ID 1
Text "Title Changed" Font("Arial Greek", 0, 14, 14680064)
Voir également
Instruction Create Designer Legend, Instruction Add Designer Text, Instruction Remove Designer
Text
Référence
83
Instruction Alter MapInfoDialog
Instruction Alter MapInfoDialog
Objectif
Désactive ou masque des contrôles dans les boîtes de dialogue standard de MapInfo Professional ou
y affecte de nouvelles valeurs.
Restrictions
Avertissement: L'instruction Alter MapInfoDialog risque de ne plus être prise en charge dans les
versions ultérieures de MapInfo Professional. Les programmes MapBasic qui utilisent
cette instruction risquent par conséquent de ne plus fonctionner correctement dans
les versions ultérieures de MapInfo Professional. Utilisez cette instruction avec
prudence.
Syntaxe 1 (affectation de paramètres non définis par défaut)
Alter MapInfoDialog dialog_ID
Control control_ID
{ Disable | Hide | Value new_value } [ , { Disable... } ]
[ Control... ]
Syntaxe 2 (restauration des paramètres par défaut)
Alter MapInfoDialog dialog_ID Default
dialog_ID est un numéro d'identification entier qui indique la boîte de dialogue MapInfo Professional à
modifier.
control_ID est un numéro d'identification entier (1 ou plus) qui indique le contrôle à modifier.
new_value est une nouvelle valeur affectée au contrôle de la boîte de dialogue.
Description
Utilisez cette instruction pour désactiver ou masquer des contrôles (boutons, cases à cocher, etc.) dans
les boîtes de dialogue standard de MapInfo Professional ou y affecter de nouvelles valeurs.
Remarque: Utilisez cette instruction uniquement pour modifier les boîtes de dialogue standard de
MapInfo Professional. Pour modifier des boîtes de dialogue personnalisées que vous avez
créées à l'aide de l'instruction Dialog, utilisez l'instruction Alter Control.
Détermination des numéros d'identification
Pour déterminer le numéro d'identification d'une boîte de dialogue, exécutez MapInfo Professional avec
cette ligne de commande :
mapinfow.exe -helpdiag
Après avoir exécuté MapInfo Professional avec l'argument -helpdiag, affichez une boîte de dialogue
MapInfo Professional et cliquez sur le bouton Aide. Le bouton Aide lance normalement l'Aide mais,
84
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
comme vous avez utilisé l'argument -helpdiag, MapInfo Professional affiche le numéro d'identification
de la boîte de dialogue active.
Remarque: Il existe plusieurs « boîtes de dialogue communes » (Ouvrir et Enregistrer, par exemple)
aux différentes versions de Windows. Si votre application va être utilisée sous différentes
versions de Windows et que vous souhaitez modifier une boîte de dialogue commune,
vous pouvez être amené à émettre deux instructions Alter MapInfoDialog (une pour
chaque version de la boîte de dialogue commune).
Chaque contrôle possède un numéro d'identification unique. Par exemple, le numéro d'identification de
la plupart des boutons OK est 1 et le numéro d'identification de la plupart des boutons Annuler est 2.
Pour déterminer le numéro d'identification d'un contrôle spécifique, vous devez avoir recours à l'utilitaire
d'un développeur tiers (Spy++ qui est fourni par Microsoft avec son compilateur C, par exemple). L'utilitaire
Spy++ n'est pas fourni avec le logiciel MapBasic.
Même si l'instruction Alter MapInfoDialog change l'apparence initiale d'une boîte de dialogue, les
modifications restent sans effet tant que l'utilisateur n'a pas cliqué sur OK. Par exemple, vous pouvez
utiliser Alter MapInfoDialog pour stocker une adresse dans la boîte de dialogue Rechercher. MapInfo
Professional ne lancera toutefois pas la recherche tant que vous n'aurez pas affiché la boîte de dialogue
et cliqué sur OK.
Types de modifications autorisées
Utilisez le mot-clé Disable pour désactiver le contrôle (apparition en grisé).
Utilisez le mot-clé Hide pour masquer le contrôle.
Utilisez la clause Value pour changer le paramètre du contrôle.
Lorsque vous modifiez des boîtes de dialogue communes (boîte de dialogue Ouvrir, par exemple), vous
pouvez réinitialiser l'élément sélectionné dans un contrôle de zone de liste déroulante ou affecter un
nouveau texte aux contrôles de texte statique, de bouton et de zone de modification.
Vous pouvez modifier le contrôle d'orientation dans la boîte de dialogue Configuration de l'impression.
Les boutons Portrait et Paysage ont respectivement les valeurs 1056 et 1057.
Lorsque vous modifiez d'autres boîtes de dialogue de MapInfo Professional, les types de modifications
que vous pouvez apporter sont récapitulés ci-dessous :
• Bouton, zone de modification et zone de liste déroulante modifiable : vous pouvez affecter un
nouveau texte à l'aide d'une chaîne de texte dans le paramètre new_value.
• Zone de liste, zone de liste déroulante : vous pouvez définir l'élément sélectionné à l'aide d'un
paramètre new_value.
• Case à cocher : vous pouvez cocher la case (spécifiez la valeur 1) ou la désélectionner (spécifiez la
valeur 0).
• Bouton radio : vous pouvez affecter la valeur 1 à une case pour l'activer dans son groupe de cases.
• Bouton de style Symbole : vous pouvez affecter un nouveau style de symbole (utilisez la valeur de
retour provenant de la fonction MakeSymbol( )).
• Bouton de style Ligne : vous pouvez affecter une nouvelle valeur Ligne.
• Bouton de style Trame : vous pouvez affecter une nouvelle valeur Trame.
• Bouton de style Police : vous pouvez affecter une nouvelle valeur Police.
Référence
85
Instruction Alter Menu
• Bouton Bouton Ligne/Trame combiné : spécifiez une valeur Ligne pour réinitialiser le style Ligne ou
une valeur Trame pour réinitialiser le style Trame. (Pour obtenir un exemple de ce type de contrôle,
reportez-vous à la boîte de dialogue Style polygone de MapInfo Professional qui s'affiche lorsque
vous double-cliquez sur un polygone modifiable.)
Exemple
L'exemple suivant modifie la boîte de dialogue Recherche de MapInfo Professional en stockant une
chaîne de texte (« 23 Main St. ») dans la première zone de modification et en masquant le bouton
Redéfinir.
If SystemInfo(SYS_INFO_MIVERSION) = 400 Then
Alter MapInfoDialog 2202
Control 5 Value "23 Main St."
Control 12 Hide
End If
Run Menu Command M_ANALYZE_FIND
Le numéro d'identification 2202 correspond à la boîte de dialogue Recherche. Le contrôle 5 est la zone
de modification dans laquelle l'utilisateur tape une adresse. Le contrôle 12 est le bouton Redéfinir qui
est masqué dans cet exemple. Comme tous les numéros d'identification sont sujets à modification dans
les versions ultérieures de MapInfo Professional, la Fonction SystemInfo( ) est appelée dans cet
exemple pour déterminer le numéro de version de MapInfo Professional.
Voir également
Instruction Alter Control, Fonction SystemInfo( )
Instruction Alter Menu
Objectif
Ajoute des éléments à un menu existant ou en supprime.
Syntaxe 1
Alter Menu { menuname | ID menu_id }
Add menudef [ , menudef... ]
Où chaque menudef définit un élément de menu en fonction de la syntaxe :
newmenuitem
[ ID menu_item_id ]
[ HelpMsg help ]
[ { Calling handler | As menuname } ]
menuname est le nom d'un menu existant (Fichier, par exemple).
menu_id est un identifiant de menu entier standard de 1 à 64 (1 représente le menu Fichier).
newmenuitem est une chaîne indiquant le nom d'un élément à ajouter au menu spécifié.
menu_item_idest un identifiant d'élément de menu entier personnalisé pouvant par la suite être utilisé
dans chaque Instruction Alter Menu Item.
help est une chaîne qui s'affiche dans la barre d'état lorsque l'élément de menu est en surbrillance.
86
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
handler est le nom d'une procédure, un code de commande de menu standard (M_FILE_NEW, par
exemple) ou une syntaxe assurant spécifiquement la gestion de l'événement de menu en appelant OLE
ou DDE. Si vous spécifiez un code de commande pour une commande Afficher/Masquer standard
(M_WINDOW_STATISTICS, par exemple) de MapInfo Professional, la chaîne newmenuitem doit
commencer par un point d'exclamation et comporter un signe insertion (^) pour conserver le comportement
Afficher/Masquer de l'élément. Pour plus d'informations sur les différents types de syntaxe de gestionnaire,
reportez-vous à l'Instruction Create Menu.
Syntaxe 2
Alter Menu { menuname | ID menu_id }
Remove { handler | submenuname | ID menu_item_id }
[ , { handler | submenuname | ID menu_item_id } ... ]
menuname est le nom d'un menu existant.
menu_id est un identifiant de menu entier de 1 à 64 (1 représente le menu Fichier).
handler est soit le nom d'une sous-procédure soit le code d'une commande standard de MapInfo
Professional.
submenuname est le nom d'un sous-menu hiérarchique à supprimer du menu spécifié.
menu_item_id est un identifiant d'élément de menu entier personnalisé.
Description
L'instruction Alter Menu ajoute des éléments de menu à un menu existant ou supprime des éléments
de menu d'un menu existant.
Cette instruction peut identifier le menu à modifier en spécifiant le nom du menu (Fichier, par exemple)
à l'aide du paramètre menuname.
Si le menu à modifier est l'un des menus standard de MapInfo Professional, l'instruction Alter Menu
peut identifier le menu à modifier à l'aide de la clause ID. La clause ID identifie le menu grâce à un
numéro d'identification (de 1 à 64). Le nom et le numéro d'identification de tous les menus standard de
MapInfo Professional sont répertoriés dans la tableau ci-dessous.
Table 1: Numéro d'identification des menus
Nom de menu
Définir
ID
Description
File
M_FILE
1
Menu Fichier.
Edit
M_EDIT
2
Menu Édition.
Chercher
M_SEARCH
3
Menu Rechercher.
Requête
M_QUERY
3
Menu Sélection.
Programmes
M_PGM
4
Menu Programmes.
Outils
M_TOOLS
4
Menu Outils.
Options
M_OPTIONS
5
Menu Options.
Référence
87
Instruction Alter Menu
Nom de menu
Définir
ID
Description
Fenêtre
M_WINDOW
6
Menu Fenêtre.
Aide
M_HELP
7
Menu Aide.
Parcourir
M_BROWSE
8
Menu Données. Il ne s'affiche normalement que lorsque
la fenêtre active est une fenêtre Données.
Map
M_MAP
9
Menu Carte. Ce menu n'est normalement disponible que
lorsqu'une fenêtre Carte est active.
Mise en Page
M_LAYOUT
10
Menu Mise en page. Disponible lorsqu'une fenêtre Mise
en page est active.
Graphique
M_GRAPH
11
Menu Graphique. Disponible lorsqu'une fenêtre Graphique
est active.
MapBasic
M_MAPBASIC
12
Menu MapBasic. Disponible lorsqu'une fenêtre MapBasic
est active.
Sectorisation
M_REDISTRICT
13
Menu Sectorisation. Disponible lorsqu'une fenêtre
Sectorisation est active.
Objets
M_OBJECTS
14
Menu Objets
Table
M_TABLE
15
Menu Table.
Les menus numérotés de 16 à 36 sont des menus contextuels qui s'affichent lorsque l'utilisateur effectue
un clic droit.
Table 2: Numéro d'identification des menus contextuels
88
Nom de menu
Définir
ID
Description
DefaultShortcut
M_SHORTCUT_DFLT
16
Menu contextuel par défaut. Ce
menu s'affiche lorsque l'utilisateur
clique avec le bouton droit sur une
fenêtre pour laquelle aucun menu
contextuel n'est défini.
MapperShortcut
M_SHORTCUT_MAPPER
17
Menu contextuel de la fenêtre Carte.
BrowserShortcut
M_SHORTCUT_BROWSER
18
Menu contextuel de la fenêtre
Données.
LayoutShortcut
M_SHORTCUT_LAYOUT
19
Menu contextuel de la fenêtre Mise
en page.
GrapherShortcut
M_SHORTCUT_GRAPHER
20
Menu contextuel de la fenêtre
Graphique. Ce menu contient des
options permettant de créer des
graphiques.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Nom de menu
Définir
ID
Description
CmdShortcut
M_SHORTCUT_CMD
21
Menu contextuel de la fenêtre
MapBasic.
RedistrictShortcut
M_SHORTCUT_REDISTRICTER
22
Menu contextuel de sectorisation.
Disponible lorsque la fenêtre
Secteurs Données est active.
LegendShortcut
M_SHORTCUT_LEGEND
23
Menu contextuel de la fenêtre
Légende.
GrapherShortcut
M_SHORTCUT_GRAPHTDG
24
Menu contextuel de la fenêtre
Graphique. Ce menu contient des
options permettant de mettre en
forme des graphiques déjà créés.
3DMapShortcut
M_SHORTCUT_3DMAP
25
Menu contextuel de la fenêtre
Vue3D.
MessageWinShortcut M_SHORTCUT_MSG_WIN
26
Menu contextuel de la fenêtre
Message.
StatisticsWinShortcut
M_SHORTCUT_STAT_WIN
27
Menu contextuel de la fenêtre
Statistiques.
AdornmentShortcut
M_SHORTCUT_ADORNMENT
32
Menu contextuel de la fenêtre
Habillage.
LcLayersShortcut
M_SHORTCUT_LC_LAYERS
33
Menu qui apparaît lorsque vous
cliquez avec le bouton droit de la
souris sur une couche standard de
la liste de couches.
LcMapsShortcut
M_SHORTCUT_LC_MAPS
34
Menu qui apparaît lorsque vous
cliquez avec le bouton droit de la
souris sur un nœud Carte de la liste
de couches.
LcGroupsShortcut
M_SHORTCUT_LC_GROUPS
35
Menu qui apparaît lorsque vous
cliquez avec le bouton droit de la
souris sur un groupe de couches de
la liste de couches.
TableAdornmentShortcut M_SHORTCUT_TABLEADORNMENT 36
Réservé à une utilisation ultérieure.
Table 3: Numéro d'identification des autres menus (non contextuels)
Nom de menu
Définir
ID
Description
3DWindow
M_3DMAP
28
Fenêtre Vue3D.
Graphique
M_GRAPHTDG
29
Menu Graphique.
Référence
89
Instruction Alter Menu Bar
Nom de menu
Définir
ID
Description
Légende
M_LEGEND
31
Menu Légende.
Pour modifier un menu personnalisé (même si vous le créez avec un identifiant personnalisé, 999 par
exemple), vous devez utiliser le paramètre menuname personnalisé, et non l'identifiant personnalisé.
Exemples
L'instruction suivante ajoute un élément au menu Fichier.
Alter Menu "File" Add
"Special" Calling sub_procedure_name
Dans l'exemple suivant, le menu à modifier est identifié grâce à son numéro.
Alter Menu ID 1 Add
"Special" Calling sub_procedure_name
Dans l'exemple suivant, l'élément de menu qui est ajouté contient une clause ID. Le numéro d'identification
(300) peut être utilisé par la suite dans une Instruction Alter Menu Item.
Alter Menu ID 1 Add
"Special" ID 300 Calling sub_procedure_name
Dans l'exemple suivant, l'élément personnalisé est supprimé du menu Fichier.
Alter Menu ID 1 Remove sub_procedure_name
L'exemple de programme TextBox utilise une Instruction Create Menu pour créer un menu appelé «
TextBox », puis émet l'instruction Alter Menu suivante pour ajouter le menu TextBox sous forme de
menu hiérarchique au menu Outils :
Alter Menu "Tools" Add
"(-",
"TextBox" As "TextBox"
Dans l'exemple suivant, une commande personnalisée est ajoutée au menu contextuel de la fenêtre
Carte (menu qui s'affiche lorsque l'utilisateur clique avec le bouton droit sur une fenêtre Carte).
Alter Menu ID 17 Add
"Find Nearest Site" Calling sub_procedure_name
Voir également
Instruction Alter Menu Bar, Instruction Alter Menu Item, Instruction Create Menu, Instruction
Create Menu Bar
Instruction Alter Menu Bar
Objectif
Ajoute ou supprime des menus de la barre de menus.
Syntaxe
Alter Menu Bar { Add | Remove }
{ menuname | ID menu_id }
[ , { menuname | ID menu_id } ... ]
90
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
menuname est le nom d'un menu disponible (Fichier, par exemple).
menu_id est un identifiant de menu standard de 1 à 15 (1 représente le menu Fichier).
Description
L'instruction Alter Menu Bar ajoute un ou plusieurs menus à la barre de menus active ou en supprime.
Le paramètre menuname est une chaîne qui représente le nom d'un menu (Fichier ou Édition, par
exemple). Le paramètre menuname peut aussi désigner le nom d'un menu personnalisé créé par une
Instruction Create Menu (reportez-vous à l'exemple ci-après)
Remarque: Si l'application est exécutée sur une version de MapInfo qui n'est pas en anglais et que
les noms de menu ont été localisés, l'instruction Alter Menu Bar doit indiquer la version
localisée du nom de menu. Chacun des menus standard (Fichier, Édition, etc.) de MapInfo
Professional possède toutefois un identifiant de menu que vous pouvez utiliser quelle que
soit la langue dans laquelle le nom des menus est localisé. Par exemple, l'identifiant 2
désigne toujours le menu Édition, qu'il ait été localisé ou non.
Pour obtenir la liste des noms de menus standard de MapInfo Professional et le numéro d'identification
correspondant, reportez-vous à la section Instruction Alter Menu.
Ajout de menus à la barre de menus
Une instruction Alter Menu Bar Add ajoute un menu à l'extrémité droite de la barre de menus. Pour
insérer un menu à un autre emplacement de la barre de menus, utilisez l'Instruction Create Menu Bar
pour redéfinir l'intégralité de la barre de menus.
Si vous ajoutez de nombreux menus à la barre de menus, celle-ci s'étend sur une deuxième ligne de
noms de menu.
Suppression de menus de la barre de menus
Une instruction Alter Menu Bar Remove... supprime un menu de la barre de menus. Ce menu continue
toutefois à faire partie du « groupe » de menus disponibles. Les deux instructions suivantes commencent
ainsi par supprimer le menu Sélection de la barre de menus, puis rajoutent le menu Sélection à la barre
de menus (à l'extrémité droite de la barre).
Alter Menu Bar Remove "Query"
Alter Menu Bar Add "Query"
Une fois qu'une instruction Alter Menu Bar Remove... a supprimé un menu, MapInfo Professional ignore
toutes les séquences de touches d'accès rapide correspondant aux éléments qui figuraient dans le menu
supprimé. Par exemple, un utilisateur de MapInfo Professional peut normalement appuyer sur Ctrl+O
pour ouvrir la boîte de dialogue Ouvrir du menu Fichier. Si toutefois une instruction Alter Menu Bar
Remove a supprimé le menu Fichier, MapInfo Professional ignore alors les séquences de touches
Ctrl+O.
Référence
91
Instruction Alter Menu Item
Exemple
Dans l'exemple suivant, un menu personnalisé nommé DataEntry est créé, puis une instruction Alter
Menu Bar Add est utilisée pour ajouter le menu DataEntry à la barre de menus de MapInfo Professional.
Declare Sub addsub
Declare Sub editsub
Declare Sub delsub
Create Menu "DataEntry" As
"Add" Calling addsub,
"Edit" Calling editsub,
"Delete" Calling delsub
'Remove the Window menu and Help menu
Alter Menu Bar Remove ID 6, ID 7
'Add the custom menu, then the Window & Help menus
Alter Menu Bar Add "DataEntry", ID 6, ID 7
Avant d'ajouter le menu personnalisé à la barre de menus, le menu Aide (identifiant de menu 7) et le
menu Fenêtre (identifiant de menu 6) sont supprimés de la barre de menus. Le menu personnalisé, le
menu Fenêtre et le menu Aide sont ensuite ajoutés à la barre de menus. Grâce à cette méthode, les
deux derniers menus sont toujours assurés d'être les menus Fenêtre et Aide.
Voir également
Instruction Alter Menu, Instruction Alter Menu Item, Instruction Create Menu, Instruction Create
Menu Bar, Instruction Menu Bar
Instruction Alter Menu Item
Objectif
Modifie l'état d'un élément de menu spécifique.
Syntaxe
Alter Menu Item { handler | ID menu_item_id }
{ [ Check | Uncheck ] |
[ Enable | Disable ] |
[ Text itemname ] |
[ Calling handler | As menuname ] }
handler est soit le nom d'une sous-procédure soit le code d'une commande standard de MapInfo
Professional.
menu_item_id est un entier qui identifie un élément de menu et qui correspond au paramètre
menu_item_id spécifié dans l'instruction qui a créé l'élément de menu (Instruction Create Menu ou
Instruction Alter Menu).
itemname est le nouveau texte de l'élément de menu (il peut intégrer des codes).
menuname est le nom d'un menu existant.
92
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
L'instruction Alter Menu Item modifie un ou plusieurs des éléments qui composent les menus disponibles.
Par exemple, vous pouvez utiliser l'instruction Alter Menu Item pour activer ou désactiver (faire apparaître
en grisé) un élément de menu.
L'instruction doit également spécifier un gestionnaire (nom d'une procédure au sein du même programme,
par exemple) ou une clause ID pour indiquer le ou les éléments de menu à modifier. Notez que vous
pouvez appeler une même procédure de gestionnaire pour plusieurs éléments de menu distincts. Si
l'instruction Alter Menu Item comporte le nom d'une procédure de gestionnaire, MapInfo Professional
modifie alors tous les éléments de menu qui appellent ce gestionnaire. Si l'instruction comporte une
clause ID, MapInfo Professional ne modifie alors que l'élément de menu qui a été défini avec cet identifiant.
L'instruction Alter Menu Item ne peut désigner un identifiant d'élément de menu que si l'instruction qui
a défini l'élément de menu comportait une clause ID. Une application MapBasic ne peut pas désigner
d'identifiants d'éléments de menu créés par d'autres applications MapBasic.
La clause Check et la clause Uncheck indiquent respectivement si l'élément apparaît coché ou
désélectionné dans le menu. Notez qu'un élément de menu ne peut être coché que s'il a été défini
comme « pouvant être coché » (par exemple, si l'Instruction Create Map comportait un « ! » comme
premier caractère dans le nom de l'élément de menu).
La clause Disable et la clause Enable indiquent respectivement si l'élément est désactivé (apparaît en
grisé) ou activé. Notez que MapInfo Professional active et désactive automatiquement divers éléments
de menu selon le cas du moment. Par exemple, la commande Fichier > Fermer est désactivée lorsque
aucune table n'est ouverte. Les applications ne doivent par conséquent pas tenter d'activer ou de
désactiver des éléments de menu standard de MapInfo Professional. De la même manière, même si
vous pouvez traiter des outils spécifiques en tant qu'éléments de menu (en référençant des définitions
provenant de MENU.DEF, comme M_TOOLS_RULER), vous ne devez pas tenter d'activer ou de désactiver
les outils à l'aide de l'instruction Alter Menu Item.
La clause Text vous permet de renommer un élément de menu.
La clause Calling spécifie un gestionnaire pour l'élément de menu. Si l'utilisateur choisit l'élément de
menu, MapInfo Professional appelle le gestionnaire de l'élément.
Exemples
Dans l'exemple suivant, un menu DataEntry personnalisé est créé.
Declare Sub addsub
Declare Sub editsub
Declare Sub delsub
Create Menu "DataEntry" As
"Add" Calling addsub,
"Edit" Calling editsub,
"Delete" ID 100 Calling delsub,
"Delete All" ID 101 Calling delsub
'Remove the Help menu
Alter Menu Bar Remove ID 7
'Add both the new menu and the Help menu
Alter Menu Bar Add "DataEntry" , ID 7
L'Instruction Alter Menu Item suivante renomme l'élément « Edit » en « Edit… ».
Alter Menu Item editsub Text "Edit..."
Référence
93
Instruction Alter Object
L'instruction suivante désactive l'élément de menu Supprimer tout.
Alter Menu Item ID 101 Disable
L'instruction suivante désactive les éléments Supprimer et Supprimer tout, car elle identifie la procédure
de gestionnaire delsub qui est le gestionnaire de ces deux éléments de menu.
Alter Menu Item delsub Disable
Voir également
Instruction Alter Menu, Instruction Alter Menu Bar, Instruction Create Menu
Instruction Alter Object
Objectif
Modifie la forme, la position ou le style graphique d'un objet. Vous pouvez exécuter cette instruction à
partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Alter Object obj
{ Info object_info_code, new_info_value |
Geography object_geo_code , new_geo_value |
Node {
Add [ Position polygon_num, node_num ] ( x, y ) |
Set Position polygon_num, node_num ( x , y ) |
Remove Position polygon_num, node_num } }
obj est une variable d'objet.
object_info_code est un code d'entier se rapportant à la fonction ObjectInfo( ) (OBJ_INFO_PEN, par
exemple).
new_info_value spécifie le nouvel attribut object_info_code à appliquer (un nouveau style de ligne, par
exemple).
object_geo_code est un code d'entier se rapportant à la fonction ObjectGeography( )
(OBJ_GEO_POINTX, par exemple).
new_geo_value spécifie la nouvelle valeur object_geo_code à appliquer (la nouvelle coordonnée x, par
exemple).
polygon_num est une valeur entière (1 ou plus) qui identifie un polygone d'un objet région ou une section
d'un objet polyligne.
node_num est une valeur entière (1 ou plus) qui identifie un nœud d'une polyligne ou d'un polygone.
x, y sont les coordonnées x et y d'un nœud.
Description
L'instruction Alter Object modifie la forme, la position ou le style géographique d'un objet.
L'effet d'une instruction Alter Object varie selon que l'instruction inclut une clause Info, une clause Node
ou une clause Geography. Si l'instruction inclut une clause Info, MapBasic modifie le style graphique
de l'objet (les styles de ligne et de trame de l'objet, par exemple). Si l'instruction inclut une clause Node,
94
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
MapBasic ajoute, supprime ou repositionne un nœud (cela ne s'applique qu'aux objets polyligne ou
région). Si l'instruction inclut une clause Geography, MapBasic modifie un attribut géographique d'objets
autres que des polylignes ou régions (la coordonnée x ou y d'un objet point, par exemple).
Clause Info
Lorsque vous émettez une instruction Alter Object avec une clause Info, vous pouvez réinitialiser le
style d'un objet (ligne ou trame, par exemple). La clause Info vous permet de modifier les mêmes attributs
de style que ceux que vous pouvez interroger via la fonction ObjectInfo( ).
Par exemple, vous pouvez déterminer le style de ligne et de trame d'un objet en appelant la fonction
ObjectInfo( ) :
Dim b_fillstyle As Brush
b_fillstyle = ObjectInfo(Selection.obj, OBJ_INFO_BRUSH)
L'instruction Alter Object suivante vous permet à l'inverse de réinitialiser le style de trame :
Alter Object obj_variable_name
Info OBJ_INFO_BRUSH, b_fillstyle
Notez que vous utilisez le même code (OBJ_INFO_BRUSH, par exemple) à la fois dans la fonction
ObjectInfo( ) et l'instruction Alter Object.
Les valeurs que vous pouvez spécifier dans la clause Info pour apporter divers types de modifications
au style sont répertoriées dans le tableau ci-dessous. Notez que les valeurs obj_info_code sont définies
dans le fichier de définitions standard de MapBasic, MAPBASIC.DEF. Votre programme doit par
conséquent inclure « MAPBASIC.DEF » si vous avez l'intention d'utiliser l'instruction Alter Object...Info.
Valeur obj_info_code
ID
Effet de l'instruction Alter Object
OBJ_INFO_PEN
2
Réinitialise le style de ligne de l'objet. new_info_value doit
être une expression Pen.
OBJ_INFO_SYMBOL
2
Réinitialise le style de symbole d'un objet point.
new_info_value doit être une expression Symbol.
OBJ_INFO_BRUSH
3
Réinitialise le style de trame de l'objet. new_info_value
doit être une expression Brush.
OBJ_INFO_SMOOTH
4
Réinitialise le paramètre de lissage/non-lissage d'un objet
polyligne. new_info_value doit être une expression Logical.
OBJ_INFO_FRAMEWIN
4
Modifie la fenêtre affichée dans un cadre Mise en page.
new_info_value doit être un identifiant de fenêtre entier.
OBJ_INFO_FRAMETITLE
6
Modifie le titre d'un objet cadre. new_info_value doit être
une chaîne.
OBJ_INFO_TEXTFONT
2
Réinitialise le style de police d'un objet point.
new_info_value doit être une expression Font.
OBJ_INFO_TEXTSTRING
3
Modifie la chaîne de texte qui comprend un objet texte.
new_info_value doit être une expression de chaîne.
Référence
95
Instruction Alter Object
Valeur obj_info_code
ID
Effet de l'instruction Alter Object
OBJ_INFO_TEXTSPACING
4
Modifie l'interligne d'un objet texte. new_info_value doit
être une valeur à virgule flottante de 1, 1,5 ou 2.
OBJ_INFO_TEXTJUSTIFY
5
Modifie l'alignement d'un objet texte. new_info_value doit
avoir pour valeur 0 pour l'alignement à gauche, 1 pour le
centrage ou 2 pour l'alignement à droite.
OBJ_INFO_TEXTARROW
6
Modifie le paramètre de ligne d'étiquette d'un objet texte.
new_info_value doit avoir pour valeur 0 pour aucun trait,
1 pour un trait simple ou 2 pour un trait avec une flèche.
Clause Geography
Lorsque vous émettez une instruction Alter Object avec une clause Geography, vous pouvez modifier
les coordonnées géographiques d'un objet. La clause Geography s'applique à tous les types d'objets,
sauf les polylignes et les régions. Pour modifier les coordonnées d'un objet polyligne ou région, utilisez
la clause Node (décrite ci-après) à la place de la clause Geography.
La clause Geography vous permet de modifier les mêmes attributs que ceux que vous pouvez interroger
via la fonction ObjectGeography( ). Par exemple, vous pouvez obtenir les coordonnées des extrémités
d'un objet ligne en appelant la fonction ObjectGeography( ) :
Dim
Dim
x =
y =
o_cable As Object
x, y As Float
ObjectGeography(o_cable, OBJ_GEO_LINEENDX)
ObjectGeography(o_cable, OBJ_GEO_LINEENDY)
L'instruction Alter Object vous permet à l'inverse de modifier les coordonnées des extrémités d'un objet
ligne :
Alter Object o_cable
Geography OBJ_GEO_LINEENDX, x
Alter Object o_cable
Geography OBJ_GEO_LINEENDY, y
Remarque: Notez que vous utilisez le même code (OBJ_GEO_LINEENDX, par exemple) à la fois
dans la fonction ObjectGeography( ) et dans l'instruction Alter Object.
Le tableau ci-dessous récapitule les valeurs que vous pouvez spécifier dans la clause Geography pour
apporter divers types de modifications géographiques. Notez que les valeurs obj_geo_code sont définies
dans le fichier de définitions standard de MapBasic, MAPBASIC.DEF. Votre programme doit par
conséquent inclure « MAPBASIC.DEF » si vous avez l'intention d'utiliser l'instruction Alter
Object...Geography.
96
Valeur obj_geo_code
ID
Effet de l'instruction Alter Object
OBJ_GEO_MINX
1
Modifie le rectangle intérieur d'encadrement de l'objet.
OBJ_GEO_MINY
2
Modifie le rectangle intérieur d'encadrement de l'objet.
OBJ_GEO_MAXX
3
Modifie le rectangle intérieur d'encadrement de l'objet. Ne
s'applique pas aux objets point.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur obj_geo_code
ID
Effet de l'instruction Alter Object
OBJ_GEO_MAXY
4
Modifie le rectangle intérieur d'encadrement de l'objet. Ne
s'applique pas aux objets point.
OBJ_GEO_ARCBEGANGLE
5
Modifie l'angle de début d'un objet arc.
OBJ_GEO_ARCENDANGLE
6
Modifie l'angle de fin d'un objet arc.
OBJ_GEO_LINEBEGX
1
Modifie le nœud de début d'un objet Ligne.
OBJ_GEO_LINEBEGY
2
Modifie le nœud de début d'un objet Ligne.
OBJ_GEO_LINEENDX
3
Modifie le nœud de fin d'un objet Ligne.
OBJ_GEO_LINEENDY
4
Modifie le nœud de fin d'un objet Ligne.
OBJ_GEO_POINTX
1
Modifie la coordonnée x d'un objet point.
OBJ_GEO_POINTY
2
Modifie la coordonnée y d'un objet point.
OBJ_GEO_ROUNDRADIUS
5
Modifie le diamètre du cercle qui définit le coin arrondi
d'un objet rectangle arrondi.
OBJ_GEO_TEXTLINEX
5
Modifie la coordonnée x de la fin de la ligne d'étiquette
d'un objet texte.
OBJ_GEO_TEXTLINEY
6
Modifie la coordonnée y de la fin de la ligne d'étiquette
d'un objet texte.
OBJ_GEO_TEXTANGLE
7
Modifie l'angle de rotation d'un objet texte.
Clause Node
Lorsque vous émettez une instruction Alter Object avec une clause Node, vous pouvez ajouter des
nœuds à un objet polyligne ou région, en supprimer ou en repositionner.
Si la clause Node inclut une sous-clause Add, l'instruction Alter Object ajoute un nœud à l'objet. Si la
clause Node inclut une sous-clause Remove, l'instruction supprime un nœud. Si la clause Node inclut
une sous-clause Set Position, l'instruction repositionne un nœud.
La clause Node de l'instruction Alter Object est souvent associée à l'instruction Create Pline et à
l'instruction Create Region. Les instructions Create vous permettent de créer de nouveaux objets
polyligne et région, mais sont toutefois quelque peu limitées car elles vous obligent à indiquer, au moment
de la compilation, le nombre de nœuds qui constitueront l'objet. Dans certains cas, il se peut que vous
ne sachiez combien de nœuds seront intégrés dans un objet qu'au moment de l'exécution.
Si votre programme ne connaît qu'au moment de l'exécution le nombre de nœuds que comporte un
objet, vous pouvez émettre une instruction Create Pline ou une instruction Create Region qui crée
un objet vide (un objet sans nœud). Votre programme pourra ensuite émettre le nombre approprié
d'instructions Alter Object...Node Add pour ajouter les nœuds nécessaires.
Dans la clause Node, la sous-clause Position inclut deux paramètres (polygon_num et node_num) qui
vous permettent de spécifier avec précision le nœud à repositionner ou à supprimer. La sous-clause
Référence
97
Instruction Alter Object
Position reste facultative lorsque vous ajoutez un nœud. Les paramètres polygon_num et node_num
doivent toujours avoir pour valeur 1 (un) ou plus.
Le paramètre polygon_num spécifie le polygone à modifier dans une région à polygones multiples (ou
la section dans une polyligne à sections multiples).
Centroïdes de régions
Le centroïde d'une région peut être défini à l'aide de la commande Alter Object avec la syntaxe indiquée
ci-dessous :
Alter Object Obj Geography OBJ_GEO_CENTROID, PointObj
Notez que PointObj est un objet point. Cela diffère des autres valeurs entrées par l'instruction Alter
Object Geography qui sont toutes scalaires. Un point est requis dans cette instance car nous avons
besoin de deux valeurs qui définissent un point. Le point entré est vérifié de manière à garantir qu'il
s'agit d'un centroïde valide (qu'il se trouve à l'intérieur de la région, par exemple). Si Obj n'est pas une
région, si PointObj n'est pas un objet point ou si le point n'est pas un centroïde valide, une erreur est
alors renvoyée.
Voici un moyen simple de centrer une valeur X et Y d'un centroïde :
Alter Object Obj Geography OBJ_GEO_CENTROID, CreatePoint(X, Y)
L'utilisateur peut également interroger le centroïde à l'aide de la fonction ObjectGeography( ) de la
manière suivante :
PointObj = ObjectGeography(Obj, OBJ_GEO_CENTROID)
D'autres méthodes permettent d'obtenir le centroïde, parmi lesquelles la fonction Centroid( ), la fonction
CentroidX( ) et la fonction CentroidY( ).
OBJ_GEO_CENTROID est défini dans MAPBASIC.DEF.
Objets multipoint et collections
L'instruction Alter Object prend en charge les types d'objets suivants.
• Multipoint : définit un symbole Multipoint, comme indiqué ci-dessous :
Alter Object obj_variable_mpoint
Info OBJ_INFO_SYMBOL, NewSymbol
• Collection : Lorsque vous émettez une instruction Alter Object avec une clause Info, vous pouvez
réinitialiser les parties collection (région, polyligne ou multipoint) qui figurent dans l'objet collection.
La clause Info clause vous permet de modifier les mêmes attributs que ceux que vous pouvez interroger
via la fonction ObjectInfo( ). Par exemple, vous pouvez déterminer la région d'un objet collection que
vous pouvez interroger en appelant la fonction ObjectInfo( ) :
Dim ObjRegion As Object
ObjRegion = ObjectInfo(Selection.obj, OBJ_INFO_REGION)
L'instruction Alter Object suivante vous permet également de réinitialiser la partie région d'un objet
collection :
Alter Object obj_variable_name
Info OBJ_INFO_REGION, ObjRegion
98
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Remarque: Notez que vous utilisez le même code (OBJ_INFO_REGION, par exemple) à la fois dans
la fonction ObjectInfo( ) et l'instruction Alter Object.
L'instruction Alter Object insère et supprime des nœuds des objets multipoint.
Alter Object obj Node statement
Pour insérer des nœuds dans un objet multipoint :
Dim mpoint_obj as object
Create Multipoint Into Variable mpoint_obj 0
Alter Object mpoint_obj Node Add (0,1)
Alter Object mpoint_obj Node Add (2,1)
Remarque: Les nœuds d'objets multipoint sont toujours ajoutés à la fin.
Pour supprimer des nœuds d'un objet multipoint :
Alter Object mpoint_obj Node Remove Position polygon_num, node_num
mpoint_obj est une variable d'objet multipoint.
polygon_num est ignoré pour les objets multipoint. Il est conseillé de lui attribuer la valeur 1.
node_num est le numéro d'un nœud à supprimer.
Pour repositionner des nœuds dans un objet multipoint :
Alter Object mpoint_obj Node Set Position polygon_num, node_num (x,y)
mpoint_obj est une variable d'objet multipoint.
polygon_num est ignoré pour les objets multipoint. Il est conseillé de lui attribuer la valeur 1.
node_num est le numéro d'un nœud à modifier.
x et y sont les nouvelles coordonnées du nœud node_num.
Exemple
Dim myobj As Object, i As Integer
Create Region Into Variable myobj 0
For i = 1 to 10
Alter Object myobj
Node Add (Rnd(1) * 100, Rnd(1) * 100)
Next
Remarque: Une fois que vous avez utilisé l'instruction Alter Object pour modifier un objet, utilisez une
instruction Insert ou une instruction Update pour stocker l'objet dans une table.
Voir également
Instruction Create Pline, Instruction Create Region, Instruction Insert, Fonction ObjectGeography(
), Fonction ObjectInfo( ), Instruction Update
Référence
99
Instruction Alter Table
Instruction Alter Table
Objectif
Modifie la structure d'une table. Ne peut pas être utilisée sur des tables liées. Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Alter Table table (
[ Add columnname columntype [ , ...] ]
[ Modify columnname columntype [ , ...] ]
[ Drop columnname [ , ...] ]
[ Rename oldcolumnname newcolumnname [ , ...] ]
[ Order columnname, columnname [ ,...] ] )
[ Interactive ]
table est le nom d'une table ouverte.
columnname est le nom d'une colonne. Les noms de colonne ne peuvent pas commencer par des
chiffres. Ils sont limités à 31 caractères et peuvent contenir des lettres, des chiffres et le caractère de
soulignement.
columntype indique le type de données d'une colonne dans une table (ainsi que la largeur du champ si
nécessaire).
oldcolumnname représente l'ancien nom d'une colonne à renommer.
newcolumnname représente le nouveau nom prévu d'une colonne à renommer.
Description
L'instruction Alter Table vous permet de modifier la structure d'une table ouverte : ajout de colonnes,
modification de la largeur ou des types de données de colonnes, suppression de colonnes, attribution
d'un nouveau nom à des colonnes et réorganisation de colonnes.
Remarque: Si vous avez modifié une table, vous devez enregistrer ou ignorer les modifications pour
pouvoir utiliser l'instruction Alter Table.
Chaque columntype doit avoir l'une des valeurs suivantes : Integer, SmallInt, Float, Decimal ( size,
decplaces), Char(size), DateTime, Date ou Logical. DateTime est une valeur entière stockée sur 9 octets
: 4 octets pour la date et 5 octets pour l'heure. Les 5 octets pour l'heure comprennent 2 octets pour les
millisecondes, 1 octet pour les secondes, 1 octet pour les minutes et 1 octet pour les heures.
L'insertion d'une clause Add dans une instruction Alter Table vous permet d'ajouter de nouvelles
colonnes à la table. L'insertion d'une clause Modify vous permet de modifier les types de données des
colonnes existantes. Une clause Drop vous permet de supprimer des colonnes, tandis qu'une clause
Rename vous permet de renommer des colonnes existantes. La clause Order vous permet de spécifier
l'ordre des colonnes. Une instruction Alter Table peut comporter jusqu'à cinq clauses. Notez que chacune
de ces cinq clauses peut être exécutée sur une liste de colonnes. Une seule instruction Alter Table
vous permet donc d'apporter toutes les modifications structurelles nécessaires (reportez-vous à l'exemple
ci-après).
100
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
La clause Order modifie l'ordre des colonnes, et non celui des lignes de la table. L'ordre des colonnes
définit la position relative des colonnes lorsque vous parcourez une table. La première colonne apparaît
au bord gauche de la fenêtre Données, et la dernière colonne au bord droit. De même, la première
colonne d'une table apparaît au-dessus d'une fenêtre d'Outil Informations.
Si une application MapBasic émet une instruction Alter Table qui modifie une table contenant des
champs mémo, ces champs seront alors perdus. Aucun avertissement ne sera affiché.
Une instruction Alter Table peut entraîner la suppression de couches d'une fenêtre Carte, voire la perte
de thèmes ou d'objets de dessin. Si vous incluez le mot-clé Interactive, MapInfo Professional invite
l'utilisateur à enregistrer les analyses thématiques et/ou objets dessin (si ceux-ci sont sur le point d'être
perdus).
Exemple
Dans l'exemple suivant, la table gcpop.tab contient les colonnes suivantes : pop_88, metsize, fipscode
et utmcode. L'instruction Alter Table ci-dessous apporte plusieurs modifications à la table gcpop. Tout
d'abord, une clause Rename renomme la colonne pop_88 en population. Puis la clause Drop supprime
les colonnes metsize, fipscode et utmcode. Une clause Add crée ensuite deux nouvelles colonnes : une
colonne d'entier court (2 octets) appelée schoolcode et une colonne à virgule flottante appelée federalaid.
Et enfin, une clause Order indique l'ordre du nouvel ensemble de colonnes : la colonne schoolcode
arrive en premier, suivie de la colonne population, etc.
Open Table "gcpop"
Alter Table gcpop
(Rename pop_88 population
Drop metsize, fipscode, utmcode
Add schoolcode SmallInt, federalaid Float
Order schoolcode, population, federalaid)
Voir également
Instruction Add Column, Instruction Create Index, Instruction Create Map, Instruction Create
Table
Fonction ApplicationDirectory$( )
Objectif
Renvoie une chaîne contenant le chemin d'accès au répertoire depuis lequel l'application MapBasic est
exécutée. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ApplicationDirectory$( )
Valeur renvoyée
Expression de chaîne qui représente le chemin d'accès à un répertoire.
Référence
101
Fonction ApplicationName$( )
Description
En appelant la fonction ApplicationDirectory$( ) à partir d'une application MapBasic compilée, vous
pouvez déterminer le répertoire ou le dossier à partir duquel l'application est exécutée. Si aucune
application n'est exécutée (si vous appelez la fonction en la tapant dans la fenêtre MapBasic),
ApplicationDirectory$( ) renvoie une chaîne vide.
Pour déterminer le répertoire ou le dossier dans lequel le logiciel MapInfo Professional est installé,
appelez la Fonction ProgramDirectory$( ).
Exemple
Dim sAppPath As String
sAppPath = ApplicationDirectory$( )
' At this point, sAppPath might look like this:
'
' "C:\MAPBASIC\CODE\"
Voir également
Fonction ProgramDirectory$( ), Fonction ApplicationName$( )
Fonction ApplicationName$( )
Objectif
Renvoie une chaîne contenant le nom de l'application MapBasic en cours d'exécution. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ApplicationName$( )
Valeur renvoyée
Expression de chaîne qui représente le nom du programme MapBasic.
Description
En appelant la fonction ApplicationName$( ) depuis une application MapBasic compilée, vous pouvez
déterminer le nom de l'application exécutée. Si aucune application n'est exécutée (si vous appelez la
fonction en la tapant dans la fenêtre MapBasic, par exemple), ApplicationName$( ) renvoie une chaîne
vide.
Pour déterminer le chemin à partir duquel l'application MapBasic est exécutée, appelez la Fonction
ApplicationDirectory$( ).
Exemple
Dim sAppName As String
sAppName = ApplicationName$( )
' At this point, sAppName might look like this:
'
' "Test.MBX"
102
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Fonction ApplicationDirectory$( )
Fonction Area( )
Objectif
Renvoie la surface géographique d'un objet. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Area( obj_expr, unit_name )
obj_expr correspond à une expression d'objet.
unit_name est une chaîne qui représente le nom d'une unité de surface (« km² », par exemple).
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Area( ) renvoie la surface de l'objet géographique spécifié par obj_expr.
La fonction renvoie la mesure de la surface dans les unités spécifiées par le paramètre unit_name. Par
exemple, pour obtenir une surface en acres, spécifiez « acre » comme paramètre unit_name. Pour
obtenir la liste des noms d'unités disponibles, reportez-vous à la section Instruction Set Area Units.
Seuls les régions, ellipses, rectangles et rectangles arrondis ont une surface. Par définition, la surface
d'un objet point, arc, texte, ligne ou polyligne est nulle. La fonction Area( ) renvoie des résultats
approximatifs lorsqu'elle est exécutée sur des rectangles arrondis. MapBasic calcule la surface d'un
rectangle arrondi comme si l'objet était un rectangle conventionnel.
MapInfo Professional effectue, pour la plus grande partie, un calcul cartésien ou sphérique. Généralement,
un calcul sphérique est effectué sauf si les données proviennent d'un système de coordonnées non
terrestre, auquel cas un calcul cartésien a lieu.
Exemples
Dans l'exemple suivant, la fonction Area( ) permet de calculer la surface d'un seul objet géographique.
Notez que l'expression tablename.obj (states.obj, par exemple) représente l'objet géographique de la
ligne active dans la table spécifiée.
Dim f_sq_miles As Float
Open Table "states"
Fetch First From states
f_sq_miles = Area(states.obj, "sq mi")
Référence
103
Fonction AreaOverlap( )
Vous pouvez également utiliser la fonction Area( ) dans l'instruction SQL Select, comme indiqué dans
l'exemple suivant.
Select state, Area(obj, "sq km")
From states Into results
Voir également
Fonction ObjectLen( ), Fonction Perimeter( ), Fonction CartesianArea( ), Fonction SphericalArea(
), Instruction Set Area Units
Fonction AreaOverlap( )
Objectif
Renvoie la surface qui résulte du chevauchement de deux objets fermés. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
AreaOverlap( object1, object2 )
object1 et object2 sont des objets fermés.
Valeur renvoyée
Valeur à virgule flottante qui représente la surface (dans les unités de surface actuelles de MapBasic)
du chevauchement des deux objets.
Restrictions
La fonction AreaOverlap( ) concerne uniquement les objets fermés. Si les deux objets ne sont pas fermés
(les points et les lignes, par exemple), vous risquez de voir apparaître un message d'erreur. Les objets
fermés sont des objets qui peuvent produire une surface, comme des régions (polygones).
Voir également
Fonction Overlap( ), Fonction ProportionOverlap( ), Instruction Set Area Units
Fonction Asc( )
Objectif
Renvoie le code de caractère du premier caractère d'une expression de chaîne. Vous pouvez appeler
cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Asc( string_expr )
string_expr est une expression de chaîne.
104
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur renvoyée
Entier
Description
La fonction Asc( ) renvoie le code de caractère qui représente le premier caractère de la chaîne spécifiée
par string_expr.
Si string_expr est une chaîne vide, la fonction Asc( ) renvoie la valeur zéro.
Remarque: Tous les environnements MapInfo Professional partagent des codes de caractères dans
la plage 32 (espace) à 126 (tilde).
Sur un système prenant en charge les jeux de caractères codés sur deux octets (Windows en japonais,
par exemple) : si le premier caractère de string_expr est un caractère codé sur un octet, Asc( ) renvoie
un nombre compris entre 0 et 255 ; si le premier caractère de string_expr est un caractère codé sur
deux octets, Asc( ) renvoie une valeur comprise entre 256 et 65 535.
Sur les systèmes qui ne prennent pas en charge les jeux de caractères codés sur deux octets, Asc( )
renvoie un nombre compris entre 0 et 255.
Exemple
Dim code As SmallInt
code = Asc("Afghanistan")
' code will now be equal to 65,
' since 65 is the code for the letter A
Voir également
Fonction Chr$( )
Fonction Asin( )
Objectif
Renvoie l'arc sinus d'un nombre. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
Asin( num_expr )
num_expr est une expression numérique comprise entre un et moins un inclus.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Asin( ) renvoie l'arc sinus de la valeur numérique de num_expr. En d'autres termes, Asin(
) renvoie l'angle dont le sinus est égal à num_expr.
Référence
105
Fonction Ask( )
Le résultat renvoyé par Asin( ) représente un angle exprimé en radians. Cet angle se situera entre -Pi/2
et Pi/2 radians (en supposant que Pi soit égal à environ 3,141593 et que Pi/2 radians corresponde à 90
degrés).
Pour convertir une valeur exprimée en degrés en radians, multipliez cette valeur par DEG_2_RAD. Pour
convertir une valeur exprimée en radians en degrés, multipliez cette valeur par RAD_2_DEG. (Votre
programme doit inclure le fichier MAPBASIC.DEF pour définir le code DEG_2_RAD ou RAD_2_DEG).
Comme les valeurs des sinus sont comprises entre un et moins un, la valeur de l'expression num_expr
ne doit pas être supérieure à un (1) ni être inférieure à moins un (-1).
Exemple
Include "MAPBASIC.DEF"
Dim x, y As Float
x = 0.5
y = Asin(x) * RAD_2_DEG
' y will now be equal to 30,
' since the sine of 30 degrees is 0.5
Voir également
Fonction Acos( ), Fonction Atn( ), Fonction Cos( ), Fonction Sin( ), Fonction Tan( )
Fonction Ask( )
Objectif
Affiche une boîte de dialogue invitant l'utilisateur à répondre à une question par oui ou par non (OK ou
Annuler). Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Ask( prompt, ok_text, cancel_text )
prompt est une chaîne qui s'affiche sous forme d'invite dans la boîte de dialogue.
ok_text est une chaîne (« OK », par exemple) qui s'affiche sur le bouton de confirmation.
cancel_text est une chaîne (« Annuler », par exemple) qui s'affiche sur le bouton d'annulation.
Valeur renvoyée
Logique
Description
La fonction Ask( ) affiche une boîte de dialogue invitant l'utilisateur à répondre à une question par oui
ou par non. Le paramètre prompt spécifie un message tel que : « Le fichier existe déjà. Voulez-vous
continuer ? ». La chaîne prompt transmise à la fonction Ask peut contenir environ 2 000 caractères dont
seuls les 299 premiers apparaîtront dans la boîte de dialogue.
La boîte de dialogue contient deux boutons : l'utilisateur peut cliquer sur un bouton pour répondre
positivement à l'invite, ou sur l'autre bouton pour répondre négativement. Le paramètre ok_text indique
106
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
le nom du bouton de réponse affirmative (« OK » ou « Continuer », par exemple), tandis que le paramètre
cancel_text indique le nom du bouton de réponse négative (« Annuler » ou « Arrêter », par exemple).
Si l'utilisateur sélectionne le bouton ok_text la fonction Ask( ) renvoie TRUE. Si l'utilisateur clique sur le
bouton cancel_text ou annule d'une façon ou d'une autre la boîte de dialogue (en appuyant sur la touche
Echap, par exemple), la fonction Ask( ) renvoie FALSE. Comme la taille des boutons est limitée, les
chaînes ok_text et cancel_text doivent être courtes. Si vous avez besoin d'afficher des phrases qui sont
trop longues pour pouvoir figurer dans de petits boutons de boîte de dialogue, vous pouvez utiliser
l'instruction Dialog au lieu d'appeler la fonction Ask( ). Le bouton ok_text est le bouton défini par défaut
(c'est celui qui est sélectionné lorsque l'utilisateur appuie sur la touche Entrée au lieu d'effectuer un clic
avec la souris).
Exemple
Dim more As Logical
more = Ask("Do you want to continue?", "OK", "Stop")
Voir également
Instruction Dialog, Instruction Note, Instruction Print
Fonction Atn( )
Objectif
Renvoie l'arc tangente d'un nombre. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
Atn( num_expr )
num_expr représente une expression numérique.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Atn( ) renvoie l'arc tangente de la valeur numérique de num_expr. En d'autres termes, Atn(
) renvoie l'angle dont la tangente est égale à num_expr. L'expression num_expr peut avoir n'importe
quelle valeur numérique.
Le résultat renvoyé par la fonction Atn( ) représente un angle, exprimé en radians, compris entre -Pi/2
radians et Pi/2 radians.
Pour convertir une valeur exprimée en degrés en radians, multipliez cette valeur par DEG_2_RAD. Pour
convertir une valeur exprimée en radians en degrés, multipliez cette valeur par RAD_2_DEG. (Votre
programme doit inclure le fichier MAPBASIC.DEF pour définir le code DEG_2_RAD ou RAD_2_DEG).
Référence
107
Instruction AutoLabel
Exemple
Include "MAPBASIC.DEF"
Dim val As Float
val = Atn(1) * RAD_2_DEG
'val is now 45, since the
'Arc tangent of 1 is 45 degrees
Voir également
Fonction Acos( ), Fonction Asin( ), Fonction Cos( ), Fonction Sin( ), Fonction Tan( )
Instruction AutoLabel
Objectif
Dessine les étiquettes dans une fenêtre Carte et stocke les étiquettes dans la couche Dessin. Vous
pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
AutoLabel
[ Window window_id ]
[ { Selection | Layer layer_id } ]
[ Overlap [ { On | Off } ] ]
[ Duplicates [ { On | Off } ] ]
window_id est un identifiant de fenêtre entier d'une fenêtre Carte.
layer_id est le nom d'une table (World, par exemple,) ou le numéro d'une couche d'entier court (1 pour
les étiquettes à dessiner sur la couche supérieure, par exemple).
Description
L'instruction AutoLabel dessine des étiquettes (objets texte) dans une fenêtre Carte. Seuls les objets
actuellement visibles dans la fenêtre Carte sont étiquetés. La clause Window indique la fenêtre Carte
à étiqueter. Si vous omettez la clause Window, MapInfo Professional dessine les étiquettes dans la
fenêtre Carte supérieure. Si vous spécifiez Sélection, seuls les objets sélectionnés sont étiquetés. Si
vous omettez Sélection et la clause Layer, toutes les couches sont étiquetées.
La clause Overlap indique si MapInfo Professional dessine des étiquettes qui chevauchent d'autres
étiquettes. Ce paramètre est défini par défaut sur Off (MapInfo Professional ne dessine pas d'étiquettes
qui se chevauchent). Pour forcer MapInfo Professional à dessiner une étiquette pour chaque objet carte,
que les étiquettes se chevauchent ou non, spécifiez Overlap On. La clause Duplicates indique si
MapInfo Professional dessine une nouvelle étiquette pour un objet qui est déjà étiqueté. Ce paramètre
est défini par défaut sur Off (doublons non autorisés). L'instruction AutoLabel utilise tous les paramètres
de police et de position valides. Pour définir les options d'étiquetage, sélectionnez Carte > Contrôle
des couches. Pour définir les paramètres de police et de position via MapBasic, émettez une instruction
Set Map.
Exemple
Open Table "world" Interactive
Open Table "worldcap" Interactive
108
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Map From world, worldcap
AutoLabel
Window FrontWindow( )
Layer world
Voir également
Instruction Set Map
Instruction Beep
Objectif
Émet un bip. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Beep
Description
L'instruction Beep envoie un son au haut-parleur.
Instruction Browse
Objectif
Ouvre une nouvelle fenêtre Données. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Browse expression_list From table
[ Position ( x, y ) [ Units paper_units ] ]
[ Width window_width [ Units paper_units ] ]
[ Height window_height [ Units paper_units ] ]
[ Row n ]
[ Column n ]
[ Min | Max ]
expression_list est soit un astérisque soit une liste d'expressions de colonnes séparées par des virgules.
table est une chaîne qui représente le nom d'une table ouverte.
x, y indique la position de l'angle supérieur gauche de la fenêtre Données, en paper_units.
paper_units est une chaîne qui représente le nom d'une unité papier (par exemple, « cm » pour
centimètres).
window_width et window_height indiquent la taille de la fenêtre Données, en paper_units.
n est une valeur entière positive.
Référence
109
Instruction Browse
Description
L'instruction Browse ouvre une fenêtre Données en vue d'afficher une table.
Si expression_list est simplement un astérisque (*), la nouvelle fenêtre Données inclut alors tous les
champs de la table. La clause expression_list peut également représenter une liste d'expressions
séparées par des virgules, chacune définissant une colonne qui apparaîtra dans la fenêtre Données.
Les expressions de la liste peuvent contenir des noms de colonnes, des opérateurs, des fonctions et
des variables. Le nom de chaque colonne est dérivé de l'expression qui définit la colonne. Si une colonne
est définie par l'expressionpopulation / area(obj, "acre"), cette expression apparaîtra alors sur la première
ligne de la fenêtre Données en tant que nom de colonne. Pour affecter un alias à une expression, ajoutez
une chaîne après l'expression (reportez-vous à l'exemple ci-dessous).
Une clause facultative Position vous permet de spécifier l'emplacement auquel afficher à l'écran la
fenêtre Données. La coordonnée x spécifie la distance (en unités papier) du bord gauche de la fenêtre
de l'application MapInfo Professional au bord gauche de la fenêtre Données. Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set Paper Units. La coordonnée y spécifie la
distance du bord supérieur de la fenêtre MapInfo Professional au bord supérieur de la fenêtre Données.
Les clauses facultatives Width et Height indiquent la taille de la fenêtre Données, en unités papier. Si
aucune clause Width ni Height n'est définie, MapInfo Professional affecte à la fenêtre Données une
taille par défaut qui dépend de la table en question : en règle générale, la hauteur de la fenêtre Données
représente un quart de la hauteur de l'écran, sauf si la table ne comporte pas suffisamment de lignes
pour remplir une fenêtre Données de cette taille et la largeur de la fenêtre Données dépend de la largeur
des champs de la table.
Si l'instruction Browse inclut le mot-clé facultatif Max, la fenêtre Données qui en résulte est agrandie
au maximum et occupe tout l'espace disponible à l'écran pour MapInfo Professional. Si l'instruction
Browse inclut à l'inverse le mot-clé Min, la fenêtre Données est immédiatement réduite au minimum.
La clause Row définit la ligne de la table qui apparaîtra en haut de la fenêtre Données. Si l'instruction
Browse n'inclut pas de clause Row, la première ligne de la table sera la ligne supérieure de la fenêtre
Données.
De la même manière, la clause Column définit les colonnes de la table qui apparaîtront à gauche de la
fenêtre Données. Si l'instruction Browse n'inclut pas de clause Column, la première colonne de la table
apparaîtra à gauche de la fenêtre Données.
Exemple
L'exemple ci-dessous ouvre la table World et affiche toutes les colonnes qu'elle contient dans une fenêtre
Données.
Open Table "world"
Browse * From world
L'exemple suivant spécifie exactement les expressions de colonnes de la table World à afficher dans la
fenêtre Données.
Open Table "world"
Browse
country,
population,
population/area(obj, "sq km") "Density"
From world
110
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
La fenêtre Données qui en résulte contient trois colonnes. Les deux premières colonnes représentent
les données telles qu'elles sont stockées dans la table World, et la troisième colonne est dérivée.
MapBasic utilise la troisième expression pour diviser la population de chaque enregistrement de pays
par la zone géographique de la région associée à cet enregistrement. L'expression de la colonne dérivée
a un alias (« Densité ») qui apparaît dans la première ligne de la fenêtre Données.
Voir également
Instruction Set Browse, Instruction Set Window
Fonction BrowserInfo( )
Objectif
Renvoie des informations d'une fenêtre Données, telles que : le nombre total de lignes ou de colonnes
dans la fenêtre Données, ou le numéro de ligne, le numéro de colonne, ou la valeur contenue dans la
cellule active. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
BrowserInfo( window_id, attribute )
window_id est un identifiant de fenêtre entier.
attribute est un code entier qui indique le type d'informations à renvoyer. Pour les valeurs, voir le tableau
plus loin dans cette description.
Valeur renvoyée
Nombre à virgule flottante, valeur logique ou chaîne, selon le paramètre attribute.
Description
La fonction BrowserInfo( ) renvoie des informations sur une fenêtre Données. La fonction ne s'applique
pas à la Sectorisation.
Le paramètre window_id définit la fenêtre Données à rechercher. Pour obtenir un identifiant de fenêtre,
appelez immédiatement la fonction FrontWindow( ) après ouverture de la fenêtre ou appelez la fonction
WindowID( ) à tout moment après la création de la fenêtre.
La fonction BrowserInfo () peut renvoyer plusieurs attributs pour une fenêtre Données. Le paramètre
attribute indique à la fonction BrowserInfo ( ) les statistiques de fenêtre Données à renvoyer. Il doit s'agir
d'un des codes du tableau suivant (issus du fichier MAPBASIC.DEF :
Paramètre attribute
ID
Valeur renvoyée
BROWSER_INFO_NROWS
1
Le nombre total de lignes dans la fenêtre Données.
BROWSER_INFO_NCOLS
2
Le nombre total de colonnes dans la fenêtre Données.
BROWSER_INFO_CURRENT_ROW 3
Référence
Le numéro de ligne de la cellule activée dans la fenêtre
Données. Les numéros de ligne commencent à un (1).
111
Clause Brush
Paramètre attribute
ID
Valeur renvoyée
BROWSER_INFO_CURRENT_COLUMN 4
Le numéro de colonne de la cellule activée dans la fenêtre
Données. Les numéros de colonne commencent à zéro
(0).
BROWSER_INFO_CURRENT_CELL_VALUE 5
La valeur contenue dans la cellule activée de la fenêtre
Données.
Conditions d'erreur
Une erreur ERR_BAD_WINDOW (590) est générée si le paramètre n'est pas un numéro de fenêtre
valide.
L'erreur ERR_FCN_ARG_RANGE (644) est générée si un argument se trouve en dehors de la plage
valide.
Une erreur ERR_WANT_BROWSER_WIN (312) est générée si l'identifiant d'une fenêtre ne correspond
pas à une fenêtre Données.
Voir également
Fonction FrontWindow( ), Fonction WindowID( )
Clause Brush
Objectif
Spécifie un style de remplissage pour les objets graphiques. Vous pouvez utiliser cette clause dans la
fenêtre MapBasic de MapInfo Professional.
Syntaxe
Brush brush_expr
brush_expr est une expression Brush, ou une variable Brush, comme MakeBrush( pattern, fgcolor,
bgcolor ). (Pour plus d'informations, reportez-vous à la section Fonction MakeBrush( ).)
Description
La clause Brush spécifie un style de pinceau, à savoir un ensemble de paramètres de couleurs et de
trames qui déterminent l'apparence d'un objet rempli, tel qu'un cercle ou un rectangle. Brush est une
clause, et non une instruction MapBasic complète. Diverses instructions liées aux objets, telles que
l'instruction Create Ellipse, vous permettent de spécifier une valeur Brush. Le mot-clé Brush peut être
suivi d'une expression prenant une valeur Brush. Cette expression peut être une variable Brush :
Brush br_var
ou un appel de fonction qui renvoie une valeur Brush :
Brush MakeBrush(64, CYAN, BLUE)
112
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Avec certaines instructions MapBasic de base (l'instruction Set Map), le mot-clé Brush peut être
immédiatement suivi des trois paramètres qui définissent un style Brush (trame, couleur de premier plan
et couleur de fond) entre parenthèses :
Brush(64, CYAN, BLUE)
Certaines instructions MapBasic utilisent une expression Brush comme paramètre (nom d'une variable
Brush, par exemple) et non en tant que clause Brush complète (mot-clé Brush suivi du nom d'une
variable Brush). L'instruction Alter Object en est un exemple.
Le tableau ci-dessous répertorie les trois paramètres (trame, couleur de premier plan et couleur de fond)
qui définissent un style Brush :
Paramètre
Description
trame
Valeur entière comprise entre 1 et 8 ou entre 12 et 186 (voir
le tableau ci-dessous).
couleur de premier plan
Valeur de couleur RVB sous forme d'entier. Reportez-vous
à la section Fonction RGB( ). Le fichier de définitions ,
MAPBASIC.DEF inclut des instructions Define pour les
paramètres de couleur suivants : BLACK, WHITE, RED,
GREEN, BLUE, CYAN, MAGENTA et YELLOW.
couleur de fond
Valeur entière qui représente une couleur RVB.
Pour spécifier un fond transparent, utilisez la trame 3 ou une trame plus élevée sans indiquer de paramètre
de couleur de fond dans la clause Brush. Par exemple, indiquez Brush(5, BLUE) pour afficher de fines
rayures bleues sans couleur de fond. Si vous ne spécifiez pas de paramètre de couleur de fond, cela
revient à désactiver la case à cocher Fond de la boîte de dialogue Style polygone de MapInfo
Professional.
Pour spécifier une couleur de fond transparente lorsque vous appelez la fonction MakeBrush( ), indiquez
la valeur -1 comme couleur de fond.
Les trames disponibles se présentent comme suit. La trame 2 produit un remplissage uni, la trame 1 ne
produit aucun remplissage.
Référence
113
Fonction Buffer( )
Pour une liste exhaustive des trames disponibles, reportez-vous à l' Aide de MapInfo Professional―lancez
MapInfo Professional et sélectionnez Aide > Contenu puis recherchez Table des trames de
MapInfo Professional.
Voir également
Fonction CurrentBrush( ), Fonction MakeBrush( ) , Clause Pen, Clause Font, Clause Symbol
Fonction Buffer( )
Objectif
Renvoie un objet région qui représente un tampon (zone située dans une distance spécifiée d'un objet
existant). Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Buffer( inputobject, resolution, width, unit_name )
114
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
inputobject est une expression d'objet.
resolution est une valeur d'entier court qui représente le nombre de nœuds par cercle à chaque angle.
width est une valeur à virgule flottante qui représente le rayon du tampon. Si width est négatif et si
inputobject est un objet fermé, l'objet renvoyé est plus petit que l'objet d'origine. Si width est négatif et
si l'objet est un objet linéaire (ligne, polyligne, arc) ou un point, la valeur absolue de width est utilisée
pour générer un tampon positif.
unit_name est le nom de l'unité de distance (« km » pour kilomètres, par exemple) utilisée par width.
Valeur renvoyée
Objet polygone
Description
La fonction Buffer( ) renvoie une région qui représente un tampon.
La fonction Buffer( ) renvoie une région qui représente un tampon. Pour créer un tampon autour d'un
ensemble d'objets, utilisez l'instruction Create Object As Buffer. L'objet sera créé en utilisant le système
de coordonnées actuel de MapBasic. La méthode utilisée pour calculer le tampon dépend du système
de coordonnées. S'il s'agit d'un système de coordonnées non terrestre, un calcul cartésien est utilisé.
Sinon, la méthode sphérique est appliquée.
Exemple
Le programme suivant crée un objet ligne, puis un tampon autour de la ligne. Le tampon s'étend sur un
rayon de 10 miles par rapport à la ligne.
Dim o_line, o_region As Object
o_line = CreateLine(-73.5, 42.5, -73.6, 42.8)
o_region = Buffer( o_line, 20, 10, "mi")
Voir également
Instruction Create Object
Fonction ButtonPadInfo( )
Objectif
Renvoie des informations sur un ButtonPad. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
ButtonPadInfo( pad_name, attribute )
pad_nameest une chaîne qui représente le nom d'un ButtonPad existant. Utilisez Général, Dessin, Outils
ou Standard pour rechercher les barres standard ou spécifiez le nom d'une barre personnalisée.
attribute est un code qui indique les informations à renvoyer (reportez-vous au tableau ci-après).
Référence
115
Fonction ButtonPadInfo( )
Valeur renvoyée
Dépend du paramètre attribute spécifié.
Description
Le paramètre attribute spécifie les éléments à renvoyer. Les codes sont définis dans le fichier
MAPBASIC.DEF
Code attribute
ID
ButtonPadInfo( ) renvoie :
BTNPAD_INFO_FLOATING
1
Logique. TRUE signifie que la barre est flottante et FALSE
qu'elle est ancrée.
BTNPAD_INFO_WIDTH
2
Entier court. Largeur de la barre exprimée en nombre de
boutons (sans séparateur).
BTNPAD_INFO_NBTNS
3
Entier court. Nombre de boutons de la barre.
BTNPAD_INFO_X
4
Nombre indiquant la position x du coin supérieur gauche
de la barre. Si la barre est ancrée, il s'agit d'un entier. La
valeur est négative lorsqu'une barre d'outils est ancrée à
gauche de la barre de menus. Si la barre est flottante, il
s'agit d'une valeur à virgule flottante exprimée en unités
papier (des pouces, par exemple). Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set
Paper Units.
BTNPAD_INFO_Y
5
Nombre indiquant la position y du coin supérieur gauche
de la barre. La valeur est négative lorsqu'une barre d'outils
est ancrée au-dessus de la barre de menus.
BTNPAD_INFO_WINID
6
Entier. Identifiant de fenêtre de la barre spécifiée.
BTNPAD_INFO_DOCK_POSITION
7
Renvoie la position de la barre de boutons : Floating,
Left, Top, Right ou Bottom. Utilisez-le pour les barres
d'outils flottantes, comme alternative à
BTNPAD_INFO_FLOATING. Renvoie :
•
•
•
•
•
BTNPAD_INFO_DOCK_NONE (0)
BTNPAD_INFO_DOCK_LEFT (1)
BTNPAD_INFO_DOCK_TOP (2)
BTNPAD_INFO_DOCK_RIGHT (3)
BTNPAD_INFO_DOCK_BOTTOM (4)
Exemple
Include "mapbasic.def"
If ButtonPadInfo("Main", BTNPAD_INFO_FLOATING) Then
'...then the Main pad is floating; now let's dock it.
Alter ButtonPad "Main" ToolbarPosition(0,0) Fixed
End If
116
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Instruction Alter ButtonPad
Instruction Call
Objectif
Appelle une sous-procédure ou une routine externe (DLL, XCMD).
Restrictions
Vous ne pouvez pas exécuter d'instruction Call à l'aide de la fenêtre MapBasic.
Syntaxe
Call subproc [ ( [ parameter ] [ , ... ] ) ]
subproc est le nom d'une sous-procédure.
parameter est une expression de paramètre à transmettre à la sous-procédure.
Description
L'instruction Call appelle une procédure. La procédure est généralement une sous-procédure MapBasic
conventionnelle (définie via l'instruction Sub...End Sub). Un programme qui est exécuté sous MapInfo
Professional peut également appeler un programme Windows Dynamic Link Library (DLL) via l'instruction
Call.
Lorsqu'une instruction Call appelle une procédure MapBasic conventionnelle, MapBasic commence à
exécuter les instructions figurant dans la sous-procédure spécifiée et poursuit l'opération jusqu'à ce
qu'une instruction End Sub ou une instruction Exit Sub soit rencontrée. À ce moment-là, MapBasic quitte
la sous-procédure, puis exécute les instructions qui suivent l'instruction Call. L'instruction Call ne peut
accéder qu'aux sous-procédures faisant partie de la même application.
Un programme MapBasic doit émettre une Instruction Declare Sub pour définir la liste des noms et
des paramètres de toute procédure pouvant être appelée, qu'il s'agisse d'une sous-procédure MapBasic
conventionnelle, d'une procédure DLL ou d'une XCMD.
Transmission de paramètres
Les sous-procédures peuvent être définies sans paramètre. Si aucun paramètre n'est défini pour une
sous-procédure donnée, tout appel à cette sous-procédure peut se présenter sous les formes suivantes
:
Call subroutine
ou
Call subroutine( )
Par défaut, chaque paramètre de sous-procédure est définit « par référence ». Lorsqu'une sous-procédure
possède un paramètre par référence, l'appelant doit spécifier le nom d'une variable à transmettre en
tant que paramètre.
Référence
117
Instruction Call
Si la procédure modifie par la suite le contenu du paramètre par référence, la variable de l'appelant est
automatiquement mise à jour de manière à répercuter cette modification. Cela permet à l'appelant
d'examiner les résultats renvoyés par la sous-procédure.
Autrement, une partie ou la totalité des paramètres de la sous-procédure peut être transmise « par valeur
» si le mot-clé ByVal apparaît avant le nom du paramètre dans les déclarations Sub et Declare Sub.
Lorsqu'un paramètre est transmis par valeur, la sous-procédure reçoit une copie de la valeur de
l'expression de paramètre. L'appelant peut alors transmettre une expression au lieu du nom d'une
variable.
Une sous-procédure peut prendre l'intégralité d'un tableau en tant que paramètre. Lorsqu'une
sous-procédure attend un tableau en tant que paramètre, l'appelant doit spécifier le nom d'une variable
de tableau sans parenthèse.
Appel de routines externes
Lorsqu'une instruction Call appelle une routine DLL, MapBasic exécute la routine jusqu'à ce qu'elle
renvoie une valeur. La routine DLL spécifiée se trouve en fait dans un fichier distinct (KERNEL.EXE, par
exemple). Le fichier DLL spécifié doit être présent au moment de l'exécution pour que MapBasic puisse
appeler la DLL.
De la même manière, si une instruction Call appelle une XCMD, le fichier qui contient la XCMD doit être
présent au moment de l'exécution. Lorsque vous appelez des XCMD, vous ne pouvez pas spécifier de
variables de tableaux ni de variables de types de données personnalisés en tant que paramètres.
Exemple
Dans l'exemple suivant, la sous-procédure Cube élève un nombre au cube (c'est-à-dire à la puissance
trois), et renvoie le résultat. La sous-procédure utilise deux paramètres ; le premier paramètre contient
le nombre à élever au cube, et le deuxième retransmet les résultats à l'appelant.
Declare Sub Cube(ByVal original As Float, cubed As Float)
Dim x, result As Float
Call Cube( 2, result)
' result now contains the value: 8 (2 x 2 x 2)
x = 1
Call Cube( x + 2, result)
' result now contains the value: 27 (3 x 3 x 3)
End Program
Sub Cube (ByVal original As Float, cubed As Float)
' Cube the "original" parameter, and store
' the result in the "cubed" parameter.
cubed = original ^ 3
End Sub
Voir également
Instruction Declare Sub, Instruction Exit Sub, Instruction Global, Instruction Sub...End Sub
118
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction CartesianArea( )
Objectif
Renvoie la mesure d'une surface calculée dans un système de coordonnées projeté plat en utilisant un
algorithme cartésien. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
CartesianArea( obj_expr, unit_name )
obj_expr correspond à une expression d'objet.
unit_name est une chaîne qui représente le nom d'une unité de surface (« km² », par exemple).
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction CartesianArea( ) renvoie la surface cartésienne de l'objet géographique spécifié par obj_expr.
La fonction renvoie la mesure de la surface dans les unités spécifiées par le paramètre unit_name. Par
exemple, pour obtenir une surface en acres, spécifiez « acre » comme paramètre unit_name.
Reportez-vous à la section Instruction Set Area Units pour obtenir la liste des noms d'unités disponibles.
La fonction CartesianArea( ) renvoie toujours la surface à l'aide d'un algorithme cartésien. La valeur -1
est renvoyée pour les données d'un système Latitude/Longitude puisque les données ne sont pas
projetées.
Seuls les régions, ellipses, rectangles et rectangles arrondis ont une surface. Par définition, la valeur
CartesianArea( ) d'un objet point, arc, texte, ligne ou polyligne est nulle. La fonction CartesianArea( )
renvoie des résultats approximatifs lorsqu'elle est exécutée sur des rectangles arrondis. MapBasic
calcule la surface d'un rectangle arrondi comme si l'objet était un rectangle conventionnel.
Exemples
Dans l'exemple suivant, la fonction CartesianArea( ) permet de calculer la surface d'un seul objet
géographique. L'expression tablename.obj (par exemple, states.obj) représente l'objet géographique de
la ligne actuelle dans la table spécifiée.
Dim f_sq_miles As Float
Open Table "counties"
Fetch First From counties
f_sq_miles = CartesianArea(counties.obj, "sq mi")
Vous pouvez également utiliser la fonction CartesianArea( ) dans l'instruction Select, comme indiqué
dans l'exemple suivant.
Select lakes, CartesianArea(obj, "sq km")
From lakes Into results
Voir également
Référence
119
Fonction CartesianBuffer( )
Fonction Area( ), Fonction SphericalArea( )
Fonction CartesianBuffer( )
Objectif
Renvoie un objet région qui représente un tampon (zone située dans une distance spécifiée d'un objet
existant). Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CartesianBuffer( inputobject, resolution, width, unit_name )
inputobject est une expression d'objet.
resolution est une valeur d'entier court qui représente le nombre de nœuds par cercle à chaque angle.
width est une valeur à virgule flottante qui représente le rayon du tampon. Si width est négatif et si
inputobject est un objet fermé, l'objet renvoyé est plus petit que l'objet d'origine.
unit_name est le nom de l'unité de distance (« km » pour kilomètres, par exemple) utilisée par width.
Valeur renvoyée
Objet région
Description
La fonction CartesianBuffer( ) renvoie une région qui représente un tampon et agit sur un seul objet à
la fois.
Pour créer un tampon autour d'un ensemble d'objets, utilisez l'instruction Create Object As Buffer. Si
width est négatif et si l'objet est un objet linéaire (ligne, polyligne, arc) ou un point, la valeur absolue de
width est utilisée pour générer un tampon positif.
La fonction CartesianBuffer( ) calcule le tampon en partant du principe que l'objet se trouve dans une
projection à plat et en s'appuyant sur width pour déterminer un tampon calculé sur la base d'une distance
cartésienne autour de l'objet.
Si inputobject se trouve dans une projection Longitude/Latitude, des calculs sphériques sont alors
effectués quelle que soit la fonction Buffer utilisée.
Exemple
Le programme suivant crée un objet ligne, puis un tampon qui s'étend sur un rayon de 10 miles par
rapport à la ligne.
Dim o_line, o_region As Object
o_line = CreateLine(-73.5, 42.5, -73.6, 42.8)
o_region = CartesianBuffer( o_line, 20, 10, "mi")
Voir également
Fonction Buffer( ), Création d'objets carte
120
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction CartesianConnectObjects( )
Objectif
Renvoie un objet qui représente la distance la plus courte ou la plus longue entre deux objets. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CartesianConnectObjects( object1, object2, min )
object1 et object2 sont des expressions d'objet.
min est une expression logique dans laquelle la valeur TRUE calcule la distance minimale entre les
objets et la valeur FALSE calcule la distance maximale entre les objets.
Valeur renvoyée
Cette instruction renvoie une section simple, un objet polyligne à deux points qui représente la distance
la plus courte (min == TRUE) ou la plus longue (min == FALSE) entre object1 et object2.
Description
Un point de l'objet polyligne qui en résulte se trouve dans object1 et l'autre point dans object2. La distance
entre les deux objets d'origine peut être calculée à l'aide de la fonction ObjectLen( ). Si plusieurs
instances comportent la distance minimale ou maximale (par exemple, les deux points renvoyés ne sont
pas les seuls à correspondre à la distance la plus courte et il existe d'autres points qui représentent des
« nœuds »), ces fonctions renvoient une seule de ces instances. Il n'est pas possible de déterminer si
l'objet renvoyé est le seul à correspondre à la distance la plus courte.
CartesianConnectObjects( ) renvoie un objet polyligne qui relie object1 et object2 selon la distance la
plus courte (min == TRUE) ou la plus longue (min == FALSE) sur la base d'une méthode de calcul
sphérique. Si le calcul ne peut pas être effectué à l'aide d'une méthode de distance cartésienne (par
exemple, si le système de coordonnées MapBasic est Lat/Long), cette fonction génère une erreur.
Fonction CartesianDistance( )
Objectif
Renvoie la distance entre deux points. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
CartesianDistance( x1, y1, x2, y2, unit_name )
x1 et x2 sont des coordonnées x.
y1 et y2 sont des coordonnées y.
unit_name est une chaîne qui représente le nom d'une unité de distance (« km », par exemple).
Référence
121
Fonction CartesianObjectDistance( )
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction CartesianDistance( ) calcule la distance cartésienne entre deux endroits. Elle renvoie l'unité
de mesure de la distance indiquée par le paramètre unit_name. Par exemple, pour obtenir une distance
en kilomètres, attribuez la valeur « km » au paramètre unit_name. Pour obtenir la liste des noms d'unités
disponibles, reportez-vous à la section Instruction Set Distance Units.
La fonction CartesianDistance( ) renvoie toujours une valeur à l'aide d'un algorithme cartésien. La
valeur -1 est renvoyée pour les données qui se trouvent dans un système de coordonnées
Latitude/Longitude car ces données ne sont pas projetées et donc pas cartésiennes.
Les paramètres des coordonnées x et y doivent utiliser le système de coordonnées actuel de MapBasic.
Par défaut, MapInfo Professional attend que les coordonnées utilisent un système de coordonnées
Latitude/Longitude. Vous pouvez réinitialiser le système de coordonnées MapBasic par le biais de
l'instruction Set CoordSys.
Exemple
Dim dist, start_x, start_y, end_x, end_y As Float
Open Table "cities"
Fetch First From cities
start_x = CentroidX(cities.obj)
start_y = CentroidY(cities.obj)
Fetch Next From cities
end_x = CentroidX(cities.obj)
end_y = CentroidY(cities.obj)
dist = CartesianDistance(start_x,start_y,end_x,end_y,"mi")
Voir également
Fonctions mathématiques, Fonction CartesianDistance( ), Fonction Distance( )
Fonction CartesianObjectDistance( )
Objectif
Renvoie la distance entre deux objets. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
CartesianObjectDistance( object1, object2, unit_name )
object1 et object2 sont des expressions d'objet.
unit_name est une chaîne qui représente le nom d'une unité de distance.
Valeur renvoyée
Nombre à virgule flottante
122
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
CartesianObjectDistance( ) renvoie la distance minimale entre object1 et object2
CartesianObjectDistance( ) renvoie la distance minimale entre object1 et object2 sur la base d'une
méthode de calcul cartésienne, la valeur renvoyée étant exprimée en unit_name. Si le calcul ne peut
pas être effectué à l'aide d'une méthode de distance cartésienne (par exemple, si le système de
coordonnées MapBasic est Lat/Long), cette fonction génère une erreur.
Fonction CartesianObjectLen( )
Objectif
Renvoie la longueur géographique d'un objet ligne ou polyligne. Vous pouvez appeler cette fonction à
partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CartesianObjectLen( obj_expr, unit_name )
obj_expr correspond à une expression d'objet.
unit_name est une chaîne qui représente le nom d'une unité de distance (« km », par exemple).
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction CartesianObjectLen( ) renvoie la longueur d'une expression d'objet. Seuls les objets ligne
et polyligne possèdent des valeurs de longueur supérieures à zéro. Pour mesurer la circonférence d'un
rectangle, d'une ellipse ou d'une région, utilisez la fonction Perimeter( ).
La fonction CartesianObjectLen( ) renvoie toujours une valeur à l'aide d'un algorithme cartésien. La
valeur -1 est renvoyée pour les données qui se trouvent dans un système de coordonnées
Latitude/Longitude car ces données ne sont pas projetées et donc pas cartésiennes.
La fonction CartesianObjectLen( ) envoie l'unité de mesure de la longueur indiquée par le paramètre
unit_name. Par exemple, pour obtenir une longueur en kilomètres, attribuez la valeur « km » au paramètre
unit_name. Reportez-vous à la section Instruction Set Distance Units pour obtenir la liste des noms
d'unités valides.
Exemple
Dim geogr_length As Float
Open Table "streets"
Fetch First From streets
geogr_length = CartesianObjectLen(streets.obj, "mi")
' geogr_length now represents the length of the
' street segment, in miles
Voir également
Fonction SphericalObjectLen( ), Fonction CartesianObjectLen( ), Fonction ObjectLen( )
Référence
123
Fonction CartesianOffset( )
Fonction CartesianOffset( )
Objectif
Renvoie une copie de l'objet d'origine décalé de la distance et de l'angle spécifiés à l'aide d'un type de
distance cartésien. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
CartesianOffset( object, angle, distance, units )
object est l'objet auquel le décalage est appliqué.
angle est l'angle de décalage de l'objet.
distance est la distance utilisée pour le décalage de l'objet.
units est une chaîne qui représente l'unité dans laquelle la distance est mesurée.
Valeur renvoyée
Objet
Description
Cette fonction produit un nouvel objet qui est une copie de l'objet d'origine décalé par la distance sur
l'angle (en degrés, par rapport à l'axe horizontal sur l'axe des X positif égal à 0 et la valeur positive dans
le sens inverse des aiguilles d'une montre). La chaîne d'unité, qui est semblable à celle utilisée pour la
Fonction ObjectLen( ) ou la Fonction Perimeter( ), est l'unité des valeurs de distance. Le type de
distance utilisé est cartésien. Si le système de coordonnées de l'objet d'origine est Lat/Long, une erreur
se produit car le type de distance cartésien n'est pas valide pour le système Lat/Long. Un objet NULL
est renvoyé. Le système de coordonnées utilisé est le système de coordonnées de l'objet d'origine.
Certains aspects des mesures sphériques ne s'appliquent pas aux mesures cartésiennes. Si vous
déplacez un objet qui se trouve dans un système Lat/Long, la forme de l'objet reste identique, mais la
surface de l'objet change. Cela s'explique par le fait que vous prélevez un écart de décalage en degrés
et que la distance mesurée réelle pour un degré est différente à différents emplacements.
Pour les fonctions Offset, l'écart de décalage réel est calculé à un point fixe de l'objet (par exemple, le
centre du rectangle d'encombrement), puis cette valeur est convertie à partir des unités d'entrée dans
les unités du système de coordonnées. Si le système de coordonnées est Lat/Long, la conversion en
degrés utilise le point fixe. La mesure de la distance convertie réelle peut varier à différents emplacements
de l'objet. La distance entre l'objet d'origine et le nouvel objet décalé n'est exacte qu'au point fixe utilisé.
Exemple
CartesianOffset(Rect, 45, 100, "mi")
Voir également
Fonction CartesianOffsetXY( )
124
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction CartesianOffsetXY( )
Objectif
Renvoie une copie de l'objet d'origine décalé par les valeurs de décalage X et Y spécifiées à l'aide d'un
type de distance cartésien. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Syntaxe
CartesianOffsetXY( object, xoffset, yoffset, units )
object est l'objet auquel le décalage est appliqué.
xoffset et yoffset sont la distance de décalage de l'objet le long des axes x et y respectivement.
units est une chaîne qui représente l'unité dans laquelle la distance est mesurée.
Valeur renvoyée
Objet
Description
Cette fonction produit un nouvel objet qui est une copie de l'objet d'origine décalé par la valeur xoffset
sur l'axe des X et par la valeur yoffset sur l'axe des Y. La chaîne d'unité, qui est semblable à celle utilisée
pour la Fonction ObjectLen( ) ou la Fonction Perimeter( ), est l'unité des valeurs de distance. Le type
de distance utilisé est cartésien. Si le système de coordonnées de l'objet d'origine est Lat/Long, une
erreur se produit car le type de distance cartésien n'est pas valide pour le système Lat/Long. Un objet
NULL est renvoyé. Le système de coordonnées utilisé est le système de coordonnées de l'objet d'origine.
Certains aspects des mesures sphériques ne s'appliquent pas aux mesures cartésiennes. Si vous
déplacez un objet qui se trouve dans un système Lat/Long, la forme de l'objet reste identique, mais la
surface de l'objet change. Cela s'explique par le fait que vous prélevez un écart de décalage en degrés
et que la distance mesurée réelle pour un degré est différente à différents emplacements.
Pour les fonctions Offset, l'écart de décalage réel est calculé à un point fixe de l'objet (par exemple, le
centre du rectangle d'encombrement), puis cette valeur est convertie à partir des unités d'entrée dans
les unités du système de coordonnées. Si le système de coordonnées est Lat/Long, la conversion en
degrés utilise le point fixe. La mesure de la distance convertie réelle peut varier à différents emplacements
de l'objet. La distance entre l'objet d'origine et le nouvel objet décalé n'est exacte qu'au point fixe utilisé.
Exemple
CartesianOffset(Rect, 45, 100, "mi")
Voir également
Fonction CartesianOffset( )
Référence
125
Fonction CartesianPerimeter( )
Fonction CartesianPerimeter( )
Objectif
Renvoie le périmètre d'un objet graphique. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
CartesianPerimeter( obj_expr , unit_name )
obj_expr correspond à une expression d'objet.
unit_name est une chaîne qui représente le nom d'une unité de distance (« km », par exemple).
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction CartesianPerimeter( ) calcule le périmètre de l'objet obj_expr. La Fonction Perimeter( )
est définie pour les types d'objets suivants : ellipses, rectangles, rectangles arrondis et polygones. Les
autres types d'objets possèdent des mesures de périmètre égales à zéro.
La fonction CartesianPerimeter( ) renvoie toujours une valeur à l'aide d'un algorithme cartésien. La
valeur -1 est renvoyée pour les données qui se trouvent dans un système de coordonnées
Latitude/Longitude car ces données ne sont pas projetées et donc pas cartésiennes.
La fonction CartesianPerimeter( ) renvoie l'unité de mesure de la longueur indiquée par le paramètre
unit_name. Par exemple, pour obtenir une longueur en kilomètres, attribuez la valeur « km » au paramètre
unit_name. Reportez-vous à la section Instruction Set Distance Units pour obtenir la liste des noms
d'unités valides. La fonction CartesianPerimeter( ) renvoie des résultats approximatifs lorsqu'elle est
exécutée sur des rectangles arrondis. MapBasic calcule le périmètre d'un rectangle aux coins arrondis
comme si l'objet était un rectangle conventionnel.
Exemple
Dans l'exemple ci-dessous, la fonction CartesianPerimeter( ) permet de déterminer le périmètre d'un
objet géographique particulier.
Dim perim As Float
Open Table "world"
Fetch First From world
perim = CartesianPerimeter(world.obj, "km")
' The variable perim now contains
' the perimeter of the polygon that's attached to
' the first record in the World table.
Vous pouvez également utiliser la fonction CartesianPerimeter( ) dans l'Instruction Select. L'instruction
Select ci-dessous extrait des informations à partir de la table States et stocke les résultats dans une
126
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
table temporaire appelée Results. Comme l'Instruction Select inclut la fonction CartesianPerimeter(
) la table Results comportera une colonne indiquant le périmètre de chaque État.
Open Table "states"
Select state, CartesianPerimeter(obj, "mi")
From states
Into results
Voir également
Fonction CartesianPerimeter( ), Fonction SphericalPerimeter( ), Fonction Perimeter( )
Fonction Centroid( )
Objectif
Renvoie le centroïde (point central) d'un objet. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Centroid( obj_expr )
obj_expr correspond à une expression d'objet.
Valeur renvoyée
Objet point
Description
La fonction Centroid( ) renvoie un objet point qui se trouve au niveau du centroïde de l'objetobj_expr
spécifié. Le centroïde d'une région ne représente pas son centre de masse. Il s'agit de l'emplacement
utilisé pour positionner les étiquettes automatiques, les points de géocodage et les graphiques thématiques
à secteurs ou à barres. Si vous modifiez une carte en mode Modifier objets, vous pouvez repositionner
les centroïdes des polygones en les faisant glisser.
Si le paramètre obj_expr représente un objet point, la fonction Centroid( ) renvoie la position du point.
Si le paramètre obj_expr représente un objet ligne, la fonction Centroid( ) renvoie le point situé à
mi-chemin entre les extrémités de la ligne.
Si le paramètre obj_expr représente un objet polyligne, la fonction Centroid( ) renvoie le point situé au
milieu du segment central de la polyligne.
Si le paramètre obj_expr représente un autre type d'objet, la fonction Centroid( ) renvoie le point situé
au niveau du centroïde réel de l'objet d'origine. Pour les objets rectangle, arc, texte et ellipse, le centroïde
se trouve à mi-chemin entre les extrémités supérieure et inférieure, et à mi-chemin entre les extrémités
gauche et droite de l'objet. Pour les objets région, en revanche, le centroïde se trouve toujours sur l'objet
en question et, par conséquent, ne peut pas être situé à mi-chemin entre les extrémités de l'objet.
Exemple
Dim pos As Object
Open Table "world"
Référence
127
Fonction CentroidX( )
Fetch First From world
pos = Centroid(world.obj)
Voir également
Instruction Alter Object, Fonction CentroidX( ) , Fonction CentroidY( )
Fonction CentroidX( )
Objectif
Renvoie la coordonnée x (abscisse) du centroïde d'un objet. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CentroidX( obj_expr )
obj_expr est une expression d'objet.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction CentroidX( ) renvoie la coordonnée X (longitude, par exemple) du centroïde de l'objet
spécifié. Pour plus d'informations sur la signification du concept de position d'un centroïde par rapport
aux différents types d'objets graphiques (lignes par rapport aux régions, etc.), reportez-vous à la section
Fonction Centroid( ).
Les informations de coordonnées sont renvoyées dans le système de coordonnées actuel de MapBasic
(par défaut, le système Longitude/Latitude). L'instruction Set CoordSys vous permet de modifier le
système de coordonnées utilisé.
Exemples
Dans l'exemple suivant, la fonction CentroidX( ) permet de calculer la longitude d'un seul objet
géographique.
Dim x As Float
Open Table "world"
Fetch First From world
x = CentroidX(world.obj)
Vous pouvez également utiliser la fonction CentroidX( ) dans l'instruction Select. L'instruction Select
ci-dessous extrait des informations de la table World et stocke les résultats dans une table temporaire
appelée Results. Comme l'instruction Select inclut la fonction CentroidX( ) et la fonction CentroidY(
), la table Results comportera des colonnes indiquant la longitude et la latitude du centroïde de chaque
pays.
Open Table "world"
Select country, CentroidX(obj), CentroidY(obj)
From world Into results
128
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Fonction Centroid( ), Fonction CentroidY( ) , Instruction Set CoordSys
Fonction CentroidY( )
Objectif
Renvoie la coordonnée y (ordonnée) du centroïde d'un objet. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CentroidY( obj_expr )
obj_expr correspond à une expression d'objet.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction CentroidY( ) renvoie la coordonnée Y (latitude, par exemple) du centroïde de l'objet spécifié.
Pour plus d'informations sur la signification du concept de position d'un centroïde par rapport aux différents
types d'objets graphiques (lignes par rapport aux régions, etc.), reportez-vous à la section Fonction
Centroid( ).
Les informations de coordonnées sont renvoyées dans le système de coordonnées actuel de MapBasic
(par défaut, le système Longitude/Latitude). L'instruction Set CoordSys vous permet de modifier le
système de coordonnées utilisé.
Exemple
Dim y As Float
Open Table "world"
Fetch First From world
y = CentroidY(world.obj)
Voir également
Fonction Centroid( ), Fonction CentroidX( ), Instruction Set CoordSys
Clause CharSet
Objectif
Spécifie le jeu de caractères que MapBasic utilise pour interpréter les codes de caractères.
Remarque: Consultez le Guide de l'utilisateur de MapInfo Professional pour obtenir plus d'informations
sur l'affectation de cette clause.
Référence
129
Clause CharSet
Syntaxe
CharSet char_set
char_set est une chaîne qui identifie le nom d'un jeu de caractères (reportez-vous au tableau ci-après).
Description
La clause CharSet spécifie le jeu de caractères que MapBasic doit utiliser pour la lecture ou l'écriture
de fichiers ou de tables. Notez que CharSet est une clause, et non une instruction complète. Diverses
instructions liées aux fichiers, telles que l'instruction Open File, peuvent intégrer des clauses facultatives
CharSet.
Qu'est-ce qu'un jeu de caractères ?
Chaque caractère d'un clavier d'ordinateur correspond à un code numérique. Par exemple, la lettre « A
» correspond au code de caractère 65. Un jeu de caractères désigne un ensemble de caractères qui
s'affichent sur un ordinateur et un ensemble de codes numériques qui correspondent à ces caractères.
Différents pays utilisent différents jeux de caractères. Par exemple, dans la version de Windows utilisée
en Amérique du Nord et en Europe de l'Ouest, le code de caractère 176 correspond au symbole des
degrés. Toutefois, si Windows est configuré pour utiliser un jeu de caractères différent, le code de
caractère 176 peut représenter un caractère différent.
Appelez SystemInfo(SYS_INFO_CHARSET) pour déterminer le jeu de caractères utilisé au moment de
l'exécution.
En quoi les jeux de caractères affectent-ils les programmes MapBasic ?
Si vos fichiers utilisent uniquement les caractères ASCII standard compris dans la plage 32 (espace) à
126 (tilde), alors les jeux de caractères ne risquent pas d'entrer en conflit et vous n'avez pas besoin
d'utiliser la clause CharSet.
Si vos fichiers comprennent des caractères « spéciaux » (qui sont, par exemple, situés en dehors de la
plage 32 à 126) et que vous travaillez dans un seul environnement (Windows, par exemple) en utilisant
un seul jeu de caractères, vous n'avez pas non plus besoin d'utiliser la clause CharSet.
Si votre programme doit lire un fichier existant qui contient des caractères « spéciaux » et si ce fichier
a été créé avec un jeu de caractères qui ne correspond pas à celui utilisé lorsque vous exécutez votre
programme, votre programme doit alors utiliser la clause CharSet. La clause CharSet doit indiquer le
jeu de caractères utilisé au moment de la création du fichier.
La clause CharSet spécifie un paramètre : une expression de chaîne qui identifie le nom du jeu de
caractères à utiliser. Le tableau suivant indique les jeux de caractères disponibles.
130
Jeu de caractères
Commentaires
"Neutral"
Aucune conversion de caractères n'a lieu.
"ISO8859_1"
ISO 8859-1 (UNIX)
"ISO8859_2"
ISO 8859-2 (UNIX)
"ISO8859_3"
ISO 8859-3 (UNIX)
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Jeu de caractères
Commentaires
"ISO8859_4"
ISO 8859-4 (UNIX)
"ISO8859_5"
ISO 8859-5 (UNIX)
"ISO8859_6"
ISO 8859-6 (UNIX)
"ISO8859_7"
ISO 8859-7 (UNIX)
"ISO8859_8"
ISO 8859-8 (UNIX)
"ISO8859_9"
ISO 8859-9 (UNIX)
"PackedEUCJapanese"
UNIX, implémentation du japonais standard.
"WindowsLatin2"
Windows Est Europe
"WindowsArabic"
"WindowsCyrillic"
"WindowsGreek"
"WindowsHebrew"
"WindowsTurkish"
"WindowsTradChinese"
Windows Chinois Traditionnel
"WindowsSimpChinese"
Windows Chinois Simplifié
"WindowsJapanese"
"WindowsKorean"
"CodePage437"
Page de code 437 de DOS = ASCII étendu IBM
"CodePage850"
Page de code 850 de DOS = Multilingue
"CodePage852"
Page de code 852 de DOS = Europe de l'Est
"CodePage855"
Page de code 855 de DOS = Cyrillique
"CodePage857"
"CodePage860"
Page de code 860 de DOS = Portugais
"CodePage861"
Page de code 861 de DOS = Islandais
"CodePage863"
Page de code 863 de DOS = Français (Canada)
"CodePage864"
Page de code 864 de DOS = Arabe
"CodePage865"
Page de code 865 de DOS = Nordique
"CodePage869"
Page de code 869 de DOS = Grec moderne
"LICS"
Jeu de caractères international de Lotus (1,2)
Référence
131
Fonction ChooseProjection$( )
Jeu de caractères
Commentaires
"LMBCS"
Jeu de caractères international de Lotus (3,4)
Remarque: Vous n'avez jamais besoin de spécifier une clause CharSet dans une instruction Open
Table. Le fichier .TAB de chaque table contient des informations sur le jeu de caractères
utilisé par la table. À l'ouverture d'une table, MapInfo Professional lit les informations
relatives au jeu de caractères directement du fichier .TAB et procède automatiquement
aux conversions de caractères requises.
Pour forcer MapInfo Professional à enregistrer une table dans un jeu de caractères spécifique, incluez
une CharSet dans l'instruction Commit Table.
Voir également
Instruction Commit Table, Instruction Create Table, Instruction Export, Instruction Open File,
Instruction Register Table
Fonction ChooseProjection$( )
Objectif
Affiche la boîte de dialogue Choisir une projection et renvoie le système de coordonnées sélectionné
par l'utilisateur. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
ChooseProjection$( initial_coordsys, get_bounds )
initial_coordsys est une valeur de chaîne qui se présente sous la forme d'une clause CoordSys. Elle
permet de définir le système de coordonnées sélectionné lorsque la boîte de dialogue est affichée. Si
initial_coordsys est vide ou correspond à une clause CoordSys non valide, le système de coordonnées
Longitude/Latitude par défaut est alors utilisé comme sélection initiale.
get_bounds est une valeur logique qui détermine si l'utilisateur est invité à spécifier des valeurs limites
lorsqu'une projection non terrestre est sélectionnée. Si get_bounds a pour valeur True, la boîte de
dialogue des limites s'affiche. Si elle est définie sur False, la boîte de dialogue n'est pas affichée et la
limite par défaut est utilisée.
Description
Cette fonction affiche la boîte de dialogue Choisir une projection et renvoie le système de coordonnées
sélectionné sous la forme d'une chaîne. La chaîne renvoyée a le même format que la clause CoordSys.
Utilisez cette fonction pour permettre à l'utilisateur de définir une projection au sein de votre application.
Exemple
Dim strNewCoordSys As String
strNewCoordSys = ChooseProjection$( "", True)
strNewCoordSys = "Set " + strNewCoordSys
Run Command strNewCoordSys
132
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Fonction MapperInfo( )
Fonction Chr$( )
Objectif
Renvoie une chaîne à un caractère qui correspond au code de caractère spécifié. Vous pouvez appeler
cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Chr$( num_expr )
num_expr est une valeur entière comprise entre 0 et 255 (ou, en cas d'utilisation d'un jeu de caractères
codés sur deux octets, entre 0 et 65 535) inclus.
Valeur renvoyée
Chaîne
Description
La fonction Chr$( ) renvoie une chaîne d'un caractère, basée sur le code de caractère spécifié dans le
paramètre expr_num. Sur la plupart des systèmes, num_expr doit être une valeur entière positive
comprise entre 0 et 255. Sur les systèmes qui prennent en charge des jeux de caractères codés sur
deux octets (version japonaise de Windows, par exemple), num_expr peut être une valeur comprise
entre 0 et 65 535.
Remarque: Tous les environnements MapInfo Professional partagent des codes de caractères dans
la plage 32 (espace) à 126 (tilde).
Si le paramètre num_expr est fractionnel, MapBasic l'arrondit à l'entier le plus proche.
Le caractère 12 correspond au caractère de saut de page. Vous pouvez donc utiliser l'instruction Print
Chr$(12) pour effacer la fenêtre Message. Le caractère 10 correspond au caractère de saut de ligne
(voir l'exemple ci-dessous).
Le caractère 34 correspond au guillemet double ("). Si une expression de chaîne inclut l'appel de fonction
Chr$(34), MapBasic intègre un caractère représentant un guillemet double dans la chaîne.
Conditions d'erreur
Une erreur ERR_FCN_ARG_RANGE (644) est générée si un argument se trouve en dehors de la plage
valide.
Exemple
Dim s_letter As String * 1
s_letter = Chr$(65)
Note s_letter ' This displays the letter "A"
Note "This message spans" + Chr$(10) + "two lines."
Référence
133
Instruction Close All
Voir également
Fonction Asc( )
Instruction Close All
Objectif
Ferme toutes les tables ouvertes. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Syntaxe
Close All [ Interactive ]
Description
Si une application MapBasic émet une instruction Close All alors que la table concernée comprend des
modifications en cours (la table a été modifiée mais les modifications n'ont pas encore été enregistrées
sur le disque), les modifications sont ignorées avant la fermeture de la table. Aucun avertissement ne
sera affiché. Si vous ne souhaitez pas ignorer les modifications apportées, utilisez la clause facultative
Interactive pour inviter l'utilisateur à les enregistrer ou à les ignorer.
Voir également
Instruction Close Table
Instruction Close Connection
Objectif
Ferme une connexion qui avait été ouverte avec l'instruction Open Connection. Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Close Connection connection_handle
connection_handle est une expression entière qui représente la valeur renvoyée à partir de l'instruction
Open Connection.
Description
L'instruction Close Connection ferme la connexion spécifiée à l'aide du handle de connexion renvoyé
par une instruction Open Connection. Toutes les propriétés de services spécifiques associées à la
connexion sont perdues.
Voir également
Instruction Open Connection
134
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Instruction Close File
Objectif
Ferme un fichier ouvert.
Syntaxe
Close File [ # ] filenum
filenum est un nombre entier qui identifie le fichier à fermer.
Description
L'instruction Close File ferme un fichier qui avait été ouvert à l'aide de l'instruction Open File.
Remarque: L'instruction Open File et l'instruction Close File sont généralement exécutées sur des
fichiers, et non sur des tables MapInfo Professional. MapBasic propose un ensemble
d'instructions distinct ( Instruction Open Table, par exemple) pour manipuler les tables
MapInfo.
Exemple
Open File "cxdata.txt" For INPUT As #1
'
' read from the file... then, when done:
'
Close File #1
Voir également
Instruction Open File
Instruction Close Table
Objectif
Ferme une table ouverte. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de
MapInfo Professional.
Syntaxe
Close Table table [ Interactive ]
table est le nom d'une table qui est ouverte.
Description
L'instruction Close Table ferme une table ouverte. Pour fermer toutes les tables, utilisez l'instruction
Close All.
Référence
135
Instruction Close Window
Si une table est affichée dans une ou plusieurs fenêtres Graphique ou Données, ces fenêtres disparaissent
automatiquement à la fermeture de la table. Si l'instruction Close Table ferme la seule table ouverte
dans une fenêtre Carte, cette fenêtre est également fermée. Si vous utilisez l'instruction Close Table
pour fermer une table liée qui comprend des modifications en cours, MapInfo Professional conserve les
modifications apportées jusqu'à une prochaine session.
Enregistrement des modifications
Si vous omettez le mot-clé facultatif Interactive, MapBasic ferme la table, qu'elle comporte ou non des
modifications non enregistrées, et toutes les modifications non enregistrées sont ignorées. Si vous
incluez le mot-clé Interactive et que la table comprend des modifications non enregistrées, MapBasic
affiche une boîte de dialogue permettant à l'utilisateur d'enregistrer ou d'ignorer les modifications ou
d'annuler l'opération de fermeture.
Pour ignorer les modifications en cours, omettez le mot-clé Interactive ou émettez une instruction
Rollback avant d'appeler Close Table. Pour enregistrer les modifications en cours, émettez une
instruction Commit Table avant l'instruction Close Table. Pour déterminer si une table comprend des
modifications non enregistrées, appelez la fonction TableInfo( ) ( table, TAB_INFO_EDITED).
Enregistrement d'analyses thématiques et objets de dessin
Lorsque vous fermez la dernière table d'une fenêtre Carte, la fenêtre est également fermée. Il se peut
toutefois que l'utilisateur souhaite enregistrer les analyses thématiques ou objets de dessin avant de
fermer la fenêtre. Pour inviter l'utilisateur à enregistrer les thèmes ou les objets de dessin, incluez le
mot-clé Interactive.
Si vous omettez le mot-clé Interactive, l'instruction Close Table n'invitera pas l'utilisateur à enregistrer
les thèmes ou les objets de dessin. Si vous incluez le mot-clé Interactive, des boîtes de dialogue
inviteront l'utilisateur à enregistrer les thèmes et/ou objets de dessin, le cas échéant. (Aucun message
ne s'affiche si la fenêtre ne contient pas d'analyses thématiques ou d'objets de dessin.)
Exemples
Open Table "world"
' ... when done using the WORLD table,
' close it by saying:
Close Table world
Pour désélectionner les lignes sélectionnées, fermez la table Selection.
Close Table Selection
Voir également
Instruction Close All, Instruction Commit Table, Instruction Open Table, Instruction Rollback,
Fonction TableInfo( )
Instruction Close Window
Objectif
Ferme ou masque une fenêtre. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
136
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
Close Window window_spec [ Interactive ]
window_spec est un nom de fenêtre (Distance, par exemple), un code de fenêtre (WIN_RULER, par
exemple) ou un identifiant de fenêtre entier.
Description
L'instruction Close Window ferme ou masque une fenêtre MapInfo Professional.
Pour fermer une fenêtre de document (Carte, Données, Graphique ou Mise en page), spécifiez un
identifiant de fenêtre entier comme paramètre window_spec. Vous pouvez utiliser la fonction
FrontWindow( ) et la fonction WindowID( ) pour obtenir les identifiants de fenêtre entiers.
Pour fermer une fenêtre MapInfo Professional spécifique, définissez un des noms de fenêtre figurant
dans le tableau ci-dessous comme paramètre window_spec. Vous pouvez identifier une fenêtre spéciale
par un nom (par exemple, Distance) ou par un code (par exemple, WIN_RULER).
Pour fermer une fenêtre d'habillage, indiquez l'identifiant de la fenêtre en question, conformément à la
fonction MapperInfo( ).
Les valeurs window_spec disponibles sont répertoriées dans le tableau ci-dessous :
Valeur de window_spec
Description de la fenêtre
Aide
Fenêtre Aide. Son code de définition est WIN_HELP.
Infos
Fenêtre Informations. Son code de définition est WIN_INFO.
LayerControl
Fenêtre Contrôle des couches. Son code de définition est
WIN_LAYER_CONTROL. Dans une application de cartographie intégrée,
cela désigne la version modale.
Légende
Fenêtre Légende thématique. Son code de définition est WIN_LEGEND.
MapBasic
Fenêtre MapBasic. Vous pouvez également désigner cette fenêtre par
son code de définition : WIN_MAPBASIC.
Message
Fenêtre Message (qui apparaît lorsque vous exécutez une instruction
Print). Son code de définition est WIN_MESSAGE.
MoveMapTo
Fenêtre Localiser sur la carte. Son code de définition est
WIN_MOVE_MAP_TO.
Ruler
Fenêtre de l'outil Distance. Son code de définition est WIN_RULER.
Statistiques
Fenêtre Statistiques. Son code de définition est WIN_STATISTICS.
TableList
Fenêtre Liste des tables. Son code de définition est WIN_TABLE_LIST.
Dans une application de cartographie intégrée, cela désigne la version
modale.
Remarque: Les identifiants des fenêtres Liste des tables, Contrôle des couches et Localiser sur la
carte sont ignorés par l'instruction Set Window, la fonction WindowInfo( ) et la fonction
WindowID( ).
Référence
137
Fonction ColumnInfo( )
Enregistrement d'analyses thématiques et objets de dessin
Il se peut que l'utilisateur souhaite enregistrer les couches thématiques ou objets de dessin avant de
fermer la fenêtre. Pour inviter l'utilisateur à enregistrer les thèmes ou les objets de dessin, incluez le
mot-clé Interactive.
Si vous omettez le mot-clé Interactive, l'instruction Close Window n'invitera pas l'utilisateur à enregistrer
les thèmes ou les objets de dessin. Si vous incluez le mot-clé Interactive, des boîtes de dialogue
inviteront l'utilisateur à enregistrer les thèmes et/ou objets de dessin, le cas échéant. (Aucun message
ne s'affiche si la fenêtre ne contient pas d'analyses thématiques ou d'objets de dessin.)
Exemple
Close Window Legend
Voir également
Instruction Open Window, Instruction Print, Instruction Set Window
Fonction ColumnInfo( )
Objectif
Renvoie des informations sur une colonne dans une table ouverte. Vous pouvez appeler cette fonction
à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ColumnInfo( { tablename | tablenum } ,
{ columnname | "COLn" } , attribute )
tablename est une chaîne qui représente le nom d'une table ouverte.
tablenum est un entier qui représente le numéro d'une table ouverte.
columnname est le nom d'une colonne figurant dans cette table.
n est le nom d'une colonne figurant dans la table.
attribute est un code qui indique l'élément de la colonne à lire.
Valeur renvoyée
Dépend du paramètre attribute spécifié.
Description
La fonction ColumnInfo( ) renvoie des informations sur une colonne d'une table ouverte.
Le premier paramètre de cette fonction spécifie le nom ou le numéro d'une table ouverte. Le deuxième
paramètre spécifie la colonne dans laquelle effectuer la requête. Le paramètre attribute indique les
attributs de la colonne devant être renvoyés par la fonction. Le paramètre attribute peut être n'importe
quelle valeur de cette table.
138
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée par ColumnInfo( ) :
COL_INFO_NAME
1
Chaîne qui indique le nom de la colonne.
COL_INFO_NUM
2
Entier court qui indique le numéro de la colonne.
COL_INFO_TYPE
3
Entier court qui indique le type de la colonne
(reportez-vous au tableau ci-dessous).
COL_INFO_WIDTH
4
Entier court qui indique la largeur de la colonne. S'applique
aux colonnes de caractères et décimales uniquement.
COL_INFO_DECPLACES
5
Entier court qui indique le nombre de décimales dans une
colonne de décimales.
COL_INFO_INDEXED
6
Valeur logique qui indique si la colonne est indexée.
COL_INFO_EDITABLE
7
Valeur logique qui indique si la colonne peut être modifiée.
Si l'appel de la fonction ColumnInfo( ) spécifie COL_INFO_TYPE comme paramètre attribute, MapBasic
renvoie l'une des valeurs figurant dans le tableau ci-dessous :
Valeur renvoyée par ColumnInfo( ) ID
:
Type de colonne indiqué :
COL_TYPE_CHAR
1
Caractère.
COL_TYPE_DECIMAL
2
Décimale à virgule fixe.
COL_TYPE_INTEGER
3
Entier (4 octets).
COL_TYPE_SMALLINT
4
Entier court (2 octets).
COL_TYPE_DATE
5
Date.
COL_TYPE_LOGICAL
6
Valeur logique (TRUE ou FALSE).
COL_TYPE_GRAPHIC
7
Obj. de type de colonne spécial. Représente les objets
graphiques associés à la table.
COL_TYPE_FLOAT
8
Décimale à virgule flottante.
COL_TYPE_TIME
37
Heure.
COL_TYPE_DATETIME
38
Date et heure.
Les codes répertoriés dans les deux tableaux ci-dessus sont définis dans le fichier de définitions standard
de MapBasic MAPBASIC.DEF. Votre programme doit inclure « MAPBASIC.DEF » si vous avez l'intention
de référencer ces codes.
Conditions d'erreur
L'erreur ERR_TABLE_NOT_FOUND (405) est générée si la table spécifiée n'est pas disponible.
L'erreur ERR_FCN_ARG_RANGE (644) est générée si un argument se trouve en dehors de la plage
valide.
Référence
139
Fonction Combine( )
Exemple
Include "MAPBASIC.DEF"
Dim s_col_name As String, i_col_type As SmallInt
Open Table "world"
s_col_name = ColumnInfo("world","col1",COL_INFO_NAME)
i_col_type = ColumnInfo("world","col1",COL_INFO_TYPE)
Voir également
Fonction NumCols( ), Fonction TableInfo( )
Fonction Combine( )
Objectif
Renvoie une région ou une polyligne qui représente l'union de deux objets. Les objets ne peuvent pas
être des objets texte. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
Combine( object1, object2 )
object1, object2 sont deux expressions d'objet. Ces deux objets peuvent être fermés (un polygone ou
un cercle, par exemple) ou linéaires (une ligne ou une polyligne, par exemple)
Valeur renvoyée
Objet correspondant à l'union d'object1 et d'object2.
Description
La fonction Combine( ) renvoie un objet qui représente l'union géographique de deux expressions
d'objet. L'union de deux objets représente la surface totale couverte par l'un et l'autre des objets.
La fonction Combine( ) a été mise à jour de manière à permettre des assemblages hétérogènes et
l'utilisation des objets point, multipoint et collection comme objets d'entrée. Auparavant, les objets devaient
soit être tous les deux linéaires (polylignes, lignes ou arcs de cercle) et générer des objets polyligne,
soit être tous les deux fermés (régions, rectangles, rectangles arrondis ou ellipses) et générer des objets
région. Les assemblages hétérogènes ne sont pas autorisés, de même que les assemblages contenant
des objets point, multipoint et collection. Les objets texte ne sont toujours pas autorisés en tant qu'entrée
dans la fonction Combine( ).
Les objets multipoint et collection, introduits dans MapInfo Professional 6.5, étendent l'opération Combine.
Le tableau ci-dessous détaille les options d'assemblage possibles disponibles et les résultats obtenus
:
140
Type d'objet d'origine
Type d'objet d'origine
Type d'objet créé
point ou multipoint
point ou multipoint
Multipoint
linéaire (ligne, polyligne, arc de
cercle)
Linéaire
Polyligne
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Type d'objet d'origine
Type d'objet d'origine
Type d'objet créé
fermé (région, rectangle,
rectangle arrondi ou ellipse)
Fermé
Région
point, multipoint, linéaire, fermé, point, multipoint, linéaire, fermé, Collection
collection
collection
Les résultats renvoyés par Combine( ) sont semblables à ceux obtenus en sélectionnant Objets >
Assembler dans MapInfo Professional, à la différence près que l'élément de menu Assembler modifie
les objets d'origine alors que la fonction Combine( ) ne modifie pas les expressions object1 ni object2.
La fonction Combine( ) n'effectue pas non plus d'agrégation de données.
L'objet renvoyé par la fonction Combine( ) conserve les styles (la couleur, par exemple) du paramètre
object1 lorsque cela s'avère possible. Les objets collection générés recevront les parties de style possibles
d'object1 et les autres parties de style d'object2. Par exemple, si object1 est un polygone et object2 une
polyligne, la collection générée utilisera le pinceau et la bordure d'object1 pour le style du polygone
figurant dans la collection et la bordure d'object2 pour le style de la polyligne figurant dans la collection.
Voir également
Instruction Objects Combine
Fonction CommandInfo( )
Objectif
Renvoie des informations sur les événements récents. Vous pouvez appeler cette fonction à partir de
la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CommandInfo( attribute )
attribute est un code entier qui indique le type d'information à renvoyer.
Valeur renvoyée
Valeur logique, nombre à virgule flottante, entier ou chaîne, selon le cas.
Description
La fonction CommandInfo( ) renvoie des informations sur les événements récents qui affectent MapInfo
Professional. En cas de modification de la table « Selection » par exemple, elle indique l'emplacement
où l'utilisateur a cliqué avec la souris ou s'il a effectué un clic simple ou cliqué tout en appuyant sur la
touche Maj.
Après l'affichage d'une boîte de dialogue
Lorsque vous appelez CommandInfo( ) après avoir affiché une boîte de dialogue personnalisée, le
paramètre attribute peut être l'un des codes ci-dessous.
Référence
141
Fonction CommandInfo( )
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_DLG_OK
1
Valeur logique : TRUE si l'utilisateur a fermé une boîte de
dialogue personnalisée en cliquant sur OK; FALSE si
l'utilisateur a annulé l'opération en cliquant sur Cancel,
en appuyant sur Echap. (Cet appel est uniquement valide
à la suite d'une instruction Dialog.)
CMD_INFO_STATUS
1
Valeur logique : TRUE si l'utilisateur a laissé une opération
se terminer complètement ; FALSE si l'utilisateur a appuyé
sur le bouton Annuler pour l'arrêter.
Dans un gestionnaire d'options de menu ou de boîtes de dialogue personnalisées
Lorsque vous appelez CommandInfo( ) à partir de la procédure de gestionnaire d'une commande de
menu personnalisée ou d'une boîte de dialogue personnalisée, le paramètre attribute peut être l'un des
codes ci-dessous :
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_DLG_DBL
1
Valeur logique : TRUE si l'utilisateur a double-cliqué sur
un contrôle ListBox ou MultiListBox dans une boîte de
dialogue personnalisée. Cet appel n'est valide que dans
la procédure de gestionnaire d'une boîte de dialogue
personnalisée.
CMD_INFO_MENUITEM
8
Valeur entière qui représente l'identifiant de l'option de
menu choisie par l'utilisateur. Cet appel n'est valide que
dans la procédure de gestionnaire d'une option de menu
personnalisée.
Dans une procédure de gestionnaire standard
Lorsque vous appelez la fonction CommandInfo( ) à partir d'une procédure de gestionnaire système
standard (SelChangedHandler, par exemple), le paramètre attribute peut être l'un des codes figurant
dans le tableau ci-dessous. Pour plus de détails, reportez-vous aux descriptions respectivement relatives
aux procédures SelChangedHandler, RemoteMsgHandler, WinChangedHandler et WinClosedHandler.
À partir de la procédure SelChangedHandler :
Code attribute
ID
CMD_INFO_SELTYPE
1
Valeur renvoyée par CommandInfo( attribute ) :
1 si une ligne a été ajoutée à la sélection ;
2 si une ligne a été supprimée de la sélection ;
3 si plusieurs lignes ont été ajoutées à la sélection ;
4 si plusieurs lignes ont été désélectionnées.
142
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_ROWID
2
Valeur entière : numéro de la ligne qui a été sélectionnée
ou désélectionnée (s'applique uniquement lorsqu'une
seule ligne avait été sélectionnée ou désélectionnée).
CMD_INFO_INTERRUPT
3
Valeur logique : TRUE si l'utilisateur a interrompu une
sélection en appuyant sur Echap ; FALSE dans les autres
cas.
À partir de la procédure RemoteMsgHandler, de la fonction RemoteQueryHandler( ), ou de la
procédure RemoteMapGenHandler :
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_MSG
1000 Valeur de chaîne qui représente la chaîne d'exécution ou
le nom de l'option envoyé à MapInfo Professional par un
programme client. Pour plus d'informations, reportez-vous
à la section Procédure RemoteMsgHandler, Fonction
RemoteQueryHandler( ) ou Procédure
RemoteMapGenHandler.
À partir de la procédure WinChangedHandler ou procédure WinClosedHandler :
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_WIN
1
Valeur entière qui représente l'identifiant de la fenêtre qui
a changé ou de la fenêtre qui a été fermée. Pour plus
d'informations, reportez-vous à la section Procédure
WinChangedHandler ou Procédure WinClosedHandler.
À partir de la procédure ForegroundTaskSwitchHandler :
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_TASK_SWITCH
1
Valeur entière qui indique si MapInfo Professional vient
de devenir l'application active ou vient d'arrêter d'être
l'application active. La valeur renvoyée correspond à l'un
de ces codes : SWITCHING_INTO_MI Pro (si MapInfo
Professional a reçu le focus) ou
SWITCHING_OUT_OF_MapInfo Professional (si MapInfo
Professional a perdu le focus).
Après une opération de recherche
Suite à une instruction Find, le paramètre attribute peut être l'un de ces codes :
Référence
143
Fonction CommandInfo( )
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_X ou CMD_INFO_Y
1, 2 Nombre à virgule flottante indiquant les coordonnées x
ou y de l'emplacement trouvé.
CMD_INFO_FIND_RC
3
Valeur entière qui indique si une correspondance a été
trouvée pour l'instruction Find.
CMD_INFO_FIND_ROWID
4
Valeur entière indiquant le numéro d'identification de la
ligne trouvée.
Dans une procédure de gestionnaire d'un ToolButton personnalisé
Dans une procédure ToolHandler, vous pouvez spécifier l'un de ces codes :
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_CUSTOM_OBJ
1
Valeur d'objet : une polyligne ou un polygone dessiné par
l'utilisateur. S'applique aux modes de dessin
DM_CUSTOM_POLYLINE ou DM_CUSTOM_POLYGON.
CMD_INFO_X
1
Coordonnée x de l'emplacement où l'utilisateur a cliqué :
• Si l'utilisateur a cliqué dans une fenêtre Carte, la valeur
renvoyée représente une coordonnée de carte
(longitude, par exemple) dans l'unité du système de
coordonnées actuel.
• Si l'utilisateur a cliqué dans une fenêtre Données, la
valeur représente le numéro d'une colonne dans cette
fenêtre Données (un pour la colonne située à l'extrémité
gauche ou zéro pour la colonne select-box, par
exemple).*
• Si l'utilisateur a cliqué dans une fenêtre Mise en page,
la valeur représente la distance à partir du bord gauche
de cette fenêtre Mise en page (zéro représente le bord
gauche, par exemple) dans les unités papier actuelles
de MapBasic. Pour obtenir des détails sur les unités
papier, consultez la section Instruction Set Paper
Units.
CMD_INFO_Y
2
Coordonnée y de l'emplacement où l'utilisateur a cliqué :
• Si l'utilisateur a cliqué dans une fenêtre Carte, la valeur
représente une coordonnée de carte (latitude, par
exemple).
• Si l'utilisateur a cliqué dans une fenêtre Données, la
valeur représente un numéro de ligne. La valeur un
représente la ligne supérieure et la valeur zéro
représente la ligne des en-têtes de colonne en haut de
la fenêtre.*
144
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
• Si l'utilisateur a cliqué sur une fenêtre Mise en page, la
valeur représente la distance à partir du bord supérieur
de la fenêtre Mise en page.
CMD_INFO_SHIFT
3
Valeur logique : TRUE si l'utilisateur a maintenu la touche
Maj enfoncée pendant qu'il cliquait.
CMD_INFO_CTRL
4
Valeur logique : TRUE si l'utilisateur a maintenu la touche
Ctrl enfoncée pendant qu'il cliquait.
CMD_INFO_X2
5
Coordonnée x de l'emplacement où l'utilisateur a relâché
le bouton de la souris. S'applique uniquement lorsque le
toolbutton a été défini avec un mode de dessin qui autorise
les déplacements par glisser (DM_CUSTOM_LINE, par
exemple).
CMD_INFO_Y2
6
Coordonnée y de l'emplacement où l'utilisateur a relâché
le bouton de la souris.
CMD_INFO_TOOLBTN
7
Valeur entière qui représente l'identifiant du bouton sur
lequel l'utilisateur a cliqué.
* La fonction CommandInfo( ) ignore les clics réalisés dans le coin supérieur gauche d'une fenêtre
Données : au-dessus de la colonne de sélection et à gauche des en-têtes de colonne. Elle ignore
également les clics effectués au-delà de la dernière colonne ou ligne.
Prise en charge des liaisons dynamiques
Les applications MapBasic lancées via l'outil Liaison dynamique peuvent utiliser la fonction CommandInfo(
) pour obtenir des informations sur l'objet qui a été activé. Le tableau ci-dessous répertorie les attributs
qui peuvent être recherchés :
Code attribute
ID
Valeur renvoyée par CommandInfo( attribute ) :
CMD_INFO_HL_WINDOW_ID
17
Identifiant de la fenêtre Carte ou Données.
CMD_INFO_HL_TABLE_NAME
18
Nom de la table associée à la fenêtre Carte ou Données.
CMD_INFO_HL_ROWID
19
Identifiant de la ligne de la table correspondant à l'objet
carte ou à la ligne du tableau.
CMD_INFO_HL_LAYER_ID
20
Identifiant de la couche, si le programme a été lancé à
partir d'une fenêtre Carte.
CMD_INFO_HL_FILE_NAME
21
Nom du fichier lancé.
Voir également
Fonction FrontWindow( ), Fonction SelectionInfo( ) , Instruction Set Command Info, Fonction
WindowInfo( )
Référence
145
Instruction Commit Table
Instruction Commit Table
Objectif
Enregistre les modifications récentes sur le disque, ou enregistre une copie d'une table. Auparavant,
vous n'aviez pas la possibilité d'enregistrer les requêtes comprenant des types indéterminés, comme
cela était souvent le cas pour les requêtes ObjectInfo. Nous avons ajouté un paramètre Interactive, pour
vous permettre de spécifier des types indéterminés dans ce genre de requête. Si vous ne vous servez
pas du paramètre Interactive, le système utilise un type par défaut. Vous pouvez exécuter cette instruction
à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Commit Table table
[ As filespec
[ Type { NATIVE |
DBF [ Charset char_set ] |
Access Database database_filespec Version version Table tablename
[ Password pwd ] [ Charset char_set ] |
QUERY |
ODBC Connection ConnectionNumber Table tablename
[ Type SQLServerSpatial { Geometry | Geography } ]
[ ConvertDateTime { ON | OFF | INTERACTIVE } ] } ]
[ CoordSys... ]
[ Version version ] ]
[ Interactive ]
[ { Interactive | Automatic commit_keyword } ]
[ ConvertObjects { ON | OFF | INTERACTIVE } ]
tableName est le nom de la table tel que vous souhaitez qu'il s'affiche dans une base de données. Le
nom peut inclure un nom de schéma qui spécifie le schéma auquel appartient la table. Si aucun nom
de schéma n'est fourni, la table appartient au schéma par défaut. L'utilisateur est chargé de donner un
nom de schéma autorisé. Il doit également savoir si l'utilisateur de la connexion possède les droits
appropriés sur le schéma en question. Cette extension ne s'applique qu'à SQL Server 2005.
filespec est une spécification de fichier (qui peut inclure un chemin d'accès au répertoire). Correspond
à l'emplacement où le fichier .TAB MapInfo est enregistré.
ConvertDateTime si la table source contient des colonnes du type Heure ou Date, ces colonnes sont
converties en DATETIME ou TIMESTAMP selon que le serveur prend ou non en charge ces types de
données. Vous pouvez toutefois contrôler ce comportement à l'aide de la clause ConvertDateTime. Si
la table source ne contient pas le type Heure ou Date, cette clause n'est pas exploitable. Si
ConvertDateTime est défini sur Oui (paramètre défini par défaut), les colonnes du type Heure ou Date
sont converties en DATETIME ou TIMESTAMP. Si ConvertDateTime est défini sur Non, la conversion
n'a pas lieu et l'opération est annulée si nécessaire. Si ConvertDateTime est défini sur Interactif, une
boîte de dialogue s'affiche pour inviter l'utilisateur à faire un choix dont dépendra l'action exécutée. Si
l'utilisateur choisit de convertir, l'opération effectue la conversion et continue. S'il préfère annuler,
l'opération est annulée.
Le type Heure exige la conversion pour tous les serveurs pris en charge (Oracle, PostGIS, SQL Server
Spatial, MS SQL Server et Access) et le type Date exige la conversion pour des serveurs de base de
données MS SQL Server et Access.
146
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Remarque: Pour les serveurs de base de données MS SQL Server et Access, cette restriction pourrait
entraîner un problème de rétrocompatibilité. Dans les éditions précédentes, nous exécutions
la conversion sans l'expliquer. Dans la présente édition, nous vous proposons d'utiliser le
type de données Date/Heure au lieu du type de données Date. Si vous utilisez le type de
données Date, l'opération de conversion échouera.
version est une expression qui définit la version du format de base de données Microsoft Jet que la
nouvelle base de données doit utiliser : 4.0 (pour Access 2000) ou 3.0 (pour Access 95/97). Si aucune
valeur n'est indiquée, la version par défaut est 12.0. Si la base de données dans laquelle la table est
créée existe déjà, la version de base de données spécifiée est ignorée.
ConvertObjects ON convertit automatiquement tous les objets non pris en charge trouvés dans les objets
pris en charge.
ConvertObjects OFF ne convertit aucun objet non pris en charge. Si de tels objets sont présents, un
message d'erreur s'affiche pour indiquer que la table ne peut pas être enregistrée. (Avant l'implémentation
de cette fonction, seul ce comportement était disponible.)
ConvertObjects Interactive : si des objets non pris en charge sont trouvés dans une table, l'utilisateur
est invité à indiquer l'action qu'il souhaite effectuer.
char_set est le nom d'un jeu de caractères, reportez-vous à la section Clause CharSet.
database_filespec est une chaîne qui identifie le nom et le chemin d'accès d'une base de données
Access valide. Si la base de données spécifiée n'existe pas, MapInfo Professional crée un nouveau
fichier Access (.MDB ou ACCDB).
pwd est le mot de passe au niveau de la base de données, à spécifier lorsque la sécurité de la base de
données est activée.
ODBC indique qu'une copie de la table sera enregistrée dans le DBMS spécifié par ConnectionNumber.
ConnectionNumber est une valeur entière qui identifie la connexion spécifique à une base de données.
SQL Server Spatial et SQL Server 2008 prennent en charge les données spatiales de type GEOGRAPHY
et GEOMETRY.
CoordSys est une clause de système de coordonnées (reportez-vous à la section Clause CoordSys).
version correspond à 100 (pour créer une table pouvant être lue par les versions de MapInfo Professional)
ou à 300 (format MapInfo Professional 3.0) pour les tables dans un format différent d'Access. Pour les
tables Access, la version est 410.
commit_keyword est l'un des mots-clés suivants : NoCollision, ApplyUpdates, DiscardUpdates
Exemples de clauses ConvertDateTime
Commit Table DATETIME90 As "D:\MapInfo\Data\Remote\DATETIME90CPY.TAB"
Type ODBC Connection 1 Table """EAZYLOADER"".""DATETIME90CPY"""
ConvertDateTime Interactive
Server 1 Create Table """EAZYLOADER"".""CITY_125AA""" (Field1
Char(10),Field2 Char(10),Field3 Char(10),MI_STYLE Char(254)) KeyColumn
SW_MEMBER ObjectColumn SW_GEOMETRY
or
Server 1 Create Table "EAZYLOADER.CITY_125AA" (Field1 Char(10),Field2
Char(10),Field3 Char(10),MI_STYLE Char(254)) KeyColumn SW_MEMBER
ObjectColumn SW_GEOMETRY
Référence
147
Instruction Commit Table
Commit Table City_125aa As
"C:\Projects\Data\TestScripts\English\remote\City_125aacpy.tab" Type ODBC
Connection 1 Table """EAZYLOADER"".""CITY_125AACPY"""
or
Commit Table City_125aa As
"C:\Projects\Data\TestScripts\English\remote\City_125aacpy.tab" Type ODBC
Connection 1 Table "EAZYLOADER.CITY_125AACPY"
Description
Si aucune clause As n'a été spécifiée, l'instruction Commit Table enregistre toutes les modifications
en cours dans la table. Cela revient pour l'utilisateur à sélectionner Fichier > Enregistrer.
Une instruction Commit Table qui inclut une clause As revient pour l'utilisateur à sélectionner Fichier
> Enregistrer table sous. La clause As peut être utilisée pour enregistrer la table sous un autre nom,
dans un répertoire ou avec un type de fichier ou une projection différents.
Pour enregistrer la table sous un autre nom, spécifiez le nouveau nom dans la chaîne filespec. Pour
enregistrer la table dans un nouveau répertoire, spécifiez le chemin d'accès à ce répertoire au début de
la chaîne filespec.
Pour enregistrer la table avec un nouveau type de fichier, incluez une clause Type dans une clause As.
La clause CharSet spécifie un jeu de caractères. Le paramètre char_set doit être une constante de
chaîne, telle que "WindowsLatin1". Si aucune clause CharSet n'est spécifiée, MapBasic utilise le jeu
de caractères par défaut de la plate-forme matérielle sur laquelle le programme est exécuté.
Reportez-vous à la section Clause CharSet pour plus d'informations.
Pour enregistrer la table avec une projection ou un système de coordonnées différents, incluez une
clause CoordSys dans une clause As. Notez que seule une table pouvant être cartographiée peut avoir
un système de coordonnées ou une projection.
Pour enregistrer une requête, utilisez le type Requête correspondant à la table. Seules les requêtes
formulées à partir de l'interface utilisateur et les requêtes créées à partir d'une instruction Run Command
dans MapBasic peuvent être enregistrées. L'instruction Commit Table crée un fichier .TAB et un fichier
.QRY.
La clause Version contrôle le format de la table. Si vous spécifiez Version 100, MapInfo Professional
stocke la table dans un format lisible dans différentes versions de MapInfo Professional. Si vous spécifiez
Version 300, MapInfo Professional stocke la table au format MapInfo Professional 3.0. Notez que les
objets région et polyligne comprenant plus de 8 000 nœuds et les objets polyligne à plusieurs segments
requièrent la version 300. Si vous omettez la clause Version, la table est enregistrée dans le format de
version 300.
Remarque: Si une application MapBasic émet une instruction Commit Table...As influant sur une table
qui comporte des champs mémo, ces champs mémo ne seront pas conservés dans la
nouvelle table. Aucun avertissement ne sera affiché. Si la table est enregistrée dans une
nouvelle table à partir de l'interface utilisateur de MapInfo Professional (en sélectionnant
Fichier > Enregistrer table sous), l'utilisateur est averti de la suppression des champs
mémo. En revanche, lorsque la table est enregistrée sous un nouveau nom dans un
programme MapBasic, aucun avertissement n'est affiché.
148
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Enregistrement de tables liées
L'enregistrement d'une table liée peut générer un conflit dans le cas où un autre utilisateur aurait modifié
les mêmes données dans la même table. MapInfo Professional recherche les éventuels conflits et permet
à l'utilisateur de les résoudre. Les clauses suivantes vous permettent de contrôler ce qu'il se passe en
cas de conflit. (Ces clauses n'ont aucun effet sur l'enregistrement d'une table MapInfo conventionnelle.)
Interactive
En cas de conflit, MapInfo Professional affiche la boîte de dialogue Résolution de conflit. Après
l'exécution réussie d'une instruction Commit Table Interactive, MapInfo Professional affiche une boîte
de dialogue qui permet à l'utilisateur de rafraîchir la table.
Lorsque le paramètre Interactive est appelé pour l'instruction Commit Table As, il permet de gérer le fait
qu'un utilisateur enregistre une requête comportant une ou plusieurs colonnes de type indéterminé.
L'utilisation de ce paramètre entraîne l'affichage d'un message indiquant les colonnes de type indéterminé.
Celui-ci invite l'utilisateur à modifier le type et/ou la largeur de ces colonnes. Lorsque le paramètre
Interactive n'est pas utilisé, le système affecte, par défaut, le type Char(254) aux colonnes de type
indéterminé.
Exemple
Émettez la requête suivante dans la boîte de dialogue Sélection SQL puis cliquez sur OK ou entrez
cette requête dans la fenêtre MapBasic :
Select Highway, objectinfo(obj, 20) from US_HIWAY into Selection
Lorsque vous sélectionnez Fichier > Enregistrer table sous, choisissez la requête en cours, puis
cliquez sur le bouton Enregistrer sous. Le message d'erreur suivant apparaît :
En règle générale, cette boîte de dialogue contient la liste de toutes les colonnes de type indéterminé.
Dans cet exemple de requête, il n'y en a qu'une.
Cliquez sur OK pour afficher la boîte de dialogue Propriétés des champs.
Référence
149
Instruction Commit Table
Utilisez cette boîte de dialogue pour sélectionner le type d'informations souhaitées pour cette colonne.
S'il existe plusieurs types indéterminés, vous avez la possibilité de définir chacun de ces types
séparément. Si le type de certaines colonnes est déjà défini, vous ne pourrez pas modifier cette
information.
Cliquez sur OK pour enregistrer la requête.
Automatic NoCollision
En cas de conflit, MapInfo Professional n'enregistre aucune donnée. (Il s'agit du comportement par
défaut si l'instruction n'inclut pas de clause Interactive ou Automatic.)
Automatic ApplyUpdates
En cas de conflit, MapInfo Professional enregistre les mises à jour locales. (Cela équivaut à ignorer
complètement les conflits.)
Automatic DiscardUpdates
En cas de conflit, MapInfo Professional enregistre les mises à jour locales déjà présentes dans le RDBMS
(supprime vos mises à jour locales). Vous pouvez copier une table liée à l'aide de la clause As, mais la
nouvelle copie ne sera pas une table liée et aucune modification n'est répercutée au niveau du serveur.
Connexion ODBC
La longueur de tablename varie en fonction des bases de données. Il est recommandé d'utiliser un
maximum de 14 caractères pour un nom de table pour être sûr qu'il est adapté à toutes les bases de
données. L'instruction limite la longueur de la chaîne tablename à un maximum de 31 caractères.
En cas d'utilisation de la clause As avec le type ODBC, une copie de la table sera enregistrée dans la
base de données spécifiée par ConnectionNumber et portera le nom de tablename. Si la table source
est cartographiable, trois colonnes supplémentaires (Code, Objet et Style) peuvent être ajoutées à la
table de la base de données cible (tablename), que ces colonnes se trouvent ou non dans la table
source. Si la table source n'est pas cartographiable, une colonne supplémentaire (Code) peut être ajoutée
150
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
à la table de la base de données cible (tablename), même si elle ne se trouve pas dans la table source.
La colonne Code sera utilisée pour créer un index unique.
Un index spatial sera créé sur la base de la colonne Objet, le cas échéant. Les bases de données prises
en charge sont les suivantes : Oracle, SQL Server, IIS (SQL Server Spatial, Universal Server) et Microsoft
Access. Cependant, pour enregistrer une table avec une colonne géométrie/objet spatiale (et une table
comprenant uniquement des points), SpatialWare est requis pour SQL Server, et l'option spatiale est
nécessaire pour Oracle. Le schéma XY n'est pas pris en charge dans cette instruction.
Exemple
Dans l'exemple ci-dessous, une table STATES est ouverte et l'instruction Commit Table en effectue
une copie en l'enregistrant sous un nouveau nom (ALBERS). La clause CoordSys facultative enregistre
la table ALBERS à l'aide de la projection Albers avec respect des surfaces.
Open Table "STATES"
Commit Table STATES
As "ALBERS"
CoordSys Earth
Projection 9,7, "m", -96.0, 23.0, 20.0, 60.0, 0.0, 0.0
L'exemple ci-dessous illustre une connexion ODBC :
dim hodbc as integer
hodbc = server_connect("ODBC", "dlg=1")
Open table "C:\MapInfo\USA"
Commit Table USA
as "c:\temp\as\USA"
Type ODBC Connection hodbc Table "USA"
Voir également
Instruction Rollback
Fonction ConnectObjects( )
Objectif
Renvoie un objet qui représente la distance la plus courte ou la plus longue entre deux objets. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ConnectObjects( object1, object2, min )
object1 et object2 sont des expressions d'objet.
min est une expression logique dans laquelle la valeur TRUE calcule la distance minimale entre les
objets et la valeur FALSE calcule la distance maximale entre les objets.
Valeur renvoyée
Cette instruction renvoie une section simple, un objet polyligne à deux points qui représente la distance
la plus courte (min == TRUE) ou la plus longue (min == FALSE) entre object1 et object2.
Référence
151
Instruction Continue
Description
Un point de l'objet polyligne qui en résulte se trouve dans object1 et l'autre point dans object2. La distance
entre les deux objets d'origine peut être calculée à l'aide de la fonction ObjectLen( ). Si plusieurs
instances comportent la distance minimale ou maximale (par exemple, les deux points renvoyés ne sont
pas les seuls à correspondre à la distance la plus courte et il existe d'autres points qui représentent des
« nœuds »), ces fonctions renvoient une seule de ces instances. Il n'est pas possible de déterminer si
l'objet renvoyé est le seul à correspondre à la distance la plus courte.
ConnectObjects( ) renvoie un objet polyligne qui relie object1 à object2 selon la distance la plus courte
(min == TRUE) ou la plus longue (min == FALSE) sur la base d'une méthode de calcul sphérique. Si le
calcul ne peut pas être effectué à l'aide d'une méthode de distance sphérique (par exemple, si le système
de coordonnées MapBasic est non terrestre), un calcul cartésien est utilisé.
Instruction Continue
Objectif
Reprend l'exécution d'un programme MapBasic (suite à une Instruction Stop). Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Continue
Restrictions
L'instruction Continue ne peut être émise qu'à partir de la fenêtre MapBasic. Elle ne peut pas être
intégrée dans un programme compilé.
Description
L'instruction Continue reprend l'exécution d'une application MapBasic qui avait été interrompue suite
à une Instruction Stop.
Vous pouvez inclure une Instruction Stop dans un programme à des fins de débogage. Lorsqu'un
programme MapBasic rencontre une Instruction Stop, il est interrompu et l'option Exécuter du menu
Fichier devient automatiquement une option Continuer programme. Pour reprendre l'exécution de
l'application interrompue, sélectionnez Fichier > Continue Program. La saisie de l'instruction
Continuedans la fenêtre MapBasic revient à sélectionner l'option Continuer programme.
Clause Control Button / OKButton / CancelButton
Objectif
Partie d'une Instruction Dialog ajoute un bouton de commande à une boîte de dialogue.
Syntaxe
Control { Button | OKButton | CancelButton }
[ Position x, y ] [ Width w ] [ Height h ]
152
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
[
[
[
[
ID control_ID ]
Calling handler ]
Title title_string ]
Disable ] [ Hide ]
x, y indique la position du bouton dans la boîte de dialogue.
w indique la largeur du bouton dans la boîte de dialogue ; la largeur par défaut est de 40.
h indique la hauteur du bouton dans la boîte de dialogue ; la hauteur par défaut est de 18.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
handler est le nom de la procédure à appeler si un utilisateur clique sur le bouton.
title_string est la chaîne de texte qui apparaît sur le bouton.
Description
Si l'Instruction Dialog contient une clause Control Button un bouton de commande est inclus dans la
boîte de dialogue. Si le mot-clé OKButton apparaît à la place du mot-clé Button, la commande est un
type spécial de bouton. L'utilisateur choisit une commande OKButton pour cliquer sur OK et fermer la
boîte de dialogue. De la même façon, l'utilisateur choisit une commande CancelButton pour cliquer sur
Annuler et fermer la boîte de dialogue. Chaque boîte de dialogue ne doit pas comporter plus d'une
commande OKButton et CancelButton. Disable désactive initialement la commande (grisée). Hide
cache initialement la commande.
Utilisez l'Instruction Alter Control pour modifier le statut de la commande (par exemple, si la commande
est activée ou cachée).
Exemple
Control Button
Title "&Reset"
Calling reset_sub
Position 10, 190
Voir également
Instruction Alter Control, Instruction Dialog
Clause Control CheckBox
Objectif
Partie d'une instruction Dialog ; elle ajoute une commande de type case à cocher à une boîte de
dialogue.
Syntaxe
Control CheckBox
[ Position x, y ] [ Width w ]
[ ID control_ID ]
[ Calling handler ]
[ Title title_string ]
Référence
153
Clause Control DocumentWindow
[ Value log_value ]
[ Into log_variable ]
[ Disable ] [ Hide ]
x, y indique la position de la commande dans la boîte de dialogue.
w indique la largeur de la commande dans la boîte de dialogue.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
handler est le nom de la procédure à appeler si un utilisateur coche la case.
title_string est la chaîne de texte qui apparaît dans l'étiquette à droite de la case à cocher.
log_value est une valeur logique : FALSE configure la case pour qu'elle apparaisse initialement non
cochée.
log_variable est le nom d'une variable logique.
Description
Si une instruction Dialog contient une clause Control CheckBox, une commande de type case à
cocher est incluse dans la boîte de dialogue.
La clause Value contrôle l'apparence initiale. Si la clause Value est omise ou indique une valeur TRUE,
la case est cochée initialement. Si la clause Value indique une valeur FALSE, la case est vide initialement.
Disable désactive initialement la commande (grisée). Hide cache initialement la commande.
Exemple
Control CheckBox
Title "Include &Legend"
Into showlegend
ID 6
Position 115, 155
Voir également
Instruction Alter Control, Instruction Dialog, Fonction ReadControlValue( )
Clause Control DocumentWindow
Objectif
Partie d'une instruction Dialog ; elle ajoute une commande de type fenêtre de document à la boîte de
dialogue, dont la relation parent peut être modifiée pour la cartographie intégrée.
Syntaxe
Control DocumentWindow
[ Position x, y ]
[ Width w ] [ Height h ]
[ ID control_ID ]
[ Disable ] [ Hide ]
x, y indique la position de la commande dans la boîte de dialogue.
154
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
w indique la largeur de la commande dans la boîte de dialogue ; la largeur par défaut est de 100.
h indique la hauteur de la commande dans la boîte de dialogue ; la hauteur par défaut est de 100.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
Disable grise initialement la commande.
Hide cache initialement la commande.
Description
Si l'instruction Dialog contient une clause Control DocumentWindow une commande de type fenêtre
de document est incluse dans la boîte de dialogue. Elle peut être affectée à un autre parent via
l'instruction Set Next Document.
Exemple
L'exemple suivant dessine une légende dans une boîte de dialogue :
Control DocumentWindow
ID ID_LEGENDWINDOW
Position 160, 20
Width 120 Height 150
Le gestionnaire de la boîte de dialogue devra affecter un autre parent à la fenêtre, comme dans l'exemple
suivant :
Sub DialogHandler
OnError Goto HandleError
Dim iHwnd As Integer
Alter Control ID_LEGENDWINDOW Enable Show
' draw the legend
iHwnd = ReadControlValue(ID_LEGENDWINDOW)
Set Next Document Parent iHwnd Style WIN_STYLE_CHILD
Create Legend
Exit Sub
HandleError:
Note "DialogHandler: " + Error$( )
End Sub
Voir également
Instruction Dialog
Clause Control EditText
Objectif
Partie d'une Instruction Dialog ; elle ajoute une commande de zone EditText (saisie de texte) à une
boîte de dialogue.
Syntaxe
Control EditText
[ Position x, y ] [ Width w ] [ Height h ]
[ ID control_ID ]
Référence
155
Clause Control EditText
[ Value initial_value ]
[ Into variable ]
[ Disable ] [ Hide ] [ Password ]
x, y indique la position de la commande dans la boîte de dialogue.
w indique la largeur de la commande dans la boîte de dialogue.
h indique la hauteur de la commande dans la boîte de dialogue ; si la hauteur est supérieure à 20, le
texte de la commande comporte plusieurs lignes.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
initial_value est une chaîne ou une expression numérique qui apparaît initialement dans la boîte de
dialogue.
variable est le nom d'une variable de chaîne ou une variable numérique. MapInfo Professional stocke
les valeurs finales du champ dans la variable si l'utilisateur clique sur OK.
Le mot-clé Disable désactive initialement la commande (grisée).
Le mot-clé Hide cache initialement la commande.
Le mot-clé Password crée un champ de mot de passe qui affiche des astérisques à mesure que
l'utilisateur saisit des caractères.
Description
Si l'utilisateur entre plus de texte que ne peut en contenir la zone en une fois, MapInfo Professional fait
automatiquement défiler le texte pour gagner de la place. Une commande EditText peut contenir jusqu'à
32 767 caractères.
Si la hauteur est assez grande pour contenir deux ou plusieurs lignes de texte (par exemple, si la hauteur
est supérieure à 20), MapInfo Professional ajoute automatiquement les lignes nécessaires à mesure
que l'utilisateur saisit le texte. Si l'utilisateur entre un saut de ligne dans la zone EditText (par exemple,
sur Windows, si l'utilisateur appuie sur Ctrl+Enter quand il se trouve dans la zone EditText), la chaîne
associée à la commande EditText contiendra une valeur Chr$(10) à l'emplacement de chaque saut
de ligne. Si l'expression initial_value contient des valeurs intégrées Chr$(10), le texte apparaît au
format indiqué quand la boîte de dialogue s'affiche.
Pour activer la commande EditText, utilisez l'Instruction Alter Control...Active.
Exemple
Control EditText
Value "Franchise Locations"
Position 65, 8 Width 90
ID 1
Into s_map_title
Voir également
Instruction Alter Control, Instruction Dialog, Fonction ReadControlValue( )
156
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Clause Control GroupBox
Objectif
Partie d'une Instruction Dialog ; elle ajoute un rectangle avec une étiquette à une boîte de dialogue.
Syntaxe
Control GroupBox
[ Position x, y ] [ Width w ] [ Height h ]
[ ID control_ID ]
[ Title title_string ]
[ Hide ]
x, y indique la position de la commande dans la boîte de dialogue.
w indique la largeur de la commande dans la boîte de dialogue.
h indique la hauteur de la commande dans la boîte de dialogue.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
title_string est une chaîne de texte qui apparaît dans le coin supérieur gauche de la boîte de dialogue.
Le mot-clé Hide cache initialement la commande.
Exemple
Control GroupBox
Title "Level of Detail"
Position 5, 30
Height 40 Width 70
Voir également
Instruction Alter Control, Instruction Dialog
Clause Control ListBox / MultiListBox
Objectif
Partie d'une Instruction Dialog ; elle ajoute une liste à une boîte de dialogue.
Syntaxe
Control { ListBox | MultiListBox }
[ Position x, y ] [ Width w ] [ Height h ]
[ ID control_ID ]
[ Calling handler ]
[ Title { str_expr | From Variable str_array_var } ]
[ Value i_selected ]
[ Into i_variable ]
[ Disable ] [ Hide ]
x, y indique la position de la commande dans la boîte de dialogue.
Référence
157
Clause Control ListBox / MultiListBox
w indique la largeur de la commande dans la boîte de dialogue ; la largeur par défaut est de 80.
h indique la hauteur de la commande dans la boîte de dialogue ; la hauteur par défaut est de 70.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
handler est le nom de la procédure à appeler si un utilisateur clique ou double-clique sur la liste.
str_expr est une expression de chaîne qui contient la liste des éléments qui apparaîtront dans la
commande, délimités par des points-virgules.
str_array_var est le nom d'un tableau comportant des variables de type chaîne.
i_selected est une valeur d'entier court indiquant quelle liste d'élément doit être sélectionnée quand la
boîte de dialogue apparaît pour la première fois. Une valeur de 1 sélectionne le premier élément de la
liste. Si la clause est omise, aucun élément n'est sélectionné initialement.
i_variable est le nom d'une valeur d'entier court qui stocke la sélection finale de l'utilisateur.
Le mot-clé Disable désactive initialement la commande (grisée).
Le mot-clé Hide cache initialement la commande.
Description
Si l'Instruction Dialog contient une clause Control ListBox, une commande de type liste est incluse
dans la boîte de dialogue. Si la liste contient plus d'éléments que la commande ne peut en afficher en
une fois, MapBasic ajoute automatiquement une barre de défilement sur le côté droit de la commande.
Une commande MultiListBox est identique à une commande ListBox, sauf que l'utilisateur peut combiner
la touche Maj et le bouton de la souris pour sélectionner plusieurs éléments.
La clause Title indique le contenu de la liste. Si la clause Title indique une expression de chaîne qui
contient une liste d'éléments délimités par des points-virgules. Chacun apparaît comme un élément
distinct dans la liste. L'exemple suivant de clause Title utilise cette syntaxe :
Title "1st Quarter;2nd Quarter;3rd Quarter;4th Quarter"
Sinon, si la clause Title indique un tableau contenant des variables de chaîne, chaque entrée du tableau
apparaît comme un élément de la liste. L'exemple suivant de clause Title utilise cette syntaxe :
Title From Variable s_optionlist
Traitement d'une commande MultiListBox
Pour lire les éléments que l'utilisateur a sélectionnés dans une commande MultiListBox, attribuez une
procédure de gestionnaire qui sera appelée lors de la fermeture de la boîte de dialogue (par exemple,
attribuez un gestionnaire à la commande OKButton). Dans la procédure de gestionnaire, paramétrez
une boucle pour appeler la Fonction ReadControlValue( ) de façon répétitive
Le premier appel de la Fonction ReadControlValue( ) renvoie le chiffre du premier élément sélectionné
; le deuxième appel de la Fonction ReadControlValue( ) renvoie le chiffre du deuxième élément
sélectionné ; etc. Lorsque la Fonction ReadControlValue( ) renvoie le chiffre zéro, il n'a plus d'éléments
à sélectionner dans la liste. Si le premier appel de la Fonction ReadControlValue( ) renvoie le chiffre
zéro, cela signifie qu'aucun élément de la liste n'a été sélectionné.
158
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Traitement des doubles-clics
Si vous attribuez une procédure de gestionnaire à une commande de liste, MapBasic appelle la procédure
chaque fois qu'un utilisateur clique ou double-clique sur un élément de la liste. Dans certains cas, vous
souhaiterez traiter de façon spécifique les événements consécutifs à un double-clic. Par exemple, lorsque
l'utilisateur double-clique un élément de la liste, vous voudrez peut-être fermer la boîte de dialogue
comme si l'utilisateur avait cliqué sur un élément de la liste puis sur OK.
Pour visualiser un exemple, reportez-vous à l'application exemple NVIEWS.MB dans <votre
répertoire d'installation MapBasic >\SAMPLES\MAPBASIC\SNIPPETS.
Pour déterminer si l'utilisateur a cliqué ou double-cliqué, appelez la Fonction CommandInfo( ) dans la
procédure de gestionnaire de la commande de liste, comme indiqué dans l'exemple suivant :
Sub lb_handler
Dim i As SmallInt
If CommandInfo(CMD_INFO_DLG_DBL) Then
' ... then the user double-clicked.
i = ReadControlValue( TriggerControl( ) )
Dialog Remove
' at this point, the variable i represents
' the selected list item...
End If
End Sub
Exemple
Control ListBox
Title "1st Quarter;2nd Quarter;3rd Quarter;4th Quarter"
ID 3
Value 1
Into i_quarter
Position 10, 92 Height 40
Le programme exemple NVIEWS.MB explique comment créer une boîte de dialogue qui déclenche un
traitement spécifique après un double-clic. Ce programme affiche une boîte de dialogue avec une
commande ListBox. Pour fermer la boîte de dialogue, l'utilisateur peut cliquer sur un élément de la liste
puis sur OK, ou il peut double-cliquer sur un élément de la liste.
La clause Control ListBox suivante ajoute une liste à la boîte de dialogue Vues nommées. La commande
ListBox dispose d'une routine de gestionnaire, « listbox_handler ».
Control ListBox
Title desc_list
ID 1
Position 10, 20 Width 245 Height
Calling listbox_handler
64
Si l'utilisateur clique ou double-clique sur la commande ListBox, MapBasic appelle la sous-procédure
listbox_handler. Celle-ci appelle la Fonction CommandInfo( ) pour déterminer si l'utilisateur a cliqué
ou double-cliqué. Si l'utilisateur a double-cliqué, la procédure lance l'Instruction Dialog Remove pour
fermer la boîte de dialogue. Si elle ne lance pas l'Instruction Dialog Remove, la boîte de dialogue
restera à l'écran jusqu'à ce que l'utilisateur clique sur OK ou Cancel.
Sub listbox_handler
Dim i As SmallInt
' First, since user clicked on the name of a view,
' we can enable the OK button and the Delete button.
Alter Control 2 Enable
Référence
159
Clause Control PenPicker/BrushPicker/SymbolPicker/FontPicker
Alter Control 3 Enable
If CommandInfo(CMD_INFO_DLG_DBL) = TRUE Then
' ...then the user DOUBLE-clicked.
' see which list item the user clicked on.
i = ReadControlValue(1) ' read user's choice.
Dialog Remove
Call go_to_view(i) ' act on user's choice.
End If
End Sub
MapBasic appelle la procédure de gestionnaire si l'utilisateur clique ou double-clique. Celle-ci doit vérifier
si l'événement est un clic ou un double-clic.
Voir également
Instruction Alter Control, Instruction Dialog, Fonction ReadControlValue( ), Fonction CommandInfo(
)
Clause Control PenPicker/BrushPicker/SymbolPicker/FontPicker
Objectif
Partie d'une instruction Dialog ; elle ajoute un bouton représentant un crayon (ligne), un pinceau
(trame), un symbole (point), ou un caractère (texte).
Syntaxe
Control { PenPicker | BrushPicker | SymbolPicker | FontPicker }
[ Position x, y ] [ Width w ] [ Height h ]
[ ID control_ID ]
[ Calling handler ]
[ Value style_expr ]
[ Into style_var ]
[ Disable ] [ Hide ]
x, y indique la position de la commande dans la boîte de dialogue.
w indique la largeur de la commande dans la boîte de dialogue ; la largeur par défaut est de 20.
h indique la hauteur de la commande dans la boîte de dialogue ; la hauteur par défaut est de 20.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
handler est le nom de la procédure de gestionnaire. Si l'utilisateur clique sur une commande de sélection
puis sur OK dans la boîte de dialogue de style qui s'affiche, MapBasic appelle la procédure de gestionnaire
(handler).
style_expr est une expression Pen, Brush, Symbol ou Font qui indique quel style devra apparaître
initialement dans la commande. Le type d'expression doit correspondre au type de commande (par
exemple, si la commande est PenPicker, l'expression doit être Pen).
style_var est le nom de variable Pen, Brush, Symbol ou Font. Le type de variable doit correspondre au
type de commande (par exemple, si la commande est PenPicker, la variable doit être Pen).
Le mot-clé Disable désactive initialement la commande (grisée).
Le mot-clé Hide cache initialement la commande.
160
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
Une commande Picker (PenPicker, BrushPicker, SymbolPicker ou FontPicker) est un bouton qui
représente un crayon, un pinceau, un symbole ou un caractère. Si l'utilisateur clique sur le bouton, une
boîte de dialogue s'affiche et permet à l'utilisateur de changer de style.
Exemple
Control SymbolPicker
Position 140,42
Into sym_storemarker
Voir également
Instruction Alter Control, Instruction Dialog, Fonction ReadControlValue( )
Fonction ControlPointInfo( )
Objectif
Cette fonction renvoie les coordonnées de point de calage raster et géographique pour une table image.
Les coordonnées géographiques seront dans le système de coordonnées de MapBasic.
Syntaxe
ControlPointInfo( table_id, attribute, controlpoint_num )
table_id est une chaîne qui représente un nom de table, un numéro de table entier positif ou 0 (zéro).
La table doit être une table raster, grille ou WMS.
attribute est un code entier qui indique l'aspect du point de calage à renvoyer.
controlpoint_num est le nombre entier correspondant au numéro du point de calage à renvoyer. Les
numéros de points de calage commencent à 1. Le nombre maximal de points de calage peut être trouvé
en appelant une procédure.
RasterTableInfo(table_id, RASTER_TAB_INFO_NUM_CONTROL_POINTS)
Valeur renvoyée
Les coordonnées raster X et Y sont renvoyées sous la forme de nombres entiers. Les coordonnées
géographiques X et Y sont renvoyées sous la forme des nombres à virgule flottante. Cela dépend de
l'indicateur d'attribut, pour le point de calage indiqué par la valeur num_pt_ctrl.
Le paramètre attribute peut être n'importe quelle valeur qui figure dans le tableau ci-dessous. Les codes
dans la colonne de gauche (par exemple, RASTER_CONTROL_POINT_X) sont définis dans
MAPBASIC.DEF.
Code attribute
ID
Valeur renvoyée par la fonction ControlPointInfo()
RASTER_CONTROL_POINT_X
1
Résultat entier qui représente la coordonnée X du numéro
de point de calage indiqué par num_pt_ctrl
RASTER_CONTROL_POINT_Y
2
Résultat entier qui représente la coordonnée Y du numéro
de point de calage indiqué par num_pt_ctrl
Référence
161
Clause Control PopupMenu
Code attribute
ID
Valeur renvoyée par la fonction ControlPointInfo()
GEO_CONTROL_POINT_X
3
Résultat à virgule flottante qui représente la coordonnée
X du numéro de point de calage indiqué par num_pt_ctrl
GEO_CONTROL_POINT_Y
4
Résultat à virgule flottante qui représente la coordonnée
Y du numéro de point de calage indiqué par num_pt_ctrl
TAB_GEO_CONTROL_POINT_X
5
Résultat à virgule flottante qui représente la coordonnée
X du numéro de point de calage indiqué par
controlpoint_num stocké dans le fichier TAB d'image raster
TAB_GEO_CONTROL_POINT_Y
6
Résultat à virgule flottante qui représente la coordonnée
Y du numéro de point de calage indiqué par
controlpoint_num stocké dans le fichier TAB d'image raster
Clause Control PopupMenu
Objectif
Partie d'une Instruction Dialog ; elle ajoute une commande de menu contextuel à une boîte de dialogue.
Syntaxe
Control PopupMenu
[ Position x, y ]
[ Width w ]
[ ID control_ID ]
[ Calling handler ]
[ Title { str_expr | From Variable str_array_var } ]
[ Value i_selected ]
[ Into i_variable ]
[ Disable ]
x, y indique la position de la commande dans la boîte de dialogue.
w indique la largeur de la commande dans la boîte de dialogue ; la largeur par défaut est de 80.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
handler est le nom de la procédure à appeler lorsque l'utilisateur choisit un élément du menu.
str_expr est une expression de chaîne qui contient la liste des éléments qui apparaîtront dans la
commande, délimités par des points-virgules.
str_array_var est le nom d'un tableau comportant des variables de type chaîne.
i_selected est une valeur d'entier court indiquant quel élément doit être sélectionné par défaut quand la
boîte de dialogue apparaît. Une valeur de un sélectionne le premier élément de la liste ; si la clause est
omise, le premier élément de la liste est sélectionné.
i_variable est le nom d'une valeur d'entier court qui stocke la sélection finale de l'utilisateur (un, si le
premier élément est sélectionné, etc.).
162
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Le mot-clé Disable désactive initialement la commande (grisée).
Description
Si l'Instruction Dialog contient une clause Control PopupMenu une commande de menu contextuel
est incluse dans la boîte de dialogue. Un menu contextuel est une liste d'éléments, sélectionnables
individuellement. Initialement, seul l'élément sélectionné apparaît dans la boîte de dialogue.
Si l'utilisateur clique sur la commande, le menu entier s'affiche et l'utilisateur peut choisir un autre élément.
La clause Title indique la liste des éléments figurant dans le menu. Si la clause Title indique une
expression de chaîne qui contient une liste d'éléments délimités par des points-virgules. Chacun apparaît
comme un élément distinct dans le menu. L'exemple suivant de clause Title utilise cette syntaxe :
Title "Town;County;Territory;Region;Entire state"
Autrement, si la clause Title indique un tableau contenant des variables chaîne, chaque entrée du
tableau apparaît comme un élément du menu contextuel.
L'exemple suivant de clause Title utilise cette syntaxe :
Title From Variable s_optionlist
Exemple
Control PopupMenu
Title "Town;County;Territory;Region;Entire state"
Value 2
ID 5
Into i_map_scope
Position 10, 150
Voir également
Instruction Alter Control, Instruction Dialog, Fonction ReadControlValue( )
Clause Control RadioGroup
Objectif
Partie d'une Instruction Dialog ; elle ajoute une liste de boutons radio dans la boîte de dialogue.
Syntaxe
Control RadioGroup
[ Position x, y ]
[ ID control_ID ]
[ Calling handler ]
[ Title { str_expr | From Variable str_array_var } ]
[ Value i_selected ]
[ Into i_variable ]
[ Disable ] [ Hide ]
x, y indique la position de la commande dans la boîte de dialogue.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
Référence
163
Clause Control StaticText
handler est le nom de la procédure à appeler si un utilisateur clique ou double-clique sur un des boutons
radio.
str_expr est une expression de chaîne qui contient la liste des éléments qui apparaîtront dans la
commande, délimités par des points-virgules.
str_array_var est le nom d'un tableau comportant des variables de type chaîne.
i_selected est une valeur d'entier court indiquant quel élément doit être sélectionné par défaut quand la
boîte de dialogue apparaît. Une valeur de un sélectionne le premier élément de la liste ; si la clause est
omise, le premier élément de la liste est sélectionné.
i_variable est le nom d'une valeur d'entier court qui stocke la sélection finale de l'utilisateur (un, si le
premier élément est sélectionné, etc.).
Le mot-clé Disable désactive initialement la commande (grisée).
Le mot-clé Hide cache initialement la commande.
Description
Si l'Instruction Dialog contient une clause Control RadioGroup, un groupe de boutons radio est inclus
dans la boîte de dialogue. Chaque bouton radio est une étiquette à droite d'un cercle vide ou rempli.
L'élément sélectionné est indiqué par un cercle rempli. Un seul bouton radio peut être sélectionné à la
fois.
La clause Title indique la liste d'étiquettes qui apparaît dans le menu. Si la clause Title indique une
expression de chaîne qui contient une liste d'éléments délimités par des points-virgules. Chacun apparaît
comme un élément distinct dans la liste.
L'exemple suivant de clause Title utilise cette syntaxe :
Title "&Full Details;&Partial Details"
Autrement, si la clause Title indique un tableau contenant des variables chaîne, chaque entrée du
tableau apparaît comme un élément de liste. L'exemple suivant de clause Title utilise cette syntaxe :
Title From Variable s_optionlist
Exemple
Control RadioGroup
Title "&Full Details;&Partial Details"
Value 2
ID 2
Into i_details
Calling rg_handler
Position 15, 42
Voir également
Instruction Alter Control, Instruction Dialog, Fonction ReadControlValue( )
Clause Control StaticText
Objectif
Partie d'une Instruction Dialog ; elle ajoute une étiquette à une boîte de dialogue.
164
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
Control StaticText
[ Position x, y ]
[ Width w ] [ Height h ]
[ ID control_ID ]
[ Title title_string ]
[ Hide ]
x, y indique la position de la commande dans la boîte de dialogue.
w indique la largeur de la commande dans la boîte de dialogue.
w indique la hauteur de la commande dans la boîte de dialogue.
control_ID est un entier ; il ne peut pas être identique à celui d'une autre commande dans la boîte de
dialogue.
title_string est une chaîne de texte qui apparaît dans la boîte de dialogue en tant qu'étiquette.
Le mot-clé Hide cache initialement la commande.
Description
Si vous voulez que la chaîne de texte se déroule sur plusieurs lignes, intégrez les clauses optionnelles
Width et Height. Si vous omettez les clauses Width et Height, la commande de texte statique ne
s'affiche que sur une ligne du texte.
Exemple
Control StaticText
Title "Enter map title:"
Position 5, 10
Voir également
Instruction Alter Control, Instruction Dialog
Fonction ConvertToPline( )
Objectif
Renvoie un objet polyligne qui se rapproche de la forme d'un autre objet. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ConvertToPline( object )
object est l'objet à convertir. Il ne peut pas s'agir d'objets point ou texte.
Valeur renvoyée
Objet polyligne
Référence
165
Fonction ConvertToRegion( )
Description
La fonction ConvertToPline( ) renvoie un objet polyligne qui se rapproche du paramètre d'objet. Ainsi,
si le paramètre d'objet représente un objet polygone, la fonction ConvertToPline( ) renvoie une polyligne
de même forme et disposant du même nombre de nœuds que le polygone.
Les résultats de la fonction ConvertToPline( ) sont semblables à ceux obtenus en sélectionnant la
commande Objets > Convertir en polygone de MapInfo Professional. Cependant, la fonction
ConvertToPline( ) n'altère pas l'objet original.
Voir également
Instruction Objects Enclose
Fonction ConvertToRegion( )
Objectif
Renvoie un objet polygone qui se rapproche de la forme d'un autre objet. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ConvertToRegion( object )
object est l'objet à convertir. Il ne peut pas s'agir d'objets point, ligne ou texte.
Valeur renvoyée
Objet polygone
Description
Conserve la plupart des attributs de style. Les autres attributs sont déterminés par les styles Pen ou
Brush sélectionnés. Le dernier nœud des polylignes dont le premier nœud et le dernier nœud sont
identiques n'est pas copié. Sinon, MapInfo Professional ajoute un dernier nœud dont les sommets sont
identiques au premier nœud.
La fonction ConvertToRegion( ) renvoie un objet polygone qui se rapproche du paramètre d'objet. Par
conséquent, si le paramètre d'objet représente un rectangle, la fonction ConvertToRegion( ) renvoie
une région qui ressemble à un rectangle.
Les résultats de la fonction ConvertToRegion( ) sont semblables à ceux obtenus en sélectionnant la
commande Objets > Convertir en polygone de MapInfo Professional. Cependant, la fonction
ConvertToRegion( ) n'altère pas l'objet original.
Voir également
Instruction Objects Enclose
166
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction ConvexHull( )
Objectif
Renvoie un polygone enveloppant le contour d'un ensemble de points. L'enveloppe créée est convexe,
c'est à dire qu'elle ne contient pas d'inflexion concave, tout comme un ruban élastique entourant au plus
serré un ensemble de points. Les points utilisés pour constituer une enveloppe convexe peuvent être
des nœuds issus d'une région, d'une polyligne ou des points. Le polygone crée sera convexe, c'est à
dire qu'il n'y aura pas d'angle intérieur supérieur à 180 degrés. Vous pouvez appeler cette fonction à
partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ConvexHull( inputobject )
inputobject est une expression d'objet.
Valeur renvoyée
Objet polygone
Description
La fonction ConvexHull( ) renvoie une région représentant l'enveloppe convexe de l'ensemble de points
intégrant l'objet d'entrée. La fonction ConvexHull( ) agit sur un seul objet à la fois. Pour créer une
enveloppe convexe autour d'un ensemble d'objets, utilisez l'instruction Create Object As ConvexHull.
Exemple
L'exemple de programmation suivant sélectionne New York dans le fichier States, puis crée une enveloppe
convexe autour de la sélection.
Dim Resulting_object as object
select * from States
where State_Name = "New York"
Resulting_object = ConvexHull(selection.obj)
Insert Into States(obj) Values (Resulting_object)
Voir également
Instruction Create Object
Clause CoordSys
Objectif
Définit un système de coordonnées. Vous pouvez utiliser cette clause dans la fenêtre MapBasic dans
MapInfo Professional (voir CoordSys Earth and NonEarth Projection, CoordSys Layout Units,
CoordSys Table et CoordSys Window).
Référence
167
Clause CoordSys
CoordSys projection Earth et NonEarth
Syntaxe 1 (Projection Earth)
CoordSys Earth
[ Projection type, datum, unitname
[ , origin_longitude ] [ , origin_latitude ]
[ , standard_parallel_1 [ , standard_parallel_2 ] ]
[ , azimuth ] [ , scale_factor ]
[ , false_easting ] [ , false_northing ]
[ , range ] ]
[ Affine Units unitname, A, B, C, D, E, F ]
[ Bounds ( minx, miny ) ( maxx, maxy ) ]
Syntaxe 2 (Projection NonEarth)
CoordSys Nonearth
[ Affine Units unitname, A, B, C, D, E, F ]
Units unitname
[ Bounds ( minx, miny ) ( maxx, maxy ) ]
type est une valeur entière positive représentant le système de coordonnées à utiliser.
datum est une valeur entière positive identifiant le datum à référencer.
unitname est une chaîne représentant une unité de mesure de distance (m pour mètres, par exemple).
Pour obtenir une liste des noms d'unités, reportez-vous à la section Instruction Set Distance Units.
origin_longitude est une valeur de longitude à virgule flottante, en degrés.
origin_latitude est une valeur de latitude à virgule flottante, en degrés.
standard_parallel_1 et standard_parallel_2 sont des valeurs de latitude à virgule flottante, en degrés.
azimuth est une mesure d'angle à virgule flottante, en degrés.
scale_factor est un facteur d'échelle à virgule flottante.
range est une valeur à virgule flottante comprise entre 1 et 180, qui indique la plage terrestre affichée.
minx est une valeur à virgule flottante définissant la valeur x minimale.
miny est une valeur à virgule flottante définissant la valeur y minimale.
maxx est une valeur à virgule flottante définissant la valeur x maximale.
maxy est une valeur à virgule flottante définissant la valeur y maximale.
A procède à la mise à l'échelle ou à l'étirement le long de l'axe des X.
B procède à la rotation ou à l'inclinaison le long de l'axe des X.
C procède au déplacement le long de l'axe des X.
D procède à la mise à l'échelle ou à l'étirement le long de l'axe des Y.
E procède à la rotation ou à l'inclinaison le long de l'axe des Y.
F procède au déplacement le long de l'axe des Y.
168
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
La clause CoordSys définit un système de coordonnées, voire même une projection de carte à utiliser
en association avec le système de coordonnées. Notez que CoordSys est une clause, pas une instruction
MapBasic complète. Différentes instructions peuvent inclure la clause CoordSys clause. Par exemple,
une instruction Set Map peut comporter une clause CoordSys, auquel cas l'instruction Set Map
réinitialise la projection utilisée par la fenêtre Carte correspondante.
Utilisez CoordSys Earth (syntaxe 1) pour définir de manière explicite le système de coordonnées d'une
carte terrestre (une carte dont les coordonnées sont définies par rapport à un emplacement sur la surface
de la Terre). Les paramètres Projection facultatifs identifient la projection de carte à utiliser en association
avec le système de coordonnées (le cas échéant). Si la clause Projection est omise, MapBasic utilise
le datum 0. La clause Affine décrit la transformation affine permettant de créer le système de coordonnées
dérivées. Si la clause Projection est omise, le système de coordonnées de base est Longitude/Latitude.
Les coordonnées dérivées pouvant utiliser des unités différentes de celles des coordonnées de base,
vous devez définir les unités des coordonnées dérivées dans la clause Affine.
Utilisez CoordSys Nonearth (syntaxe 2) pour définir de manière explicite un système de coordonnées
non terrestres, tel qu'un système de coordonnées utilisé pour un plan au sol ou autre dessin de CAO.
Si la clause CoordSys définit des coordonnées non terrestres, le système de coordonnées de base est
une grille cartésienne arbitraire. La clause Units définit les unités des coordonnées de base et la clause
Affine les unités des coordonnées dérivées.
Quand une clause CoordSys apparaît comme partie d'une instruction Set Map ou d'une instruction
Set Digitizer, la sous-clause Bounds est ignorée. La sous-clause Bounds est requise pour les cartes
non terrestres lorsque la clause CoordSys apparaît dans une autre instruction, uniquement pour les
cartes non terrestres.
La clause Bounds définit les limites de la carte ; il n'est pas possible de créer des objets au-delà des
limites définies. Lors de la sélection d'un système de coordonnées terrestres, vous pouvez omettre la
clause Bounds, auquel cas MapInfo Professional utilise des limites par défaut qui englobent l'ensemble
de la Terre.
Remarque: Dans une instruction Create Map, vous pouvez augmenter la précision des coordonnées
de la carte en sélectionnant des limites plus restreintes.
Chaque projection de carte est définie sous la forme d'une équation. Étant donné que ces équations de
projection disposent d'ensembles de paramètres différents, plusieurs clauses CoordSys peuvent inclure
un nombre variable de paramètres dans la clause Projection facultative. Par exemple, la formule d'une
projection Robinson utilise les paramètres datum, unitname et origin_latitude, tandis que la formule d'une
projection transverse de Mercator utilise les paramètres datum, unitname, origin_longitude, origin_latitude,
scale_factor, false_easting et false_northing.
Pour plus d'informations sur les projections et les systèmes de coordonnées, reportez-vous à la
documentation de MapInfo Professional.
Chaque application MapBasic dispose de son propre paramètre CoordSys, qui définit le système de
coordonnées utilisé par l'application. Si une application MapBasic émet une instruction Set CoordSys,
les autres applications MapBasic utilisées ne sont pas affectées.
Référence
169
Clause CoordSys
Exemples
L'instruction Set Map contrôle les paramètres d'une fenêtre Carte existante. L'instruction Set Map
demande à MapInfo Professional d'afficher la fenêtre Carte à l'aide de la projection Robinson :
Set Map CoordSys Earth Projection 12, 12, "m", 0.
Le premier 12 spécifie la projection Robinson, le deuxième 12 spécifie le datum Sphère, la lettre « m »
indique que le système de coordonnées est en mètres et le dernier zéro indique que l'origine de la carte
doit être située à une longitude de zéro degré.
L'instruction suivante demande à MapInfo Professional d'afficher la fenêtre Carte sans aucune projection.
Set Map CoordSys Earth
L'exemple suivant ouvre la table World, puis utilise une instruction Commit Table pour enregistrer une
copie de cette table sous le nom WorldR. La nouvelle table est enregistrée avec la projection Robinson.
Open Table "world" As World
Table world As "RWORLD.TAB"
CoordSys Earth Projection 12, 12, "m", 0.
L'exemple suivant définit un système de coordonnées appelé DCS, dérivé du système de coordonnées
UTM Zone 10 utilisant la transformation affine.
x1 = 1.57x - 0.21y + 84120.5
y1 = 0.19x + 2.81y - 20318.0
Dans cette transformation, (x1, y1) représente les coordonnées dérivées DCS et (x, y) les coordonnées
de base UTM Zone 10. Si les coordonnées DCS sont mesurées en pieds, la clause CoordSys du
système DCS est la suivante :
CoordSys Earth
Projection 8, 74, "m", -123, 0, 0.9996, 500000, 0
Affine Units "ft", 1.57, -0.21, 84120.5, 0.19, 2.81, -20318.0
CoordSys Layout Units
Syntaxe
CoordSys Layout Units paperunitname
paperunitname est une chaîne représentant une unité de mesure de papier (in pour pouces, par exemple).
Pour obtenir une liste des noms d'unités, reportez-vous à la section Instruction Set Paper Units.
Description
Utilisez CoordSys Layout pour définir un système de coordonnées qui représente une fenêtre Mise en
page de MapInfo Professional. Le programme MapBasic doit émettre une instruction Set CoordSys
Layout avant de rechercher, créer ou manipuler de quelque manière que ce soit des objets de mise en
page. Le paramètre nom_unité est le nom d'une unité papier, tel que « in » pour pouces ou « cm » pour
centimètres.
170
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemples
L'instruction Set CoordSys attribue un système de coordonnées, utilisant les pouces comme unité de
mesure, à une fenêtre Mise en page :
Set CoordSys Layout Units "in"
Table CoordSys
Syntaxe
CoordSys Table tablename
tablename est le nom d'une table ouverte.
Description
Utilisez CoordSys Table pour faire référence au système de coordonnées dans lequel une table a été
enregistrée.
CoordSys Window
Syntaxe
CoordSys Window window_id
window_id est un identifiant de fenêtre entier correspondant à une fenêtre Carte ou Mise en page.
Description
Utilisez CoordSys Window pour faire référence au système de coordonnées déjà utilisé dans une
fenêtre.
Exemples
L'exemple suivant définit la projection d'une fenêtre Carte en fonction de la projection d'une autre fenêtre
Carte. Cet exemple part du principe que les identifiants des deux fenêtres Carte sont déjà inclus dans
deux variables entières (first_map_id et second_map_id).
Set Map
Window second_map_winid
CoordSys Window first_map_winid
Voir également
Instruction Commit Table, Instruction Set CoordSys, Instruction Set Map
Fonction CoordSysName$( )
Objectif
Renvoie une chaîne correspondant au nom du système de coordonnées à partir de la clause du système
de coordonnées de MapBasic. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Référence
171
Fonction CoordSysStringToEPSG( )
Syntaxe
CoordSysName$ ( string )
Valeur renvoyée
Chaîne
Exemple
Note CoordSysName$("Coordsys Earth Projection 1, 62")
Renvoie cette chaîne dans la boîte de dialogue MapInfo :
Longitude / Latitude (NAD 27 for Continental US)
Remarque: Si le nom d'un système de coordonnées n'est pas présent dans le fichier MapInfow.prj,
lorsque la carte utilise un système non terrestre en pieds américains (Survey), par exemple,
la fonction renvoie une chaîne vide.
Note CoordSysName$("CoordSys NonEarth Units " + """survey ft""" +
"Bounds (0, 0) (10, 10)")
En cas de transmission d'une clause CoordSys non valide (utilisant des unités non valides), telle que
celle-ci :
Note CoordSysName$("CoordSys Earth Projection 3, 74, " + """foo""" +
"-90, 42, 42.7333333333, 44.0666666667, 1968500, 0")
Une erreur indiquant un système de coordonnées non valide doit alors être renvoyée (erreur n°727).
Invalid Coordinate System: CoordSys Earth Projection <content>
Fonction CoordSysStringToEPSG( )
Objectif
Convertit une clause de système de coordonnées MapBasic en valeur entière EPSG utilisable avec
n'importe quelle fonction ou instruction MapBasic. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CoordSysStringToEPSG ( coordsys_string )
coordsys_string est une clause CoordSys MapBasic. La valeur EPSG (European Petroleum Survey
Group) est un entier. Par exemple, la clause CoordSys « Earth Projection 1, 104 » renvoie le code EPSG
4326. Pour obtenir une liste complète des codes EPSG utilisés avec MapInfo Professional, reportez-vous
au fichier MAPINFOW.PRJ de votre installation MapInfo Professional. Les codes EPSG sont identifiés
par un « \p » suivi d'un nombre.
Valeur renvoyée
Entier. Si aucune valeur EPSG n'est trouvée, -1 est renvoyé.
172
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
La fonction CoordSysStringToWKT$() convertit une Clause CoordSys MapBasic en valeur de chaîne
WKT.
Exemple
L'exemple suivant affiche le code EPSG correspondant au système de coordonnées pour une projection
terrestre 1, 104.
print CoordSysStringToEPSG("Earth Projection 1, 104"))
Voir également
Clause CoordSys
Fonction CoordSysStringToPRJ$( )
Objectif
Convertit une clause de système de coordonnées MapBasic en chaîne PRJ. Le format de chaîne PRJ
sert à décrire les systèmes de coordonnées MapInfo dans le fichier mapinfow.prj. Vous pouvez appeler
cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CoordSysStringToPRJ$( coordsys_string )
coordsys_string est une clause CoordSys MapBasic. La chaîne PRJ est une autre définition du système
de coordonnées utilisé dans le fichier mapinfow.prj. Par exemple, la clause CoordSys « Earth Projection
1, 104 » renvoie la chaîne PRJ « 1,104 ».
Valeur renvoyée
chaîne
Description
La fonction CoordSysStringToEPSG( ) convertit une Clause CoordSys MapBasic en valeur EPSG
entière.
Exemple
L'exemple suivant affiche la chaîne PRJ correspondant au système de coordonnées pour une projection
terrestre 1, 104.
print CoordSysStringToPRJ$("Earth Projection 1, 104")
Voir également
Clause CoordSys
Référence
173
Fonction CoordSysStringToWKT$( )
Fonction CoordSysStringToWKT$( )
Objectif
Convertit une clause CoordSys en valeur de chaîne WKT (Well-Known Text). Vous pouvez appeler
cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CoordSysStringToWKT$( coordsys_string )
coordsys_string est une clause CoordSys.
Valeur renvoyée
Chaîne WKT. Si aucune chaîne WKT n'est trouvée, une chaîne vide est renvoyée.
Exemple
L'exemple suivant :
Print coordsysstringtowkt$("CoordSys Earth Projection 8, 74, " + """m""" +
", -123, 0, 0.9996, 500000, 0 Affine Units " + """ft""" + ", 1.57, -0.21,
84120.5, 0.19, 2.81, -20318.0")
produit la chaîne WKTsuivante :
PROJCS["_MI_0",GEOGCS[ ,DATUM["North_American_Datum_1983",SPHEROID["Geodet
ic Reference System of
1980",6378137,298.2572221009113],AUTHORITY["EPSG","6269"]],PRIMEM["Greenw
ich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercato
r"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],P
ARAMETER["false_northing",0],UNIT["METER",1]]
Voir également
Clause CoordSys
Fonction Cos( )
Objectif
Renvoie le cosinus d'un nombre. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
Cos( num_expr )
num_expr est une expression numérique, qui représente un angle exprimé en radians.
174
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Cos( ) renvoie le cosinus de la valeur numérique num_expr value, qui représente un angle
exprimé en radians. Le résultat renvoyé par Cos( ) est compris entre un (1) et moins un (-1).
Pour convertir une valeur exprimée en degrés en radians, multipliez cette valeur par DEG_2_RAD. Pour
convertir une valeur exprimée en radians en degrés, multipliez cette valeur par RAD_2_DEG.
Remarque: Votre programme doit inclure le fichier MAPBASIC.DEF pour référencer DEG_2_RAD ou
RAD_2_DEG.
Exemple
Include "MAPBASIC.DEF"
Dim x, y As Float
x = 60 * DEG_2_RAD
y = Cos(x)
' y will now be equal to 0.5
' since the cosine of 60 degrees is 0.5
Voir également
Fonction Acos( ), Fonction Asin( ), Fonction Atn( ), Fonction Sin( ), Fonction Tan( )
Instruction Create Adornment
Objectif
Crée et affiche des habillages, tels qu'une barre d'échelle, sur une fenêtre Carte. Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Adornment
From Window map_window_id
Type adornment_type
[ Position {
[ Fixed [ ( x, y ) [ Units paper_units ] ] ] |
[ win_position [ Offset (x, y) ] [Units paper_units ] ]
} ]
[ Layout Fixed Position { Frame | Geographic } ]
[ Size [ Width win_width ] [ Height win_height ] [ Units paper_units ] ]
[ Background [ Brush ... ] [ Pen ... ] ]
[ < SCALEBAR CLAUSE > ]
Où SCALEBAR CLAUSE représente :
[
[
[
[
[
BarType type ]
Ground Units distance_units ]
Display Units paper_units ]
BarLength paper_length ]
BarHeight paper_height ]
Référence
175
Instruction Create Adornment
[ BarStyle [ Pen .... ] [ Brush ... ] [ Font ... ] ]
[ Scale [ { On | Off } ] ]
[ Auto [ { On | Off } ] ]
adornment_type peut avoir pour valeur scalebar.
La valeur (x, y) dans la clause Fixed représente la position mesurée du coin supérieur gauche de la
fenêtre Carte, soit (0, 0). Grâce à cette version du positionnement de l'habillage, l'habillage occupera
cette position dans la fenêtre Carte au fur et à mesure que celle-ci sera redimensionnée. Par exemple,
une position de (3, 3) pouces serait située vers le coin inférieur droit d'une petite fenêtre Carte, mais au
milieu d'une grande fenêtre Carte. Lorsque la taille de cette fenêtre change, l'habillage tente de rester
entièrement dans la fenêtre Carte affichée.
Par défaut, paper_units adopte l'unité papier de MapBasic. Pour obtenir des détails sur les unités papier,
consultez la section Instruction Set Paper Units.
win_position spécifie l'un des codes suivants, définis dans le fichier MAPBASIC.DEF.
ADORNMENT_INFO_MAP_POS_TL
ADORNMENT_INFO_MAP_POS_TC
ADORNMENT_INFO_MAP_POS_TR
ADORNMENT_INFO_MAP_POS_CL
ADORNMENT_INFO_MAP_POS_CC
ADORNMENT_INFO_MAP_POS_CR
ADORNMENT_INFO_MAP_POS_BL
ADORNMENT_INFO_MAP_POS_BC
ADORNMENT_INFO_MAP_POS_BR
(0)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
La valeur (x, y) dans la clauseOffsetest mesurée à partir de la position d'ancrage. Par exemple, si la
position win_position est ADORNMENT_INFO_MAP_POS_TL (en haut à gauche), le x se trouve à droite
et le y, en bas. Si la position win_position est ADORNMENT_INFO_MAP_POS_BR, le x est situé à
gauche et le y, en haut. Au centre gauche (ADORNMENT_INFO_MAP_POS_CL) et au centre droit
(ADORNMENT_INFO_MAP_POS_CR), le décalage du y est ignoré. En position centrée
(ADORNMENT_INFO_MAP_POS_CC), le décalage est complètement ignoré (x et y). Au centre en haut
(ADORNMENT_INFO_MAP_POS_TC) et au centre en bas (ADORNMENT_INFO_MAP_POS_BC), le
décalage du x est ignoré. Pour savoir comment définir ADORNMENT_INFO_MAP_POS_, reportez-vous
à win_position.
win_width et win_height définissent la taille de l'habillage. MapInfo Professional ignore ces paramètres
s'il s'agit d'un habillage de barre d'échelle, car la taille de l'habillage de barre d'échelle est déterminée
par certains éléments de la barre d'échelle, comme BarLength.
type spécifie l'un des codes suivants (définis dans le fichier MAPBASIC.DEF).
SCALEBAR_INFO_BARTYPE_CHECKEDBAR
SCALEBAR_INFO_BARTYPE_SOLIDBAR
SCALEBAR_INFO_BARTYPE_LINEBAR
SCALEBAR_INFO_BARTYPE_TICKBAR
(0)
(1)
(2)
(3)
0 Barre de vérification, 1 Barre pleine, 2 Barre de ligne ou 3 Barre à repères
distance_units correspond à l'unité de mesure dans laquelle la barre d'échelle sera affichée :
176
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur de
distance
Unité représentée
« ch »
chains
« cm »
centimètres
« ft »
pieds (également appelée pieds internationaux, 1 pied international étant égal à
exactement 30,48 cm)
« in »
pouces
« km »
kilomètres
« li »
links
«m»
mètres
« mi »
miles
« mm »
millimètres
« nmi »
miles nautiques (1 mile nautique représente 1 852 mètres)
« rd »
rods
« survey ft »
pieds américains (unité utilisée pour les coordonnées « State Plane 1927 » ; un
pied américain équivaut exactement à 12/39,37 mètres, soit approximativement
30,48006 cm)
« yd »
yards
paper_length représente une valeur de paper_units permettant de spécifier la longueur d'affichage de
la barre d'échelle. Indiquez la longueur de la barre d'échelle (jusqu'à 34 pouces ou 86,3 cm sur la carte).
paper_height représente une valeur de paper_units permettant de spécifier la hauteur d'affichage de la
barre d'échelle. Définissez la hauteur de l'habillage (jusqu'à 44 pouces ou 111,76 cm) sur la carte.
Description
La barre d'échelle apparaît sous forme de barre paper_length en unités paper_units.
Le paramètre Position peut avoir pour valeur Fixed par rapport au coin supérieur gauche de la fenêtre
Carte (quelle que soit la taille de cette dernière), ou par rapport à un point d'ancrage de la fenêtre Carte
spécifié par win_position.
Offset correspond à la valeur dont l'habillage sera décalé de la fenêtre Carte lorsque l'une des positions
win_position ancrées est utilisée.
Layout Fixed Position détermine la façon dont un habillage est positionné dans une mise en page
lorsqu'il utilise une position fixe. Si cette valeur est définie sur Geographic, l'habillage est placé au
même endroit géographique sur le cadre de carte de la mise en page que dans la fenêtre Carte. Si la
taille du cadre de la mise en page change, l'habillage se déplace par rapport au cadre pour correspondre
à la position géographique. Si elle est définie sur Frame, l'habillage reste à une position fixe par rapport
au cadre, conformément à la clause Position. Si la clause Position place l'habillage à (1,0, 1,0) pouces,
l'habillage est situé à 1 pouce sur la gauche et à un pouce vers le bas du coin supérieur gauche du
Référence
177
Instruction Create Adornment
cadre. Modifier la taille du cadre n'entraîne pas la modification de la position de l'habillage. La valeur
par défaut est Geographic.
Offset correspond à la valeur dont l'habillage sera décalé de la fenêtre Carte lorsque l'une des positions
win_positions ancrées est utilisée.
La clause Background lorsqu'elle est utilisée avec Brush indique la trame de remplissage à utiliser en
arrière-plan pendant la création ou modification d'une barre d'échelle. Lorsqu'elle est utilisée avec la
clause Pen, elle indique la bordure à utiliser en arrière-plan pendant la création ou modification d'une
barre d'échelle.
Brush représente une Brush clause valide. Seuls les styles Brush pleins sont autorisés. Si d'autres
valeurs que les valeurs pleines peuvent être entrées sans générer d'erreur, le type doit toujours être
plein. Cette clause sert uniquement à fournir la couleur de fond de l'habillage.
Pen représente une Pen clause valide. En raison des pochoirs (l'habillage est une fenêtre au sein de
la fenêtre Carte), les largeurs de crayon (Pen) autres que 1 risquent de ne pas s'afficher correctement.
Les styles Pen autres que pleins risquent également de ne pas s'afficher correctement. Cette clause
permet d'activer (plein) ou de désactiver (vide) et de définir la couleur de la bordure de l'habillage.
Font représente une Font clause valide.
Si la clause Auto est activée (On), les valeurs qui ont été arrondies automatiquement s'affichent dans
la barre d'échelle. Si la clause est désactivée (Off), les valeurs ne sont pas arrondies et s'affichent
comme dans les versions antérieures. La valeur par défaut est Auto Off, si elle n'est pas déjà spécifiée.
Le paramètre Scale doit être activé (On) pour inclure une fraction représentative avec la barre d'échelle.
(Dans MapInfo Professional, une échelle qui n'inclut pas les unités de distance, comme 1:63 360 ou 1:1
000 000, est appelée échelle cartographique.)
Exemple
Si la valeur paper_length est 1 et la valeur paper_unit , des pouces, la barre d'échelle apparaît sous la
forme 1 pouce. Elle est étiquetée dans l'unité distance_unit pour la quantité actuelle de paper_unit et
se met à jour de manière dynamique au fil des modifications de la carte (zoom et panoramique, par
exemple). La valeur distance_unit par défaut représente l'unité de distance actuelle dans la fenêtre
Carte. La valeur paper_height détermine la hauteur d'affichage de la barre d'échelle. Les styles Pen et
Brush définissent le style du dessin de la barre d'échelle et Font, le style du texte des étiquettes et des
annotations de la barre d'échelle. Le paramètre Scale fait apparaître une échelle cartographique.
L'exemple suivant affiche les paramètres par défaut :
create adornment
from window 261763624
type scalebar
position 6 offset (0.000000, 0.000000) units "in"
background Brush (2,16777215,16777215) Pen (1,2,0)
bartype 0 ground units "mi" display units "in"
barlength 1.574803 barheight 0.078740
barstyle Pen (1,2,0) Brush (2,0,16777215) Font ("Arial",0,8,0)
scale on
Voir également
Instruction Set Adornment
178
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Instruction Create Arc
Objectif
Crée un objet arc. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Create Arc
[ Into { Window window_id | Variable var_name } ]
( x1, y1 ) ( x2, y2 )
start_angle end_angle
[ Pen... ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
x1, y1 définit un coin du rectangle intérieur d'encadrement d'une ellipse. L'arc sera une section de cette
ellipse.
x2, y2 définit le coin opposé du rectangle.
start_angle définit l'angle de départ de l'arc, en degrés.
end_angle définit l'angle de fin de l'arc, en degrés.
La clause Pen définit un style de ligne.
Description
L'instruction Create Arc crée un objet arc.
Si l'instruction inclut la clause Into Variable facultative, l'objet est stocké dans la variable objet indiquée.
Si la clause Into définit un identifiant de fenêtre, l'objet est stocké à l'emplacement correspondant de la
fenêtre (la couche modifiable d'une fenêtre Carte, par exemple). Si la clause Into n'est pas définie,
MapBasic tente de stocker l'objet dans la fenêtre au premier plan. S'il n'est pas possible de stocker des
objets dans la fenêtre au premier plan (s'il s'agit d'une fenêtre Graphique, par exemple), aucun objet
n'est créé.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Notez que le
système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des fenêtres
Carte. Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en unités papier.
chaque coordonnée x représente une distance à partir du bord gauche de la page tandis que chaque
coordonnée y représente une distance à partir du bord supérieur de la page. Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set Paper Units. Par défaut, MapBasic utilise les
pouces comme unité papier. L'instruction Set Paper Units permet de sélectionner une autre unité
papier. Avant de créer des objets au niveau d'une fenêtre Mise en page, vous devez émettre une
instruction Set CoordSys Layout.
Référence
179
Instruction Create ButtonPad
La clause facultative Pen définit un style de ligne. Si elle est omise, l'instruction Create Arc utilise le
style de ligne actuellement défini dans MapInfo Professional (le style qui apparaît dans la boîte de
dialogue Options > Style ligne).
Voir également
Instruction Insert, Clause Pen, Instruction Update, Instruction Set CoordSys
Instruction Create ButtonPad
Objectif
Crée un ButtonPad (barre d'outils). Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Syntaxe
Create ButtonPad { title_string | ID pad_num } As
button_definition [ button_definition ... ]
[ Title title_string ]
[ Width width ]
[ Position ( x, y ) [ Units unit_name ] ]
[ ToolbarPosition ( row, column ) ]
[ { Show | Hide } ]
[ { Fixed | Float | Top | Left | Right | Bottom } ]
title_string est le titre du ButtonPad (« Dessin », par exemple).
pad_num est le numéro d'identification de la barre d'outils standard que vous souhaitez redéfinir :
•
•
•
•
•
•
•
1 pour la barre d'outils Général
2 pour la barre d'outils Dessin
3 pour la barre d'outils Outils
4 pour la barre d'outils Standard
5 pour la barre d'outils Système de gestion de base de données (DBMS)
6 pour les services Web
7 Réservé
width correspond à la largeur de la barre en termes de boutons inclus.
x, y spécifient la position de la barre lorsqu'elle est flottante, exprimée en unités papier. Pour obtenir des
détails sur les unités papier, consultez la section Instruction Set Paper Units.
unit_name est une chaîne représentant le nom des unités papier (par exemple, « in » pour pouces, «
cm » pour centimètres).
row et column définissent la position de la barre lorsqu'elle est ancrée en tant que barre d'outils (par
exemple, les coordonnées 0, 0 placent la barre sur le côté gauche de la ligne supérieure des barres
d'outils et les coordonnées 0, 1 représentent la deuxième barre de la ligne supérieure).
• La position row démarre au niveau supérieur et sa valeur augmente au fur et à mesure qu'elle descend
vers le niveau inférieur. Il s'agit d'une valeur relative aux lignes qui se trouvent à cette position
(supérieure ou inférieure). Lorsqu'une barre de menus se trouve à la même position, les nombres
deviennent alors relatifs à cette barre. Si une barre d'outils est située juste en dessous de la barre de
180
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
menus, sa valeur row est 0. Si elle est située directement au-dessus de la barre de menus, sa valeur
row est -1.
• La position column démarre à gauche et sa valeur augmente au fur et à mesure qu'elle se déplace
vers la droite. Il s'agit d'une valeur relative aux colonnes qui se trouvent à cette position (à gauche ou
à droite). Par exemple, si une barre d'outils est ancrée à gauche et que la barre de menus est ancrée
sur la position gauche, le numéro de la colonne à gauche de la barre de menus est -1. Le numéro de
la colonne à droite de la barre de menus est 0.
Chaque clause button_definition peut être composée du mot-clé Separator ou disposer de la syntaxe
suivante :
{ PushButton | ToggleButton | ToolButton }
Calling { procedure | menu_code | OLE methodname | DDE server, topic }
[ ID button_id ]
[ Icon icon_code [ File file_spec ] ]
[ Cursor cursor_code [ File file_spec ] ]
[ DrawMode dm_code ]
[ HelpMsg msg ]
[ ModifierKeys { On | Off } ]
[ { Enable | Disable } ]
[ { Check | Uncheck } ]
procedure correspond à la procédure de gestionnaire qui doit être appelée lors de l'utilisation d'un bouton.
menu_codeest un code de menu standard de MapInfo Professional, issu du fichier MENU.DEF
(M_FILE_OPEN, par exemple). MapInfo Professional exécute la commande de menu lorsque l'utilisateur
clique sur le bouton.
methodname est une chaîne définissant un nom de méthode OLE.
server, topic sont des chaînes définissant un serveur DDE et un nom de rubrique.
ID button_id indique un numéro de bouton unique. Ce numéro peut être employé comme paramètre
permettant au gestionnaire d'identifier le bouton utilisé (dans les cas où un même gestionnaire peut être
appelé par différents boutons) ou comme paramètre utilisé en association avec l'instruction Alter
Button.
Icon icon_code spécifie l'icône devant s'afficher sur le bouton icon_code peut correspondre à l'un des
codes d'icône MapInfo standard répertoriés dans ICONS.DEF, (MI_ICON_RULER (11), par exemple).
Si la sous-clause File spécifie le nom d'un fichier qui contient des ressources d'icône, icon_code est un
identifiant de ressource entier indiquant une ressource dans le fichier. Il est possible de définir la taille
des boutons avec un identifiant de fichier de ressources de icon_code pour les boutons de petite taille
et icon_code+1 pour les boutons de grande taille (avec des identifiants de fichier de ressources de
icon_code et icon_code+1 respectivement).
Cursor cursor_code spécifie la forme du pointeur de la souris lorsque l'utilisateur se sert de l'outil
ToolButton. cursor_codeest un code (MI_CURSOR_ARROW (0), par exemple) provenant d'ICONS.DEF.
Cette clause s'applique uniquement aux boutons d'outils. Si la sous-clause File définit le nom d'un fichier
contenant des ressources de type icône, cursor_code est un identifiant entier correspondant à une
ressource du fichier.
DrawMode dm_code indique si l'utilisateur peut cliquer et faire glisser ou uniquement cliquer avec l'outil.
dm_code est un code issu du fichier ICONS.DEF (DM_CUSTOM_LINE, par exemple). La clause
DrawMode s'applique uniquement aux boutons d'outils.
Référence
181
Instruction Create ButtonPad
HelpMsg msg définit le message d'aide de la barre d'état et, éventuellement, celui de l'info-bulle. La
première partie de la chaîne msg correspond au message d'aide de la barre d'état. Si la chaîne msg
inclut les caractères \n, le texte qui suit apparaîtra comme message d'aide dans l'info-bulle.
La clause ModifierKeys détermine si les touches Maj et Ctrl affectent le tracé élastique lorsque l'utilisateur
fait glisser la souris tout en utilisant un bouton d'outil. La valeur par défaut Off indique que les touches
Maj et Ctrl n'affectent pas le dessin.
Description
L'instruction Create ButtonPad permet de créer un ButtonPad personnalisé. Une fois créé, vous pouvez
le modifier à l'aide des instructions Alter Button et instructions Alter ButtonPad.
Il est possible de masquer toutes les barres d'outils. Pour créer une barre d'outils masquée, ajoutez le
mot-clé Hide.
Pour indiquer si la barre est fixée en haut de l'écran (« ancrage ») ou est flottante comme une fenêtre,
incluez respectivement le mot-clé Fixed ou le mot-clé Float. L'utilisateur peut également indiquer si la
barre peut être ancrée ou non en la faisant glisser vers le sommet de l'écran ou à partir de celui-ci. Pour
un plus grand contrôle de l'endroit de l'écran où la barre est ancrée, servez-vous des mots-clés Top
(équivalent de Fixed), Left, Right ou Bottom.
Lorsque la barre d'outils est flottante, sa position est contrôlée par la clause Position. Lorsqu'elle est
ancrée, sa position est contrôlée par la clause ToolbarPosition.
Pour plus d'informations sur ces boutons, reportez-vous au Guide de l'utilisateur MapBasic. Pour plus
d'informations sur les fonctions des boutons d'outils, reportez-vous à la section Instruction Alter
ButtonPad
À propos de la taille des icônes
Dans les versions antérieures à MapInfo Professional 10.0, les icônes personnalisées étaient
rectangulaires : les petites mesuraient 18x16 et les grandes, 26x24. Les fonctionnalités de barre d'outils
et de menu introduites dans MapInfo Professional 10.0 exigent des icônes carrées : 16x16 pour les
petites et 24x24 pour les grandes. Dans MapInfo Professional 10.0 et les versions ultérieures, les icônes
personnalisées apparaissent sous leur forme carrée et sont donc déformées. Pour corriger cette
déformation, MapInfo Professional fait disparaître les première et dernière colonnes de pixels, ce qui
revient à recadrer l'image. Il risque donc de manquer certaines informations sur l'image de l'icône obtenue.
Pour de meilleurs résultats, créez vos icônes en 16x16 (petites icônes) et en 24x24 (grandes icônes).
Les icônes de ces dimensions ne sont pas compatibles avec les versions antérieures à la version 10.0.1
et génèrent un message d'erreur.
Pour des raisons de compatibilité avec les versions antérieures à la version 10.0.1, utilisez la dimension
18x16 pour les petites icônes et 26x24 pour les grandes. Ces icônes sont déformées dans la version
10.0 et recadrées dans les versions ultérieures.
À propos des icônes des options de menu
Cette section décrit la façon dont MapInfo Professional 10.0 gère les icônes des options de menu :
• Les icônes des options de menu sont dynamiques et dépendent de celles des barres d'outils.
• Si un bouton d'une barre d'outils a une icône, vous pouvez l'utiliser pour une option de menu si elle
remplit l'une de ces conditions :
182
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
• Le bouton de la barre d'outils et l'option de menu doivent se trouver dans le même fichier MBX.
• Même combinaison gestionnaire/ID utilisateur ; toute option de menu qui appelle cette combinaison
depuis le fichier MBX est associée à cette icône.
• Même ID utilisateur appelant des gestionnaires différents.
• Même gestionnaire, pas d'ID utilisateur.
• L'ID doit être <= 32767.
• Pour les gestionnaires intégrés, il s'agit de rechercher en priorité une icône d'une barre d'outils intégrée.
Si aucune icône n'est trouvée, la recherche s'étend alors aux icônes de barre d'outils des fichiers MBX
pour trouver une correspondance.
• Les petites icônes apparaissent en regard des options de menu.
• Lorsqu'un fichier MBX est fermé, toutes les icônes associées le sont également et ne peuvent plus
être utilisées pour les options de menu.
Cette section décrit la façon dont MapInfo Professional 10.0.1 et les versions ultérieures gèrent les
icônes des options de menu :
• Il n'existe pas d'icône pour l'option de menu Table > Zones d'accessibilité car il n'y a pas de bouton
de barre d'outils correspondant. L'option de menu Objets > Zones d'accessibilité possède une icône
et un bouton de barre d'outils.
• Les autres options de menu peuvent désormais afficher une icône si une application MapBasic crée
un bouton de barre d'outils et une option de menu remplissant les conditions précédemment répertoriées
pour les icônes d'options de menu.
Options de la clause Calling
La clause Calling définit les opérations à déclencher lorsque l'utilisateur clique sur le bouton personnalisé.
Le tableau suivant détaille la syntaxe disponible.
Exemple de clause Calling
Description
Calling M_FILE_NEW
Si la mention Calling est suivie d'un code numérique issu du
fichier MENU.DEF, MapInfo Professional gère l'événement en
exécutant une commande de menu MapInfo Professional (
Fichier > Nouveau dans cet exemple).
Calling my_procedure
Si vous définissez un nom de procédure, l'événement appelle
celle-ci. La procédure doit appartenir au même programme
MapBasic.
Calling OLE "methodname"
Effectue un appel de méthode en direction de l'objet OLE
Automation défini par la méthode SetCallback de MapInfo
Professional. Reportez-vous à l' Guide de
l'utilisateur MapBasic.
Calling DDE "server","topic"
Se connecte à « server »,« topic » via DDE et envoie un
message d'exécution au serveur DDE.
Dans les deux derniers cas, la chaîne envoyée au serveur OLE ou DDE commence par « MI: », de
manière à ce que le serveur puisse détecter que le message provient de MapInfo Professional. Le reste
Référence
183
Instruction Create ButtonPad As Default
de la chaîne contient une liste de valeurs séparées par des virgules et renvoyées par les appels de
fonction CommandInfo(1) à CommandInfo(8). Pour des détails complets sur la syntaxe de la chaîne,
reportez-vous au Guide de l'utilisateur MapBasic.
Exemples
Créez une barre de boutons d'utilitaires :
Create ButtonPad "Utils" As
PushButton
HelpMsg "Choose this button to display query dialog"
Calling button_sub_proc
Icon MI_ICON_ZOOM_QUESTION
ToolButton
HelpMsg "Use this tool to draw a new route"
Calling tool_sub_proc
Icon MI_ICON_CROSSHAIR
DrawMode DM_CUSTOM_LINE
ToggleButton
HelpMsg "Turn proximity checking on/off"
Calling toggle_prox_check
Icon MI_ICON_RULER
Check
Title "Utilities"
Width 3
Show
Créez un bouton de barre d'outils qui lance la boîte de dialogue Préférences de la fenêtre Données qui
a un menu command ID de 222 :
Create ButtonPad "Prefs" As
PushButton
HelpMsg "Browser Preferences.\nBrowser Prefs"
Calling 222
Icon 99
Voir également
Instruction Alter Button, Instruction Alter ButtonPad, Fonction ButtonPadInfo( )
Instruction Create ButtonPad As Default
Objectif
Rétablit l'état par défaut d'un ButtonPad standard (par exemple, Général). Vous pouvez exécuter cette
instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create ButtonPad { title_string | ID pad_num } As Default
title_string représente le titre du ButtonPad (par exemple, Général, Standard ou Outils personnalisés).
pad_num est le numéro d'identification du ButtonPad (barre d'outils) standard que vous souhaitez redéfinir
:
• 1 pour la barre d'outils Général
184
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
•
•
•
•
•
•
2 pour la barre d'outils Dessin
3 pour la barre d'outils Outils
4 pour la barre d'outils Standard
5 pour la barre d'outils Système de gestion de base de données (DBMS)
6 pour les services Web
7 Réservé
Les ButtonPads personnalisés utilisent uniquement la chaîne title_string.
Description
Cette instruction rétablit l'état par défaut des ButtonPads standard (Général, Dessin et Outils) de MapInfo
Professional. Les ButtonPads personnalisés sont détruits.
Voir également
Instruction Alter Button,Instruction Alter ButtonPad, Instruction Create ButtonPad, Instruction
Create ButtonPads As Default
Instruction Create ButtonPads As Default
Objectif
Rétablit l'état par défaut des ButtonPads standard (le ButtonPad Général, par exemple). Vous pouvez
exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create ButtonPads As Default
Description
Cette instruction rétablit l'état par défaut des ButtonPads standard (Général, Dessin et Outils) de MapInfo
Professional. Les ButtonPads personnalisés sont détruits.
Utilisez cette instruction avec prudence. L'instruction Create ButtonPads As Default annule tous les
boutons personnalisés, même ceux définis par d'autres applications MapBasic.
Voir également
Instruction Alter Button,Instruction Alter ButtonPad, Instruction Create ButtonPad, Instruction
Create ButtonPad As Default
Instruction Create Cartographic Legend
Objectif
Crée et affiche les légendes de style cartographique, ainsi que les légendes thématiques d'une fenêtre
Carte active. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Référence
185
Instruction Create Cartographic Legend
Syntaxe
Create Cartographic Legend
[ From Window map_window_id ]
[ Behind ]
[ Position ( x, y ) [ Units paper_units ] ]
[ Width win_width [ Units paper_units ] ]
[ Height win_height [ Units paper_units ] ]
[ Window Title { legend_window_title }
[ ScrollBars { On | Off } ]
[ Portrait | Landscape | Custom ]
[ Style Size { Small | Large }
[ Default Frame Title { def_frame_title } [ Font... ] } ]
[ Default Frame Subtitle { def_frame_subtitle } [ Font... ] } ]
[ Default Frame Style { def_frame_style } [ Font... ] } ]
[ Default Frame Border Pen [ [ pen_expr ]
Frame From Layer { map_layer_id | map_layer_name
[ Using
[ Column { column | Object } [ FromMapCatalog { On | Off }]]
[ Label { expression | Default } ]
[ Position ( x, y ) [ Units paper_units ] ]
[ Title { frame_title [ Font... ] }
[ SubTitle { frame_subtitle [ Font... ] } ]
[ Border Pen pen_expr ]
[ Style [ Font...] [ Norefresh ] [ Text { style_name }
{ Line Pen... | Region Pen... Brush...| Symbol Symbol... } |
Collection [ Symbol ... ]
[ Line Pen... ] [ Region Pen... Brush ...] } ]
[ , ... ]
map_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
x indique la distance souhaitée entre la partie supérieure du document et celle de la fenêtre.
y indique la distance souhaitée entre la partie gauche du document et celle de la fenêtre.
Remarque: Le document désigne ici l'espace client (la barre de titre, la barre d'outils et la barre d'état
sont donc exclues).
paper_units est une chaîne qui représente le nom d'une unité papier (par exemple, « cm » pour
centimètres).
win_width est la largeur de fenêtre souhaitée.
win_height est la hauteur de fenêtre souhaitée.
legend_window_title est une expression de type chaîne représentant le titre de la fenêtre. La valeur par
défaut est « Légende de xxx » où xxx correspond au titre de la fenêtre Carte.
def_frame_title est une chaîne qui définit un titre de cadre par défaut. Elle peut inclure le caractère
spécial « # » qui sera remplacé par le nom de la couche active.
def_frame_subtitle est une chaîne qui définit un sous-titre de cadre par défaut. Elle peut inclure le
caractère spécial « # » qui sera remplacé par le nom de la couche active.
def_frame_style est une chaîne qui s'affiche en regard des symboles dans chaque cadre. Le caractère
« # » sera remplacé par le nom de la couche. Le caractère « % » sera remplacé par le texte « Ligne »,
186
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
« Point » ou « Région », selon le symbole. Par exemple, « % of # » "deviendra "Region of States" pour
la couche STATES.TAB.
pen_expr est une expression Pen, MakePen( width, pattern, color ) par exemple. Si une bordure par
défaut est définie, elle devient alors la valeur par défaut du cadre. S'il existe une clause de bordure au
niveau du cadre, elle est utilisée à la place de la valeur par défaut.
map_layer_id ou map_layer_name identifie une couche de la carte. Il peut s'agir d'un entier court ; par
exemple, utilisez 1 pour indiquer la couche de carte supérieure (autre que la couche Dessin) ou une
chaîne représentant le nom d'une table affichée sur la carte. Pour une couche thématique, vous devez
spécifier l'expression map_layer_id.
frame_title est une chaîne qui définit un titre de cadre. Si une clause Title est définie ici pour un cadre,
elle sera utilisée à la place de l'expression def_frame_title.
frame_subtitle est une chaîne qui définit un sous-titre de cadre. Si une clause Subtitle est définie ici
pour un cadre, elle sera utilisée à la place de l'expression def_frame_subtitle.
column est le nom d'une colonne d'attributs de la table de couches du cadre.
style_name est une chaîne qui s'affiche près de chaque symbole, ligne ou région dans un cadre
personnalisé.
Description
L'instruction Create Cartographic Legend vous permet de créer et d'afficher les légendes de style
cartographique, ainsi que les légendes thématiques associées à une fenêtre Carte active. Chaque
légende de style cartographique ou thématique n'est associée qu'à une seule fenêtre Carte. Il est donc
possible que plusieurs fenêtres Légende soient ouvertes à la fois.
Vous pouvez créer un cadre pour chaque couche de carte cartographique ou thématique que vous
souhaitez inclure à la légende. Les cadres cartographiques et thématiques incluent un titre et un sous-titre
de légende. Les cadres cartographiques affichent les styles d'une couche de carte. Les cadres de
légende affichent les couleurs, les symboles et les tailles représentés par le thème. Vous pouvez créer
des cadres dont les styles sont basés sur le style de la fenêtre Carte. Vous pouvez également créer des
cadres personnalisés.
Au moins une clause Frame est requise.
Toutes les clauses en rapport avec la légende complète (barres de défilement, largeur, etc.) doivent
traiter la première clause Frame.
La clause From Layer doit être la première clause après la clause Frame.
La clause Behind facultative place la légende derrière la fenêtre Analyse thématique.
La clause Position facultative détermine la position de la fenêtre au niveau du document MapInfo
Professional. La position du coin supérieur gauche du document MapInfo Professional est 0, 0. Les
clauses Width et Height facultatives contrôlent la taille de la fenêtre. Les valeurs de taille et de position
de la fenêtre utilisent les paramètres des unités papier, tels que « in » pour pouces ou « cm » pour
centimètres. Pour obtenir des détails sur les unités papier, consultez la section Instruction Set Paper
Units. Le paramètre d'unités papier actuelles de MapBasic est défini par défaut en pouces. Un programme
MapBasic peut modifier ce paramètre au moyen de l'instruction Set Paper Units. Une instruction
Create Cartographic Legend peut remplacer les unités papier en cours en intégrant la sous-clause
Units facultative dans les clauses Position, Width et/ou Height.
Référence
187
Instruction Create Cartographic Legend
Utilisez la clause ScrollBars pour afficher ou masquer les barres de défilement dans une fenêtre Carte.
Portrait et Landscape indiquent l'orientation des cadres de légende dans la fenêtre. Portrait permet
d'obtenir une orientation verticale. Landscape permet d'obtenir une orientation horizontale.
Indiquez la mention Custom pour personnaliser la clause Position d'un cadre.
La clause Position au niveau d'un cadre définit la position du cadre si la mention Custom apparaît. La
coordonnée X permet d'effectuer des mesures en partant de la gauche de la fenêtre Légende, tandis
que la coordonnée Y permet d'effectuer des mesures en partant du bas de la fenêtre Légende (le point
d'origine (0,0) se trouve donc en bas à gauche de la fenêtre Légende).
La clause Style Size facultative détermine la taille des exemples qui apparaissent dans les fenêtres
Légende. Si vous indiquez Style Size Small, des exemples de petite taille apparaîtront dans les fenêtres
Légende. Si vous indiquez Style Size Large, vous obtiendrez des exemples de grande taille.
Les clauses Position, Title, SubTitle, Border Pen et Style, utilisées au niveau du cadre, concernent
uniquement les couches de carte. Elles ne sont pas utilisées pour les couches thématiques. Dans le
cadre des couches thématiques, ces informations sont obtenues automatiquement à partir du thème.
La clause Font indique un style de texte. Si la police par défaut d'un nom de style, d'un sous-titre ou
d'un titre de cadre est définie, elle devient la police par défaut du cadre. Si une clause Title, Subtitle
ou Style existe au niveau du cadre et inclut une clause Font, la police définie au niveau du cadre est
utilisée. Si aucune police n'est définie à aucun niveau, le style de texte actuel est utilisé et les tailles en
points pour le titre, le sous-titre et le nom du style sont respectivement 10, 9 et 8.
La clause Style et le mot-clé NoRefresh vous permettent de créer des cadres personnalisés qui ne sont
pas remplacés lors de l'actualisation de la légende. Si le mot-clé NoRefresh est utilisé dans la clause
Style, les styles de la table ne sont pas analysés. Dans ce cas, la clause Style doit contenir votre liste
de définitions personnalisée pour les styles qui figurent dans le cadre. Pour ce faire, utilisez la clause
Text et la clause Line, Region ou Symbol appropriée. Les objets multipoint sont considérés comme
des objets point.
Les objets collection sont traités séparément. Lorsque MapInfo Professional crée une légende basée
sur des types d'objets, il commence par tracer les symboles point, puis les lignes et les régions. Les
objets collection sont dessinés en dernier. Dans les objets collection, l'ordre du tracé est le suivant :
point, ligne et région.
La mention column est le nom d'une colonne d'attributs de la table de couche du cadre. Object fait
référence à la colonne d'objets (cela signifie que les styles de légende sont basés sur les styles uniques
du fichier de carte). La valeur par défaut est Object.
FromMapCatalog ON récupère les styles de MapCatalog pour une table en accès direct. Si la table
n'est pas en accès direct, MapBasic revient au comportement par défaut d'une table sans accès direct
plutôt que de générer une erreur. Le comportement par défaut d'une table sans accès direct est
FromMapCatalog Off (styles de la carte, par exemple).
FromMapCatalog OFF récupère les styles uniques d'une carte pour la table en accès direct du serveur.
Pour que cela fonctionne, il doit s'agir d'une table en accès direct qui prend en charge les styles par
enregistrement. Si la table en accès direct ne prend pas en charge les styles par enregistrement, le
système revient au comportement par défaut des tables en accès direct, qui consiste à obtenir les styles
par défaut de MapCatalog (FromMapCatalog ON).
188
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Si Label est défini, indiquez une expression valide ou une valeur par défaut ; cela signifie que le style
du cadre par défaut est utilisé à la création de chaque texte de style, à moins que la clause Style ne
contienne du texte. La valeur par défaut est « Default ».
Le programme commence par rechercher des valeurs de métadonnées pour le titre, le sous-titre, la
colonne et l'étiquette dans le fichier TAB de chaque couche de cadre. S'il n'existe aucune valeur de
métadonnées pour la colonne, la valeur par défaut est Object. S'il n'existe aucune valeur de métadonnées
pour l'étiquette, la valeur par défaut est celle du style du cadre. S'il existe des clés de métadonnées de
légende et que vous souhaitez les modifier, vous devez utiliser la syntaxe MapBasic correspondante.
Exemple
L'exemple suivant indique comment créer le cadre de la légende cartographique d'une fenêtre Carte.
Les fenêtres Légende constituent une exception : pour créer le cadre d'une de ces fenêtres, vous devez
utiliser la clause Title à la place de la clause From Window.
Dim i_layout_id, i_map_id As Integer
Dim s_title As String
' here, you would store the Map window's ID in i_map_id,
' and store the Layout window's ID in i_layout_id.
' To obtain an ID, call FrontWindow( ) or WindowID( ).
s_title = "Legend of " + WindowInfo(i_map_id, WIN_INFO_NAME)
Set CoordSys Layout Units "in"
Create Frame
Into Window i_layout_id
(1,2) (4, 5)
Title s_title
Cette procédure permet de créer le cadre d'une fenêtre Légende cartographique. Pour créer le cadre
d'une fenêtre Légende, modifiez le titre comme suit.
S_title="Theme Legend of " + WindowInfo (I_map_id, WW_INFO_NAME)
Voir également
Instruction Set Cartographic Legend, Instruction Alter Cartographic Frame, Instruction Add
Cartographic Frame, Instruction Remove Cartographic Frame, Instruction Create Legend,
Instruction Set Window , Fonction WindowInfo( )
Fonction CreateCircle( )
Objectif
Renvoie une valeur Objet représentant un cercle. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CreateCircle( x, y, radius )
x est une valeur à virgule flottante indiquant la position x (longitude, par exemple) du centre du cercle.
y est une valeur à virgule flottante indiquant la position y (latitude, par exemple) du centre du cercle.
radius est une valeur à virgule flottante indiquant le rayon du cercle.
Référence
189
Fonction CreateCircle( )
Valeur renvoyée
Objet
Description
La fonction CreateCircle( ) renvoie une valeur Objet représentant un cercle.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées.
Remarque: Le système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées
des fenêtres Carte.
Le paramètre radius définit le rayon du cercle, exprimé dans l'unité de distance actuellement utilisée par
MapBasic. Par défaut, MapBasic utilise les miles comme unité de distance. L'instruction Set Distance
Units permet cependant de reconfigurer MapBasic de manière à ce qu'il utilise une autre unité de
distance.
Le cercle utilise le style Brush actuellement sélectionné. Pour créer un objet cercle à l'aide d'un style
Brush spécifique, vous pouvez émettre une instruction Set Style avant d'appeler CreateCircle( ).
Autrement, au lieu d'appeler CreateCircle( ), vous pouvez émettre une instruction Create Ellipse, qui
dispose des clauses facultatives Pen et Brush.
L'objet cercle créé à l'aide de la fonction CreateCircle( ) peut être attribué à une variable Object stockée
dans une ligne existante (à l'aide de l'instruction Update) ou insérée dans une nouvelle ligne (à l'aide
de l'instruction Insert).
Remarque: Avant de créer des objets au niveau d'une fenêtre Mise en page, vous devez émettre une
instruction Set CoordSys Layout.
Conditions d'erreur
L'erreur ERR_FCN_ARG_RANGE (644) est générée si un argument se trouve en dehors de la plage
valide.
Exemples
L'exemple suivant utilise l'instruction Insert pour insérer une nouvelle ligne dans la table Sites. La
fonction CreateCircle( ) est ajoutée au corps de l'instruction Insert pour définir l'objet graphique joint à
la nouvelle ligne.
Open Table "sites"
Insert Into sites (obj)
Values ( CreateCircle(-72.5, 42.4, 20) )
L'exemple suivant part du principe que la table Towers dispose de trois colonnes : CoordX, CoordY et
Rayon La colonne CoordX contient les valeurs de longitude, la colonne CoordY les valeurs de latitude
et la colonne Rayon les valeurs de rayon. Chaque ligne de la table décrit une tour de radiodiffusion et
la colonne Rayon indique le périmètre d'émission de chaque tour.
L'instruction Update utilise la fonction CreateCircle( ) afin de créer un objet cercle pour chaque ligne
de la table. Une fois l'instruction Update émise, un objet cercle est joint à chaque ligne de la table Towers.
190
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Le rayon de chaque objet cercle est obtenu à partir de la colonne Rayon et le centre de chaque cercle
se trouve à l'emplacement indiqué par les colonnes CoordX et CoordY.
Open Table "towers"
Update towers
Set obj = CreateCircle(xcoord, ycoord, radius)
Voir également
Instruction Create Ellipse, Instruction Insert, Instruction Update
Instruction Create Collection
Objectif
Associe des points, des objets linéaires et des objets fermés dans un seul objet. Un objet collection
s'affiche dans la fenêtre Données comme un seul enregistrement. Vous pouvez exécuter cette instruction
à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Collection [ num_parts ]
[ Into { Window window_id | Variable var_name } ]
Multipoint
[ num_points ]
( x1, y1 ) ( x2, y2 ) [ ... ]
[ Symbol... ]
Region
num_polygons
[ num_points1 ( x1, y1 ) ( x2, y2 ) [ ... ] ]
[ num_points2 ( x1, y1 ) ( x2, y2 ) [ ... ] ... ]
[ Pen... ]
[ Brush... ]
[ Center ( center_x, center_y ) ]
Pline
[ Multiple num_sections ]
num_points
( x1, y1 ) ( x2, y2 ) [ ... ]
[ Pen... ]
[ Smooth... ]
num_parts correspond au nombre de parties non vides d'une collection. Ce nombre est compris entre
0 et 3 et facultatif pour le code MapBasic (il est obligatoire pour les fichiers MIF).
num_polygons correspond au nombre de polygones de l'objet collection.
num_sections définit le nombre de sections incluses dans la polyligne à sections multiples.
Pen est une clause Pen qui définit le style de ligne.
Brush est une clause Brush qui définit le style de remplissage.
Exemple
create collection multipoint 2 (0,0) (1,1) region 3 3 (1,1) (2,2) (3,4) 4
(11,11) (12,12) (13,14) (19,20) 3 (21,21) (22,22) (23,24) pline 3 (-1,1)
(3,-2) (4,3)
dim a as object
create collection into variable a multipoint 2 (0,0) (1,1) region 1 3
Référence
191
Instruction Create Cutter
(1,1) (2,2) (3,4) pline 3 (-1,1) (3,-2) (4,3)
insert into test (obj) values (a)
create collection region 2 4 (-5,-5) (5,-5) (5,5) (-5,5) 4 (-3,-3) (3,-3)
(3,3) (-3,3) pline multiple 2 2 (-6,-6) (6,6) 2 (-6,6) (6,-6) multipoint 6
(2,2) (-2,-2) (2,-2) (-2,2) (4,1) (-1,-4)
Voir également
Instruction Create Multipoint
Instruction Create Cutter
Objectif
Crée un objet région qui peut être utilisé comme pochoir dans le cadre d'une opération de découpage
des objets, ainsi qu'un nouvel ensemble d'objets cible qui peut constituer un sous-ensemble de l'ensemble
original d'objets cible. Vous devez fournir un ensemble d'objets cible et un ensemble de polylignes en
tant qu'objet de sélection. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de
MapInfo Professional.
Syntaxe
Create Cutter Into Target
Description
Avant d'utiliser l'instruction Create Cutter, vous devez sélectionner au moins un objet polyligne et disposer
d'une cible modifiable. Pour ce faire, sélectionnez Objets > Définir cible, ou utilisez l'Instruction Set
Target. Les objets polyligne inclus dans la sélection doivent représenter une section unique et contiguë.
La sélection ne doit contenir aucune rupture ni intersection.
Pour que la cible soit un objet valide à découper, la polyligne doit couper le rectangle intérieur
d'encadrement de la cible. Il n'est cependant pas nécessaire que la polyligne coupe l'objet cible. L'objet
cible peut être une série d'îles (Hawaï, par exemple) et la polyligne peut être utilisée pour répartir les
îles en deux ensembles sans couper aucune d'entre elles. Si le rectangle intérieur d'encadrement d'une
cible ne coupe pas la polyligne, la cible en question est supprimée de la liste des cibles.
Conformément à cet ensemble modifié d'objets cible, le rectangle intérieur d'encadrement cumulé de
l'ensemble des objets est calculé et représente l'espace total à découper. La polyligne est alors prolongée,
si nécessaire, de manière à recouvrir le rectangle intérieur d'encadrement. Pour ce faire, la polyligne
est prolongée dans la direction cartésienne des deux derniers points de chaque extrémité, jusqu’à ce
qu'elle coupe le rectangle intérieur d'encadrement. La polyligne prolongée doit alors diviser l'espace
cible en deux sections. Un objet région, représentant une des deux sections, est créé et renvoyé.
Cette instruction renvoie l'ensemble modifié des objets cible (toujours définis comme cible), ainsi que
le nouvel objet pochoir Région. Cet objet région sera inséré dans la table cible (qui doit être une table
modifiable). Les objets polyligne originaux sont conservés mais ne sont plus sélectionnés. L'objet
sélectionné est le nouvel objet région. Si l'objet région obtenu est satisfaisant, cette action peut être
immédiatement suivie d'une opération de découpage, étant donné que les objets cible adaptés sont
définis et qu'un objet pochoir Région convenable est sélectionné.
Remarque: L'objet pochoir reste dans la couche cible. Vous devez supprimer l'objet pochoir
manuellement de la couche modifiable.
192
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
Open Table "C:\MapInfo_data\TUT_USA\USA\STATES.TAB"
Open Table "C:\MapInfo_data\TUT_USA\USA\US_HIWAY.TAB"
Map from States, Us_hiway
select * from States where state = "NY"
Set target On
select * from Us_hiway where highway = "I 90"
Create Cutter Into Target
Objects Split Into Target
Voir également
Instruction Set Target
Instruction Create Designer Legend
Objectif
Crée une nouvelle fenêtre de conception de légende permettant d'afficher des cadres de style
cartographique pour les couches de carte et des cadres de légende thématique pour les couches de
carte thématique d'une fenêtre Carte active. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Create Designer Legend
[ From Window map_window_id ]
[ Behind ]
[ Position ( x, y ) [ Units paper_units ] ]
[ Width win_width [ Units paper_units ] ]
[ Height win_height [ Units paper_units ] ]
[ Window Title { legend_window_title }
[ Portrait | Landscape | Custom ]
[ Default Frame Title { def_frame_title } [ Font... ] } ]
[ Default Frame Subtitle { def_frame_subtitle } [ Font... ] } ]
[ Default Frame Style { def_frame_style } [ Font... ] } ]
[ Default Frame Line Width width [ Units paper_units ] ]
[ Default Frame Region Width width [ Units paper_units ] ]
[ Default Frame Region Height height [ Units paper_units ] ]
[ Default Frame Auto Font Size { On | Off } ]
[ Legend Text Frame [ Text { frame_text [ Font... ] }
[ Position ( x, y ) [ Units paper_units ] ] ] ]
Frame From Layer { map_layer_id | map_layer_name
[ Using
[ Column { column | Object } [ FromMapCatalog { On | Off }]]
[ Label { expression | Default } ]
[ Position ( x, y ) [ Units paper_units ] ]
[ Region [ Height region_height [ Units paper_units ] ] ]
[ Region [ Width region_width [ Units paper_units ] ] ]
[ Line [ Width line_width [ Units paper_units ] ] ]
[ Auto Font Size { On | Off } ]
[ Title { frame_title [ Font... ] }
[ SubTitle { frame_subtitle [ Font... ] } ]
[ Columns number_of_columns ] |
[ Height frame_height [ Units paper_units ] ]
[ Order { Default | Ascending | Descending |
Référence
193
Instruction Create Designer Legend
{ Custom id | id : id [ , id | id : id ... ] ... } } ]
[ Style [ Font...] [ Norefresh ] [ Text { style_name }
{ Line Pen... | Region Pen... Brush...| Symbol Symbol... } |
Collection [ Symbol... ]
[ Line Pen... ] [ Region Pen... Brush...] } ]
[ , ... ]
map_window_id est un identifiant de fenêtre entier que vous pouvez obtenir en appelant la fonction
FrontWindow( ) et la fonction WindowID( ).
x indique la distance souhaitée entre la partie supérieure du document et celle de la fenêtre.
y indique la distance souhaitée entre la partie gauche du document et celle de la fenêtre.
Remarque: Le document désigne ici l'espace client (la barre de titre, la barre d'outils et la barre d'état
sont donc exclues).
paper_units est une chaîne qui représente le nom d'une unité papier. Pour obtenir une liste des unités
papier, reportez-vous à la section Instruction Set Paper Units.
win_width est la largeur de fenêtre souhaitée.
win_height est la hauteur de fenêtre souhaitée.
legend_window_title est une expression de type chaîne représentant le titre de la fenêtre. La valeur par
défaut est « Légende de xxx » où xxx correspond au titre de la fenêtre Carte.
def_frame_title est une chaîne qui définit un titre de cadre par défaut. Elle peut inclure le caractère
spécial « # » qui sera remplacé par le nom de la couche active.
def_frame_subtitle est une chaîne qui définit un sous-titre de cadre par défaut. Elle peut inclure le
caractère spécial « # » qui sera remplacé par le nom de la couche active.
def_frame_style est une chaîne qui s'affiche en regard des symboles dans chaque cadre. Le caractère
« # » sera remplacé par le nom de la couche. Le caractère « % » sera remplacé par le texte « Ligne »,
« Point » ou « Région », selon le symbole. Par exemple, "% of #" deviendra "Region of States" pour
la couche STATES.TAB.
width, en unités papier (voir paper_units), est la largeur souhaitée utilisée pour afficher les pavés
d'exemples de régions à l'intérieur de la fenêtre.
height value, en unités papier (voir paper_units) est la hauteur souhaitée utilisée pour afficher les pavés
d'exemples de régions à l'intérieur de la fenêtre.
frame_text est un texte pour un titre de légende, un sous-titre ou un texte descriptif (des informations
sur le copyright par exemple).
map_layer_id ou map_layer_name identifie une couche de la carte. Il peut s'agir d'un entier court ; par
exemple, utilisez 1 pour indiquer la couche de carte supérieure (autre que la couche Dessin) ou une
chaîne représentant le nom d'une table affichée sur la carte. Pour une couche thématique, vous devez
spécifier l'expression map_layer_id.
frame_title est une chaîne qui définit un titre de cadre. Si une clause Title est définie ici pour un cadre,
elle sera utilisée à la place de l'expression def_frame_title.
frame_subtitle est une chaîne qui définit un sous-titre de cadre. Si une clause Subtitle est définie ici
pour un cadre, elle sera utilisée à la place de l'expression def_frame_subtitle.
194
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
number_of_columns est le nombre de colonnes à afficher dans un cadre (à ne pas confondre avec le
nombre de colonnes d'une mise en page au format portrait).
frame_height remplace la clause Columns lorsque l'utilisateur redimensionne un cadre de légende.
Hauteur du cadre en unités papier. Valeur écrite dans le document WOR lorsque le cadre a été
manuellement redimensionné.
column est le nom d'une colonne d'attributs de la table de couches du cadre.
region_height est une valeur qui représente la nouvelle hauteur d'un pavé dans le cadre de la carte de
la fenêtre de conception de légende. Vous pouvez spécifier de 8 à 144 points, de 0,666667 à 12 picas,
de 0,111111 à 2 pouces, de 0,282222 à 5,08 millimètres ou de 0,282222 à 5,08 centimètres. Si elle
n'est pas spécifiée, la valeur par défaut de 32 points est utilisée (peut être définie comme une préférence).
region_width est une valeur qui représente la nouvelle largeur d'un pavé dans le cadre de la carte de la
fenêtre de conception de légende. Vous pouvez spécifier de 8 à 144 points, de 0,666667 à 12 picas, de
0,111111 à 2 pouces, de 0,282222 à 5,08 millimètres ou de 0,282222 à 5,08 centimètres. Si elle n'est
pas spécifiée, la valeur par défaut de 32 points est utilisée (peut être définie comme une préférence).
line_width est une valeur qui représente la nouvelle largeur d'un segment de ligne dans le cadre de la
carte de la fenêtre de conception de légende. Vous pouvez spécifier de 12 à 144 points, de 1 à 12 picas,
de 0,666667 à 2 pouces, de 4,23333 à 50,80 millimètres ou de 4,23333 à 50,80 centimètres. Si elle
n'est pas spécifiée, la valeur par défaut de 36 points est utilisée (peut être définie comme une préférence).
style_name est une chaîne qui s'affiche près de chaque symbole, ligne ou région dans un cadre
personnalisé.
Description
L'instruction Create Designer Legend vous permet de créer et d'afficher les légendes cartographiques
ainsi que les légendes thématiques associées à une fenêtre Carte active. Chaque légende cartographique
ou thématique n'est associée qu'à une seule fenêtre Carte. Il est donc possible que plusieurs fenêtres
de conception de légende soient ouvertes à la fois.
Vous pouvez créer un cadre de légende pour chaque couche de carte cartographique ou thématique
que vous souhaitez inclure à la fenêtre de conception de légende. Les légendes peuvent inclure un titre
et un sous-titre. Elles peuvent afficher les styles d'une couche de carte, ou les couleurs, symboles et
tailles représentés par un thème. Vous pouvez également créer des légendes définissant vos propres
styles personnalisés à l'aide de l'instruction Create Designer Legend.
Au moins une clause Frame est requise. Chaque clause Frame représente une légende créée dans la
fenêtre de conception de légende.
Toutes les clauses en rapport avec la fenêtre de conception de légende complète (largeur, etc.) doivent
traiter la première clause Frame.
La clause From Layer doit être la première clause après la clause Frame.
La clause Behind facultative place la légende derrière la fenêtre Carte.
La clause Position facultative détermine la position de la fenêtre au niveau du document MapInfo
Professional. La position du coin supérieur gauche du document MapInfo Professional est 0, 0. Les
clauses Width et Height facultatives contrôlent la taille de la fenêtre. Les valeurs de taille et de position
de la fenêtre utilisent les paramètres des unités papier, tels que « in » pour pouces ou « cm » pour
centimètres. Le paramètre d'unités papier actuelles de MapBasic est défini par défaut en pouces. Un
Référence
195
Instruction Create Designer Legend
programme MapBasic peut modifier ce paramètre au moyen de l'instruction Set Paper Units. Une
instruction Create Designer Legend peut remplacer les unités papier en cours en intégrant la sous-clause
Units facultative aux clauses Position, Width et/ou Height.
La clause Region Height indique une hauteur spécifique pour un pavé dans le cadre de légende de la
fenêtre de conception de légende.
La clause Region Width indique une largeur spécifique pour un pavé dans le cadre de légende de la
fenêtre de conception de légende.
La clause Line Width indique une largeur spécifique pour un échantillon de ligne dans le cadre de
légende de la fenêtre de conception de légende.
Auto Font Size active ou désactive le redimensionnement du pavé de la légende en fonction du paramètre
de taille de police.
Portrait ou Landscape décrit l'orientation ou la disposition automatique des cadres de la fenêtre de
conception de légende. Portrait permet d'obtenir une orientation verticale. Landscape permet d'obtenir
une orientation horizontale.
Si vous sélectionnez Custom, vous pouvez spécifier une clause Position personnalisée pour chaque
cadre.
La clause Position au niveau d'un cadre définit la position du cadre si la mention Custom apparaît. La
coordonnée x permet d'effectuer des mesures en partant de la gauche de la fenêtre de conception de
légende, tandis que la coordonnée y permet de le faire en partant du bas de la fenêtre de conception
de légende (le point d'origine (0,0) se trouve donc en bas à gauche de la fenêtre de conception de
légende).
Les clauses Position, Default Frame Title, Default Frame SubTitle et Default Frame Style au niveau
du cadre sont utilisées uniquement pour les légendes de couches de carte. Elles ne sont pas utilisées
pour les légendes de couches thématiques. Pour une légende thématique, ces informations sont obtenues
automatiquement à partir du thème.
Les paramètres de cadre par défaut sont facultatifs. Si ces paramètres ne sont pas spécifiés, les valeurs
par défaut des préférences de l'application sont utilisées (dans les limites des valeurs minimale et
maximale). Les nouveaux paramètres des pavés remplacent les paramètres de cadre par défaut.
• Default Frame Line Width est la largeur en unités papier des exemples de style de ligne.
• Default Frame Region Width est la largeur en unités papier des exemples de style de région.
• Default Frame Region Height est la hauteur en unités papier des exemples de style de région.
paper_units est une chaîne qui représente le nom d'une unité papier. Pour obtenir des détails sur les
unités papier, consultez la section Instruction Set Paper Units.
Legend Text Frame crée un cadre de texte dans la fenêtre de conception de légende.
Si Text n'indique pas la clause Font, la police par défaut est utilisée.
Si Column est défini, column correspond au nom d'une colonne d'attributs de la table de couche du
cadre. Object fait référence à la colonne objet (cela signifie que les styles de légende sont basés sur
les styles uniques du fichier de carte). La valeur par défaut est Object.
FromMapCatalog ON récupère les styles de MapCatalog pour une table en accès direct. Si la table
n'est pas en accès direct, MapBasic revient au comportement par défaut d'une table sans accès direct
196
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
plutôt que de générer une erreur. Le comportement par défaut d'une table sans accès direct est
FromMapCatalog Off (styles de la carte, par exemple).
FromMapCatalog OFF récupère les styles uniques d'une carte pour la table en accès direct du serveur.
Pour que cela fonctionne, il doit s'agir d'une table en accès direct qui prend en charge les styles par
enregistrement. Si la table en accès direct ne prend pas en charge les styles par enregistrement, le
système revient au comportement par défaut des tables en accès direct, qui consiste à obtenir les styles
par défaut de MapCatalog (FromMapCatalog ON).
Si Label est défini, indiquez expression comme une expression valide ou valeur par défaut ; cela signifie
que la trame de style du cadre par défaut est utilisée à la création de chaque texte de style, à moins que
la clause Style ne contienne du texte. La valeur par défaut est « Default ».
La clause Height remplace la clause Columns lorsque l'utilisateur redimensionne un cadre. Cela
s'applique aux cadres de légende de carte ainsi qu'aux cadres de légende thématique, qui sont
mutuellement exclusifs. En présence des deux types de cadres, la clause Columns est utilisée.
La clause Order permet d'ajouter la fonctionnalité de tri ou de personnalisation de l'ordre des lignes des
légendes. Vous pouvez trier les légendes par étiquette de style ou suivant votre propre ordre. Les options
d'ordre de tri sont les suivantes : Par défaut, Ordre Croissant, Ordre Décroissant et Ordre
Personnalisé. La clause Order est uniquement écrite dans un document si la légende est triée dans
l'ordre croissant, décroissant ou personnalisé.
Un ordre de tri Par défaut correspond à l'ordre que l'assistant Créer une légende utilise pour créer les
lignes de légende. Si vous créez une légende en fonction de styles uniques, cet ordre s'applique à ces
styles, qui sont alors affichés sous forme de lignes dans la légende.
Si vous sélectionnez l'ordre de tri Personnalisé, les valeursid sont des identifiants de ligne commençant
par 1, triés de haut en bas. Si vous regardez la liste de lignes de la boîte de dialogue Propriétés du
cadre de légende, l'identifiant de la première ligne est égal à 1, et ainsi de suite, dans l'ordre croissant
jusqu'en bas de la liste. Pour plus d'informations, reportez-vous à la section Options d'ordre
personnalisé et aux options d'ordre personnalisé de l'instruction Alter Designer Frame.
La clause Display contrôle l'affichage de chaque ligne. Chaque ligne de MapBasic commence par la
clause Style. À la fin de chaque clause Style se trouve une clause Display facultative. Display On rend
la ligne visible. Display Off masque la ligne. Si la clause Display est absente, la ligne est visible. La
clause Display est écrite uniquement dans un fichier de document pour des styles non visibles dans un
cadre de légende.
Remarque: Les instructions Shade et Set Legend continuent à créer et à modifier les légendes
thématiques, mais seule l'instruction Create Designer Legend ajoute des légendes
thématiques à une fenêtre de conception de légende (en spécifiant l'ID de couche
thématique via la clause Frame From Layer id).
Remarque: La clause Columns ou Height s'applique aux légendes et aux légendes thématiques.
Cependant, il convient de spécifier l'ensemble des autres propriétés de légende thématique
via l'instruction Set Legend.
La clause Style et le mot-clé NoRefresh vous permettent de créer des cadres personnalisés qui ne sont
pas remplacés lors de l'actualisation de la légende. Si le mot-clé NoRefresh est utilisé dans la clause
Style, les styles de la table ne sont pas analysés. Dans ce cas, la clause Style doit contenir votre liste
de définitions personnalisée pour les styles qui figurent dans le cadre. Pour ce faire, utilisez la clause
Référence
197
Instruction Create Designer Legend
Text et la clause Line, Region ou Symbol appropriée. Les objets multipoint sont considérés comme
des objets point.
Les objets collection sont traités séparément. Lorsque MapInfo Professional crée une légende basée
sur des types d'objets, il commence par tracer les symboles point, puis les lignes et les régions. Les
objets collection sont dessinés en dernier. Dans les objets collection, l'ordre du tracé est le suivant :
point, ligne et région.
La clause Font indique un style de texte. Si la police par défaut d'un nom de style, d'un sous-titre ou
d'un titre de cadre est définie, elle devient la police par défaut du cadre. Si une clause Default Frame
Title, Default Frame Subtitle ou Default Frame Style existe au niveau du cadre et inclut une clause
Font, la police définie au niveau du cadre est utilisée. Si aucune police n'est spécifiée à aucun niveau,
les styles de police des préférences de la fenêtre Légende sont utilisés pour le titre, le sous-titre et le
nom de style.
Le programme commence par rechercher des valeurs de métadonnées pour le titre, le sous-titre, la
colonne et l'étiquette dans le fichier TAB de chaque couche de cadre. S'il n'existe aucune valeur de
métadonnées pour la colonne, la valeur par défaut est Object. S'il n'existe aucune valeur de métadonnées
pour l'étiquette, la valeur par défaut est celle du style du cadre. S'il existe des clés de métadonnées de
légende et que vous souhaitez les modifier, vous devez utiliser la syntaxe MapBasic correspondante.
Reportez-vous aux sections Fonction GetMetadata$( ) et Instruction Metadata.
Exemple
Open Table ApplicationDirectory$() + "MyTable.tab" As mytable
Open Table ApplicationDirectory$() + "States.tab" As states
Open Table ApplicationDirectory$() + "City_125.tab" As cities
Open Table ApplicationDirectory$() + "Us_hiway.tab" As hiway
Map From cities, hiway, states, mytable
Create Designer Legend From Window FrontWindow()
Position (8, 0) Units "in"
Width 3 Units "in"
Height 6 Units "in"
Window Title "Legend Designer Window Test"
Custom
Default Frame Title "# Legend" Font ("Calibri",1,12,16711680)
Default Frame Subtitle "#" Font ("Arial",2,10,255)
Default Frame Style "%" Font ("Lucida Calligraphy",0,8,16732240)
Frame From Layer Cities
Using column object
label default
Position (.5, 0) Units "in"
Subtitle "125 Largest Cities"
Frame From Layer hiway
Using column object
label default
Position (.5, .75) Units "in"
Title "US Highways"
Subtitle "Interstates"
Frame From Layer states
Using column object
label default
Position (.5, 1.5) Units "in"
Title "United States"
Subtitle "State Boundaries"
Frame From Layer mytable
Using column object
198
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
label default
Position (.5, 2.5) Units "in"
Title "MyTable Objects"
Subtitle "Special Objects"
Columns 4
Voir également
Instruction Alter Designer Frame, Instruction Add Designer Frame, Instruction Remove Designer
Frame, Instruction Set Designer Legend, Instruction Set Window, Fonction WindowInfo( )
Options d'ordre personnalisé
Les deux instructions Create Designer Legend et Alter Designer Frame incluent maintenant une
clause Order avec la possibilité de spécifier un ordre de tri personnalisé.
Custom id | id : id [ , id | id : id ... ]
Où ce qui suit indique une plage d'identifiants de ligne dans l'ordre croissant (Id2 > Id1) :
Id1 : Id2
Modification de l'ordre d'une liste
La syntaxe d'un ordre personnalisé de lignes de légende est similaire à la clause Order (pour modifier
l'ordre des couches) dans l'instruction Set Map. Elle est relativement facile à utiliser si vous souhaitez
modifier l'ordre en début de liste ; il est par contre plus compliqué de le faire en fin de liste. Par exemple,
si vous souhaitez inverser l'ordre des trois premières lignes, il vous suffit d'utiliser la commande suivante :
Order Custom 3, 2, 1
Vous n'avez pas besoin de mentionner les autres lignes. Si vous disposez de 10 lignes et que vous
souhaitez intervertir les deux dernières, vous devez mentionner tous les identifiants comme suit :
Order Custom 1, 2, 3, 4, 5, 6, 7, 8, 10, 9
Pour rendre cette commande plus compacte, utilisez la syntaxe suivante :
Order Custom 1:8, 10, 9
Indication d'une plage de valeurs
Pour indiquer une plage de valeurs, utilisez les deux points (:), comme dans les exemples suivants :
Long form:
Order Custom 2, 5, 6, 7, 8, 9, 10, 1, 3, 4
Short
Order
Order
Order
form:
Custom 2, 5:10, 1, 3, 4
Custom 2, 5:10, 1, 3:4 (same as above but also valid)
Custom 2, 5:10, 1 (same as above but also valid)
Long form:
Order Custom 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19,
20, 11
Short form:
Order Custom 1:10, 12:20, 11
Référence
199
Instruction Create Ellipse
La liste de valeurs ne doit pas comporter de doublons : cela entraînerait une erreur. L'exemple suivant
provoque une erreur :
Order Custom 1:5, 8, 4:7
les ID des lignes 4 et 5 sont des doublons. Pour voir cela, développez la syntaxe suivante (qui provoque
une erreur) :
Order Custom 1, 2, 3, 4, 5, 8, 4, 5, 6, 7
Il est possible d'utiliser la syntaxe alternative pour créer ou modifier une légende dans la fenêtre de
conception de légende. Pour les documents, la syntaxe courte est utilisée lorsque les légendes de la
fenêtre de conception de légende comportent plus de 50 lignes triées dans un ordre personnalisé.
Instruction Create Ellipse
Objectif
Crée un objet ellipse ou cercle. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Syntaxe
Create Ellipse
[ Into { Window window_id | Variable var_name } ]
( x1, y1 ) ( x2, y2 )
[ Pen... ]
[ Brush... ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
x1, y1 définit le coin du rectangle qui sera rempli par l'ellipse.
x2, y2 définit le coin opposé du rectangle.
Pen est une clause Pen qui définit le style de ligne.
Brush est une clause Brush qui définit le style de remplissage.
Description
L'instruction Create Ellipse crée un objet ellipse ou cercle. Si le rectangle intérieur d'encadrement de
l'objet est défini de telle manière que le rayon x est équivalent au rayon y, l'objet est un cercle. Sinon, il
s'agit d'une ellipse.
Si l'instruction inclut la clause Into Variable facultative, l'objet est stocké dans la variable objet indiquée.
Si la clause Into définit un identifiant de fenêtre, l'objet est stocké à l'emplacement correspondant de la
fenêtre (la couche modifiable d'une fenêtre Carte, par exemple). Si la clause Into n'est pas définie,
MapBasic tente de stocker l'objet dans la fenêtre au premier plan. S'il n'est pas possible de stocker des
objets dans la fenêtre au premier plan (s'il s'agit d'une fenêtre Graphique, par exemple), aucun objet
n'est créé.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
200
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Notez que le
système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des fenêtres
Carte. Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en unités papier.
chaque coordonnée x représente une distance à partir du bord gauche de la page tandis que chaque
coordonnée y représente une distance à partir du bord supérieur de la page. Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set Paper Units. Par défaut, MapBasic utilise les
pouces comme unité papier. L'instruction Set Paper Units permet de sélectionner une autre unité
papier. Avant de créer des objets au niveau d'une fenêtre Mise en page, vous devez émettre une
instruction Set CoordSys Layout.
La clause Pen facultative définit un style de ligne. Si elle est omise, l'instruction Create Ellipse utilise
le style de ligne actuellement défini dans MapInfo Professional (celui qui apparaît dans la boîte de
dialogue Options > Style ligne). De même, la clause Brush facultative définit un style de remplissage.
Voir également
Clause Brush, Fonction CreateCircle( ), Instruction Insert, Clause Pen, Instruction Update
Instruction Create Frame
Objectif
Crée un nouveau cadre dans une fenêtre Mise en page. Vous pouvez exécuter cette instruction à partir
de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Frame
[ Into { Window layout_win_id | Variable var_name } ]
( x1, y1 ) ( x2, y2 )
[ Pen... ]
[ Brush... ]
[ Title title ]
[ From Window contents_win_id ]
[ FillFrame { On | Off } ]
x1, y1 définit un coin du cadre à créer.
x2, y2 définit l'autre coin.
layout_win_id est un identifiant de fenêtre entier représentant la fenêtre Mise en page.
var_name est le nom d'une variable objet.
Pen est une clause Pen qui définit le style de ligne.
Brush est une clause Brush qui définit le style de remplissage.
title est une chaîne identifiant le contenu du cadre (« Carte WORLD », par exemple). Cette chaîne n'est
pas nécessaire lorsque la clause From Window est utilisée.
contents_win_id est un identifiant de fenêtre entier définissant la fenêtre qui apparaît dans le cadre.
Référence
201
Instruction Create Frame
Description
L'instruction Create Frame crée un nouveau cadre dans une fenêtre Mise en page existante. Si aucun
identifiant layout_win_id n'est défini, le nouveau cadre est ajouté à la fenêtre Mise en page au premier
plan. Avant de créer des objets au niveau d'une fenêtre Mise en page, vous devez émettre une instruction
Set CoordSys Layout.
D'une session à l'autre, MapInfo Professional conserve les paramètres des fenêtres Mise en page en
stockant des instructions Create Frame dans le fichier de document. Pour afficher un exemple d'instruction
Create Frame, créez une mise en page, enregistrez le document et étudiez le fichier de document dans
un éditeur de texte.
La clause Pen indique le style de ligne utilisé pour afficher le cadre et la clause Brush définit le style
de remplissage du cadre.
La clause From Window permet de sélectionner la fenêtre qui doit apparaître dans le cadre. Par exemple,
si vous souhaitez qu'une fenêtre Carte apparaisse dans le cadre, spécifiez Window i_map (où i_map
est une variable entière contenant l'identifiant de la fenêtre Carte). Pour créer un cadre contenant la
fenêtre, vous devez tout d'abord ouvrir cette dernière.
La clause Title propose une autre syntaxe permettant de sélectionner la fenêtre qui apparaîtra dans le
cadre. Par exemple, pour identifier une fenêtre Carte affichant la table World, la clause Title doit indiquer
Title "Carte WORLD". Si la chaîne titre ne fait pas référence à une fenêtre existante, ou si la chaîne
title est vide (""), le cadre sera vide. Si vous définissez à la fois la clause Title et la clause From Window,
c'est la seconde qui est prise en compte.
La clause FillFrame indique comment la fenêtre remplit le cadre. Si vous définissez FillFrame On, une
image de la fenêtre remplit l'intégralité du cadre (cette fonction est comparable à la case Plein cadre
de la boîte de dialogue Objet Cadre de MapInfo Professional, qui apparaît lorsque vous double-cliquez
sur un cadre). Si vous définissez FillFrame Off (ou si vous omettez complètement la clause FillFrame),
le rapport hauteur/largeur de la fenêtre affecte l'apparence du cadre. En d'autres termes, le fait de
redimensionner une fenêtre Carte de manière à ce qu'elle soit plus grande et moins large entraîne
l'affichage d'un cadre plus grand et moins large.
Exemple
Les exemples suivants indiquent comment créer le cadre de la légende thématique d'une fenêtre Carte
ou d'une fenêtre Légende cartographique.
Les fenêtres Légende thématique constituent une exception : pour créer un cadre dans celles-ci, vous
devez utiliser la clause Title à la place de la clause From Window.
Dim i_layout_id, i_map_id As Integer
Dim s_title As String
' here, you would store the Map window's ID in i_map_id,
' and store the Layout window's ID in i_layout_id.
' To obtain an ID, call FrontWindow( ) or WindowID( ).
s_title = "Theme Legend of " + WindowInfo(i_map_id, WIN_INFO_NAME)
Set CoordSys Layout Units "in"
Create Frame
Into Window i_layout_id
(1,2) (4, 5)
Title s_title
202
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Pour créer le cadre de la légende cartographique d'une fenêtre Carte, vous devez utiliser la clause From
Window, une carte pouvant contenir plusieurs fenêtres de légende cartographique.
Dim i_cartlgnd_id As Integer
' here, you would store the Cartographic Legend window's ID
' in i_cartlgnd _id,
' To obtain an ID, call FrontWindow( ) or WindowID( ).
Create Frame
Into Window i_layout_id
(1,2) (4, 5)
From Window i_cartlgnd_id
Voir également
Clause Brush, Instruction Insert, Instruction Layout, Clause Pen, Instruction Set CoordSys,
Instruction Set Layout, Instruction Update
Instruction Create Grid
Objectif
Produit un fichier de grille raster que MapBasic affiche en tant que table raster dans une fenêtre Carte.
Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Grid
From tablename
With expression [ Ignore value_to_ignore ]
Into filespec [ Type grid_type ]
[ Coordsys... ]
[ Clipping { Object obj } | { Table tablename } ]
Inflect num_inflections [ By Percent ] at
color : inflection_value [ color : inflection_value ...]
[ Round rounding_factor ]
{[ Cell Size cell_size [ Units distance_unit ]] | [ Cell Min n_cells ]}
[ Border numcells ]
Interpolate With interpolator_name Version version_string
Using num_parameters parameter_name : parameter_value
[ parameter_name : parameter_value ... ]
tablename est l'alias d'une table ouverte, à partir de laquelle les points de données sont obtenus.
expression est l'expression qui servira à analyser la table, par exemple un nom de colonne.
value_to_ignore est une valeur à ne pas prendre en compte. Il s'agit généralement de la valeur zéro.
Aucune coloration continue ne sera créée pour les lignes dont la valeur correspond à la valeur à ignorer.
filespec définit les chemin et nom complets du nouveau fichier de grille. Il portera l'extension .MIG.
grid_type est une expression de type chaîne qui définit le type de fichier de grille à créer. Par défaut,
les fichiers au format .MIG sont créés à l'aide de « mig.ghl ». Si vous utilisez un gestionnaire de grilles
personnalisé, fournissez le nom de ce gestionnaire, par exemple, « dted.ghl ».
Référence
203
Instruction Create Grid
Coordsys est une clause CoordSys facultative qui correspond au système de coordonnées utilisé pour
créer la grille. Si cette clause n'est pas définie, la grille est créée à l'aide du même système de
coordonnées que la table source. Reportez-vous à la section Clause CoordSys pour plus d'informations.
obj est l'objet qui servira de pochoir aux cellules de la grille. Seule la section de la coloration continue
incluse dans l'objet sera affichée. Si une cellule de la grille n'est pas incluse dans l'objet, la valeur de
cette cellule ne sera pas indiquée. Une valeur nulle sera utilisée à la place.
tablename est le nom de la table des objets région qui seront associés de manière à ne former qu'un
seul objet région, puis utilisés comme pochoir pour les cellules de la grille.
num_inflections est une expression numérique, qui spécifie le nombre de paires color:inflection_value.
color est une expression de couleur appartenant à une paire color:value inflection.
inflection_value est une expression numérique qui définit la valeur d'une paire color:inflection_value
sous forme de nombre ou de pourcentage.
rounding_factor est une expression numérique qui définit le facteur d'arrondi appliqué aux valeurs
d'inflexion.
cell_size est une expression numérique définissant la taille d'une cellule de la grille en unités de distance.
distance_unit est une expression de type chaîne qui définit les unités utilisées pour la taille des cellules
susmentionnées. Il s'agit d'un paramètre facultatif. S'il n'est pas défini, l'unité de distance du système
de coordonnées de la table est utilisée.
n_cells est une expression numérique qui définit la hauteur ou la largeur des cellules de la grille.
numcells définit le nombre de cellules qui doivent être ajoutées autour des limites de la grille originale.
numcells est ajouté à gauche, à droite, en haut et en bas par rapport aux dimensions de la grille d'origine.
interpolator_name est une expression de type chaîne qui définit le nom de l'interpolation utilisée pour
créer la grille. Les interpolations MapInfo intégrées sont IDW ou TIN.
version_string est une expression de type chaîne qui définit la version de l'interpolation à laquelle les
paramètres sont destinés. (Version 100 de l'interpolation IDW jointe à MapInfo Professional 5.0 et Version
200 des interpolations TIN et IDW jointe à MapInfo Professional 5.5 et aux versions ultérieures.)
num_parameters est une expression numérique qui définit le nombre de paires parameter_name :
parameter_value à utiliser.
• parameter_name est une expression de type chaîne qui définit l'élément nom de cette paire.
• parameter_value est une expression numérique qui définit l'élément valeur de cette paire.
Description
Une analyse thématique par coloration continue est une grille raster continue produite par interpolation
des données de point. L'instruction Create Grid extrait une colonne de données d'une table de points
et soumet ces points et leurs valeurs à une interpolation. L'interpolation produit un fichier de grille raster
que MapBasic affiche en tant que table raster dans une fenêtre Carte.
L'instruction Create Grid lit les valeurs (x, y, z) de la table définie dans la clause From. Elle obtient les
valeurs z en évaluant l'expression définie dans la clause With par rapport à la table.
Il est possible de définir les dimensions de la grille de deux manières. L'une consiste à définir la taille
d'une cellule de la grille en unités de distance, telles que des miles. L'autre consiste à définir une hauteur
204
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
ou largeur minimale de grille en termes de cellules. Par exemple, si vous souhaitez que la grille couvre
au moins 200 cellules en largeur et 200 cellules en hauteur, indiquez "cell min 200". Selon le rapport
hauteur/largeur de la zone couverte par la grille, les dimensions réelles ne sont pas 200 x 200. La grille
dispose cependant d'une largeur et d'une hauteur d'au moins 200 cellules.
By Percent at indique que les paires color:Inflection_value qui suivent représentent une valeur de
couleur et une valeur de pourcentage. S'il n'est pas utilisé, Inflection_value représente une valeur
numérique comme l'élévation ou la température.
Pour plus d'informations sur les grilles, reportez-vous à la section Description des grilles. Pour plus
d'informations sur les interpolations spécifiques, reportez-vous aux sections Interpolation IDW et
Interpolation TIN.
Exemple
Open Table "C:\States.tab" Interactive
Map From States
Open Table "C:\Us_elev.tab" Interactive
Add Map Auto Layer Us_elev
set map redraw off
Set Map Layer 1 Display Off
set map redraw on
create grid
from Us_elev
with Elevation_FT
into "C:\Us_elev_grid"
clipping table States
inflect 5 at
RGB(0, 0, 255) : 13
RGB(0, 255, 255) : 3632.5
RGB(0, 255, 0) : 7252
RGB(255, 255, 0) : 10871.5
RGB(255, 0, 0) : 14491
cell min 200
interpolate
with "IDW" version "100"
using 4
"EXPONENT": "2"
"MAX POINTS": "25"
"MIN POINTS": "1"
"SEARCH RADIUS": "100"
Voir également
Fonction GetGridCellValue( ), GridTableInfo( ), Fonction IsGridCellNull( ), Fonction RasterTableInfo(
), Instruction Set Map
Description des grilles
Une analyse thématique par coloration continue est une grille raster continue produite par interpolation
des données de point. L'instruction Create Grid extrait une colonne de données d'une table de points
et soumet ces points et leurs valeurs à une interpolation. L'interpolation produit un fichier de grille raster
que MapBasic affiche en tant que table raster dans une fenêtre Carte. L'instruction Create Grid lit les
valeurs (x, y, z) de la table définie dans la clause From tablename. Elle obtient les valeurs z en évaluant
l'expression spécifiée dans la clause With (un nom de colonne) par rapport à la table et calcule une
Référence
205
Instruction Create Grid
valeur de cellule de grille à l'aide des paramètres fournis par l'interpolation spécifique choisie par ces
points.
Il est possible de définir les dimensions de la grille de deux manières. L'une consiste à définir la taille
d'une cellule de la grille en unités de distance, telles que des miles, des mètres, des pieds, etc. L'autre
consiste à définir une hauteur ou largeur minimale de la grille en nombre de cellules. Par exemple, si
vous souhaitez que la grille couvre au moins 200 cellules en largeur et 200 cellules en hauteur, indiquez
"cell min 200". Selon le rapport hauteur/largeur de la zone couverte par la grille, les dimensions réelles
de celle-ci ne sont pas exactement 200 x 200. La grille dispose cependant d'une largeur et d'une hauteur
d'au moins 200 cellules.
Exemple d'interpolation IDW avec des inflexions définies sur certaines valeurs d'élévation :
Open Table "C:\MyData\States.tab" Interactive
Map From States
Open Table "C:\ MyData\Us_elev.tab" Interactive
Add Map Auto Layer Us_elev
Set map redraw off
Set Map Layer 1 Display Off
Set map redraw on
Create Grid
From Us_elev
with Elevation_FT
ignore 0
into "C:\ MapData\Us_elev_grid.mig"
Type "mig.ghl"
CoordSys Earth Projection 1, 74
clipping table States
Inflect 6 at
RGB(64, 0, 128) : -32808
RGB(0, 128, 192) : -16404
RGB(151, 255, 239) : -98
RGB(254, 248, 199) : 33
RGB(244, 171, 100) : 6566
RGB(235, 95, 1) : 32808
round 100
cell min 200
interpolate
with "IDW" version "100"
using 7
"AGGREGATION METHOD": "1"
"BORDER": "0"
"CELL SIZE": "8"
"EXPONENT": "2"
"MAX POINTS": "25"
"MIN POINTS": "1"
"SEARCH RADIUS": "800"
Exemple d'interpolation TIN avec des inflexions définies sous forme de valeurs de pourcentage :
inflect 5 by Percent at
RGB(0, 0, 255) : 0
RGB(0, 255, 255) : 25
RGB(0, 255, 0) : 50
RGB(255, 255, 0) : 75
RGB(255, 0, 0) : 100
Round 10
cell min 200
interpolate
with "TIN" version "100"
206
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
using 8
"BORDER": "0"
"CELL SIZE": "15"
"DISTANCE": "80"
"EXPONENT": "2"
"FEATURE ANGLE": "45"
"SEARCH RADIUS": "53"
"TOLERANCE": "0.01 "
"READ ONLY": "T"
Apparence de la grille et méthodes d'inflexion
Une fois les valeurs des cellules calculées, MapInfo Professional les regroupe dans un spectre de
couleurs limité par les valeurs minimale et maximale de la table définie par le nombre de paires de
couleurs et de valeurs d'inflexion.
Vous pouvez décider de la façon dont la couleur est répartie en précisant une méthode d'inflexion et le
nombre de points d'inflexion. Le nombre de points d'inflexion doit être compris entre 2 et 255. Vous
pouvez également appliquer un facteur d'arrondi aux valeurs d'inflexion. Lors de l'interpolation via
l'interface utilisateur, vous disposez de quatre modes de calcul des valeurs d'inflexion :
• Même nombre de cellules : définit les inflexions de sorte qu'il y ait approximativement un nombre égal
de cellules de grille entre chaque valeur d'inflexion.
• Classes de même amplitude : répartit les inflexions de manière égale entre les valeurs minimale et
maximale de la plage de données.
• Nombre de cellules manuel : utilisez cette méthode pour indiquer vos propres pourcentages.
• Intervalles manuels : utilisez cette méthode pour indiquer vos propres valeurs.
Lorsque vous utilisez l'instruction Create Grid, vous devez calculer les valeurs et couleurs d'inflexion
manuellement à l'aide de vos propres méthodes afin d'obtenir des valeurs à partir de vos propres données
d'entrée.
Modèles de grilles
Lorsque vous créez une analyse thématique par coloration continue dans MapInfo Professional, le
modèle par défaut de coloration continue attribue la couleur bleue à la valeur minimale et la couleur
rouge à la valeur maximale. Ces valeurs minimale et maximale s'expriment également en pourcentages
de plage. Ces paramètres/valeurs de couleurs sont connus sous le nom de points d'inflexion et
apparaissent dans la légende avec une couleur, une valeur et un pourcentage donnés. Si une cellule
présente la même valeur que le point d'inflexion, elle se dote de cette couleur sur la carte. Une cellule
dont la valeur se trouve entre deux points d'inflexion arbore la couleur se trouvant entre les couleurs de
ces points d'inflexion.
Voir également
Interpolation IDW, Interpolation TIN
Interpolation IDW
L'interpolation IDW convient particulièrement aux valeurs de données produisant des valeurs arbitraires
sur la grille, c'est-à-dire des données n'ayant aucune relation avec les valeurs de données voisines ni
aucune influence sur elles, comme la population. Cette méthode d'interpolation fonctionne également
correctement pour les données rares. L'interpolation IDW calcule la valeur des cellules de la grille qui
Référence
207
Instruction Create Grid
couvrent la surface d'analyse. Chaque valeur de point de donnée de votre table source est prise en
compte dans le calcul d'une valeur de cellule et pondérée en fonction de sa distance par rapport au
centre de la cellule. Étant donné que l'interpolation utilise une méthode de calcul pondéré de la distance
inversée, plus le point est loin de la cellule, moins sa valeur exerce d'influence sur la valeur de la cellule
finale. Le processus d'analyse par coloration continue de MapInfo Professional commence par déterminer
le rectangle intérieur d'encadrement (MBR) de la table source. La grille est divisée en cellules carrées
d'une taille précise identique. Par exemple, à l'aide du modèle par défaut de coloration continue, la table
States de l'ensemble de données d'exemple de MapInfo Professional crée une dimension de grille de
200 cellules sur 303. En calculant le nombre de cellules de la grille et en sachant la dimension du MBR,
MapInfo Professional sait que chaque cellule doit mesurer 29,1 sur 29,1 km². (La taille de votre cellule
s'affiche dans l'unité de distance que vous avez définie dans la fenêtre Carte. Pour modifier les unités,
sélectionnez Carte > Options > Unités de la carte.)
Lors de la création d'une analyse thématique par coloration continue, il est possible de contrôler les
paramètres d'interpolation IDW via le bouton Paramètres de la boîte de dialogue Créer carte thématique
- Étape 3 sur 3. Le numéro de taille de cellule de cette boîte de dialogue d'interpolation représente à la
fois la hauteur et la largeur de la cellule. Si vous modifiez la taille de la cellule, les dimensions de la grille
sont automatiquement mises à jour. Une fois la taille de cellule et les points et valeurs sources connus,
MapInfo Professional peut calculer la valeur de chaque cellule. Celle-ci est déterminée en calculant une
moyenne pondérée de la distance des points figurant dans le rayon de recherche spécifié. Les points
sont pondérés à l'opposé par leur distance du centre de la cellule. Avec l'interpolation IDW, l'exposant
détermine l'influence de chaque point sur le résultat. Plus l'exposant est élevé, plus l'influence sur la
valeur de la cellule des points les plus proches est élevée. Les exposants peuvent varier entre 1 et 10.
Vous pouvez également choisir une méthode d'agrégation pour les valeurs z des points de données
source coïncidents (ceux qui se trouvent dans la même cellule de grille). Il est possible d'agréger ces
points de données sous forme de moyenne, de nombre, de somme, de minimum et de maximum. La
méthode d'agrégation par défaut utilise une moyenne.
Paramètres d'interpolation IDW de l'instruction Create Grid
Pour l'interpolation IDW MapInfo Professional, lors de la définition des paramètres de la syntaxe de
l'instruction Create Grid :
Using num_parameters parameter_name : parameter_value
[ parameter_name : parameter_value ... ]
Les paires parameter_name : parameter_values suivantes peuvent être utilisées.
• "EXPONENT": « nombre » – La valeur minimale est 1, la valeur maximale 10 et l'exposant par défaut
2. Plus l'exposant est élevé, plus l'influence sur la valeur de la cellule des points les plus proches est
élevée.
• "SEARCH RADIUS": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est
de 10 unités.
• "MIN POINTS": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 1. Il
s'agit du nombre minimal de points requis pour calculer la valeur d'une cellule de grille.
• "MAX POINTS": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 25.
Il s'agit du nombre maximal de points utilisés pour calculer la valeur d'une cellule de grille.
• "GRID HEIGHT": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 100.
Il s'agit de la hauteur minimale des cellules de la grille. Le résultat est affecté par le rapport
hauteur/largeur, mais le résultat de la hauteur des cellules doit être égal au minimum de cette valeur.
208
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
• "GRID WIDTH": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 100.
Il s'agit de la largeur minimale des cellules de la grille. Le résultat est affecté par le rapport
hauteur/largeur, mais le résultat de la largeur des cellules doit être égal au minimum de cette valeur.
• "CELL SIZE": « nombre » – Taille de la cellule de grille en unités de distance. Cette valeur doit être
supérieure à zéro et la valeur par défaut est 100.
• "BORDER": « nombre » – Nombre de cellules au-delà du rectangle d'encadrement de la table en
fonction duquel étendre la grille. Cette valeur s'avère utile si vous procédez à l'interpolation de données
d'une table de points tout en découpant une table de région.
• "AGGREGATION METHOD": « nombre » – Méthode d'agrégation de points coïncidents se trouvant
dans une même cellule. La méthode d'agrégation par défaut utilise une moyenne ou 0. La plupart des
paramètres de l'interpolation correspondent aux boutons de contrôle de la boîte de dialogue des
paramètres d'interpolation. Cependant, pour l'agrégation, au lieu de transmettre une chaîne, le système
utilise un nombre.
Moyenne
0
Nombre
1
Minimum
2
Maximum
3
Somme
4
Si la valeur parameter name : parameter n'est pas fournie, la valeur par défaut est utilisée. Si vous
souhaitez conserver tous les paramètres d'interpolation par défaut, définissez Using num_parameters
sur 0.
Voir également
Instruction Create Grid, Paramètre READ ONLY des interpolations TIN et IDW
Interpolation TIN
L'interpolation TIN convient le mieux aux données terrain et aux points de données présentant une
progression linéaire ou une relation entre eux sur la grille, comme l'élévation ou la température.
L'interpolation TIN produit des triangles depuis un réseau de points qui reproduisent mieux le terrain de
la carte d'origine que l'interpolation IDW. Elle permet de dessiner des lignes entre des points, de les
diviser en triangles et de connecter tous les points possibles. Ceci crée une grande connectivité. Ainsi
les points de la grille peuvent être interpolés. L'interpolation n'est pas influencée par les valeurs de
données d'origine voisines. Contrairement à l'interpolation IDW, vous n'obtenez ainsi aucun « faux
résultat » de données.
Vous pouvez modifier les paramètres TIN pour donner plus ou moins de détails au terrain de la carte.
Le paramètre Tolérance contrôle la prise en charge ou non des points rapprochés. La tolérance
correspond à une fraction de la longueur diagonale du cadre englobant des points. La valeur Distance
contrôle le résultat. Pour des valeurs différentes de zéro, seuls les bords ou les triangles contenus dans
une sphère centrée aux sommets des mailles sont prises en compte. Ceci permet de contraindre
l'interpolation TIN à une distance indiquée, sans quoi la triangulation croiserait des régions concaves.
Le paramètre Angle contrôle l'angle (en degrés) qui définit un bord pointu. Ce paramètre est utile pour
lisser la grille finale. Si la différence d'angle entre des polygones limitrophes est supérieure à cette valeur,
le bord partagé est considéré comme étant pointu.
Référence
209
Instruction Create Grid
Lors de la création d'une analyse thématique par coloration continue, il est possible de contrôler les
paramètres d'interpolation TIN via le boutonParamètres de la boîte de dialogue Créer carte thématique
- Étape 3 sur 3. Comme pour la méthode IDW, le numéro de taille de cellule de cette boîte de dialogue
de paramètres d'interpolation représente à la fois la hauteur et la largeur de la cellule. Si vous modifiez
la taille de la cellule, les dimensions de la grille sont automatiquement mises à jour.
Paramètres d'interpolation TIN de l'instruction Create Grid
Pour l'interpolation TIN MapInfo Professional, lors de la définition des paramètres de la syntaxe de
l'instruction Create Grid :
Using num_parameters parameter_name : parameter_value
[ parameter_name : parameter_value ... ]
Les paires parameter_name : parameter_values suivantes peuvent être utilisées.
• "TOLERANCE": « nombre » – Cette valeur doit être supérieure ou égale à .00001 et inférieure ou
égale à .01, la valeur par défaut étant .005.
• "DISTANCE": « nombre » – Cette valeur doit être supérieure à zéro et inférieure à la hauteur et à la
largeur de la grille.
• "FEATURE ANGLE": « nombre » – Cette valeur doit être supérieure ou égale à zéro et inférieure ou
égale à 180, la valeur par défaut étant 25 degrés.
• "MIN POINTS": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 1. Il
s'agit du nombre minimal de points requis pour calculer la valeur d'une cellule de grille.
• "MAX POINTS": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 25.
Il s'agit du nombre maximal de points utilisés pour calculer la valeur d'une cellule de grille.
• "GRID HEIGHT": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 100.
Il s'agit de la hauteur minimale des cellules de la grille. Le résultat est affecté par le rapport
hauteur/largeur, mais le résultat de la hauteur des cellules doit être égal au minimum de cette valeur.
• "GRID WIDTH": « nombre » – Cette valeur doit être supérieure à zéro et la valeur par défaut est 100.
Il s'agit de la largeur minimale des cellules de la grille. Le résultat est affecté par le rapport
hauteur/largeur, mais le résultat de la largeur des cellules doit être égal au minimum de cette valeur.
• "CELL SIZE": « nombre » – Taille de la cellule de grille en unités de distance. Cette valeur doit être
supérieure à zéro et la valeur par défaut est 100.
Remarque: Si la valeur parameter name : parameter n'est pas fournie, la valeur par défaut est utilisée.
Si vous souhaitez conserver tous les paramètres d'interpolation par défaut, définissez
Using num_parameters sur 0.
Voir également
Paramètre READ ONLY des interpolations TIN et IDW
Paramètre READ ONLY des interpolations TIN et IDW
Si vous souhaitez définir une grille en lecture seule afin que personne ne puisse l'altérer ni l'interpoler
de nouveau, spécifiez "READ ONLY": "T" pour la paire parameter name : parameter value pair, qui peut
être transmise à l'interpolation TIN ou IDW MapInfo Professional. Si vous utilisez cette valeur de
paramètre, la balise de métadonnées
"\Interpolator\Parameter\READ ONLY" = "0"
210
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
est écrite dans le fichier .TAB et l'utilisateur ne sera pas en mesure de modifier ni d'interpoler de nouveau
la grille via l'interface utilisateur.
Instruction Create Index
Objectif
Crée l'index d'une colonne d'une table ouverte. Vous pouvez exécuter cette instruction à partir de la
fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Index On table ( column )
table est le nom d'une table ouverte.
column est le nom d'une colonne de la table ouverte.
Description
L'instruction Create Index crée un index au niveau de la colonne indiquée. MapInfo Professional utilise
les index dans le cadre d'opérations telles que Sélection > Rechercher. Les index permettent également
d'améliorer les performances générales des requêtes.
Remarque: MapInfo Professional ne peut pas créer d'index si la table inclut des modifications non
enregistrées. Utilisez l'instruction Commit Table pour enregistrer les modifications.
Exemple
L'exemple suivant crée un index pour le champ Capitale de la table World.
Open Table "world" Interactive
Create Index on World(Capital)
Voir également
Instruction Alter Table, Instruction Create Table, Instruction Drop Index, Instruction Commit Table
Instruction Create Legend
Objectif
Crée une nouvelle fenêtre Légende thématique rattachée à la fenêtre Carte indiquée. Vous pouvez
exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Si vous utilisez MapInfo Professional version 5.0 et ultérieure, l'instruction Create Cartographic Legend
vous permet de créer et d'afficher des légendes de style cartographique. Reportez-vous à la section
Instruction Create Cartographic Legend pour plus d'informations.
Référence
211
Fonction CreateLine( )
Syntaxe
Create Legend
[ From Window window_ID ]
[ { Show | Hide } ]
window_ID est un entier représentant l'identifiant MapInfo Professional d'une fenêtre Carte.
Description
Cette instruction crée une fenêtre Légende thématique flottante spéciale, parallèlement à la fenêtre
Légende standard de MapInfo Professional. Pour ouvrir cette dernière, utilisez l'instruction Open Window
Legend.
L'instruction Create Legend est utile si vous souhaitez que la légende d'une fenêtre Carte soit toujours
visible, même lorsque la fenêtre Carte n'est pas active. De même, cette instruction est utile pour les
applications à "cartographie intégrée", dans lesquelles les fenêtres MapInfo Professional sont intégrées
à une autre application, par exemple Visual Basic. Pour plus d'informations sur la cartographie intégrée,
consultez le Guide de l'utilisateur MapBasic.
Si vous incluez la clause From Window, la nouvelle fenêtre Légende thématique est rattachée à la
fenêtre définie, sinon à la carte utilisée en dernier.
Si vous incluez le mot-clé Hide facultatif, la fenêtre créée est masquée. Pour afficher une fenêtre
masquée, utilisez l'instruction Set Window...Show.
Une fois l'instruction Create Legend émise, déterminez l'identifiant entier de la nouvelle fenêtre en
appelant WindowID( 0 ). Utilisez l'identifiant de fenêtre obtenu dans les instructions suivantes (telles
que l'instruction Set Window).
La nouvelle fenêtre Légende thématique est créée en fonction des paramètres de parent et de style
définis via l'instruction Set Next Document.
Voir également
Instruction Create Cartographic Legend, Instruction Open Window, Instruction Set Next Document,
Instruction Set Window
Fonction CreateLine( )
Objectif
Renvoie une valeur de type objet représentant une ligne. Vous pouvez appeler cette fonction à partir de
la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CreateLine( x1, y1, x2, y2 )
x1 est une valeur à virgule flottante indiquant la position x du point de départ de la ligne (longitude, par
exemple).
y1 est une valeur à virgule flottante indiquant la position y du point de départ de la ligne (latitude, par
exemple).
x2 est une valeur à virgule flottante indiquant la position x du point final de la ligne.
212
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
y2 est une valeur à virgule flottante indiquant la position y du point final de la ligne.
Valeur renvoyée
Objet
Description
La fonction CreateLine( ) renvoie la valeur objet représentant une ligne. Les paramètres x et y utilisent
le système de coordonnées défini. Par défaut, MapBasic utilise un système de coordonnées
Longitude/Latitude. Sélectionnez un autre système à l'aide de l'instruction Set CoordSys.
L'objet ligne utilisera le style actuellement sélectionné. Pour créer un objet ligne avec un style spécifique,
vous pouvez émettre l'instruction Set Style avant d'appeler CreateLine( ) ou bien émettre une
instruction Create Line, comportant une clause Pen facultative.
L'objet point créé à l'aide de la fonction CreateLine( ) peut être attribué à une variable objet stockée
dans la ligne existante d'une table (à l'aide de l'instruction Update) ou insérée dans la nouvelle ligne
d'une table (à l'aide de l'instruction Insert). Si vous devez créer des objets au niveau d'une fenêtre
Mise en page, vous devez d'abord émettre une instruction Set CoordSys Layout.
Exemple
L'exemple suivant utilise l'instruction Insert pour insérer une nouvelle ligne dans la table Routes. La
fonction CreateLine( ) apparaît dans le corps de l'instruction Insert.
Open Table "Routes"
Insert Into routes (obj)
Values (CreateLine(-72.55, 42.431, -72.568, 42.435))
Voir également
Instruction Create Line, Instruction Insert, Instruction Update
Instruction Create Line
Objectif
Crée un objet ligne. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Create Line
[ Into { Window window_id | Variable var_name } ]
( x1, y1) ( x2, y2)
[ Pen... ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
x1, y1 définit le point de départ d'une ligne.
x2, y2 définit le point final de la ligne.
Référence
213
Instruction Create Map
La clause Pen définit un style de ligne.
Description
L'instruction Create Line crée un objet ligne.
Si l'instruction inclut la clause Into Variable facultative, l'objet est stocké dans la variable objet indiquée.
Si la clause Into définit un identifiant de fenêtre, l'objet est stocké à l'emplacement correspondant de la
fenêtre (la couche modifiable d'une fenêtre Carte, par exemple). Si la clause Into n'est pas définie,
MapBasic tente de stocker l'objet dans la fenêtre au premier plan. S'il n'est pas possible de stocker des
objets dans la fenêtre au premier plan (s'il s'agit d'une fenêtre Graphique, par exemple), aucun objet
n'est créé.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Notez que le
système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des fenêtres
Carte. Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en unités papier.
chaque coordonnée x représente une distance à partir du bord gauche de la page tandis que chaque
coordonnée y représente une distance à partir du bord supérieur de la page. Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set Paper Units. Par défaut, MapBasic utilise les
pouces comme unité papier. L'instruction Set Paper Units permet de sélectionner une autre unité
papier.
Remarque: Si vous devez créer des objets au niveau d'une fenêtre Mise en page, vous devez d'abord
émettre une instruction Set CoordSys Layout.
La clause Pen définit un style de ligne. Reportez-vous à la section clause Pen pour plus de détails. Si
aucune clause Pen n'est définie, l'instruction Create Line utilise le style de ligne actuellement défini pour
MapInfo Professional.
Voir également
Fonction CreateLine( ), Instruction Insert, Clause Pen, Instruction Update
Instruction Create Map
Objectif
Modifie la structure d'une table de manière à ce qu'elle puisse être cartographiée. Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Map
For table
[ CoordSys... ] Using from_table]
table est le nom d'une table ouverte.
from_table est le nom d'une table ouverte à partir de laquelle le système de coordonnées est copié.
214
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
L'instruction Create Map permet de rendre la table ouverte cartographiable afin de l'afficher dans une
fenêtre Carte. Cette instruction n'ouvre pas de nouvelle fenêtre Carte. Utilisez l'instruction Map pour
ouvrir une nouvelle fenêtre Carte.
Vous ne devez pas émettre d'instruction Create Map pour une table pouvant déjà être cartographiée,
faute de quoi tous les objets cartographiques de la table seront supprimés. Si une carte est déjà
jointe à la table et que vous souhaitez modifier de manière permanente la projection de la carte,
utilisez une instruction Table As. En revanche, si vous souhaitez modifier de manière temporaire la
projection d'affichage d'une carte, émettez une instruction Set Map avec uneclause CoordSys.
L'instruction Create Map ne fonctionne pas sur les tables liées. Pour modifier une table liée de manière
à ce qu'elle puisse être cartographiée, utilisez l'instruction Server Create Map.
Définition du système de coordonnées
Définissez le système de coordonnées à l'aide de l'une des deux méthodes suivantes :
• Utilisez le nom d'une table pouvant être cartographiée déjà ouverte pour la section from_table de la
clause Using. Le système de coordonnées utilisé est alors le même que celui de la table source.
Celle-ci doit être une table actuellement ouverte et pouvant être cartographiée, faute de quoi une
erreur sera générée.
• Fournissez de manière explicite les informations relatives au système de coordonnées à l'aide d'une
clause CoordSys (définie dans les préférences). Si vous omettez les clauses CoordSys et Using, la
table utilise le système de coordonnées actuellement défini pour MapBasic.
Notez que la clause CoordSys affecte la précision de la carte. La clause CoordSysinclut une clause
Bounds, qui définit les coordonnées minimales et maximales pouvant être stockées dans la carte. Si
vous omettez la clause Bounds, MapInfo Professional utilise des limites par défaut, qui englobent la
Terre entière (la précision des coordonnées est d'alors un millionième de degré, soit environ 10 cm). Si
vous savez d'avance que la carte créée est limitée à une zone particulière (une zone métropolitaine
spécifique, par exemple), vous pouvez augmenter la précision des coordonnées en définissant des
limites qui restreignent la carte à la zone en question. Pour un aperçu de la syntaxe complète de
CoordSys, reportez-vous à la section Clause CoordSys.
Voir également
Instruction Commit Table, Clause CoordSys, Instruction Create Table, Instruction Drop Map,
Instruction Map, Instruction Server Create Map , Instruction Set Map
Instruction Create Map3D
Objectif
Crée une fenêtre Vue3D avec les paramètres souhaités. Vous pouvez exécuter cette instruction à partir
de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Map3D
[ From Window window_id | MapString mapper_creation_string ]
[ Camera [ Pitch angle | Roll angle | Yaw angle | Elevation angle ] |
[ Position ( x, y, z ) | FocalPoint ( x, y, z ) ] |
Référence
215
Instruction Create Map3D
[ Orientation ( vu_1, vu_2, vu_3, vpn_1, vpn_2, vpn_3,
clip_near, clip_far )]]
[ Light [ Position ( x, y, z ) | Color lightcolor ] ]
[ Resolution ( res_x, res_y ) ]
[ Scale grid_scale ]
[ Background backgroundcolor ]
[ Units unit_name ]
window_id est un identifiant de fenêtre pour une fenêtre Carte contenant une couche Grille. Un message
d'erreur s'affiche si la couche Grille est introuvable.
mapper_creation_string définit une chaîne de commande qui crée la carte posée sur la texture de la
grille.
Camera définit la position et l'orientation de la perspective.
angle est une mesure d'angle en degrés. L'angle horizontal de la boîte de dialogue est compris entre 0
et 360 degrés et fait pivoter les cartes autour du point central de la grille. L'angle vertical de la boîte de
dialogue est compris entre 0 et 90 et mesure la rotation en fonction de l'élévation par rapport au point
de départ au-dessus de la carte.
Pitch règle la rotation de la perspective par rapport à l'axe des x depuis une position centrale.
Roll règle la rotation de la perspective par rapport à l'axe des z depuis une position centrale.
Yaw règle la rotation de la perspective par rapport à l'axe des y depuis une position centrale.
Elevation règle la rotation de la perspective sur l'axe des X depuis le foyer.
Position indique la position de la perspective/de l'éclairage.
FocalPoint indique le foyer de la perspective/de l'éclairage.
Orientation définit les perspectives ViewUp (vu_1, vu_2, vu_3), ViewPlane Normal (vpn_1, vpn_2,
vpn_3), et Clipping Range (clip_near, clip_far) (utilisées pour la persistance de la vue).
Resolution indique le nombre d'échantillons à prendre dans les directions X et Y. Ces valeurs sont
limitées au maximum à la résolution de la grille, c'est-à-dire les dimensions x,y de la grille. Par exemple,
si la grille mesure 200 x 200, les valeurs de résolution sont limitées à un maximum de 200 x 200. Vous
ne pouvez pas augmenter la résolution de la grille, vous pouvez seulement spécifier une valeur de
sous-échantillon.
grid_scale est le facteur d'échelle en Z de la grille. Une valeur supérieure à 1 accentuera la topologie
en Z ; une valeur inférieure à 1 diminuera le facteur d'échelle Z.
backgroundcolor correspond à la couleur utilisée pour l'arrière-plan ; elle est définie à l'aide de la fonction
RGB( ).
unit_name définit les unités des valeurs de la grille. Ne définissez pas ce paramètre lors de l'utilisation
de grilles sans unités (par exemple, des grilles générées à l'aide de températures ou de densités). Cette
option doit être spécifiée lors de la création. Vous ne pourrez plus la modifier plus tard via l'instruction
Set Map3D ou la boîte de dialogue Propriétés.
Description
Une fois créée, la fenêtre Vue3D est une fenêtre autonome. Étant donné qu'elle est basée sur les mêmes
tables que la fenêtre Carte originale, si ces tables sont modifiées et que la fenêtre Vue3D est rafraîchie
ou recréée manuellement à partir d'un document, les modifications apportées sont affichées au niveau
216
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
de la grille. La création échoue si le paramètre window_id ne correspond pas à une fenêtre Carte ou si
la fenêtre Carte n'inclut aucune couche Grille. Si la fenêtre Carte inclut plusieurs grilles, chacune sera
représentée dans la fenêtre Vue3D.
La fenêtre Vue3D conserve une chaîne de création de carte en tant que générateur de texture. Cette
chaîne prévaut également dans le document lorsque la fenêtre Vue3D est conservée. L'initialisation lira
dans la couche Grille pour créer les objets de topologie et de géométrie 3D.
Exemple
Create Map3D Resolution(75,75)
Crée une fenêtre Vue3D de la fenêtre Carte la plus récente. La fonction échoue si la fenêtre ne contient
aucune couche Grille continue. Autre exemple :
Create Map3D From Window FrontWindow( ) Resolution(100,100) Scale 2
Background RGB(255,0,0) Units "ft".
Crée une fenêtre Vue3D avec un arrière-plan rouge. Les unités Z sont des pieds, le facteur d'échelle Z
est de 2 et la résolution de la grille est définie sur 100 x 100.
Voir également
Instruction Set Map3D
Instruction Create Menu
Objectif
Crée un nouveau menu ou redéfinit un menu existant. Vous pouvez exécuter cette instruction à partir
de la fenêtre MapBasic de MapInfo Professional.
Syntaxe 1
Create Menu newmenuname [ ID menu_id ] [ Context ] As
menuitem [ ID menu_item_id ] [ HelpMsg help ]
{ Calling handler | As menuname }
[ , menuitem ... ]
Syntaxe 2
Create Menu newmenuname As Default
newmenuname est une chaîne qui représente le nom du menu à définir ou à redéfinir.
menuitem est une chaîne qui représente le nom d'une option à inclure dans le nouveau menu.
L'élément Context est réservé à un usage interne ; il est impossible de l'utiliser dans les programmes
MapBasic.
menu_id est un identifiant entier court, compris entre un et quinze, qui identifie un menu standard.
menu_item_id est un identifiant entier qui identifie une option de menu personnalisée.
help est une chaîne qui apparaît dans la barre d'état lorsque l'option de menu est mise en surbrillance.
handler est le nom d'une procédure, le code d'une commande de menu standard ou une syntaxe
permettant de gérer l'événement de menu en appelant OLE ou DDE. Reportez-vous à la section Options
Référence
217
Instruction Create Menu
de la clause Calling. Si vous définissez le code d'une commande d'affichage MapInfo Professional
standard (telle que M_WINDOW_STATISTICS), la chaîne menuitem doit commencer par un point
d'exclamation et inclure un caret (^) afin de préserver le comportement d'affichage de l'élément.
menuname est le nom d'un menu existant à inclure en tant que sous-menu hiérarchique.
Description
Si le paramètre newmenuname correspond au nom d'un menu MapInfo Professional existant (tel que
Fichier), l'instruction redéfinit le menu en question. Si le paramètre newmenuname ne correspond pas
au nom d'un menu existant, l'instruction Create Menu définit un menu entièrement nouveau. Pour obtenir
la liste des noms de menus de MapInfo Professional, reportez-vous à la section Instruction Alter Menu.
L'instruction Create Menu n'affiche pas automatiquement le menu nouvellement créé. Celui-ci n'apparaît
qu'une fois l'Instruction Alter Menu Bar ou l'Instruction Create Menu Bar. Cependant, si l'instruction
Create Menu altère un menu existant et si ce dernier fait déjà partie de la barre de menus, la modification
est immédiatement visible.
Remarque: MapInfo Professional ne peut conserver plus de 96 définitions de menu à la fois. Cela
inclut les menus automatiquement définis par MapInfo Professional (Fichier, etc.). Ce
seuil ne dépend pas du nombre de menus simultanément affichés au niveau de la barre
de menus.
Le paramètre menuitem identifie le nom de l'option de menu. Le nom de l'option peut contenir des
caractères de commande spéciaux, permettant de définir les attributs de l'option de menu (si elle peut
être cochée ou non, par exemple). Reportez-vous aux tableaux ci-dessous pour plus de détails.
Les caractères suivants nécessitent un traitement spécifique : barre oblique (/), barre oblique inversée
(\)et inférieur à (<). Si vous souhaitez inclure un de ces caractères spéciaux dans le menu ou l'aide de
la barre d'état, vous devez ajouter une barre oblique supplémentaire à la chaîne menuitem ou help. Par
exemple, l'instruction suivante crée l'option de menu Client/Serveur :
Create Menu "Data" As
"Client\/Server" Calling cs_proc
Si un paramètre menuitem commence par le caractère @, le menu personnalisé est divisé en deux
colonnes. L'option dont le nom commence par @ est la première de la seconde colonne.
Attribution de gestionnaires aux options de menu personnalisées
La plupart des options de menu incluent la clause Calling handler clause; où handler est le nom d'une
procédure MapBasic ou un code numérique identifiant une opération MapInfo Professional (telle que
M_FILE_SAVE pour définir la commande Fichier > Enregistrer). Si l'utilisateur sélectionne une option
de menu disposant d'un gestionnaire, MapBasic appelle automatiquement celui-ci (qu'il s'agisse d'une
sous-procédure ou d'un code de commande). Si vous envisagez de faire référence à des codes de menu
tels que M_FILE_SAVE, le programme doit inclure le fichier MENU.DEF.
La clause ID facultative vous permet d'attribuer un identifiant entier unique à chaque option de menu
personnalisée. Les identifiants d'options de menu sont utiles lorsque plusieurs options de menu peuvent
appeler la même procédure de gestionnaire. Au sein de la procédure de gestionnaire, vous pouvez
déterminer l'option de menu sélectionnée par l'utilisateur en appelant
CommandInfo(CMD_INFO_MENUITEM). Les identifiants d'options de menu peuvent être utilisés par
d'autres instructions, comme par exemple l'Instruction Alter Menu Item. Les options de menu ne
218
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
disposant ni d'un paramètre handler, ni d'un paramètre menuname sont inertes. Dans ce cas, elles sont
utilisées à des fins cosmétiques, pour afficher des lignes horizontales de saut d'un menu par exemple.
Création de menus hiérarchiques
Pour inclure un menu hiérarchique dans le nouveau menu, utilisez la sous-clause As à la place de la
sous-clause Calling. La sous-clause As doit définir le nom d'un menu existant à associer au nouveau
menu. L'exemple suivant crée un menu personnalisé contenant une option de menu conventionnelle et
un menu hiérarchique.
Create Menu "Special" As
"Configure" Calling config_sub_proc,
"Objects" As "Objects"
Lorsque vous ajoutez un menu hiérarchique, son nom apparaît au niveau du menu parent, à la place
de la chaîne menuitem.
Propriétés d'une option de menu
Les options de menu peuvent être activées ou désactivées. Les options désactivées sont grisées.
Certaines options de menu peuvent être cochées, ce qui signifie qu'une coche peut apparaître à côté
de l'option. Ces options ne connaissent que deux états : actif et inactif.
Pour définir les propriétés d'une option de menu, incluez des codes de commande (du tableau ci-dessous)
au début du paramètre menuitem.
Code de
commande
Effet
(
L'option de menu est initialement désactivée. Exemple : (Fermer
(-
L'option de menu est une ligne de séparation horizontale. Une telle option de menu
ne peut pas disposer d'un gestionnaire. Exemple : (-
($
Ce code spécial représente la liste des éléments récents du menu Fichier. Il ne
peut apparaître qu'une seule fois dans le système de menus et il ne peut pas être
utilisé pour un menu contextuel. Pour supprimer la liste des éléments récents du
menu Fichier, supprimez ce code du fichier MAPINFOW.MNU ou recréez le menu
Fichier en émettant une instruction Create Menu.
(>
Ce code spécial représente la liste des fenêtres ouvertes du menu Fenêtre. Il ne
peut apparaître qu'une seule fois dans le système de menus.
!
L'option de menu peut être cochée mais ne l'est pas par défaut.
Exemple : !Confirmer suppression
! ... ^ ...
Référence
Si un caret (^) apparaît dans la chaîne de texte d'une option de menu pouvant
être cochée, l'option ne passe pas du statut activé ou statut désactivé (et
inversement). À la place, le texte de l'option change (par exemple, Afficher
219
Instruction Create Menu
Code de
commande
Effet
ou Masquer). Le texte situé avant le caret apparaît lorsque l'option est cochée.
Exemple: !Cacher barre d'état^Afficher barre d'état
!+
L'option de menu peut être cochée et l'est par défaut.
Exemple : !+Confirmer suppression
Définition des raccourcis clavier
Les options de menu peuvent disposer de deux types différents de raccourcis clavier, qui permettent à
l'utilisateur de les sélectionner à l'aide du clavier plutôt qu'en cliquant avec la souris.
Un des types de raccourcis clavier permet à l'utilisateur de dérouler un menu ou de sélectionner une
option de menu à l'aide de touches. Par exemple, dans MapInfo Professional, l'utilisateur peut afficher
le menu Fenêtre en appuyant sur Alt+W, puis appuyer sur M (ou Alt-M) pour sélectionner Carte. Pour
créer ce type de raccourcis clavier, ajoutez une esperluette (&) à la chaîne newmenuname ou menuitem.
Par exemple, tapez « &Map » pour le paramètre menuitem de l'instruction Create Menu). Placez
l'esperluette juste avant le caractère à utiliser comme raccourci.
L'autre type de raccourcis clavier permet à l'utilisateur d'activer une option sans passer par le menu. Si
une option de menu dispose de la séquence de touches de raccourci Alt+F5, l'utilisateur peut activer
l'option de menu en appuyant sur Alt+F5. Pour créer ce type de raccourcis, utilisez les séquences de
touches suivantes.
Remarque: Les codes des tableaux suivants doivent apparaître à la fin du nom de l'option de menu.
Code de raccourci Windows
Effet
/W {letter | %number}
Définit une touche de raccourci Windows qui peut être activée
lorsque vous appuyez sur la touche adéquate.
Exemples : Zap /WZ ou Zap /W%120
/W# {letter | %number}
Définit une touche de raccourci Windows qui nécessite
également la touche Maj.
Exemples : Zap /W#Z ou Zap /W#%120
/W@ {letter | %number}
Définit une touche de raccourci Windows qui nécessite
également la touche Alt.
Exemples : Zap /W@Z ou Zap /W@%120
/W^ {letter | %number}
Définit une touche de raccourci Windows qui nécessite
également la touche Ctrl.
Exemples : Zap /W^Z ou Zap /W^%120
Pour utiliser une touche fonctionnelle comme raccourci Windows, vous devez ajouter le signe pour cent
(%) suivi d'un nombre au code de raccourci. Le nombre 112 correspond à F1, 113 à F2, etc.
220
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Remarque: L'instruction Create Menu Bar As Default supprime et annule la définition de l'ensemble
des menus personnalisés créés à l'aide de l'instruction Create Menu. Si vous souhaitez
annuler la définition d'un des menus personnalisés ajoutés par l'application, vous pouvez
émettre une instruction du type Create Menu nom_menu As Default.
Une fois un menu MapInfo Professional standard modifié (le menu Fichier, par exemple), vous pouvez
rétablir l'état original en émettant une instruction Create Menu menuname As Default.
Options de la clause Calling
La clause Calling définit les opérations à déclencher lorsque l'utilisateur utilise la commande
personnalisée. Le tableau suivant détaille la syntaxe disponible.
Exemple de clause Calling
Description
Calling M_FILE_NEW
Si la mention Calling est suivie d'un code
numérique issu du fichier MENU.DEF, MapInfo
Professional gère l'événement en exécutant une
commande de menu MapInfo Professional (Fichier
> Nouveau dans cet exemple).
Calling my_procedure
Si vous indiquez un nom de procédure, MapInfo
Professional gère l'événement en appelant celle-ci.
Calling OLE "methodname"
MapInfo Professional gère l'événement en
effectuant un appel de méthode en direction de
l'objet OLE Automation défini par la méthode
SetCallback.
Calling DDE "server","topic"
Windows uniquement. MapInfo Professional gère
l'événement en se connectant à “server|topic” via
le serveur DDE et en envoyant un message
d'exécution à ce serveur.
Dans les deux derniers cas, la chaîne envoyée au serveur OLE ou DDE commence par « MI: », de sorte
que le serveur puisse détecter que le message provient de MapInfo Professional. Le reste de la chaîne
inclut une liste de valeurs séparées par des virgules et renvoyées par les appels appropriés de la
Fonction CommandInfo( ). Pour des détails complets sur la syntaxe de la chaîne, reportez-vous au
Guide de l'utilisateur MapBasic.
Exemples
L'exemple suivant utilise l'instruction Create Menu pour créer un menu personnalisé, puis ajoute ce
dernier à la barre de menus de MapInfo Professional. Cet exemple supprime le menu Fenêtre (ID 6) et
le menu Aide (ID 7), puis ajoute le menu personnalisé, le menu Fenêtre et le menu Aide à la barre de
menus. Cette méthode permet de garantir que les deux derniers menus sont toujours les menus Fenêtre
et Aide.
Declare
Declare
Declare
Declare
Référence
Sub
Sub
Sub
Sub
Main
addsub
editsub
delsub
221
Instruction Create Menu Bar
Sub Main
Create Menu "DataEntry" As
"Add" Calling addsub,
"Edit" Calling editsub,
"Delete" Calling delsub
Alter Menu Bar Remove ID 6, ID 7
Alter Menu Bar Add "DataEntry", ID 6, ID 7
End Sub
L'exemple suivant crée une version abrégée du menu Fichier. Le caractère de commande « ( » indique
que les options Fermer, Enregistrer et Imprimer sont initialement désactivées. Les options Ouvrir et
Enregistrer disposent de séquences de touches de raccourci Windows (respectivement Ctrl+O et Ctrl+S).
Notez que les options Ouvrir et Enregistrer utilisent toutes deux la fonction Chr$(9) pour insérer une
tabulation dans le nom de l'option de menu, de sorte que le texte restant soit déplacé vers la droite.
Include "MENU.DEF"
Create Menu "File" As
"New" Calling M_FILE_NEW,
"Open" +Chr$(9)+"Ctrl+O/W^O" Calling M_FILE_OPEN,
"(-",
"(Close" Calling M_FILE_CLOSE,
"(Save" +Chr$(9)+"Ctrl+S /W^S" Calling M_FILE_SAVE,
"(-",
"(Print" Calling M_FILE_PRINT,
"(-",
"Exit" Calling M_FILE_EXIT
Si vous ne souhaitez pas que l'utilisateur puisse accéder aux menus de raccourci de MapInfo Professional,
recréez le menu adapté à l'aide d'une instruction Create Menu, puis définissez le menu en tant que
simple code de commande de séparation, c'est-à-dire : « (- ». L'exemple suivant utilise cette méthode
pour désactiver le menu de raccourci de la fenêtre Carte.
Create Menu "MapperShortcut" As "(-"
Voir également
Instruction Alter Menu Item, Instruction Create Menu Bar
Instruction Create Menu Bar
Objectif
Redéfinit entièrement la barre de menus à l'aide des menus disponibles. Vous pouvez exécuter cette
instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe 1
Create Menu Bar As
{ menu_name | ID menu_number }
[ , { menu_name | ID menu_number } ... ]
Syntaxe 2
Create Menu Bar As Default
222
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
menu_name est le nom d'un menu MapInfo Professional standard ou d'un menu personnalisé créé à
l'aide d'une Instruction Create Menu.
menu_number est le numéro associé à un menu MapInfo Professional standard (1 pour le menu Fichier,
par exemple).
Description
L'instruction Create Menu Bar permet à MapInfo Professional d'identifier les menus qui doivent apparaître
dans la barre de menus, ainsi que leur ordre d'affichage. Si l'instruction omet le nom d'un ou plusieurs
menus standard, le menu obtenu risque d'être plus court que le menu MapInfo Professional standard.
Inversement, si l'instruction inclut le nom d'un ou de plusieurs menus personnalisés (créés via l'Instruction
Create Menu), l'instruction Create Menu Bar peut créer une barre de menus plus longue que celle du
menu MapInfo Professional standard.
Il est possible d'identifier les menus par leur nom (Fichier, par exemple), qu'il s'agisse d'un menu standard
ou personnalisé. Il est également possible de faire référence aux menus standard de MapInfo Professional
par leur identifiant de menu. Le menu Fichier dispose par exemple de l'identifiant ID 1.
Reportez-vous à la section Instruction Alter Menu Item pour obtenir une liste des noms et numéros
d'identification des menus de MapInfo Professional.
Une fois la barre de menus personnalisée, l'instruction
Create Menu Bar As Default
permet de rétablir la barre de menus MapInfo Professional standard. Notez que l'instruction Create
Menu Bar As Default supprime toutes les options de menu personnalisées ajoutées par d'autres
applications MapBasic exécutées simultanément. Si vous ne souhaitez pas désactiver accidentellement
d'autres applications MapBasic, vous devez faire preuve de vigilance lorsque vous utilisez l'instruction
Create Menu Bar As Default.
Exemples
L'exemple suivant réduit la barre de menus de manière à ce qu'elle inclut uniquement les menus Fichier,
Édition, Sélection et les menus spécifiques à la fenêtre (Carte, Données, etc.).
Create Menu Bar As
"File", "Edit", "Query", "WinSpecific"
D'ordinaire, la barre de menus MapInfo Professional n'affiche le menu Carte que si la fenêtre active est
une fenêtre Carte. De même, MapInfo Professional affiche uniquement le menu Données lorsque la
fenêtre active est une fenêtre Données. L'exemple suivant redéfinit la barre de menus de sorte qu'elle
inclue toujours les menus Carte et Données, même lorsque l'écran n'affiche aucune fenêtre. Cependant,
toutes les options du menu Carte sont désactivées (grisées) si la fenêtre affichée n'est pas une fenêtre
Carte et toutes les options du menu Données sont désactivées si la fenêtre affichée n'est pas une fenêtre
Données.
Create Menu Bar As
"File", "Edit", "Query", "Map", "Browse"
L'exemple suivant crée un menu personnalisé, appelé Saisie Données, puis redéfinit la barre de menus
de manière à ce qu'elle inclut uniquement les menus Fichier, Édition et Saisie Données.
Declare Sub AddSub
Declare Sub EditSub
Declare Sub DelSub
Référence
223
Instruction Create Multipoint
Create Menu "DataEntry" As
"Add" calling AddSub,
"Edit" calling EditSub,
"Delete" calling DelSub
Create Menu Bar As
"File", "Edit", "DataEntry"
Voir également
Instruction Alter Menu Bar, Instruction Create Menu, Instruction Menu Bar
Instruction Create Multipoint
Objectif
Associe un certain nombre de points dans un seul objet. Tous les points disposent du même symbole.
L'objet Multipoint est affiché comme un seul enregistrement dans la fenêtre Données. Vous pouvez
exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Multipoint
[ Into { Window window_id | Variable var_name } ]
[ num_points ]
( x1, y1 ) ( x2, y2 ) [ ... ]
[ Symbol... ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
num_points correspond au nombre de points de l'objet multipoints.
x y définit l'emplacement du point.
La clause Symbol spécifie un style de symbole.
Remarque: Un seul symbole est utilisé pour l'ensemble des points inclus dans un objet multipoints.
MapInfo Professional utilise actuellement les quatre syntaxes suivantes pour définir le symbole utilisé
par les points :
Syntaxe 2 (syntaxe des symboles MapInfo Professional 3.0)
Symbol ( shape, color, size )
shape (forme) correspond à un entier (31 u plus), qui indique le caractère à utiliser à partir du jeu de
symboles standard de MapInfo Professional. Les symboles MapInfo 3.0 font référence au jeu de symboles
initialement publié avec MapInfo pour Windows 3.0, conservé dans les versions suivantes de MapInfo
Professional. Pour créer un symbole invisible, utilisez le nombre 31. Le jeu de symboles standard inclut
les symboles 31 à 67, mais l'utilisateur peut personnaliser le jeu de symboles à l'aide de l'application
Symbol.
color (couleur) correspond à une valeur de couleur RVB sous forme d'entier. Reportez-vous à la section
Fonction RGB( ).
224
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
size correspond à une taille en points sous forme d'entier, comprise entre 1 et 48.
Syntaxe 3 (syntaxe des polices TrueType)
Symbol ( shape, color, size, fontname, fontstyle, rotation )
shape correspond à un entier (31 ou plus), qui indique le caractère à utiliser à partir d'une police TrueType.
Pour créer un symbole invisible, utilisez le nombre 31.
color (couleur) correspond à une valeur de couleur RVB sous forme d'entier. Reportez-vous à la section
Fonction RGB( ).
size correspond à une taille en points sous forme d'entier, comprise entre 1 et 48.
fontname correspond à une chaîne qui représente un nom de police TrueType (par exemple, « Wingdings
»).
fontstyle est un code d'entier qui contrôle les attributs comme la mise en gras.
rotation correspond à un nombre à virgule flottante, qui représente un angle de rotation, en degrés.
Syntaxe 4 (syntaxe des fichiers bitmap personnalisés)
Symbol ( filename, color, size, customstyle )
filename correspond à une chaîne ayant jusqu'à 31 caractères, qui représente le nom d'un fichier bitmap.
Le fichier doit se trouver dans le répertoire CUSTSYMB (à moins qu'une Instruction Reload Symbols
n'ait été utilisée pour sélectionner un autre répertoire).
color (couleur) correspond à une valeur de couleur RVB sous forme d'entier. Reportez-vous à la section
Fonction RGB( ).
size correspond à une taille en points sous forme d'entier, comprise entre 1 et 48.
customstyle est un code d'entier qui contrôle les attributs de couleur et de fond. Reportez-vous au tableau
ci-dessous.
Syntaxe 5
Symbol symbol_expr
symbol_expr est une expression Symbol, représentant le nom d'une variable Symbol ou un appel de
fonction qui renvoie une valeur Symbol, la Fonction MakeSymbol( ), par exemple.
Exemple
Create Multipoint 7 (0,0) (1,1) (2,2) (3,4) (-1,1) (3,-2) (4,3)
Instruction Create Object
Objectif
Crée une ou plusieurs régions à l'aide d'une opération Buffer, Merge, Intersect, Union, Voronoi ou
Isogram. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Référence
225
Instruction Create Object
Syntaxe
Create Object As { Buffer | Isogram | Union | Intersect | Merge |
ConvexHull | Voronoi }
From fromtable
[ Into { Table intotable | Variable varname } ]
[ Data column = expression [ , column = expression... ] ]
[ Group By { column | RowID } ]
fromtable est le nom d'une table ouverte, contenant un ou plusieurs objets graphiques.
intotable est le nom d'une table ouverte dans laquelle les nouveaux objets seront stockés.
varname est le nom d'une variable objet dans laquelle un nouvel objet sera stocké.
column est le nom d'une colonne de la table.
expression est une expression utilisée pour remplir le paramètre column.
Description
L'instruction Create Object crée un ou plusieurs objets région en effectuant une opération géographique
(Buffer, Merge, Intersect, Union, ConvexHull, Voronoi ou Isogram) sur un ou plusieurs objets existants.
La clause Into définit l'emplacement de stockage des résultats. Pour stocker les résultats dans une
table, précisez Into Table. Pour stocker les résultats dans une variable objet, sélectionnez Into Variable.
Si vous omettez la clause Into, les résultats sont stockés dans la table source.
Remarque: Si vous définissez une clause Group By dans le but de procéder à l'agrégation des
données, vous devez stocker les résultats dans une table plutôt que dans une variable.
Le mot-clé qui suit As définit le type d'objet créé. Buffer et Isogram sont des paramètres détaillés dans
les sections suivantes : Create Object As Buffer et Create Object As Isogram.
Union
Indiquez Union pour effectuer une opération d'association, qui supprime toutes les zones de
chevauchement. Si vous réunissez deux régions qui se chevauchent (contenant chacune un polygone),
vous pouvez obtenir un objet région ne contenant qu'un seul polygone.
Les opérations d'association et de fusion sont similaires mais fonctionnent de manière très différente
lorsque certains objets sont complètement inclus dans d'autres. Dans ce cas, l'opération de fusion
supprime la zone du plus petit objet au niveau de l'objet plus grand, en laissant un trou à l'emplacement
où se trouvait le plus petit objet. L'opération de regroupement ne supprime pas la zone du plus petit
objet.
Create Objects As Union est semblable à l'instruction Objects Combine. L'instruction Objects
Combine supprime l'entrée et insère un nouvel objet associé.L'instruction Create Objects As Union
insère uniquement le nouvel objet associé ; elle ne supprime pas les objets d'origine. L'association à
l'aide d'une cible et de tables différentes est uniquement possible avec l'instruction Objects Combine.
La fonctionnalité Fusionner des objets depuis une colonne est uniquement disponible lors de l'utilisation
de l'instruction Create Objects As Union avec la clause Group By.
Si une instruction Create Object As Union n'inclut pas la clause Group By, MapInfo Professional crée
un objet associé pour tous les objets de la table. Si l'instruction inclut une clause Group By, elle doit
désigner une colonne de la table pour permettre à MapInfo Professional de regrouper les objets source
en fonction du contenu de la colonne et produire un objet associé pour chaque groupe d'objets.
226
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Si vous définissez une clause Group By, MapInfo Professional regroupe tous les enregistrements
partageant la même valeur et effectue une opération (Merge, par exemple) au niveau du groupe.
Si vous définissez une clause Data, MapInfo Professional procède à l'agrégation des données. Par
exemple, si vous effectuez des opérations d'association ou de fusion, vous pouvez utiliser la clause
Data pour attribuer des valeurs de données basées sur les fonctions d'agrégation Sum( ) ou Avg( ).
Intersect
Indiquez Intersect pour créer un objet représentant l'intersection d'autres objets (par exemple, si deux
régions se chevauchent, l'intersection est la zone couverte par les deux objets).
Appliquer
Indiquez Merge pour créer un objet représentant la zone associée des objets source. L'opération Merge
produit un résultat contenant l'ensemble des polygones appartenant aux objets originaux. Si ces derniers
se chevauchent, l'opération de fusion ne supprime pas le chevauchement. Ainsi, si vous fusionnez deux
régions qui se chevauchent (contenant chacune un polygone), vous pouvez obtenir un objet région
contenant deux polygones se chevauchant. Dans ce cas, vous utiliserez plutôt l'opération Union.
Enveloppe convexe
L'opérateur ConvexHull crée un polygone enveloppant le contour d’un ensemble de points. L'enveloppe
créée est convexe, c'est à dire qu'elle ne contient pas d'inflexion concave, tout comme un ruban élastique
entourant au plus serré un ensemble de points. Ce polygone est composé d'un ensemble de points
restreint, tel que tous les autres points se trouvent sur ou dans le polygone. Puisqu'il est convexe, il n'y
aura pas d'angle intérieur supérieur à 180 degrés.
Les points utilisés pour créer l'enveloppe convexe sont les nœuds des régions, polylignes ou points de
la table source. Si une instruction Create Object As ConvexHull n'inclut pas la clause Group By,
MapInfo Professional crée un seul polygone à enveloppe convexe Si l'instruction inclut une clause Group
By désignant une colonne de la table, MapInfo Professional regroupe les objets source en fonction du
contenu de la colonne et génère un polygone à enveloppe convexe pour chaque groupe d'objets. Si
l'instruction inclut une clause Group By RowID, MapInfo Professional crée un polygone à enveloppe
convexe pour chaque objet de la table source.
Voronoi
Indiquez Voronoi pour créer des régions qui représentent les solutions Voronoi des points d'origine. Il
est possible d'attribuer les valeurs de données des points d'origine au polygone résultant des points en
question en définissant les clauses de données.
Exemple
L'exemple suivant permet de fusionner les objets région de la table Parcels et de stocker les régions
obtenues dans la table Zones. L'instruction Create Object incluant une clause Group By, MapBasic
regroupe les régions de la table Parcels puis effectue une opération de fusion pour chaque groupe. La
table Zones dispose ainsi d'un objet région pour chaque groupe d'objets de la table Parcels. Chaque
groupe est composé de l'ensemble des parcelles disposant de la même valeur dans la colonne id_zone.
Une fois l'instruction Create Object émise, la colonne nbre_parcelles de la table Zones indique le nombre
de parcelles fusionnées pour produire la zone en question. La colonne valeur_zone de la table Zones
indique la somme des valeurs des parcelles incluses dans la zone en question.
Open Table "PARCELS"
Open Table "ZONES"
Référence
227
Instruction Create Object
Create Object As Merge
From PARCELS Into Table ZONES Data
parcelcount=Count(*),zonevalue=Sum(parcelvalue)
Group By zone_id
L'exemple suivant présente une enveloppe convexe à objets multiples créée à l'aide de l'instruction
Create Object As.
Create Object As ConvexHull from state_caps into Table dump_table
Create Object As Buffer
Syntaxe
Create Object As Buffer
From fromtable
[ Into { Table intotable | Variable varname } ]
[ Width bufferwidth [ Units unitname ]]]
[ Type { Spherical | Cartesian } ] ]
[ Resolution smoothness ]
[ Data column = expression [ , column = expression... ] ]
[ Group By { column | RowID } ]
bufferwidth est un nombre définissant le déplacement utilisé dans le cadre d'une opération Buffer. Si ce
nombre est négatif et si l'objet source est fermé, le tampon obtenu est plus petit que l'objet source. Si
width est négatif et si l'objet est un objet linéaire (ligne, polyligne, arc) ou un point, la valeur absolue de
width est utilisée pour générer un tampon positif.
unitname
smoothness est un entier compris entre 2 et 100, indiquant le nombre de segments par cercle dans le
cadre d'une opération Buffer.
Description
Si l'instruction Create Object effectue une création de zone tampon (opération Buffer), elle peut inclure
les clauses Width et Resolution. La clause Width définit la largeur du tampon. La sous-clause Units
facultative vous permet de définir le nom de l'unité de distance (« km » pour kilomètres) à appliquer à
la clause Width. Si la clause Width n'inclut pas la sous-clause Units, l'unité de distance actuellement
définie pour MapBasic est utilisée pour la largeur du tampon. Par défaut, MapBasic utilise les miles
comme unité de distance. Pour modifier cette unité, utilisez l'instruction Set Distance Units.
Type est la méthode utilisée pour calculer la largeur du tampon autour de l'objet. Les paramètres possibles
sont Spherical et Cartesian. Notez que si le système de coordonnées de la table cible n'est pas un
système terrestre, les calculs sont effectués à l'aide des méthodes cartésiennes, quelle que soit l'option
sélectionnée. De même, si le système de coordonnées de la table cible est latitude/longitude, les calculs
sont effectués à l'aide des méthodes sphériques, quelle que soit l'option sélectionnée.
La sous-clause facultative Type vous permet de définir le type de calcul de distance utilisé pour créer
le tampon. Si le type Spherical est spécifié, les calculs sont effectués en cartographiant les données
dans une projection Latitude/Longitude sur la Terre et à l'aide de la largeur mesurée avec les calculs
de distance sphériques. Si le type Cartesian est utilisé, les calculs sont effectués en prenant en compte
les données à projeter sur une surface plane et les largeurs sont mesurées à l'aides des calculs de
distance cartésiens. Si la clause Width n'inclut pas la sous-clause Type, le type de calcul de distance
228
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
par défaut Spherical est utilisé. Si les données disposent d'une projection Latitude/Longitude, des calculs
sphériques sont utilisés, quel que soit le paramètre Type. Si les données disposent d'une projection non
terrestre, des calculs cartésiens sont utilisés, quel que soit le paramètre Type.
Le mot-clé Resolution vous permet de définir le nombre de segments inclus dans chaque cercle de la
région tampon. Par défaut, les objets tampon disposent d'une valeur de lissage (smoothness) de douze
(12), ce qui signifie qu'une région tampon en forme de cercle inclut douze segments. Si vous définissez
une valeur smoothness plus élevée, vous pouvez obtenir des régions tampon plus homogènes. Notez
cependant que plus la valeur de lissage est élevée, plus l'instruction Create Object nécessite de temps
et plus l'espace disque occupé par l'objet obtenu est important.
Si une instruction Create Object As Buffer n'inclut pas la clause Group By, MapInfo Professional crée
un seul polygone tampon. Si l'instruction inclut une clause Group By désignant une colonne de la table,
MapInfo Professional regroupe les objets source en fonction du contenu de la colonne et génère une
région tampon pour chaque groupe d'objets. Si l'instruction inclut une clause Group By RowID, MapInfo
Professional crée une région tampon pour chaque objet de la table source.
Exemple
L'exemple suivant crée un objet région représentant un tampon d'un quart de mile autour des objets
actuellement sélectionnés. L'objet tampon est stocké dans la variable objet, corridor. Vous pouvez
ensuite copier l'objet dans une table en utilisant l'instruction Update ou l'instruction Insert.
Dim corridor As Object
Create Object As Buffer
From Selection
Into Variable corridor
Width 0.25 Units "mi"
Resolution 60
Create Object As Isogram
Syntaxe
Create Object As Isogram
From fromtable
[ Into { Table intotable } ]
[ Data column = expression [ , column = expression... ] ]
Connection connection_handle
[ Distance dist1 [[ Brush ... ] [ Pen ... ]]
[ , dist2 [ Brush ... ] [ Pen ... ]]
[ , distN [ Brush ... ] [ Pen ... ] [ ,...]
Units dist_unit ]
[ Time time1 [[ Brush ... ] [ Pen ... ]]
[ , time2 [ Brush ... ] [ Pen ... ]]
[ , timeN [ Brush ... ] [ Pen ... ]] [ ,...]
Units time_unit ]
connection_handle est une expression numérique renvoyée par l'instruction Open Connection et
définissant la connexion à utiliser.
dist1, dist2, distN sont des expressions numériques représentant les distances des isogrammes,
exprimées à l'aide du paramètre dist_unit.
Brush est une clause Brush qui définit le style de remplissage.
Référence
229
Instruction Create Pline
Pen est une clause Pen qui définit le style de ligne.
dist_unit représente une unité de distance valide (par exemple, « km » pour kilomètres). Pour obtenir la
liste complète des valeurs possibles, reportez-vous à la section Instruction Set Distance Units.
time1, time2, timeN sont des valeurs numériques représentant les éléments temporels des isogrammes,
exprimées à l'aide du paramètre time_unit.
time_unit est une chaîne représentant une unité de temps valide : hr, min et sec.
Description
Si l'instruction Create Objecteffectue une opération Isogram, vous devez émettre un paramètre
connection_handle correspondant à une connexion ouverte, créée à l'aide d'une instruction Open
Connection. Vous devez définir une clause Distance ou Time pour créer un isogramme de la taille
souhaitée. La clause Distance peut contenir une ou plusieurs expressions de distance avec un style de
remplissage et/ou de ligne facultatif pour chacune. Si vous ne définissez aucune clause Brush ou
clause Pen, les styles Brush et Pen actuels sont utilisés. Quel que soit le nombre d'instances Distance
définies, une seule chaîne Units doit être fournie dans le cadre de la sélection des unités utilisées pour
exprimer les distances.
Si vous définissez une clause Time, vous pouvez créer des régions basées sur la durée, chacune
disposant d'une clause Brush et/ou d'une clause Pen facultative. Si vous ne définissez aucune clause
Brush ou clause Pen, les styles Brush et Pen actuels sont utilisés. Quel que soit le nombre d'instances
Time définies, une seule chaîne Units doit être fournie dans le cadre de la sélection des unités utilisées
pour exprimer les durées. La quantité maximum de valeurs est de 50. Chaque valeur crée une bande
distincte, propre aux durées ou aux distances indiquées. Plus les valeurs sont élevées, plus la création
est longue. De nombreux éléments entrent en ligne de compte. Cependant, en règle générale, le fait
d'utiliser l'instruction Set Connection Isogram avec la clause MajorRoadsOnly permet d'obtenir une
réponse beaucoup plus rapide que lors de l'utilisation du réseau routier entier. MapBasic autorise les
distances de 35 miles avec la clause MajorRoadsOnly Off de 280 miles avec la clause MajorRoadsOnly
On. De même, la durée maximale est de 0,5 heure avec la clause MajorRoadsOnly Off et de 4 heures
avec la clause MajorRoadsOnly On.
Voir également
Fonction Buffer( ), Fonction ConvexHull( ), Instruction Objects Combine, Instruction Objects
Erase, Instruction Objects Intersect, Instruction Open Connection
Instruction Create Pline
Objectif
Crée un objet polyligne. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de
MapInfo Professional.
Syntaxe
Create Pline
[ Into { Window window_id | Variable var_name } ]
[ Multiple num_sections ]
num_points ( x1, y1 ) ( x2, y2 ) [ ... ]
230
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
[ Pen... ]
[ Smooth ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
num_points définit le nombre de nœuds inclus dans la polyligne.
num_sections définit le nombre de sections incluses dans la polyligne à sections multiples.
Chaque paire x, y définit un nœud de la polyligne.
La clause Pen définit un style de ligne.
Description
L'instruction Create Pline crée un objet polyligne. Si vous devez créer un objet polyligne mais ignorez
jusqu'au moment de l'exécution le nombre de nœuds inclus dans l'objet, créez l'objet en deux étapes.
Utilisez d'abord Create Pline pour créer un objet sans aucun nœud, puis émettez l'instruction Alter
Object pour ajouter des détails à l'objet polyligne.
Si l'instruction inclut la clause Into Variable facultative, l'objet est stocké dans la variable objet indiquée.
Si la clause Into définit un identifiant de fenêtre, l'objet est stocké à l'emplacement correspondant de la
fenêtre (la couche modifiable d'une fenêtre Carte, par exemple). Si vous omettez la clause Into, MapInfo
Professional tente de stocker l'objet dans la fenêtre au premier plan. Si cela n'est pas possible, aucun
objet n'est créé.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic (par défaut,
Longitude/Latitude). Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en
unités papier. Pour obtenir des détails sur les unités papier, consultez la section Instruction Set Paper
Units. Par défaut, MapBasic utilise les pouces comme unité papier. L'instruction Set Layout permet
de sélectionner une autre unité papier. Si vous devez créer des objets au niveau d'une fenêtre Mise en
page, vous devez d'abord émettre une instruction Set CoordSys Layout.
La clause Pen facultative définit un style de ligne. Si aucune clause Pen n'est définie, l'instruction Create
Pline utilise le style de ligne défini (celui figurant dans la boîte de dialogue Options > Style ligne de
MapInfo Professional).La clause Smooth indique à MapInfo Professional qu'il doit lisser la ligne afin
qu'elle s'affiche sous la forme d'une ligne continue, comportant des courbes plutôt que des angles.
Une polyligne à section unique peut contenir jusqu'à 134 217 724 nœuds. Le nom maximal de segments
d'une polyligne à plusieurs segments est 24 403 223.
Voir également
Instruction Alter Object, Instruction Insert, Clause Pen, Instruction Set CoordSys, Instruction
Update
Fonction CreatePoint( )
Objectif
Renvoie une valeur objet représentant un point. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Référence
231
Fonction CreatePoint( )
Syntaxe
CreatePoint( x, y )
x est une valeur à virgule flottante représentant une position x (longitude, par exemple).
y est une valeur à virgule flottante représentant une position y (latitude, par exemple).
Valeur renvoyée
Objet
Description
La fonction CreatePoint( ) renvoie une valeur objet représentant un point.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic, quel qu'il soit. Par
défaut, MapBasic utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys
peut cependant reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées.
Notez que le système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des
fenêtres Carte.
L'objet point utilisera le style de symbole actuellement sélectionné. Pour créer un objet point avec un
style de symbole spécifique, vous pouvez émettre l'instruction Set Style avant d'appeler CreatePoint(
). Au lieu d'appeler CreatePoint( ), vous pouvez également émettre une instruction Create Point, qui
dispose d'une clause Symbol facultative.
L'objet point créé à l'aide de la fonction CreatePoint( ) peut être attribué à une variable objet stockée
dans la ligne existante d'une table (à l'aide de l'instruction Update), ou insérée dans la nouvelle ligne
d'une table (à l'aide de l'instruction Insert).
Remarque: Si vous devez créer des objets au niveau d'une fenêtre Mise en page, vous devez d'abord
émettre une instruction Set CoordSys.
Exemples
L'exemple suivant utilise l'instruction Insert pour insérer une nouvelle ligne dans la table Sites. La
fonction CreatePoint( ) est ajoutée au corps de l'instruction Insert pour définir l'objet graphique joint à
la nouvelle ligne.
Open Table "sites"
Insert Into sites (obj)
Values ( CreatePoint(-72.5, 42.4) )
L'exemple suivant part du principe que la table Sites contient des colonnes coordX et coordY, qui indiquent
la longitude et la latitude des données. L'instruction Update utilise la fonction CreatePoint( ) pour créer
un objet point pour chaque ligne de la table. Une fois l'opération Update effectuée, un objet point est
joint à chaque ligne de la table Sites. Chaque objet point est situé à l'emplacement indiqué dans les
colonnes CoordX et CoordY.
Open Table "sites"
Update sites
Set obj = CreatePoint(xcoord, ycoord)
L'exemple ci-dessus part du principe que les colonnes CoordX et CoordY contiennent des valeurs réelles
de longitude et de latitude en degrés.
232
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Instruction Create Point, Instruction Insert, Instruction Update
Instruction Create Point
Objectif
Crée un objet point. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Create Point
[ Into { Window window_id | Variable var_name } ]
( x, y )
[ Symbol... ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
x, y définit l'emplacement du point.
La clause Symbol spécifie un style de symbole.
Description
L'instruction Create Point crée un objet point.
Si l'instruction inclut la clause Into Variable facultative, l'objet est stocké dans la variable objet indiquée.
Si la clause Into définit un identifiant de fenêtre, l'objet est stocké à l'emplacement correspondant de la
fenêtre (la couche modifiable d'une fenêtre Carte, par exemple). Si la clause Into n'est pas définie,
MapBasic tente de stocker l'objet dans la fenêtre au premier plan. S'il n'est pas possible de stocker des
objets dans la fenêtre au premier plan (s'il s'agit d'une fenêtre Graphique, par exemple), aucun objet
n'est créé.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Notez que le
système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des fenêtres
Carte. Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en unités papier.
chaque coordonnée x représente une distance à partir du bord gauche de la page tandis que chaque
coordonnée y représente une distance à partir du bord supérieur de la page. Pour obtenir des détails
sur les unités papier, reportez-vous à la section Instruction Set Paper Units. Par défaut, MapBasic
utilise les pouces comme unité papier. L'instruction Set Paper Units permet de sélectionner une autre
unité papier.
Remarque: Si vous devez créer des objets au niveau d'une fenêtre Mise en page, vous devez d'abord
émettre une instruction Set CoordSys Layout.
La clause Symbol spécifie un style de symbole. Reportez-vous à la section Clause Symbol pour plus
de détails. Si aucune clause Symbol n'est définie, l'instruction Create Point utilise le style de symbole
actuellement défini (celui qui apparaît dans la boîte de dialogue Options > Style symbole).
Référence
233
Instruction Create PrismMap
Voir également
Fonction CreatePoint( ), Instruction Insert, Clause Symbol, Instruction Update
Instruction Create PrismMap
Objectif
Crée une carte prismatique. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de
MapInfo Professional.
Syntaxe
Create PrismMap
[ From Window window_ID | MapString mapper_creation_string ]
{ layer_id | layer_name }
With expr
[ Camera [Pitch angle | Roll angle | Yaw angle | Elevation angle] |
[ Position ( x, y, z ) | FocalPoint ( x, y, z ) ] |
[ Orientation(vu_1, vu_2, vu_3, vpn_1, vpn_2, vpn_3,
clip_near, clip_far) ]
]
[ Light Color lightcolor ]
[ Scale grid_scale ]
[ Background backgroundcolor ]
window_id est un identifiant de fenêtre pour une fenêtre Carte contenant une couche Région. Un message
d'erreur s'affiche si aucune couche incluant des régions n'est localisée.
mapper_creation_string définit une chaîne de commande qui crée la carte posée sur la texture de la
carte prismatique.
layer_id est l'identifiant d'une couche de la carte (à partir de 1).
layer_name est le nom d'une couche dans la carte.
expr est une expression évaluée pour chaque ligne de la table.
Camera définit la position et l'orientation de la perspective.
angle est une mesure d'angle en degrés. L'angle horizontal de la boîte de dialogue est compris entre 0
et 360 degrés et fait pivoter les cartes autour du point central de la grille. L'angle vertical de la boîte de
dialogue est compris entre 0 et 90 et mesure la rotation en fonction de l'élévation par rapport au point
de départ au-dessus de la carte.
Pitch règle la rotation de la perspective sur l'axe des X depuis une position centrale.
Roll règle la rotation de la perspective sur l'axe des Z depuis une position centrale.
Yaw règle la rotation de la perspective sur l'axe des Y depuis une position centrale.
Elevation règle la rotation de la perspective sur l'axe des X depuis le foyer.
Position indique la position de la perspective et/ou de l'éclairage.
FocalPoint indique le foyer de la perspective et/ou de l'éclairage.
Orientation définit les perspectives ViewUp (vu_1, vu_2, vu_3), ViewPlane Normal (vpn_1, vpn_2,
vpn_3) et Clipping Range (clip_near et clip_far), utilisées pour la persistance de la vue.
234
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
grid_scale est le facteur d'échelle en Z de la grille. Une valeur supérieure à 1 accentuera la topologie
en Z ; une valeur inférieure à 1 diminuera le facteur d'échelle Z.
backgroundcolor correspond à la couleur utilisée pour l'arrière-plan ; elle est définie à l'aide de la fonction
RGB( ).
Description
L'instruction Create PrismMap crée une fenêtre Carte prismatique. La carte prismatique permet de
réunir les différentes variables d'un objet dans un même visuel. Par exemple, la couleur associée à une
région peut être le résultat de la coloration thématique alors que la hauteur de profilage de l'objet
représente une valeur différente. L'instruction Create PrismMap correspond à l'option de menu Carte
> Créer une carte prismatique de MapInfo Professional.
D'une session à l'autre, MapInfo Professional conserve les paramètres des cartes prismatiques en
stockant une instruction Create PrismMap dans le fichier de document. Pour découvrir un exemple de
l'instruction Create PrismMap créez une carte, sélectionnez la commande Carte > Créer une analyse
thématique, enregistrez le document (par exemple, PRISM.WOR) et examinez-le dans une fenêtre
d'édition de texte MapBasic. Vous pouvez alors copier l'instruction Create PrismMap dans votre
programme MapBasic. De même, vous pouvez découvrir des exemples de l'instruction Create PrismMap
ouvrant la fenêtre MapBasic de MapInfo Professional avant de sélectionner Carte > Créer une carte
prismatique.
Chaque instruction Create PrismMap doit comporter une clause expr. MapInfo Professional évalue
cette expression pour chaque objet de la couche. Suite à l'instruction Create PrismMap, MapInfo
Professional sélectionne le style d'affichage de chaque objet en fonction de la valeur expr de
l'enregistrement. L'expression inclut généralement les noms d'une ou plusieurs colonnes de la table
analysée.
La clause facultative window_id identifie la couche à utiliser dans la carte prismatique. Si aucun paramètre
window_id n'est défini, MapBasic utilise la fenêtre Carte qui se trouve au premier plan. L'instruction
Create PrismMap doit spécifier la couche à utiliser, même si la fenêtre Carte ne comporte qu'une seule
couche. La couche peut être identifiée par un nombre (layer_id), auquel cas la couche de carte qui se
trouve au premier plan possède une valeur layer_id égale à 1, la couche suivante possède une valeur
layer_id égale à 2, etc. L'instruction Create PrismMap peut également identifier la couche de carte par
un nom (par exemple, monde).
Exemple
Open Table "STATES.TAB" Interactive
Map From STATES
Create PrismMap From Window FrontWindow( ) STATES With Pop_1980 Background
RGB(192,192,192)
Voir également
Instruction Set PrismMap, Fonction PrismMapInfo( )
Référence
235
Instruction Create Query
Instruction Create Query
Objectif
Génère une table de requête représentant le contenu en cours de la fenêtre Données spécifiée. Vous
pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Query
From Window window_id
Into query_name
window_id est l'identifiant de fenêtre entier de la fenêtre Données.
query_name est le nom de la table de requête à générer.
Conditions d'erreur
L'erreur ERR_TABLE_ALREADY_OPEN est générée s'il existe déjà une table ouverte portant le nom
query_name et si cette table n'est pas une table de requête.
Description
Une fois que vous avez appliqué des conditions de tri et/ou de filtre dans une fenêtre Données, vous
pouvez effectuer d'autres opérations sur les résultats du filtre. Utilisez l'instruction Create Query pour
générer une table de requête représentant le contenu en cours de la fenêtre Données. La requête
obtenue représente l'ensemble des lignes correspondant aux conditions de filtre. Vous pouvez ensuite
utiliser la requête dans d'autres instructions MapBasic comme l'instruction Update, l'instruction Commit
Table et l'instruction Map.
Exemple
Browse * From World
Set Browse Filter Where (Continent = "North America" Or Continent = "South
America")
Create Query From Window Frontwindow() into Americas
Map From Americas
Voir également
Instruction Set Browse, Instruction Select
Instruction Create Ranges
Objectif
Calcule des plages thématiques et les stocke dans un tableau, qui peut ensuite être utilisé dans une
instruction Shade. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
236
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
Create Ranges
From table
With expr
[ Use { "Equal Ranges" | "Equal Count" | "Natural Break" | "StdDev" } ]
[ Quantile Using q_expr ]
[ Number num_ranges ]
[ Round rounding_factor ]
Into Variable array_variable
table est le nom de la table qui doit être analysée thématiquement.
expr est une expression évaluée pour chaque ligne de la table.
q_expr est l'expression utilisée pour procéder à la définition des quantiles.
num_ranges correspond au nombre de plages (la valeur par défaut est 4).
rounding_factor est un facteur d'arrondi qui doit être utilisé pour les nombres de répartition de la plage
(10 pour arrondir les valeurs selon la dizaine la plus proche, par exemple).
array_variable est une variable de tableau à virgule flottante dans laquelle les informations de la plage
seront stockées.
Description
L'instruction Create Ranges calcule un ensemble de valeurs de plage qui peut ensuite être utilisé dans
une instruction Shade (pour créer une couche de carte thématique). Pour une présentation des cartes
thématiques, reportez-vous à la documentation de MapInfo Professional.
La clause Use facultative indique comment répartir les données en plages. Si vous définissez « Equal
Ranges », chaque plage recouvre une section équivalente du spectre de valeurs (0-25, 25-50, 50-75,
75-100, par exemple). Si vous indiquez « Equal Count », les plages sont définies de telle manière qu'elles
comportent approximativement le même nombre de lignes. Si vous définissez « Natural Break », les
plages sont créées en fonction des répartitions automatiques de l'ensemble des valeurs de données.
Si vous indiquez « StdDev », la répartition de la classe médiane se fait à la moyenne des valeurs. Les
classes situées au-dessus et au-dessous de la classe médiane se trouvent respectivement à un écart
type au-dessus et au-dessous de la moyenne. MapInfo Professional utilise l'écart type de la population
(N - 1).
La clause Into Variable définit le nom de la variable de tableau à virgule flottante dans laquelle les
informations de la plage seront stockées. Il n'est pas nécessaire de définir la taille du tableau au préalable.
Si nécessaire, MapInfo Professional l'agrandit automatiquement en fonction de la quantité d'informations
de la plage. La taille finale du tableau correspond au double du nombre de plages. MapInfo Professional
calcule en effet une valeur élevée et une valeur faible pour chaque plage.
Une fois l'instruction Create Ranges émise, appelez l'instruction Shade pour créer la carte thématique
et utilisez la clause From Variable facultative de l'instruction Shade pour lire le tableau des plages.
L'instruction Shade utilise généralement le même nom de table et la même expression de colonne que
l'instruction Create Ranges.
Quantiles de plage
Si la clause Quantile Using facultative est présente, la clause Use n'est pas prise en compte et les
limites de la plage sont définies en fonction du paramètre q_expr.
Référence
237
Instruction Create Ranges
La définition des quantiles des plages est parfaitement illustrée par l'exemple. L'instruction suivante crée
des plages de valeurs relatives à l'indice de pouvoir d'achat et utilise les statistiques de population par
État pour définir les quantiles et les limites des plages.
Create Ranges From states
With BPI_1990 Quantile Using Pop_1990
Number 5
Into Variable f_ranges
En indiquant la clause Number 5, cet exemple crée un ensemble de cinq plages.
La clause With BPI_1990 a l'effet suivant : les États disposant des valeurs d'indice de pouvoir d'achat
les plus élevées seront placés dans la plage supérieure (couleur la plus sombre) et ceux disposant des
valeurs d'indice de pouvoir d'achat les plus faibles seront placés dans la plage inférieure (couleur la plus
pâle).
Avec la clause Quantile Using Pop_1990, les limites des plages intermédiaires sont calculées en
définissant les quantiles à l'aide d'une méthode qui prend en compte la population par État (Pop_1990).
La clause Quantile Using indiquant la colonne Pop_1990, MapInfo Professional calcule la population
totale de 1990 pour la table (qui est d'environ 250 millions pour les États-Unis). MapInfo Professional
divise ce total par le nombre de plages (cinq, dans ce cas), ce qui donne un résultat de cinquante millions.
MapInfo Professional tente ensuite de définir les plages afin que la population totale de chacune soit
environ égale à cinquante millions (sans dépasser ce chiffre).
MapInfo Professional récupère les lignes de la table States par l'ordre croissant des valeurs d'indice de
pouvoir d'achat. MapInfo Professional attribue des lignes à la première plage jusqu'à ce que l'ajout d'une
ligne résulte en un cumul de population équivalent ou supérieur à cinquante millions. MapInfo Professional
considère alors que la première plage est pleine et attribue des lignes à la deuxième plage. MapInfo
Professional ajoute des lignes à la deuxième plage jusqu'à ce que l'ajout d'une ligne résulte en un total
cumulé équivalent ou supérieur à cent millions. La deuxième plage est alors considérée comme pleine,
etc.
Exemple
Include "mapbasic.def"
Dim range_limits( ) As Float, brush_styles( ) As Brush
Dim col_name As Alias
Open Table "states" Interactive
Create Styles
From Brush(2, CYAN, 0) 'style for LOW range
To Brush (2, BLUE, 0) 'style for HIGH range
Vary Color By "RGB"
Number 5
Into Variable brush_styles
' Store a column name in the Alias variable:
col_name = "Pop_1990"
Create Ranges From states
With col_name
Use "Natural Break"
Number 5
Into Variable range_limits
Map From states
238
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Shade states
With col_name
Ranges
From Variable range_limits
Style Variable brush_styles
' Show the theme legend window:
Open Window Legend
Voir également
Instruction Create Styles, Instruction Set Shade, Instruction Shade
Instruction Create Rect
Objectif
Crée un objet rectangle ou carré. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Syntaxe
Create Rect
[ Into { Window window_id | Variable var_name } ]
( x1, y1 ) ( x2, y2 )
[ Pen ... ]
[ Brush ... ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
x1, y1 définit le coin de départ du rectangle.
x2, y2 définit le coin opposé du rectangle.
Pen est une clause Pen qui définit le style de ligne.
Brush est une clause Brush qui définit le style de remplissage.
Description
Si l'instruction inclut la clause Into Variable facultative, l'objet est stocké dans la variable objet indiquée.
Si la clause Into définit un identifiant de fenêtre, l'objet est stocké à l'emplacement correspondant de la
fenêtre (la couche modifiable d'une fenêtre Carte, par exemple). Si la clause Into n'est pas définie,
MapBasic tente de stocker l'objet dans la fenêtre au premier plan. S'il n'est pas possible de stocker des
objets dans la fenêtre au premier plan (s'il s'agit d'une fenêtre Graphique, par exemple), aucun objet
n'est créé.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Notez que le
système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des fenêtres
Carte. Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en unités papier.
chaque coordonnée x représente une distance à partir du bord gauche de la page tandis que chaque
Référence
239
Instruction Create Redistricter
coordonnée y représente une distance à partir du bord supérieur de la page. Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set Paper Units. Par défaut, MapBasic utilise les
pouces comme unité papier. L'Instruction Set Paper Units permet de sélectionner une autre unité
papier.
Remarque: Si vous devez créer des objets au niveau d'une fenêtre Mise en page, vous devez d'abord
émettre une instruction Set CoordSys Layout.
La clause Pen définit un style de ligne. Reportez-vous à la section Clause Pen pour plus de détails. Si
aucune Pen clause n'est définie, l'instruction Create Rect utilise le style de ligne actuellement défini
(celui qui apparaît dans la boîte de dialogue Options > Style ligne). De même, la Clause Brush définit
un style de trame. Reportez-vous à la section Clause Brush pour plus de détails.
Voir également
Clause Brush, Instruction Create RoundRect, Instruction Insert, Clause Pen, Instruction Update
Instruction Create Redistricter
Objectif
Lance une session de sectorisation. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Create Redistricter source_table By district_column
With
[ Layer <layer_number> ]
[ Count ]
[ , Brush ] [ , Symbol ] [ , Pen ]
[ , { Sum | Percent } ( expr ) ] [ , { Sum | Percent } ( expr ) ... ]
[ Percentage From expr ]
[ Percentage from { column | row } ]
[ Order { "MRU" | "Alpha" | "Unordered" } ]
source_table est le nom de la table contenant les objets à regrouper en secteurs.
district_column est le nom d'une colonne. L'ensemble de secteurs initial est créé à partir du contenu
original de cette colonne. Lorsque des objets sont attribués à différents secteurs, MapInfo Professional
stocke le nom du nouveau secteur des objets dans cette colonne.
layer_number correspond au numéro d'une couche de la fenêtre Carte active (1 pour la couche supérieure,
par exemple). Pour déterminer le nombre de couches d'une fenêtre Carte, appelez la fonction
MapperInfo( ).
Le mot-clé Count indique que la fenêtre Secteurs Données affichera un décompte des objets appartenant
à chaque secteur.
Le mot-clé Brush indique que la fenêtre Secteurs Données affichera le style de remplissage de chaque
secteur.
Le mot-clé Symbol indique que la fenêtre Secteurs Données affichera le style de symbole de chaque
secteur.
Le mot-clé Pen indique que la fenêtre Secteurs Données affichera le style de ligne de chaque secteur.
240
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
expr est une expression de colonne numérique.
La clause Percentage From définit le mode de calcul par ligne.
La clause Order définit l'ordre des lignes dans la fenêtre Secteurs Données (ordre alphabétique, pas
de classement ou en fonction des éléments récents ; cette dernière option est l'ordre utilisé par défaut.
Description
L'instruction Create Redistricter lance une session de sectorisation. Cette instruction correspond à la
commande Fenêtre > Nouvelle Sectorisation de MapInfo Professional. Pour la présentation de la
sectorisation, reportez-vous à la documentation de MapInfo Professional.
Pour contrôler l'ensemble de secteurs, utilisez l'instruction Set Redistricter. Pour terminer la session
de sectorisation, fermez la fenêtre Secteurs Données à l'aide de l'instruction Close Window.
Si vous incluez le mot-clé Brush, la fenêtre Secteurs Données inclut un exemple du style de trame pour
chaque secteur. Notez qu'il ne s'agit pas d'une clause Brush complète. Le mot-clé Brush apparaît de
manière isolée. De même, Symbol et Pen sont des mots-clés individuels ; ils ne constituent pas une
clause Symbol ou une clause Pen complète. Si la fenêtre Secteurs Données inclut des styles de
trame, de ligne et/ou de symbole, l'utilisateur peut modifier le style d'un secteur en cliquant sur l'exemple
qui apparaît dans cette fenêtre.
La clause Percentage From vous permet de définir le mode de calcul de pourcentage par ligne. Si la
clause Percentage From n'est pas définie, la méthode de calcul par colonne est utilisée.
Voir également
Instruction Set Redistricter
Instruction Create Region
Objectif
Crée un objet région. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Create Region
[ Into { Window window_id | Variable var_name } ]
num_polygons
[ num_points1 ( x1, y1 ) ( x2, y2 ) [ ... ] ]
[ num_points2 ( x1, y1 ) ( x2, y2 ) [ ... ] ... ]
[ Pen ... ]
[ Brush ... ]
[ Center ( center_x, center_y ) ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
num_polygons définit le nombre de polygones qui formeront la région (zéro ou plus).
num_points1 définit le nombre de nœuds dans le premier polygone de la région.
num_points2 définit le nombre de nœuds dans le deuxième polygone de la région.
Référence
241
Instruction Create Region
Chaque paire x, y définit un nœud dans un polygone.
Pen est une clause Pen qui définit le style de ligne.
Brush est une clause Brush qui définit le style de remplissage.
center_x est la coordonnée x du centroïde de l'objet.
center_y est la coordonnée y du centroïde de l'objet.
Description
L'instruction Create Region crée un objet région.
Le paramètre num_polygons définit le nombre de polygones inclus dans l'objet région. Si vous indiquez
une valeur de zéro pour un paramètre num_polygons, l'objet créé est une région vide (n'incluant aucun
polygone). Vous pouvez alors utiliser l'instruction Alter Object pour ajouter des détails à la région.
Selon l'application utilisée, il est possible que vous deviez créer l'objet région en deux étapes : utilisez
tout d'abord l'instruction Create Region pour créer un objet sans aucun polygone, puis l'instruction Alter
Object pour ajouter des détails à l'objet région. Si votre application doit créer des objets région mais que
le nombre de nœuds ou de polygones inclus dans les régions est inconnu avant l'exécution, vous devez
utiliser l'instruction Alter Object pour ajouter les nombres variables de nœuds. Reportez-vous à la section
Instruction Alter Object pour plus d'informations.
Si l'instruction inclut la clause Into Variable facultative, l'objet est stocké dans la variable objet indiquée.
Si la clause Into définit un identifiant de fenêtre, l'objet est stocké à l'emplacement correspondant de la
fenêtre (la couche modifiable d'une fenêtre Carte, par exemple). Si la clause Into n'est pas définie,
MapBasic tente de stocker l'objet dans la fenêtre au premier plan. S'il n'est pas possible de stocker des
objets dans la fenêtre au premier plan (s'il s'agit d'une fenêtre Graphique, par exemple), aucun objet
n'est créé.
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Notez que le
système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des fenêtres
Carte. Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en unités papier.
chaque coordonnée x représente une distance à partir du bord gauche de la page tandis que chaque
coordonnée y représente une distance à partir du bord supérieur de la page. Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set Paper Units. Par défaut, MapBasic utilise les
pouces comme unité papier. L'instruction Set Paper Unitspermet de sélectionner une autre unité
papier.
Remarque: Si vous devez créer des objets au niveau d'une fenêtre Mise en page, vous devez d'abord
émettre une instruction Set CoordSys Layout.
La clause Pendéfinit le style de ligne utilisé pour tracer le contour de l'objet. Pour plus de détails,
reportez-vous à la section Clause Pen. Si aucune clause Pen n'est définie, l'instruction Create Region
utilise le style de ligne actuellement défini (celui qui apparaît dans la boîte de dialogue Options > Style
ligne). De même, la clause Brush facultative définit un style de trame. Reportez-vous à la section Clause
Brush pour plus de détails.
Une région comportant un polygone unique peut contenir jusqu'à 134 217 724 nœuds. Chaque région
peut inclure un maximum de 20 648 881 polygones (région à polygones multiples ou collection).
242
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
Dim obj_region As Object
Dim x(100), y(100) As Float
Dim i, node_count As Integer
'
'
'
'
If you store a set of coordinates in the
x( ) and y( ) arrays, the following statements
will create a region object that has a node
at each x,y location:
' First, create an empty region object
Create Region Into Variable obj_region 0
' Now add nodes to populate the object:
For i = 1 to node_count
Alter Object obj_region Node Add ( x(i), y(i) )
Next
' Now store the object in the Sites table:
Insert Into Sites (Object) Values (obj_region)
Voir également
Instruction Alter Object, Clause Brush, Instruction Insert, Clause Pen, Instruction Update
Instruction Create Report From Table
Objectif
Crée un fichier de rapport pour Crystal Reports à partir d'une table MapInfo Professional ouverte. Vous
pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Report From Table tablename [Into reportfilespec][Interactive]
tablename est une table ouverte dans MapInfo Professional.
reportfilespec représente le nom et le chemin complet du nouveau fichier de rapport.
Le mot-clé Interactive indique que le nouveau rapport doit être immédiatement chargé dans le module
Crystal Report Designer. Si la clause Into est omise, le mode Interactive est activé. Vous ne pouvez
pas créer un rapport à partir d'une table raster ou grille ; vous obtiendriez une erreur.
Voir également
Instruction Open Report
Instruction Create RoundRect
Objectif
Crée un objet rectangle arrondi. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Référence
243
Instruction Create RoundRect
Syntaxe
Create RoundRect
[ Into { Window window_id | Variable var_name } ]
( x1, y1 ) ( x2, y2 ) rounding
[ Pen ... ]
[ Brush ... ]
window_id est un identifiant de fenêtre.
var_name est le nom d'une variable objet.
x1, y1 définit un coin du rectangle arrondi.
x2, y2 définit le coin opposé du rectangle.
rounding est une valeur à virgule flottante, en unités de coordonnées (par exemple, en pouces pour une
fenêtre Mise en page ou en degrés pour une fenêtre Carte). Cette valeur définit le diamètre du cercle
formant le coin du rectangle arrondi.
Pen est une clause Pen qui définit le style de ligne.
Brush est une clause Brush qui définit le style de remplissage.
Description
L'instruction Create RoundRect crée un objet rectangle arrondi (un rectangle aux coins arrondis).
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Notez que le
système de coordonnées de MapBasic ne dépend pas des systèmes de coordonnées des fenêtres
Carte. Les objets créés au niveau d'une fenêtre Mise en page sont néanmoins définis en unités papier.
chaque coordonnée x représente une distance à partir du bord gauche de la page tandis que chaque
coordonnée y représente une distance à partir du bord supérieur de la page. Pour obtenir des détails
sur les unités papier, consultez la section Instruction Set Paper Units. Par défaut, MapBasic utilise les
pouces comme unité papier. L'Instruction Set Paper Units permet de sélectionner une autre unité
papier.
Remarque: Si vous devez créer des objets au niveau d'une fenêtre Mise en page, vous devez d'abord
émettre une instruction Set CoordSys Layout.
La clause Pendéfinit le style de ligne utilisé pour tracer le contour de l'objet. Pour plus de détails,
reportez-vous à la section clause Pen. Si aucune n'est définie, l'Instruction Create RoundRectutilise
le style de ligne actuellement défini (celui qui apparaît dans la boîte de dialogue Options > Style ligne).
De même, la clause Brush facultative définit un style de trame. Reportez-vous à la section Clause Brush
pour plus de détails.
Voir également
Clause Brush, Instruction Create Rect, Instruction Insert, Clause Pen, Instruction Update
244
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Instruction Create Styles
Objectif
Crée un ensemble de styles Pen, Brush ou Symbol et stocke les styles dans un tableau. Vous pouvez
exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Create Styles
From { Pen ... | Brush ... | Symbol ... }
To { Pen ... | Brush ... | Symbol ... }
Vary { Color By { "RGB" | "HSV" } | Background By { "RGB" | "HSV" } |
Size By { "Log" | "Sqrt" | "Constant" }}
[ Number num_styles ]
[ Inflect At range_number With { Pen ... | Brush ... | Symbol ...} ]
Into Variable array_variable
num_styles correspond au nombre de styles de dessin à créer (le nombre de styles de trame, par
exemple). Le nombre par défaut est quatre.
range_number est un numéro de plage de type entier court. L'attribut d'inflexion est placé après la plage
définie.
array_variable représente une variable de tableau dans laquelle sera stockée la plage de styles Pen,
Brush ou Symbol.
Pen est une clause Pen qui définit le style de ligne.
Brush est une clause Brush qui définit le style de remplissage.
Symbol est une clause Symbol valide qui spécifie le style de ligne à utiliser pour un type d'objet ligne.
Description
L'instruction Create Styles crée un ensemble de styles Pen, Brush ou Symbol et stocke ces styles dans
une variable de tableau. Le tableau peut ensuite être utilisé dans une instruction Shade pour créer une
couche de carte thématique. Pour une présentation de la cartographie thématique, reportez-vous à la
documentation de MapInfo Professional.
La clause From définit un style Pen, Brush ou Symbol. Si le tableau de styles est ensuite utilisé dans
une carte thématique, le style From correspond à celui attribué à la plage inférieure. La clause To définit
un style qui correspond à la plage supérieure d'une carte thématique.
L'instruction Create Styles crée un ensemble de styles interpolés entre le style From et le style To. Par
exemple, le style From peut être une clause Brush représentant un bleu très foncé et le style To un
bleu très clair. MapInfo Professional crée alors un ensemble de styles Brush allant du bleu clair au bleu
foncé.
La clause Number facultative définit le nombre total de styles de dessin nécessaires. Ce nombre inclut
les deux styles définis pour les clauses To et From. Ce nombre correspond généralement au nombre
de plages défini dans une instruction Shade ultérieure.
La clause Vary indique comment répartir un attribut entre les styles. Pour répartir la couleur de premier
plan, utilisez la sous-clause Color. Pour répartir la couleur d'arrière-plan, utilisez la sous-clause
Référence
245
Instruction Create Table
Background. Dans les deux cas, il est possible de répartir la couleur en interpolant les composants
RGB et HSV des couleurs From et To. Si vous créez un tableau de styles de symboles, vous pouvez
utiliser la sous-clause Size pour modifier la taille en points des symboles. De même, si vous créez un
tableau de styles de lignes, vous pouvez utiliser la sous-clause Size pour modifier l'épaisseur des lignes.
La clause Inflect At facultative définit un attribut d'inflexion, placé entre les styles From et To. Si vous
définissez une clause Inflect At MapInfo Professional crée deux ensembles de styles : un ensemble de
styles interpolés entre les styles From et Inflect ainsi qu'un autre ensemble de styles interpolés entre
les styles Inflect et To. Par exemple, en utilisant un style d'inflexion, vous pouvez créer une carte
thématique des gains et des pertes, sur laquelle les régions ayant obtenu des gains sont indiquées dans
différentes teintes de vert et celles ayant souffert de pertes sont indiquées dans différentes teintes de
rouge. L'inflexion fonctionne uniquement en cas de variation de l'attribut de couleur.
La clause Into Variable définit le nom de la variable de tableau dans laquelle les styles seront stockés.
Il n'est pas nécessaire de définir la taille du tableau au préalable. Si nécessaire, MapInfo Professional
l'agrandit automatiquement en fonction de l'ensemble de styles. Le paramètre array_variable (Pen, Brush
ou Symbol) doit correspondre au style défini dans les clauses From et To.
Exemple
L'exemple suivant détaille la syntaxe de l'instruction Create Styles.
Dim brush_styles( ) As Brush
Create Styles
From Brush(2, CYAN, 0) 'style for LOW range
To Brush (2, BLUE, 0) 'style for HIGH range
Vary Color By "RGB"
Number 5
Into Variable brush_styles
Cette instruction Create Styles définit un ensemble de cinq styles Brush et stocke ces derniers dans le
tableau b_ranges. Une instruction Shade peut créer une carte thématique basée sur les styles Brush
du tableau b_ranges. Un exemple vous est proposé dans la section Instruction Create Ranges.
Voir également
Instruction Create Ranges, Instruction Set Shade , Instruction Shade
Instruction Create Table
Objectif
Crée une nouvelle table. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de
MapInfo Professional.
Syntaxe
Create Table table_name
[ ( column columntype [ , ... ] ) | Using from_table ]
[ File filespec ]
[ {
Type NATIVE [ Version version_pro ] |
Type DBF [ CharSet char_set ] [ Version version_pro ] |
Type { Access | ODBC }
246
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Database database_filespec [ Version version_msaccess ]
Table db_table_name [ Password pwd ] [ CharSet char_set ]
[ Version version_pro ] |
Type TILESERVER
TileType { LevelRowColumn | QuadKey }
URL url
[ AttributionText "attributiontext" ] [ Font font_clause ]
[ StartTileNum { 0 | 1 } ]
[ Minlevel min_level ]
MaxLevel max_level
[ Origin { "SW" | "NW" } ]
Height tile_height [Width tile_width]
[ ReadTimeout read_time_out ]
[ RequestTimeout request_time_out]
CoordSys coordsys
} ]
table_name est le nom de la table tel que vous souhaitez qu'il s'affiche dans MapInfo Professional.
column est le nom d'une colonne à créer. Les noms de colonne peuvent comporter jusqu'à 31 caractères
et contenir des lettres, des nombres et des traits de soulignement (_). Les noms de colonne ne peuvent
pas commencer par des nombres.
columntype est le type de données associé à la colonne. Ce paramètre est défini de la manière suivante
:
Char( width ) | Float | Integer | SmallInt |
Decimal( width, decplaces ) | Date | DateTime | Time | Logical
Où Decimal width et compris entre 1 et 20 et Decimal decplaces entre 0 et 16. Le paramètre decplaces
doit être inférieur soit de zéro (0), soit de 2 par rapport à width ; ainsi, si width est égal à 10, decplaces
peut aller jusqu'à 8.
from_table représente le nom d'une table actuellement ouverte dans laquelle la colonne que vous
souhaitez placer dans une nouvelle table est stockée. Le paramètre from_table doit correspondre à une
table de base et contenir des données de colonne. Les tables de requêtes et les tables raster ne peuvent
pas être utilisées et génèrent une erreur. La structure de la colonne de la nouvelle table sera identique
à celle de cette table.
filespec indique où les fichiers .TAB, .MAP et .ID (et dans le cas d'Access, les fichiers .AID) doivent être
créés. Si vous omettez la clause File, les fichiers sont créés dans le répertoire actuel.
version_pro correspond à 100 (pour créer une table pouvant être lue par les versions de MapInfo
Professional) ou 300 (format MapInfo Professional 3.0). Ce paramètre ne s'applique pas lors de la
création d'une table Access. La version de la table Access est gérée par la CAO.
Type DBF :
char_set est le nom d'un jeu de caractères, reportez-vous à la section Clause CharSet.
Type { Access | ODBC } :
database_filespec est une chaîne qui identifie une base de données Access valide. Si la base de données
spécifiée n'existe pas, MapInfo Professional crée un nouveau fichier Access (.MDB ou ACCDB).
version_msaccess est une expression qui définit la version du format de base de données Microsoft Jet
que la nouvelle base de données doit utiliser : 4.0 (pour Access 2000) ou 3.0 (pour Access 95/97). Si
Référence
247
Instruction Create Table
aucune valeur n'est indiquée, la version par défaut est 12.0. Si la base de données dans laquelle la table
est créée existe déjà, la version de base de données spécifiée est ignorée.
db_table_name est une chaîne qui indique le nom de la table tel qu'il apparaît sous Access.
pwd est le mot de passe au niveau de la base de données, à spécifier lorsque la sécurité de la base de
données est activée.
char_set est le nom d'un jeu de caractères, reportez-vous à la section Clause CharSet.
Type TILESERVER
url représente l'URL complète (http://<server> ou https://<server>) qui permet d'envoyer une requête
d'images tuilées à un serveur. Si l'URL n'a pas les codes remplaçables suivants, l'instruction Create
Table échoue :
• Si tile_type a pour valeur QuadKey, l'URL doit contenir le code {QUADKEY}.
• Si tile_type a pour valeur LevelRowColumn, l'URL doit contenir les codes {LEVEL}, {ROW} et {COL}
qui sont ensuite remplacés lors de l'exécution. Les serveurs prennent en charge les codes {ROW} et
{COL} différemment ; parfois ces codes doivent être inversés par row et column (ou X, Y).
attributiontext représente le texte d’attribution qui apparaît comme texte dans la fenêtre Carte lorsque
des images tuilées sont affichées depuis un serveur d'images tuilées. Ce texte doit être placé entre
guillemets ("...").
La clause facultative font_clause définit le style de police à utiliser sur le texte d'attribution. Il s'agit d'une
expression Font, par exemple, MakeFont( fontname, style, size, fgcolor, bgcolor ).
Font ("Verdana", 1, 24, 0, 255)
Font MakeFont("Verdana", 1, 24, 0, 255)
Pour plus d'informations, reportez-vous à la section Clause Font ou Fonction MakeFont( ).
min_level représente le niveau minimal d'un serveur d'images tuilées. Cette valeur doit être soit zéro (0)
soit une valeur positive et moins que le max_level. La valeur par défaut est zéro (0).
max_level représente le niveau maximal pris en charge par le serveur d'images tuilées. Cette valeur
doit être positive.
width représente la hauteur en pixels d'une seule image tuilée du serveur d'images tuilées. Cette valeur
doit être positive.
height représente la largeur en pixels d'une seule image tuilée du serveur d'images tuilées. Si elle est
définie, cette valeur doit être positive. Sinon, la hauteur est utilisée comme largeur.
read_time_out représente la durée, en secondes, avant l'expiration de la lecture des images tuilées (la
valeur par défaut est de 300). Cette valeur doit être positive.
request_time_out représente la durée, en secondes, avant l'expiration de la requête des images tuilées
(la valeur par défaut est de 100). Cette valeur doit être positive.
coordsys représente le système de coordonnées par défaut du serveur d'images tuilées. MapInfo
Professional ne pouvant pas reprojeter l'image du serveur, il reprojette la carte pour pouvoir utiliser ce
système de coordonnées. Vous ne pouvez pas modifier le système de coordonnées correspondant à
la carte s'il inclut une couche de serveur d'images tuilées. Les limites du système de coordonnées
indiquent également les limites de la première image tuilée (la seule image tuilée dans le niveau minimal).
248
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voici comment MapInfo Professional sait comment calculer la zone des images tuilées dans les autres
niveaux.
Description
L'instruction Create Table crée une nouvelle table vide de 250 colonnes maximum. Indiquez ODBC
pour créer de nouvelles tables au niveau d'un serveur DBMS.
La clause Using vous permet de créer une nouvelle table dans le cadre de la fonctionnalité Fusionner
des objets depuis une colonne. Le paramètre from_table doit correspondre à une table de base et
contenir des données de colonne. Les tables de requêtes et les tables raster ne peuvent pas être utilisées
et génèrent une erreur. La structure de la colonne de la nouvelle table créée sera identique à celle de
cette table.
La clause File facultative indique où la nouvelle table doit être créée. Si aucune clause File n'est utilisée,
la table est créée dans le répertoire ou le dossier actuel.
La clause Type facultative définit le format de données de la table. Le type par défaut est NATIVE.
L'option DBF est également disponible. Le format NATIVE nécessite moins d'espace disque que le
format DBF. Ce dernier produit cependant des fichiers de base qui peuvent être lus par tous les
gestionnaires de bases de données compatibles dBASE. Vous pouvez également créer de nouvelles
tables au niveau des serveurs DBMS à l'aide de la clause ODBC Type de l'instruction Create Table.
La clause CharSet spécifie un jeu de caractères. Le paramètre char_set doit être une constante de
chaîne, telle que "WindowsLatin1". Si aucune clause CharSet n'est spécifiée, MapBasic utilise le jeu
de caractères par défaut de la plate-forme matérielle sur laquelle le programme est exécuté. Pour plus
d'informations, reportez-vous à la section Clause CharSet.
Le type de colonne SmallInt réserve deux octets pour chaque valeur. La colonne peut ainsi contenir
des valeurs comprises entre -32 767 et +32 767. Le type de colonne Integer réserve quatre octets pour
chaque valeur. La colonne peut ainsi contenir des valeurs comprises entre -2 147 483 647 et +2 147
483 647.
La clause TileType indique le type de serveurs d'images tuilées que cette table utilise, QuadKey ou
LevelRowColumn. Cette valeur représente la façon dont le serveur récupère les images tuilées. Vous
devez définir cette base sur ce que le serveur prend en charge et utilise :
QuadKey : un serveur qui utilise un algorithme d'arbre quadratique divise le monde en carrés de 256
pixels par 256 pixels. Chaque image tuilée est appelée par une unique chaîne de caractères entre 0 –
3 (QuadKey), qui décrit la position et le niveau de zoom pour placer l'image tuilée.
LevelRowColumn : un serveur qui divise le monde en carrés où chaque identifiant d'image tuilée est
une liste contenant le niveau de zoom, la ligne et le numéro de colonne de l'image tuilée. Le format de
l'identifiant d'image tuilée peut varier d'un serveur à un autre, de sorte que les codes {ROW} et {COL}
peuvent sembler inversés pour certains serveurs.
La clause StartTileNum est facultative. C'est le numéro de la première image tuilée, soit zéro (0) ou un
(1). Zéro (0) est le premier numéro de l'image tuilée.
La clause Origin est facultative pour les tables de type TileServer. Si cette clause est présente, vous
devez inclure l'une des deux valeurs : « NW » ou « SW ». « SW » représente une origine sud-ouest,
dans laquelle les images tuilées de la table TileServer sont disposées d'une manière ascendante, à
partir du coin inférieur gauche. « NW » représente une origine nord-ouest des images tuilées, à partir
du coin supérieur gauche. Si aucune valeur n'est incluse, « NW » est utilisée par défaut.
Référence
249
Instruction Create Table
La clause Version contrôle le format de la table. Si vous spécifiez Version 100, MapInfo Professional
crée la table dans un format lisible dans différentes versions de ce logiciel. Si vous indiquez Version
300, MapInfo Professional crée la table conformément au format utilisé par la version 3.0. Notez que
les objets région et polyligne comprenant plus de 8 000 nœuds et les objets polyligne à plusieurs segments
requièrent la version 300. Si vous omettez la clause Version, la table est créée au format de la version
300.
Messages d'erreur lors de la création d'une table de serveurs d'images tuilées
Si une erreur se produit lorsque vous extrayez des images tuilées du serveur, ce qui peut se produire
lorsque vous dessinez une couche de serveur d'images tuilées dans une fenêtre Carte, vérifiez les
éléments suivants :
•
•
•
•
L'URL du serveur d'images tuilées est incorrecte.
Le serveur d'images tuilées est disponible.
La durée nécessaire au serveur pour répondre à la requête ne dépasse pas la limite définie.
L'authentification n'aboutit pas car le serveur d'images tuilées se trouve sur un serveur sécurisé ou
est contacté via un serveur proxy.
Si une erreur se produit lors du chargement d'une table de serveur d'images tuilées, vérifiez les éléments
suivants :
• Les propriétés obligatoires sont bien toutes définies dans le fichier de configuration.
• Le fichier de configuration est indiqué.
Si une erreur se produit lors de la création du fichier de configuration du serveur d'images tuilées (fichier
XML), vérifiez que ce fichier peut être créé dans le chemin fourni.
Exemple
L'exemple suivant indique comment créer une table pour un serveur d'images tuilées TMS avec une
origine sud-ouest.
Dim sPath As String
sPath="D:\MapInfo\Tables\TMS.tab"
Create Table PathToTableName$(sPath)
File sPath
Type TILESERVER
TileType "LevelRowColumn"
URL "http://INSERT_TILE_SERVER_NAME/{LEVEL}/{ROW}/{COL}.png"
AttributionText "required attribution text" Font ("Arial",256,10,0,16777215)
MinLevel 0
MaxLevel 15
Height 256
CoordSys Earth Projection 20, 109, 7, 5.387638889, 52.156160556, 0.9999079,
155000, 463000 Bounds (-285401.92, 22598.08) (595401.92, 903401.92)
Origin "SW"
L'exemple suivant indique comment créer une table appelée Villes, contenant trois champs : un champ
de caractères appelé Nom, un champ de nombres entiers appelé Population et un champ de valeurs
250
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
décimales appelé Revenu moyen. Le fichier est créé dans le sous-répertoire C:\MAPINFO\DONNÉES.
Une clause Type facultative étant utilisée, la table est créée autour d'un fichier dBASE.
Create Table Towns
( townname Char(30),
population SmallInt,
median_income Decimal(9,2) )
File "C:\MAPINFO\TEMP\TOWNS"
Type DBF
Exemples de serveurs d'images tuilées (TILESERVER)
Les exemples ci-après indiquent comment créer des tables de serveurs d'images tuilées pour différents
serveurs. Dans ces exemples, les noms de table et de fichier sont déterminés par l'utilisateur. Le texte
d'attribution doit correspondre à l'attribution requise par le fournisseur du serveur, conformément à la
loi.
L'exemple ci-dessous montre comment créer une table de serveur d'images tuilées utilisant un serveur
d'images tuilées MapInfo Developer :
Create Table MIDev_TileServer
File "MIDev_TileServer"
Type TILESERVER
TileType "LevelRowColumn"
URL
"http://INSERT_SERVER_NAME_HERE/MapTilingService/MapName/{LEVEL}/{ROW}
:{COL}/tile.gif"
AttributionText "required attribution text"
Font("Verdena",255,16,0,255)
StartTileNum 1
MaxLevel 20
Height 256
CoordSys Earth Projection 10, 157, 7, 0 Bounds(-20037508.34,20037508.34) (20037508.34,20037508.34)
L'exemple ci-dessous montre comment créer une table de serveur d'images tuilées utilisant un serveur
d'images tuilées MapXtreme.NET :
Create Table MXT_TileServer
File "MXT_TileServer"
Type TILESERVER
TileType "LevelRowColumn"
URL
"http://INSERT_SERVER_NAME_HERE/TileServer/MapName/{LEVEL}/{ROW};{COL}
/tile.png"
AttributionText "required attribution text"
Font("Calibri",255,16,0,255)
MaxLevel 20
Height 256
RequestTimeout 90
ReadTimeout 60
CoordSys Earth Projection 10, 157, 7, 0 Bounds(-20037508.34,20037508.34) (20037508.34,20037508.34)
L'exemple ci-dessous montre comment créer une table de serveur d'images tuilées utilisant un serveur
d'images tuilées OpenStreetMap :
Create Table OSM_TileServer
File "OSM_TileServer"
Type TILESERVER
TileType "LevelRowColumn"
Référence
251
Fonction CreateText( )
URL
"http://INSERT_OPEN_STREET_MAP_SERVER_NAME_HERE/{LEVEL}/{ROW}/{COL}.pn
g"
AttributionText "required attribution text" Font("Arial",255,16,0,255)
MinLevel 0
MaxLevel 15
Height 256
CoordSys Earth Projection 10, 157, 7, 0 Bounds(-20037508.34,20037508.34) (20037508.34,20037508.34)
Voir également
Instruction Alter Table, Instruction Create Index, Instruction Create Map, Instruction Drop Table,
Instruction Export, Instruction Import, Instruction Open Table
Fonction CreateText( )
Objectif
Renvoie un objet texte créé pour une fenêtre Carte spécifique. Vous pouvez appeler cette fonction à
partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CreateText( window_id, x, y, text, angle, anchor, offset )
window_id est un identifiant de fenêtre entier représentant une fenêtre Carte.
x et y sont des valeurs à virgule flottante qui représentent l'emplacement x/y d'ancrage du texte.
text est une valeur de chaîne représentant le texte inclus dans l'objet texte.
angle est une valeur à virgule flottante représentant l'angle de rotation. Pour un texte horizontal, indiquez
zéro.
anchor est une valeur entière, comprise entre 0 et 8, qui définit l'emplacement du texte par rapport à
l'emplacement d'ancrage. Sélectionnez un des codes suivants (définis dans le fichier MAPBASIC.DEF).
LAYER_INFO_LBL_POS_CC
LAYER_INFO_LBL_POS_TL
LAYER_INFO_LBL_POS_TC
LAYER_INFO_LBL_POS_TR
LAYER_INFO_LBL_POS_CL
LAYER_INFO_LBL_POS_CR
LAYER_INFO_LBL_POS_BL
LAYER_INFO_LBL_POS_BC
LAYER_INFO_LBL_POS_BR
(0)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
Le suffixe à deux lettres indique l'orientation de l'étiquette : T=haut, B=bas, C=centre, R=droite, L=gauche.
Par exemple, pour placer le texte sous l'emplacement d'ancrage, à droite, précisez le code de définition
LAYER_INFO_LBL_POS_BR ou la valeur 8.
décalage est un entier compris entre 0 et 200, représentant la distance de décalage (en points) du texte
par rapport à l'emplacement d'ancrage. Le décalage n'est pas pris en compte si l'ancrage est égal à
zéro (centré).
252
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur renvoyée
Objet
Description
La fonction CreateText( ) renvoie une valeur objet représentant un objet texte.
L'objet texte utilise le style de police défini. Pour créer un objet texte à l'aide d'un style de police spécifique,
émettez une instruction Set Style avant d'appeler la fonction CreateText( ).
Lors de la création du texte, la hauteur de ce dernier est définie par la police sélectionnée. Cependant,
une fois l'objet texte créé, sa hauteur varie en fonction du zoom de la fenêtre Carte. La taille du texte
augmente lorsque vous effectuez un zoom avant.
L'objet point obtenu peut être attribué à une variable objet stockée dans la ligne existante d'une table
(à l'aide de l'instruction Update) ou insérée dans la nouvelle ligne d'une table (à l'aide de l'instruction
Insert).
Exemple
L'exemple suivant crée un objet texte et l'insère dans la couche Dessin de la carte (la variable i_map_id
étant un entier représentant l'identifiant d'une fenêtre Carte).
Insert Into Cosmetic1 (Obj)
Values ( CreateText(i_map_id, -80, 42.4, "Sales Map", 0,0,0) )
Voir également
Instruction AutoLabel, Instruction Create Text, Clause Font, Instruction Insert, Instruction Update
Instruction Create Text
Objectif
Crée un objet texte, tel qu'un titre, pour une fenêtre Carte ou Mise en page. Vous pouvez utiliser la
clause Pen afin de conserver les nouveaux styles de ligne des étiquettes dans les fenêtres Mise en
page. Cette procédure de modification des fenêtres Mise en page définit la version du document sur
9.5. Par conséquent, la version des fichiers MIF comprenant des objets texte avec une ligne d'étiquette
et une clause Pen sera définie sur 950. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Create Text
[ Into { Window window_id | Variable var_name } ]
text_string
( x1, y1 ) ( x2, y2 )
[ Font... ]
[ Label Line { Simple | Arrow } ( label_x, label_y ) Pen (pen_expr) ]
[ Spacing { 1.0 | 1.5 | 2.0 } ]
[ Justify { Left | Center | Right } ]
[ Angle text_angle ]
window_id est un identifiant de fenêtre entier correspondant à une fenêtre Carte ou Mise en page.
Référence
253
Instruction Create Text
var_name est le nom d'une variable objet.
text_string définit la chaîne (255 caractères maximum) qui constituera l'objet texte. Pour créer un objet
texte de plusieurs lignes, ajoutez l'appel de fonction Chr$(10) à la chaîne.
x1, y1 sont des coordonnées à virgule flottante définissant un coin de la zone rectangulaire remplie par
le texte.
x2, y2 définissent le coin opposé de la zone de texte.
La clause Font spécifie un style de texte. La taille en points de la police n'est pas prise en compte
lorsque l'objet texte est créé dans une fenêtre Carte, voir ci-dessous.
label_x, label_y définissent l'emplacement d'ancrage de la ligne d'étiquette de l'objet texte.
Pen indique les paramètres de la clause Pen relatifs aux renvois créés dans la fenêtre Mise en page.
text_angle est une valeur à virgule flottante indiquant l'angle de rotation de l'objet texte (en degrés).
Exemple
Lorsqu'un utilisateur crée une ligne d'étiquette dans une fenêtre Mise en page, la clause Create Text
Label Line Pen est appelée et la version du document est définie sur 950 :
!Workspace
!Version 950
!Charset WindowsLatin1
Open Table "Data\Introductory_Data\World\WORLD" As WORLD Interactive
Map From WORLD
Position (0.0520833,0.0520833) Units "in"
Width 6.625 Units "in" Height 4.34375 Units "in"
Set Window FrontWindow()
Set Map
CoordSys Earth Projection 1, 104
Center (35.204159,-25.3575215)
Zoom 18063.92971 Units "mi"
Preserve Zoom Display Zoom
Distance Units "mi" Area Units "sq mi" XY Units "degree"
Set Map
Layer 1
Display Graphic
Global Pen (1,2,0) Brush (2,16777215,16777215) Symbol (35,0,12)
Line (1,2,0) Font ("Arial",0,9,0)
Label Line None Position Center Font ("Arial",0,9,0) Pen (1,2,0)
Description
Les paramètres x et y utilisent le système de coordonnées en cours dans MapBasic. Par défaut, MapBasic
utilise un système de coordonnées Longitude/latitude. L'instruction Set CoordSys peut cependant
reconfigurer MapBasic de manière à ce qu'il utilise un autre système de coordonnées. Si vous devez
créer des objets au niveau d'une fenêtre Mise en page, vous devez d'abord émettre une instruction
Set CoordSys Layout.
Les arguments x1, y1, x2 et y2 définissent une zone rectangulaire. Lorsque vous créez un texte dans
une fenêtre Carte, le texte remplit la zone rectangulaire, ce qui détermine la hauteur de texte. La taille
en points définie dans la clause Font n'est pas prise en compte. Dans une fenêtre Mise en page, le
texte est tracé conformément à la taille en points définie dans la clause Font. Le coin supérieur gauche
du texte est situé à l'emplacement (x1, y1). Les arguments (x2, y2) ne sont pas pris en compte.
254
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Instruction AutoLabel, Fonction CreateText( ) , Clause Font, Instruction Insert, Instruction Update
Fonction CurDate( )
Objectif
Renvoie la date au format AAAAMMJJ. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
CurDate( )
Valeur renvoyée
Date
Description
La fonction Curdate( ) renvoie une valeur date représentant la date actuelle. Le format sera toujours
AAAAMMJJ. Pour modifier la valeur de la chaîne conformément au format du système local, utilisez la
Fonction FormatDate$( ) ou la Fonction Str$( ).
Exemple
Dim d_today As Date
d_today = CurDate( )
Voir également
Fonction CurDateTime( ), Fonction CurTime(), Fonction Day( ), Fonction Format$( ), Fonction
Month( ), Fonction StringToDate( ), Fonction Timer( ), Fonction Weekday( ), Fonction Year( )
Fonction CurDateTime( )
Objectif
Renvoie la date et l'heure actuelles. Vous pouvez accéder aux valeurs Date et Time via la Fonction
GetDate( ) et la Fonction GetTime(). Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
CurDateTime()
Valeur renvoyée
DateTime, qui correspond à une valeur entière sur 9 octets : 4 octets pour la date et 5 octets pour l'heure.
Les 5 octets pour l'heure comprennent 2 octets pour les millisecondes, 1 octet pour les secondes, 1
octet pour les minutes et 1 octet pour les heures.
Référence
255
Fonction CurrentBorderPen( )
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim X as datetime
X = CurDateTime( )
Print X
Voir également
Fonction Day( ), Fonction Format$( ), Fonction Month( ), Fonction StringToDate( ), Fonction Timer(
), Fonction Weekday( ), Fonction Year( ), Fonction CurDate( )
Fonction CurrentBorderPen( )
Objectif
Renvoie le style de ligne actuellement utilisé pour tracer les bordures. Vous pouvez appeler cette fonction
à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CurrentBorderPen( )
Valeur renvoyée
Pen
Description
La fonction CurrentBorderPen( ) renvoie le style de ligne utilisé pour tracer les bordures. MapInfo
Professional attribue le style défini à la bordure des objets région créés par l'utilisateur. Si un programme
MapBasic crée un objet à l'aide de l'instruction Create Region, mais que celle-ci n'inclut aucune clause
Pen, l'objet utilise le style actuellement défini.
La valeur renvoyée peut être attribuée à une variable Pen ou peut être utilisée comme paramètre d'une
instruction basée sur une valeur Pen (telle que l'instruction Set Map).
Pour extraire des attributs spécifiques du style de ligne (tels que la couleur), appelez la fonction StyleAttr(
). Pour plus d'informations sur les paramètres Pen, reportez-vous à la section Clause Pen.
Exemple
Dim p_user_pen As Pen p_user_pen = CurrentBorderPen( )
Voir également
Fonction CurrentPen( ), Clause Pen, Instruction Set Style, Fonction StyleAttr( )
Fonction CurrentBrush( )
Objectif
Renvoie le style (de trame) Brush actuellement utilisé. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
256
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
CurrentBrush( )
Valeur renvoyée
Valeur de remplissage (Brush)
Description
La fonction CurrentBrush( ) renvoie le style Brush utilisé. Il s'agit du style de trame qui apparaît dans
la boîte de dialogue Options > Style polygone. MapInfo Professional attribue la valeur Brush définie
à tous les objets remplis (ellipses, rectangles, rectangles arrondis ou régions) créés par l'utilisateur. Si
un programme MapBasic crée un objet rempli à l'aide de l'instruction Create Region, mais que cette
dernière n'inclut aucuneclause Brush, la valeur Brush définie est attribuée à l'objet.
La valeur renvoyée de la fonction CurrentBrush( ) peut être attribuée à une variable Brush ou utilisée
comme paramètre d'une instruction basée sur une valeur Brush (telle que l'instruction Set Map ou
l'instruction Shade).
Pour extraire des attributs Brush (tels que la couleur), appelez la fonction StyleAttr( ).
Pour plus de détails sur les paramètres Brush, reportez-vous à la section Clause Brush.
Exemple
Dim b_current_fill As Brush
b_current_fill = CurrentBrush( )
Voir également
Clause Brush, Fonction MakeBrush( ), Instruction Set Style, Fonction StyleAttr( )
Fonction CurrentFont( )
Objectif
Renvoie le style de police actuellement utilisé par les fenêtres Carte et Mise en page. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CurrentFont( )
Valeur renvoyée
Police
Description
La fonction CurrentFont( ) renvoie le style de police utilisé. Ce style correspond au style de texte qui
apparaît dans la boîte de dialogue Options > Style texte lorsque la fenêtre active est une fenêtre Carte
ou Mise en page. MapInfo Professional attribue la police définie à tous les objets texte créés par
Référence
257
Fonction CurrentLinePen( )
l'utilisateur. Si un programme MapBasic crée un objet texte via l'instruction Create Text, mais que cette
dernière n'inclut aucune clause Font, la police définie est attribuée à l'objet.
La valeur renvoyée de la fonction CurrentFont( ) peut être attribuée à une variable de police ou utilisée
comme paramètre d'une instruction basée sur une police (telle que l'instruction Set Legend).
Pour extraire des attributs spécifiques du style de police (tels que la couleur), appelez la fonction
StyleAttr( ).
Pour plus d'informations sur les paramètres de police, reportez-vous à la section Clause Font.
Exemple
Dim f_user_text As Font
f_user_text = CurrentFont( )
Voir également
Clause Font, Fonction MakeFont( ), Instruction Set Style, Fonction StyleAttr( )
Fonction CurrentLinePen( )
Objectif
Renvoie le style (de ligne) Pen actuellement utilisé. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CurrentLinePen( )
Valeur renvoyée
Pen
Description
La fonction CurrentLinePen( ) renvoie le style de ligne utilisé. MapInfo Professional attribue le style
défini aux objets ligne ou polyligne créés par l'utilisateur. Si un programme MapBasic crée un objet à
l'aide de l'instruction Create Line, mais que celle-ci n'inclut aucune clause Pen, l'objet utilise le style
de ligne défini. La valeur renvoyée peut être attribuée à une variable Pen ou peut être utilisée comme
paramètre d'une instruction basée sur une valeur Pen (telle que l'instruction Set Map).
Pour extraire des attributs spécifiques du style de ligne (tels que la couleur), appelez la fonction StyleAttr(
). Pour plus d'informations sur les paramètres Pen, reportez-vous à la section Clause Pen.
Exemple
Dim p_user_pen As Pen p_user_pen = CurrentPen( )
Voir également
Fonction CurrentBorderPen( ), Clause Pen, Instruction Set Style, Fonction StyleAttr( )
258
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction CurrentPen( )
Objectif
Renvoie le style (de ligne) Pen actuellement utilisé et sélectionne le même style pour les bordures et
les lignes. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CurrentPen( )
Valeur renvoyée
Pen
Description
La fonction CurrentPen( ) renvoie le style de ligne utilisé. MapInfo Professional attribue le style défini
aux objets ligne ou polyligne créés par l'utilisateur. Si un programme MapBasic crée un objet à l'aide de
l'instruction Create Line, mais que celle-ci n'inclut aucune clause Pen, l'objet utilise le style de ligne
défini. Si vous souhaitez utiliser le style de ligne défini sans reconfigurer le style de bordure, utilisez la
fonction CurrentLinePen( ).
La valeur renvoyée peut être attribuée à une variable Pen ou utilisée comme paramètre d'une instruction
basée sur une valeur Pen (telle que l'instruction Set Map).
Pour extraire des attributs spécifiques du style de ligne (tels que la couleur), appelez la fonction StyleAttr(
). Pour plus d'informations sur les paramètres Pen, reportez-vous à la section Clause Pen.
Exemple
Dim p_user_pen As Pen
p_user_pen = CurrentPen( )
Voir également
Fonction MakePen( ), Clause Pen, Instruction Set Style, Fonction StyleAttr( )
Fonction CurrentSymbol( )
Objectif
Renvoie le style de symbole actuellement utilisé. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
CurrentSymbol( )
Valeur renvoyée
Symboles
Référence
259
Fonction CurTime( )
Description
La fonction CurrentSymbol( ) renvoie le style de symbole utilisé. Il s'agit du style qui apparaît dans la
boîte de dialogue Options > Style symbole. MapInfo Professional attribue le style de symbole défini
aux objets point créés par l'utilisateur. Si un programme MapBasic crée un objet point via l'instruction
Create Point, mais que celle-ci n'inclut aucune clause Symbol, la valeur définie est attribuée à l'objet.
La valeur renvoyée de la fonction CurrentSymbol( ) peut être attribuée à une variable symbole ou
utilisée comme paramètre d'une instruction basée sur une valeur de symbole (telle que l'instruction
Set Map ou l'instruction Shade).
Pour extraire des attributs spécifiques du style de symbole (tels que la couleur), appelez la fonction
StyleAttr( ). Pour plus d'informations sur les paramètres de symbole, reportez-vous à la section Clause
Symbol.
Exemple
Dim sym_user_symbol As Symbol
sym_user_symbol = CurrentSymbol( )
Voir également
Fonction MakeSymbol( ), Instruction Set Style, Fonction StyleAttr( ), Clause Symbol
Fonction CurTime( )
Objectif
Renvoie l'heure en cours en heures, minutes, secondes et millisecondes. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
CurTime( )
Valeur renvoyée
Durée
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim Y as time
Y = CurTime()
Print Y
Voir également
Fonction Day( ), Fonction Format$( ), Fonction Month( ), Fonction StringToDate( ), Fonction Timer(
), Fonction Weekday( ), Fonction Year( ), Fonction CurDate( ), Fonction CurDateTime( )
260
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction DateWindow( )
Objectif
Renvoie le paramètre de fenêtre de date actuelle sous forme de nombre entier compris entre 0 et 99,
ou (-1) si le fenêtrage des dates est désactivé. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
DateWindow( context )
context est un entier court qui peut être DATE_WIN_CURPROG (2) ou DATE_WIN_SESSION (1).
Description
Cela dépend du contexte spécifié. Si context est défini sur DATE_WIN_SESSION (1), le paramètre de
la session actuelle est renvoyé. Si context est défini sur DATE_WIN_CURPROG (2), le paramètre local
du programme MapBasic actuel est renvoyé. Si aucun programme n'est exécuté, le paramètre de la
session est renvoyé.
Exemple
Dans l'exemple suivant, la variable Date1 = 19890120, Date2 = 20101203 et MyYear = 1990.
DIM Date1, Date2 as Date
DIM MyYear As Integer
Set Format Date "US"
Set Date Window 75
Date1 = StringToDate("1/20/89")
Date2 = StringToDate("12/3/10")
MyYear = Year("12/30/90")
Voir également
Instruction Set Date Window( )
Fonction Day( )
Objectif
Renvoie le composant jour d'une expression de date. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Day( date_expr )
date_expr est une expression de date.
Valeur renvoyée
Entier court compris entre 1 et 31
Référence
261
Instruction DDEExecute
Description
La fonction Day( ) renvoie une valeur entière comprise entre 1 et 31, qui représente le composant jour
du mois de la date spécifiée. Par exemple, si la date spécifiée est le 12/17/93, la fonction Day( ) renvoie
la valeur 17.
Exemple
Dim day_var As SmallInt, date_var As Date
date_var = StringToDate("05/23/1985")
day_var = Day(date_var)
Voir également
Fonction CurDate( ), Fonction Day( ), Fonction Minute( ), Fonction Month( ), Fonction Second( ),
Fonction Timer( ), Fonction Weekday( ), Fonction Year( )
Instruction DDEExecute
Objectif
Émet une commande à travers un canal DDE ouvert.
Syntaxe
DDEExecute channel, command
channel est un nombre entier de canal renvoyé par la fonction DDEInitiate( ).
command est une chaîne représentant une commande à exécuter par le serveur DDE.
Description
L'instruction DDEExecute envoie une chaîne de commande à l'application serveur dans une conversation
DDE.
Le paramètre de canal doit correspondre au numéro d'un canal ouvert via l'appel d'une fonction
DDEInitiate( ).
La chaîne de paramètre de commande doit représenter une commande que le serveur DDE (l'application
passive) est en mesure d'exécuter. Différentes applications ont diverses exigences concernant ce qui
constitue une commande valide. Pour en savoir plus sur le format de commande pour une application
particulière, reportez-vous à la documentation de cette application.
Conditions d'erreur
L'erreur ERR_CMD_NOT_SUPPORTED (642) est générée si l'application n'est pas exécutée sous
Windows.
L'erreur ERR_NO_RESPONSE_FROM_APP (697) est générée si l'application serveur ne répond pas.
Exemple
Dans MapBasic, vous pouvez ouvrir un canal DDE avec Microsoft Excel en tant qu'application serveur.
Si la conversation indique la rubrique « System », vous pouvez utiliser l'instruction DDEExecute pour
262
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
envoyer une chaîne de commande à Excel. Excel peut exécuter la commande, sous réserve que la
chaîne de commande soit équivalente à une fonction de macro Excel et comprise entre crochets.
L'exemple ci-dessous ordonne à Excel d'ouvrir la feuille de calcul TRIAL.XLS.
Dim i_chan As Integer
i_chan = DDEInitiate("Excel", "System")
DDEExecute i_chan, "[OPEN(""C:\DATA\TRIAL.XLS"")]"
Voir également
Fonction DDEInitiate( ), Instruction DDEPoke , Fonction DDERequest$( )
Fonction DDEInitiate( )
Objectif
Initialise une nouvelle conversation DDE, et renvoie le numéro de canal associé.
Syntaxe
DDEInitiate( appl_name, topic_name )
appl_name est une chaîne représentant un nom d'application (par exemple, « MapInfo »).
topic_name est une chaîne représentant un nom de rubrique (par exemple : « Système »).
Valeur renvoyée
Entier
Description
La fonction DDEInitiate( ) initialise une conversation DDE (Dynamic Data Exchange) et renvoie le numéro
identifiant le canal de cette conversation.
Une conversation DDE permet à deux applications Microsoft Windows d'échanger des informations.
Une fois qu'une conversation DDE a été initialisée, un programme MapBasic peut émettre des appels
de la fonction DDERequest$( ) (afin de lire les informations provenant de l'autre application) et des
instructions DDEPoke (pour écrire des informations dans l'autre application). Lorsqu'une conversation
DDE a accompli toutes ses tâches et n'est plus nécessaire, le programme termine la conversation via
l'instruction DDETerminate ou l'instruction DDETerminate All.
Remarque: Les conversations DDE sont propres à Microsoft Windows. Par conséquent, MapBasic
génère une erreur si un programme émet des appels de fonction liés aux DDE et s'exécute
sur une plate-forme autre que Windows. Pour définir la plate-forme matérielle actuelle lors
de l'exécution, appelez la fonction SystemInfo( ).
Le paramètre appl_name identifie une application Windows. Par exemple, pour initialiser une conversation
avec Microsoft Excel, vous devez indiquer le paramètre appl_name « Excel ». L'application nommée
par le paramètre appl_name doit déjà être en cours d'exécution avant de pouvoir initialiser une
conversation DDE. L'instruction Run Program de MapBasic vous permet d'exécuter une autre application
Windows. Toutes les applications Windows prennent en charge les conversations DDE. Pour savoir si
une application prend en charge les conversations DDE, reportez-vous à la documentation de cette
application.
Référence
263
Fonction DDEInitiate( )
Le paramètre topic_name est une chaîne qui identifie la rubrique de la conversation. Chaque application
possède son propre ensemble de noms de rubriques valides. Pour voir la liste des rubriques prises en
charge par une application particulière, reportez-vous à la documentation de cette application. Dans
beaucoup d'applications, le nom d'un fichier en cours d'utilisation est un nom de rubrique valide. Ainsi,
si Excel utilise le fichier de feuille de calcul ORDERS.XLS, vous pouvez émettre les instructions MapBasic
suivantes :
Dim i_chan As Integer
i_chan = DDEInitiate("Excel", "C:\ORDERS.XLS")
pour initialiser une conversation DDE avec cette feuille de calcul Excel.
Plusieurs applications prennent en charge une rubrique spéciale appelée « Système ». Si vous initialisez
une conversation via la rubrique « Système », vous pouvez alors utiliser la fonction DDERequest$( )
pour obtenir une liste des chaînes que l'application reconnaît comme noms de rubriques valides (par
exemple, une liste des fichiers en cours d'utilisation). Lorsque vous connaissez les rubriques disponibles,
vous pouvez initialiser une autre conversation DDE avec un document particulier. Reportez-vous à
l'exemple ci-dessous.
Le tableau suivant répertorie quelques exemples de noms d'applications et de rubriques que vous pouvez
utiliser avec la fonction DDEInitiate( ).
Appel DDEInitiate( )
Nature de la conversation
DDEInitiate("Excel", "System")
Les appels de la fonction DDERequest$( )peuvent
renvoyer des informations système Excel, comme
une liste des noms de feuilles de calcul en cours
d'utilisation. L'instruction DDEExecute peut
envoyer des commandes à exécuter par Excel.
DDEInitiate("Excel", wks)
Si wksest le nom d'un document Excel en cours
d'utilisation, les instructions DDEPokepeuvent
stocker des valeurs dans la feuille de calcul, et les
appels de la fonction DDERequest$( ) peuvent
lire des informations provenant de la feuille de
calcul.
DDEInitiate("MapInfo", "System")
Les appels de la fonction DDERequest$( ) peuvent
fournir des informations système, comme une liste
des applications MapBasic en cours d'utilisation
par MapInfo Professional.
DDEInitiate("MapInfo" mbx)
Simbx est le nom d'une application MapBasic en
cours d'utilisation, l'instruction DDEPoke peut
affecter des valeurs aux variables globales dans
l'application indiquée, et les appels de la fonction
DDERequest$( ) peuvent lire les valeurs actuelles
de variables globales.
Lorsqu'un programme MapBasic émet un appel de fonction DDEInitiate( ), il est reconnu en tant que «
client » dans la conversation DDE. L'autre application Windows est reconnue en tant que « serveur ».
Dans une conversation particulière, le client est toujours la partie active, le serveur répondant simplement
264
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
aux actions entreprises par le client. Un programme MapBasic peut prendre en charge plusieurs
conversations à la fois, n'étant limité que par la mémoire et les ressources système. Une application
MapBasic peut agir en tant que client dans une conversation (en émettant des instructions
commeDDEInitiate( ), etc.) tout en agissant en tant que serveur dans une autre (en définissant une
procédure RemoteMsgHandler).
Conditions d'erreur
L'erreur ERR_CMD_NOT_SUPPORTED (642) est générée si l'application n'est pas exécutée sous
Windows.
L'erreur ERR_INVALID_CHANNEL (696) est générée si le numéro de canal indiqué n'est pas valide.
Exemple
L'exemple suivant présente une tentative d'initialisation d'une conversation DDE avec Microsoft Excel,
version 4 ou ultérieure. Le but est de stocker un simple message texte (« Hello from MapInfo! ») dans
la première cellule de la feuille de calcul utilisée par Excel, mais uniquement si cette cellule est vide. Si
la première cellule n'est pas vide, son contenu ne sera pas écrasé.
Dim chan_num, tab_marker As Integer
Dim topiclist, topicname, cell As String
chan_num = DDEInitiate("EXCEL", "System")
If chan_num = 0 Then
Note "Excel is not responding to DDE conversation."
End Program
End If
' Get a list of Excel's valid topics
topiclist = DDERequest$(chan_num, "topics")
'
'
'
'
'
'
'
'
'
'
'
'
If Excel 4 is running, topiclist might look like:
": Sheet1 System"
(if spreadsheet is still "unnamed"),or like:
": C:Orders.XLS Sheet1 System"
If Excel 5 is running, topiclist might look like:
"[Book1]Sheet1 [Book2]Sheet2 ..."
Next, extract just the first topic (for example,"Sheet1")
by extracting the text between the 1st & 2nd tabs;
or, in the case of Excel 5, by extracting the text
that appears before the first tab.
If Left$(topiclist, 1) = ":" Then
' ...then it's Excel 4.
tab_marker = InStr(3, topiclist, Chr$(9) )
If tab_marker = 0 Then
Note "No Excel documents in use! Stopping."
End Program
End If
topicname = Mid$(topiclist, 3, tab_marker - 3)
Else
' ... assume it's Excel 5.
tab_marker = Instr(1, topiclist, Chr$(9) )
topicname = Left$( topiclist, tab_marker - 1)
End If
Référence
265
Instruction DDEPoke
' open a channel to the specific document
' (e.g., "Sheet1")
DDETerminate chan_num
chan_num = DDEInitiate("Excel", topicname)
If chan_num = 0 Then
Note "Problem communicating with " + topicname End Program
End If
' Let's examine the 1st cell in Excel.
' If cell is blank, put a message in the cell.
' If cell isn't blank, don't alter it ' just display cell contents in a MapBasic NOTE.
' Note that a "Blank cell" gets returned as a
' carriage-return line-feed sequence:
' Chr$(13) + Chr$(10).
cell = DDERequest$( chan_num, "R1C1" )
If cell <> Chr$(13) + Chr$(10) Then
Note
"Message not sent; cell already contains:" + cell
Else
DDEPoke chan_num, "R1C1", "Hello from MapInfo!"
Note "Message sent to Excel,"+topicname+ ",R1C1."
End If
DDETerminateAll
Remarque: Cet exemple ne prévoit pas tous les obstacles possibles. Par exemple, Excel peut être en
train d'éditer un graphique (par exemple, Chart1) au lieu d'une feuille de calcul, auquel
cas nous serons dans l'impossibilité de référencer la cellule R1C1.
Voir également
Instruction DDEExecute, Instruction DDEPoke, Fonction DDERequest$( ), Instruction DDETerminate
, Instruction DDETerminate All
Instruction DDEPoke
Objectif
Envoie une valeur de donnée à un élément dans une application serveur DDE.
Syntaxe
DDEPoke channel, itemname, data
channelest un nombre entier de canal renvoyé par la fonction DDEInitiate( ).
itemname est une valeur de chaîne représentant le nom d'un élément.
data est une chaîne de caractères à envoyer à l'élément nommé dans le paramètre itemname.
Description
L'instruction DDEPoke stocke la chaîne texte de données dans l'élément DDE indiqué.
Le paramètre de canal doit correspondre au numéro d'un canal ouvert via la fonction DDEInitiate( ).
266
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Le paramètre itemname doit identifier un élément approprié pour le canal indiqué. Les différentes
applications DDE prennent en charge différents noms d'élément. Pour connaître les noms d'élément
pris en charge par une application Windows particulière, reportez-vous à la documentation de cette
application.
Dans une conversation DDE avec Excel, une chaîne au format R1C1(pour Row 1, Column 1 - Ligne 1,
Colonne 1) est un nom d'élément valide. Dans une conversation DDE avec une autre application
MapBasic, le nom de la variable globale dans l'application est un nom d'élément valide.
Conditions d'erreur
L'erreur ERR_CMD_NOT_SUPPORTED (642) est générée si l'application n'est pas exécutée sous
Windows.
L'erreur ERR_INVALID_CHANNEL (696) est générée si le numéro de canal indiqué n'est pas valide.
Exemple
Si Excel est déjà en cours d'exécution, l'exemple suivant stocke un simple message (« Hello from
MapInfo! ») dans la première cellule d'une feuille de calcul Excel.
Dim i_chan_num As Integer
i_chan_num = DDEInitiate("EXCEL", "Sheet1")
DDEPoke i_chan_num, "R1C1", "Hello from MapInfo!"
L'exemple suivant suppose qu'une autre application MapBasic est en cours d'utilisation (Dispatch.mbx)
et que l'application Dispatch a une variable globale appelée Address. L'exemple ci-dessous utilise
l'instruction DDEPoke pour modifier la variable globale Address.
i_chan_num = DDEInitiate("MapInfo","C:\DISPATCH.MBX")
DDEPoke i_chan_num, "Address", "23 Main St."
Voir également
Instruction DDEExecute, Fonction DDEInitiate( ), Fonction DDERequest$( )
Fonction DDERequest$( )
Objectif
Renvoie une valeur de données obtenue à partir d'une conversation DDE.
Syntaxe
DDERequest$( channel, itemname )
channelest un nombre entier de canal renvoyé par la fonction DDEInitiate( ).
itemname est une chaîne représentant le nom d'un élément dans l'application serveur.
Valeur renvoyée
Chaîne
Référence
267
Fonction DDERequest$( )
Description
La fonction DDERequest$( ) renvoie une chaîne d'informations obtenue via une conversation DDE. Si
la requête n'est pas concluante, la fonction DDERequest$( ) renvoie une chaîne vide.
Le paramètre de canal doit correspondre au numéro d'un canal ouvert via la fonction DDEInitiate( ).
Le paramètre itemname doit identifier un élément approprié pour le canal indiqué. Les différentes
applications DDE prennent en charge différents noms d'élément. Pour connaître les noms d'élément
pris en charge par une application Windows particulière, reportez-vous à la documentation de cette
application.
Le tableau suivant répertorie quelques combinaisons rubrique-élément pouvant être utilisées lorsqu'une
conversation DDE est menée avec Microsoft Excel en tant que serveur :
Nom de rubrique
Noms d'élément à utiliser avec DDERequest$( )
« Système »
« Systèmes » renvoie une liste des noms d'élément acceptés sous la
rubrique « Système » ;
« Rubriques » renvoie une liste des noms de rubrique DDE reconnus
par Excel, notamment les noms des feuilles de calcul ouvertes ;
« Formats » renvoie une liste des formats de Presse-papiers reconnus
par Excel (par exemple, TEXT BITMAP …).
wks (nom d'une feuille de
calcul en cours d'utilisation)
Une chaîne au format R1C1 (pour Row 1, Column 1 - Ligne 1, Colonne
1) renvoie le contenu de cette cellule.
Remarque: Via la fonction DDERequest$( ), une application MapBasic peut observer les valeurs en
cours de variables globales dans une autre application MapBasic. Le tableau suivant
répertorie les combinaisons rubrique-élément pouvant être utilisées lorsqu'une conversation
DDE est menée avec MapInfo Professional en tant que serveur.
Nom de rubrique
Noms d'élément à utiliser avec DDERequest$( )
« Système »
« Systèmes » renvoie une liste des noms d'élément acceptés sous la
rubrique « Système » ;
« Rubriques » renvoie une liste des noms de rubrique DDE reconnus
par MapInfo Professional, notamment le nom de toutes les applications
MapBasic en cours d'utilisation ;
« Formats » renvoie une liste des formats de Presse-papiers reconnus
par MapInfo Professional (TEXT) ;
« Version » renvoie le numéro de version de MapInfo, multiplié par 100.
mbx (nom du .MBX en cours « {items} » renvoie une liste des noms de variables globales utilisés par
l'application MapBasic indiquée. L'indication du nom de variable globale
d'utilisation)
permet à la fonction DDERequest$( ) de renvoyer la valeur de la
variable.
268
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Conditions d'erreur
L'erreur ERR_CMD_NOT_SUPPORTED (642) est générée si l'application n'est pas exécutée sous
Windows.
L'erreur ERR_INVALID_CHANNEL (696) est générée si le numéro de canal indiqué n'est pas valide.
L'erreur ERR_CANT_INITIATE_LINK (698) est générée si MapBasic ne peut pas créer de lien vers la
rubrique.
Exemple
Dans l'exemple suivant, la fonction DDERequest$( ) est utilisée pour obtenir le contenu actuel de la
première cellule d'une feuille de calcul Excel. Cet exemple ne fonctionne que si Excel est déjà en cours
d'exécution.
Dim i_chan_num As Integer
Dim s_cell As String
i_chan_num = DDEInitiate("EXCEL", "Sheet1")
s_cell = DDERequest$(i_chan_num, "R1C1")
L'exemple suivant suppose qu'une autre application MapBasic est en cours d'utilisation (Dispatch) et
que l'application Dispatch a une variable globale appelée Address. Dans l'exemple ci-dessous, la fonction
DDERequest$( ) est utilisée pour obtenir la valeur actuelle de la variable globale Address.
Dim i_chan_num As Integer, s_addr_copy As String
i_chan_num = DDEInitiate("MapInfo","C:\DISPATCH.MBX")
s_addr_copy = DDERequest$(i_chan_num, "Address")
Voir également
Fonction DDEInitiate( )
Instruction DDETerminate
Objectif
Ferme une conversation DDE.
Syntaxe
DDETerminate channel
channelest un nombre entier de canal renvoyé par la fonction DDEInitiate( ).
Description
L'instruction DDETerminate ferme le canal DDE indiqué par le paramètre de canal.
Le paramètre de canal doit correspondre au numéro de canal renvoyé par l'appel de la fonction
DDEInitiate( ) (ayant initialisé la conversation). Lorsqu'une conversation DDE a accompli toutes ses
tâches et n'est plus nécessaire, le programme termine la conversation via l'instruction DDETerminate
ou l'instruction DDETerminate All.
Remarque: Il est possible d'utiliser plusieurs applications MapBasic simultanément et chaque application
peut ouvrir ses propres canaux DDE. Cependant, une application MapBasic donnée ne
Référence
269
Instruction DDETerminateAll
peut fermer que les canaux DDE qu'elle a ouverts. Une application MapBasic ne peut pas
fermer les canaux DDE ouverts par une autre application MapBasic.
Conditions d'erreur
L'erreur ERR_CMD_NOT_SUPPORTED (642) est générée si l'application n'est pas exécutée sous
Windows.
L'erreur ERR_INVALID_CHANNEL (696) est générée si le numéro de canal indiqué n'est pas valide.
Exemple
DDETerminate i_chan_num
Voir également
Fonction DDEInitiate( ), Instruction DDETerminate All
Instruction DDETerminateAll
Objectif
Ferme toutes les conversations DDE ouvertes par le même programme MapBasic.
Syntaxe
DDETerminateAll
Description
L'instruction DDETerminateAll ferme tous les canaux DDE ouverts par la même application MapBasic.
Il est possible d'utiliser plusieurs applications MapBasic simultanément et chaque application peut ouvrir
ses propres canaux DDE. Cependant, une application MapBasic donnée ne peut fermer que les canaux
DDE qu'elle a ouverts. Une application MapBasic ne peut pas fermer les canaux DDE ouverts par une
autre application MapBasic.
Lorsqu'une conversation DDE a accompli toutes ses tâches et n'est plus nécessaire, le programme
termine la conversation via l'instruction DDETerminate ou l'instruction DDETerminateAll.
Conditions d'erreur
L'erreur ERR_CMD_NOT_SUPPORTED (642) est générée si l'application n'est pas exécutée sous
Windows.
Voir également
Fonction DDEInitiate( ), Instruction DDETerminate
Instruction Declare Function
Objectif
Définit la liste des noms et paramètres d'une fonction.
270
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Restrictions
Cette instruction ne peut pas être émise depuis la fenêtre MapBasic.
L'accès aux fonctions externes (à l'aide de la syntaxe 2) dépend de la plate-forme. Les fichiers DLL sont
accessibles uniquement par les applications exécutées sous Windows.
Syntaxe 1
Declare Function fname
( [ [ ByVal ] parameter [ , parameter... ] As var_type ]
[ , [ ByVal ] parameter [ , parameter... ] As var_type... ] )
As return_type
fname est le nom de la fonction.
parameter est le nom d'un paramètre de la fonction.
var_type est un type de variable (par ex. : un entier). Les tableaux et variables Type personnalisées sont
autorisés.
return_type est un type de variable scalaire standard. Les tableaux et variables Type personnalisées ne
sont pas autorisés.
Syntaxe 2 (routines externes dans les fichiers DLL de Windows)
Declare Function fname
Lib "file_name" [ Alias "function_alias" ]
( [ [ ByVal ] parameter [ , parameter... ] As var_type ]
[ , [ ByVal ] parameter [ , parameter... ] As var_type... ] )
As return_type
fname est le nom par lequel une fonction sera appelée.
file_name est le nom d'un fichier DLL de Windows.
function_alias est le nom d'origine de la fonction externe.
parameter est le nom d'un paramètre de la fonction.
var_type est un type de données : avec les fichiers DLL de Windows, il peut s'agir d'une variable Type
standard ou personnalisée.
return_type est un type de variable scalaire standard.
Description
L'instruction Declare Function prédéclare une fonction MapBasic définie par l'utilisateur ou une fonction
externe.
Un programme MapBasic peut utiliser une instruction Function...End Function pour créer une fonction
personnalisée. Chaque fonction définie de cette façon doit être précédée par une instruction Declare
Function. Pour plus d'informations sur la création de fonctions personnalisées, reportez-vous à la section
Instruction Function...End Function.
Les paramètres transmis à une fonction sont transmis par référence, à moins d'inclure le mot-clé facultatif
ByVal. Pour obtenir des informations sur les différences entre les paramètres par référence et par valeur,
reportez-vous au Guide de l'utilisateur MapBasic.
Référence
271
Instruction Declare Method
Appel de fonctions externes
À l'aide de la syntaxe 2 (ci-dessus), vous pouvez utiliser une instruction Declare Function pour définir
une fonction externe. Une fonction externe est une fonction qui a été rédigée dans un autre langage
(par exemple, C ou Pascal), et qui est stockée dans un fichier distinct. Une fois qu'une fonction externe
a été déclarée, votre programme peut l'appeler comme s'il s'agissait d'une fonction MapBasic classique.
Si l'instruction Declare Function déclare une fonction externe, le paramètre file_name doit indiquer le
nom du fichier contenant la fonction externe. Le fichier externe doit être présent lors de l'exécution.
Toute fonction externe possède un nom affecté de manière explicite. Habituellement le paramètre fname
de l'instruction Declare Function correspond au nom explicite de la routine provenant du fichier externe.
L'instruction Declare Function peut également inclure une clause Alias, qui vous permet d'appeler la
fonction externe par le nom de votre choix. La clause Alias vous permet de remplacer le nom explicite
d'une fonction externe, en cas de conflit de celui-ci avec le nom d'une fonction MapBasic classique.
Si l'instruction Declare Function comprend une clause Alias, le paramètre function_alias doit
correspondre au nom d'origine de la fonction externe, et le paramètre fname indique le nom par lequel
MapBasic appellera la routine.
Restrictions des paramètres DLL de Windows
Vous pouvez transmettre une variable Type personnalisée en tant que paramètre à un fichier DLL.
Cependant, le fichier DLL doit être compilé avec un ensemble de « compilation de structure » défini sur
la compilation la plus compacte. Consultez le Guide de l'utilisateur MapBasic pour obtenir plus
d'informations.
Exemple
L'exemple suivant définit une fonction personnalisée, CubeRoot, qui renvoie la racine cubique d'un
nombre (celui élevé à la puissance trois).
Declare Sub Main
Declare Function CubeRoot(ByVal x As Float) As Float
Sub Main
Note Str$( CubeRoot(23) )
End Sub
Function CubeRoot(ByVal x As Float) As Float
CubeRoot = x ^ (1 / 3)
End Function
Voir également
Instruction Declare Sub, Instruction Function...End Function
Instruction Declare Method
Objectif
Définit la liste des noms et arguments d'une méthode/fonction dans un assemblage .Net, afin qu'une
application MapBasic puisse appeler la fonction.
Restrictions
Cette instruction ne peut pas être émise depuis la fenêtre MapBasic.
272
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
Declare Method fname Class "class_name" Lib "assembly_name"
[ Alias function_alias ]
( [ [ ByVal ] parameter [ , parameter... ] As var_type ]
[ , [ ByVal ] parameter [ , parameter... ] As var_type... ] )
[ As return_type ]
fname est le nom par lequel une fonction sera appelée. Si la clause facultative Alias est omise, fname
doit correspondre au nom réel de la méthode/fonction .Net. Cette option ne peut pas excéder 31
caractères.
class_name est le nom de la classe .Net qui fournit la fonction à appeler, y compris l'espace de nom de
la classe (tel que System.Windows.Forms.MessageBox).
assembly_name est le nom d'un fichier d'assemblage .Net, par exemple filename.dll. Lorsque
l'assemblage est chargé à partir du GAC, assembly_name doit être un nom d'assemblage complet.
function_alias est le nom d'origine de la méthode/fonction .Net (nom tel que défini dans l'assemblage
.Net). Remarque : intégrez la clause Alias uniquement lorsque vous souhaitez appeler la méthode par
un nom différent de son nom d'origine.
parameter est le nom d'un paramètre de la fonction.
var_type est un type de données MapBasic, par exemple un entier.
return_type est un type de variable scalaire MapBasic standard, comme un entier. Si la clause As est
omise, le programme MapBasic peut appeler la méthode en tant que Sub (via l'instruction Call).
Description
L'instruction Declare Method permet au programme MapBasic d'appeler une méthode (fonction ou
procédure) à partir d'un assemblage .Net. L'assemblage .Net peut être créé en utilisant divers langages,
tels que C# ou VB.Net. Pour plus de détails sur l'appel de .Net à partir de MapBasic, reportez-vous au
Guide de l'utilisateur MapBasic.
Les programmes MapBasic ne peuvent appeler que les méthodes ou fonctions .Net déclarées comme
statiques. (Le langage VB.NET fait référence à ces fonctions en tant que « fonctions partagées », alors
que le langage C# utilise le terme « méthodes statiques ».)
Au moment de l'exécution, si assembly_name indique un nom d'assemblage complet et que l'assemblage
est enregistré dans le Global Assembly Cache (GAC), MapInfo Professional charge l'assemblage à partir
du GAC. Sinon, l'assemblage est chargé à partir du même répertoire que le fichier .MBX (dans ce cas,
assembly_name doit être un nom de fichier, tel que filename.dll). Ainsi, vous pouvez faire enregistrer
votre assemblage dans le GAC, mais vous n'y êtes pas contraint.
Exemples
Voici un exemple simple d'une classe C# fournissant une méthode statique :
namespace MyProduct
{
class MyWrapper
{
public static int ShowMessage(string s)
{
System.Windows.Forms.MessageBox.Show(s);
Référence
273
Instruction Declare Sub
return 0;
}
}
}
Dans le langage VB.Net, la définition de classe peut se présenter comme suit.
Namespace MyProduct
Public Class MyWrapper
Public Shared Function ShowMessage(ByVal s As String) As Integer
System.Windows.Forms.MessageBox.Show(s)
Return 0
End Function
End Class
End Namespace
Un programme MapBasic pourrait appeler la méthode avec la syntaxe suivante :
Declare Method ShowMessage
Class "MyProduct.MyWrapper"
Lib "MyAssembly.DLL" (ByVal str As String) As Integer
. . .
Dim retval As Integer
retval = ShowMessage("Here I am")
L'exemple suivant présente la façon dont déclarer des méthodes dans les assemblages enregistrés
dans le GAC. Lorsqu'un assemblage est chargé à partir du GAC, la clause Lib doit indiquer un nom
d'assemblage complet. Il existe divers utilitaires qui peuvent vous aider à identifier un nom d'assemblage
complet, notamment l'utilitaire gacutil fourni par Microsoft dans Visual Studio.
' Declare a method from the System.Windows.Forms.dll assembly:
Declare Method Show
Class "System.Windows.Forms.MessageBox"
Lib "System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
(ByVal str As String, ByVal caption As String)
' Declare a method from the mscorlib.dll assembly:
Declare Method Move
Class "System.IO.File"
Lib "mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
(ByVal sourceFileName As String, ByVal destFileName As String)
' Display a .Net MessageBox dialog box with both a message and a caption:
Call Show("Table update is complete.", "Tool name")
' Call the .Net Move method to move a file
Call Move("C:\work\pending\entries.txt", "C:\work\finished\entries.txt")
Instruction Declare Sub
Objectif
Identifie la liste des noms et paramètres d'une sous-procédure.
Restrictions
Cette instruction ne peut pas être émise depuis la fenêtre MapBasic.
L'accès aux fonctions externes (en utilisant la syntaxe 2) dépend de la plate-forme. Les fichiers DLL
sont accessibles uniquement par les applications exécutées sous Windows.
274
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe 1
Declare Sub sub_proc
[ ( [ ByVal ] parameter [ , parameter... ] As var_type [ , ... ] ) ]
sub_proc est le nom d'une sous-procédure.
parameter est le nom d'un paramètre de sous-procédure.
var_type est une variable Type de données standard ou personnalisée.
Syntaxe 2 (routines externes dans les fichiers DLL de Windows)
Declare Sub sub_proc Lib "file_name" [ Alias "sub_alias" ]
[ ( [ ByVal ] parameter [ , parameter... ] As var_type [ , ... ] ) ]
sub_proc est le nom par lequel une routine externe sera appelée.
file_name est une chaîne ; le nom du fichier DLL.
sub_alias est le nom d'origine d'une routine externe.
parameter est le nom d'un paramètre de sous-procédure.
var_type est un type de données : avec les fichiers DLL de Windows, il peut s'agir d'une variable Type
standard ou personnalisée.
Description
L'instruction Declare Sub établit une liste des noms et paramètres d'une sous-procédure. En général,
chaque instruction Declare Sub correspond à une sous-procédure qui apparaît par la suite dans le
même programme.
Un programme MapBasic peut utiliser une instruction Sub...End Sub pour créer une procédure. Chaque
procédure définie de cette façon doit être précédée par une instruction Declare Sub. Pour plus
d'informations sur la création de procédures, reportez-vous à la section Instruction Sub...End Sub.
Les paramètres transmis à une procédure le sont par référence à moins d'inclure le mot-clé facultatif
ByVal.
Appel de routines externes
À l'aide de la syntaxe 2 (ci-dessus), vous pouvez utiliser une instruction Declare Sub pour définir une
routine externe. Une routine externe est une routine qui a été rédigée dans un autre langage (par exemple
: C ou Pascal), et qui est stockée dans un fichier distinct. Une fois que vous avez déclaré une routine
externe, votre programme peut l'appeler comme s'il s'agissait d'une procédure MapBasic classique.
Si l'instruction Declare Sub déclare une routine externe, le paramètre file_name doit indiquer le nom
du fichier contenant la routine. Le fichier doit être présent lors de l'exécution.
Toute routine externe possède un nom affecté de manière explicite. Habituellement, le paramètre
sub_proc de l'instruction Declare Sub correspond au nom explicite de la routine provenant du fichier
externe. L'instruction Declare Sub peut inclure une clause Alias, qui vous permet d'appeler la routine
externe par le nom de votre choix. La clause Alias vous permet de remplacer le nom explicite de la
routine externe, en cas de conflit de celui-ci avec le nom d'une fonction MapBasic classique.
Référence
275
Instruction Define
Si l'instruction Declare Sub comprend une clause Alias, le paramètre sub_alias doit correspondre au
nom d'origine de la routine externe, et le paramètre sub_proc indique le nom par lequel MapBasic
appellera la routine. Vous pouvez transmettre une variable Type personnalisée en tant que paramètre
à un fichier DLL. Cependant, le fichier DLL doit être compilé avec un ensemble de « compilation de
structure » défini sur la compilation la plus compacte. Pour des informations sur les variables Type
personnalisées, reportez-vous à la section Instruction Type.
Exemple
Declare Sub Main
Declare Sub Cube(ByVal original As Float, cubed As Float)
Sub Main
Dim x, result As Float
Call Cube(2, result)
' result now contains the value: 8 (2 x 2 x 2)
x = 1
Call Cube(x + 2, result)
' result now contains the value: 27 (3 x 3 x 3)
End Sub
Sub Cube (ByVal original As Float, cubed As Float)
'
' Cube the "original" parameter value, and store
' the result in the "cubed" parameter.
'
cubed = original ^ 3
End Sub
Voir également
Instruction Call, Instruction Sub...End Sub
Instruction Define
Objectif
Définit un mot-clé personnalisé avec une valeur constante.
Restrictions
Vous ne pouvez pas exécuter d'instruction Define par le biais de la fenêtre MapBasic.
Syntaxe
Define identifier definition
identifier est un identifiant contenant jusqu'à 31 caractères, commençant par une lettre ou un caractère
de soulignement (_).
definition est le texte que MapBasic doit remplacer pour chaque occurrence d'identifiant.
276
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
L'instruction Define définit un nouvel identifiant. Pour le reste du programme, chaque fois que MapBasic
rencontre le même identifiant, la définition d'origine de celui-ci sera remplacée. Pour obtenir des exemples
d'instructions Define, consultez le fichier de définitions MapBasic standard, MAPBASIC.DEF.
Un identifiant défini via une instruction Define ne respecte pas la casse. Si vous utilisez une instruction
Define pour définir le mot-clé FOO, votre programme peut désigner cet identifiant par Foo ou foo. Vous
ne pouvez pas réutiliser l'instruction Define pour redéfinir un mot-clé MapBasic, tel que Set ou Create.
Pour obtenir la liste des mots-clés réservés, Instruction Dim.
Exemples
Votre application devra peut-être faire référence à la valeur mathématique, connue sous le nom de Pi,
dont la valeur est approximativement de 3,141593. Par conséquent, vous pouvez utiliser la définition
suivante :
Define PI 3.141593
Après cette définition, vous pourriez simplement taper PI chaque fois que vous devez faire référence à
la valeur 3,141593.
La partie définition d'une instruction Define peut comprendre des guillemets. Par exemple, l'instruction
suivante crée un mot-clé dont la définition comprend des guillemets :
Define FILE_NAME "World.tab"
L'instruction Define suivante fait partie du fichier de définitions standard, MAPBASIC.DEF. Cette instruction
Define représente un moyen simple d'effacer le contenu de la fenêtre Message :
Define CLS Print Chr$(12)
Fonction DeformatNumber$( )
Objectif
Supprime le formatage d'une chaîne qui représente un nombre. Vous pouvez appeler cette fonction à
partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
DeformatNumber$ ( numeric_string )
numeric_string est une chaîne représentant une valeur numérique, telle que « 12 345 678 ».
Valeur renvoyée
Chaîne
Description
Renvoie une chaîne qui représente un nombre. La valeur renvoyée n'inclut pas les séparateurs de
milliers, même si l'argument numeric_string inclut des virgules de séparation. La valeur renvoyée utilise
Référence
277
Instruction Delete
le point comme séparateur décimal, que l'ordinateur de l'utilisateur soit configuré ou non pour utiliser un
autre caractère comme séparateur décimal.
Exemples
L'exemple suivant appelle la fonction Val( ) pour déterminer la valeur numérique d'une chaîne. Avant
d'appeler la fonction Val( ), cet exemple appelle la fonction DeformatNumber$( ) afin d'enlever les
virgules de séparation de la chaîne. (La chaîne que vous transmettez à la fonction Val( ) ne peut pas
contenir de virgule de séparation.)
Dim s_number As String
Dim f_value As Float
s_number = "1,222,333.4"
s_number = DeformatNumber$(s_number)
' the variable s_number now contains the
' string: "1222333.4"
f_value = Val(s_number)
Print f_value
Voir également
Fonction FormatNumber$( ), Fonction Val( )
Instruction Delete
Objectif
Supprime un ou plusieurs objets graphiques, ou une ou plusieurs lignes entières d'une table. Vous
pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Delete [ Object ] From table [ Where Rowid = id_number ]
table est le nom d'une table ouverte.
id_number est le numéro d'une ligne (une valeur d'entier égale à 1 ou plus).
Description
L'instruction Delete supprime des objets graphiques ou des enregistrements entiers d'une table ouverte.
Par défaut, l'instruction Delete supprime tous les enregistrements d'une table. Cependant, si l'instruction
inclut le mot-clé facultatif Object, MapBasic ne supprime que les objets graphiques associés à la table
au lieu de supprimer les enregistrements proprement dits.
Par défaut, l'instruction Delete affecte tous les enregistrements contenus dans la table. Cependant, si
l'instruction comprend la clause facultative Where Rowid =...clause, seule la ligne indiquée est affectée
par l'instruction Delete.
Il existe une différence fondamentale entre une instruction Delete Object From et une instruction Drop
Map. Une instruction Delete Object From n'affecte que les objets ou les enregistrements d'une table,
278
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
elle n'affecte pas la structure de la table proprement dite. Une instruction Drop Map modifie réellement
la structure de la table afin que les objets graphiques ne puissent pas être associés à la table.
Exemples
L'instruction Delete suivante supprime tous les enregistrements d'une table. A la fin de cette opération,
la table existe toujours, mais elle est complètement vide, comme si l'utilisateur venait de la créer en
sélectionnant Fichier > Nouveau.
Open Table "clients"
Delete From clients
Table clients
L'instruction Delete ci-dessous ne supprime que l'objet de la dixième ligne de la table :
Open Table "clients"
Delete Object From clients Where Rowid = 10
Table clients
Voir également
Instruction Drop Map, Instruction Insert
Instruction Dialog
Objectif
Affiche une boîte de dialogue personnalisée.
Restrictions
Vous ne pouvez pas exécuter cette instruction Dialog via la fenêtre MapBasic.
Syntaxe
Dialog
[ Title title ]
[ Width w ] [ Height h ] [ Position x, y ]
[ Calling handler ]
Control control_clause
[ Control control_clause... ]
title est une expression de chaîne qui apparaît dans la barre de titre de la boîte de dialogue.
h indique la hauteur de la boîte de dialogue, en unité de boîte de dialogue (8 unités de hauteur de boîte
de dialogue représentent la hauteur d'un caractère).
w indique la largeur de la boîte de dialogue, en unité de boîte de dialogue (4 unités de hauteur de boîte
de dialogue représentent la largeur d'un caractère).
x, y indique la position initiale de la boîte de dialogue, en pixels, représentant la distance par rapport au
coin supérieur gauche de la zone de travail de MapInfo Professional. Si la clause Position est omise,
la boîte de dialogue apparaît centrée.
handler est le nom d'une procédure à appeler avant que l'utilisateur ne soit autorisé à utiliser la boîte de
dialogue. Habituellement, cette procédure est utilisée pour émettre l'instruction Alter Control.
Référence
279
Instruction Dialog
Chaque control_clause peut indiquer l'un des types de commande suivants :
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Bouton
OKButton
CancelButton
EditText
StaticText
PopupMenu
CheckBox
MultiListBox
GroupBox
RadioGroup
PenPickerm
BrushPicker
FontPicker
SymbolPicker
ListBox
Pour plus de détails, reportez-vous aux différentes informations sur ces types de commande (par exemple,
pour des détails sur les commandes CheckBox, reportez-vous à la section Clause Control CheckBox
; pour des détails sur les commandes Picker, consultez la section Clause Control
PenPicker/BrushPicker/SymbolPicker/FontPicker ; etc.).
Chaque control_clause peut indiquer l'un des types de commande suivants :
•
•
•
•
•
•
•
•
•
Button / OKButton / CancelButton
CheckBox
GroupBox
RadioGroup
EditText
StaticText
PenPicker / BrushPicker / SymbolPicker / FontPicker
ListBox / MultiListBox
PopupMenu
Description
L'instruction Dialog crée une boîte de dialogue, l'affiche à l'écran et permet à l'utilisateur d'interagir avec
elle. La boîte de dialogue est modale, c'est-à-dire que l'utilisateur doit la fermer (par ex. : en cliquant sur
OK ou Annuler) avant d'exécuter une autre tâche dans MapInfo Professional. Pour une présentation
des boîtes de dialogue, reportez-vous au Guide de l'utilisateur MapBasic.
Tout ce qui apparaît sur une boîte de dialogue s'appelle une commande. Chaque boîte de dialogue doit
contenir au moins une commande (par ex. : une commande OKButton). Vous trouverez les explications
correspondantes aux différentes clauses de commande dans des entrées distinctes (par exemple, pour
une explication des commandes CheckBox, reportez-vous à la section Clause Control CheckBox). En
règle générale, chaque boîte de dialogue doit contenir une commande OKButton et/ou une commande
CancelButton, afin que l'utilisateur puisse fermer la boîte de dialogue.
280
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
L'instruction Dialog vous permet de créer une boîte de dialogue personnalisée. Si vous souhaitez afficher
une boîte de dialogue standard (par ex. : une boîte de dialogue Fichier > Ouvrir), utilisez l'une des
instructions ou fonctions suivantes : Fonction Ask( ), Instruction Note, Instruction ProgressBar,
Fonction FileOpenDlg( ), Fonction FileSaveAsDlg( ) ou Fonction GetSeamlessSheet( )).
Pour une présentation des concepts contenus dans les boîtes de dialogue MapBasic, reportez-vous au
Guide de l'utilisateur MapBasic.
Dimensions et positions des boîtes de dialogue et de leurs commandes
Dans l'instruction Dialog, les dimensions et positions sont indiquées en termes d'unités de boîte de
dialogue. Une largeur de quatre unités de boîte de dialogue équivaut à la largeur d'un caractère, et une
hauteur de huit unités de boîte de dialogue est égale à la hauteur d'un caractère. Ainsi, si une commande
de boîte de dialogue possède une hauteur de 40 et une largeur de 40, celle-ci peut contenir environ dix
caractères en largeur et 5 en hauteur. Les positions des commandes sont définies par rapport au coin
supérieur gauche de la boîte de dialogue. Pour placer une commande dans le coin supérieur gauche
d'une boîte de dialogue, définissez les coordonnées x et y sur zéro et zéro.
Les clauses Position, Height et Width sont toutes facultatives. Si vous omettez ces clauses, MapBasic
place les commandes à des positions par défaut dans la boîte de dialogue, les clauses de commande
suivantes apparaissant plus bas dans celle-ci.
Fermeture d'une boîte de dialogue
Après exécution de l'instruction Dialog par le programme MapBasic, l'utilisateur continue d'interagir
avec la boîte de dialogue jusqu'à ce que l'une des quatre propositions suivantes se produise :
• L'utilisateur clique sur la commande OKButton (si la boîte de dialogue en possède une) ;
• L'utilisateur clique sur la commande CancelButton (si la boîte de dialogue en possède une) ;
• L'utilisateur clique sur une commande avec un gestionnaire exécutant une instruction Dialog Remove
; ou
• L'utilisateur ferme la boîte de dialogue (par ex. : en appuyant sur la touche Echap pour une boîte de
dialogue contenant une commande CancelButton).
Pour que la boîte de dialogue reste à l'écran après que l'utilisateur ait cliqué sur OK ou Annuler, affectez
une procédure de gestionnaire à la commande OKButton ou CancelButton et faites exécuter à ce
gestionnaire une instruction Dialog Preserve.
Lecture de l'entrée de l'utilisateur
Après une instruction Dialog, appelez la fonction CommandInfo( ) pour savoir si l'utilisateur a cliqué
sur OK ou Annuler pour fermer la boîte de dialogue. Si l'utilisateur a cliqué sur OK, l'appel de fonction
suivant renvoie la valeur TRUE :
CommandInfo(CMD_INFO_DLG_OK)
Il existe deux façons de lire les valeurs saisies par l'utilisateur : intégrer les clauses Into dans l'instruction
Dialog ou appeler la fonction ReadControlValue( ) à partir d'une procédure de gestionnaire.
Si une commande détermine la clause Intoet que l'utilisateur clique sur la commande OKButton, MapInfo
Professional stocke la valeur finale de la commande dans une variable de programme.
Référence
281
Instruction Dialog
Remarque: MapInfo Professional ne met à jour la variable que si l'utilisateur clique sur OK. De même,
MapInfo Professional ne met à jour la variable qu'après fermeture de la boîte de dialogue.
Pour lire une valeur de commande depuis une procédure de gestionnaire, appelez la fonction
ReadControlValue( ).
Définition de raccourcis-clavier pour les commandes
Lorsqu'une application MapBasic s'exécute sur MapInfo, les boîtes de dialogue peuvent affecter des
raccourcis-clavier aux différentes commandes. Les raccourcis-clavier sont pratiques et permettent à
l'utilisateur de choisir une commande de boîte de dialogue en appuyant sur des séquences de touches
plutôt que de cliquer avec la souris.
Pour définir le raccourci-clavier d'une commande, insérez une esperluette (&) dans le titre de cette
commande. Dans la clause Title, l'esperluette doit précéder directement le caractère à utiliser pour le
raccourci-clavier. Ainsi, la clause Button suivante définit un bouton que l'utilisateur peut sélectionner en
appuyant sur Alt+R :
Control Button
Title "&Reset"
Bien qu'une esperluette apparaisse dans la clause Title, la boîte de dialogue finale ne l'affiche pas. Si
vous devez afficher une esperluette dans une commande (par exemple, si vous souhaitez appeler un
bouton Rechercher & remplacer), insérez deux esperluettes successives dans la clause Title :
Title "Find && Replace"
Si vous placez une commande StaticText juste devant ou au-dessus d'une commande EditText et que
vous définissez un raccourci-clavier pour la commande StaticText, l'utilisateur peut passer à la commande
EditText en se servant du raccourci-clavier.
Définition de l'ordre de tabulation
L'utilisateur peut appuyer sur la touche de tabulation pour déplacer les éléments sélectionnés au clavier
à travers la boîte de dialogue. La sélection passe d'une commande à une autre en suivant l'ordre de
tabulation de la boîte de dialogue.
L'ordre de tabulation est défini par l'ordre des clauses Control dans l'instruction Dialog. Lorsque la
sélection porte sur la troisième commande, et que vous appuyez sur la touche de tabulation, la sélection
se déplace sur la quatrième commande, et ainsi de suite. Si vous souhaitez modifier l'ordre de tabulation,
changez l'ordre des clauses Control.
Exemples
L'exemple suivant présente la création d'une boîte de dialogue simple contenant une commande EditText.
Dans cet exemple, aucune des clauses Control n'utilise la clause facultative Position ; par conséquent,
MapBasic place chaque commande dans une position par défaut.
Dialog
Title "Search"
Control StaticText
Title "Enter string to find:"
Control EditText
Value gs_searchfor 'this is a Global String variable
Into gs_searchfor
282
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Control OKButton
Control CancelButton
If CommandInfo(CMD_INFO_DLG_OK) Then
' ...then the user clicked OK, and the variable
' gs_searchfor contains the text the user entered.
End If
Le programme suivant montre la syntaxe de tous les types de commande de MapBasic.
Include "mapbasic.def"
Declare Sub reset_sub `resets dialog to default settings
Declare Sub ok_sub ' notes values when user clicks OK.
Declare Sub Main
Sub Main
Dim s_title As String 'the title of the map
Dim l_showlegend As Logical 'TRUE means include legend
Dim i_details As SmallInt '1 = full details; 2 = partial
Dim i_quarter As SmallInt '1=1st qrtr, etc.
Dim i_scope As SmallInt '1=Town;2=County; etc.
Dim sym_variable As Symbol
Dialog
Title "Map Franchise Locations"
Control StaticText
Title "Enter Map Title:"
Position 5, 10
Control EditText
Value "New Franchises, FY 95"
Into s_title
ID 1
Position 65, 8 Width 90
Control GroupBox
Title "Level of Detail"
Position 5, 30 Width 70 Height 40
Control RadioGroup
Title "&Full Details;&Partial Details"
Value 2
Into i_details
ID 2
Position 12, 42 Width 60
Control StaticText
Title "Show Franchises As:" Position 95, 30
Control SymbolPicker
Position 95, 45
Into sym_variable
ID 3
Control StaticText
Title "Show Results For:"
Position 5, 80
Control ListBox
Title "First Qrtr;2nd Qrtr;3rd Qrtr;4th Qrtr"
Value 4
Into i_quarter
ID 4
Position 5, 90 Width 65 Height 35
Control StaticText
Référence
283
Instruction Dialog
Title "Include Map Layers:"
Position 95, 80
Control MultiListBox
Title "Streets;Highways;Towns;Counties;States"
Value 3
ID 5
Position 95, 90 Width 65 Height 35
Control StaticText
Title "Scope of Map:"
Position 5, 130
Control PopupMenu
Title "Town;County;Territory;Entire State"
Value 2
Into i_scope
ID 6
Position 5, 140
Control CheckBox
Title "Include &Legend"
Into l_showlegend
ID 7
Position 95, 140
Control Button
Title "&Reset"
Calling reset_sub
Position 10, 165
Control OKButton
Position 65, 165
Calling ok_sub
Control CancelButton
Position 120, 165
If CommandInfo(CMD_INFO_DLG_OK) Then
' ... then the user clicked OK.
Else
' ... then the user clicked Cancel.
End If
End Sub
Sub reset_sub
' here, you could use Alter Control statements
' to reset the controls to their original state.
End Sub
Sub ok_sub
' Here, place code to handle user clicking OK
End Sub
Le programme précédent crée la boîte de dialogue suivante.
284
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Instruction Alter Control, Fonction Ask( ), Instruction Dialog Preserve, Instruction Dialog Remove,
Fonction FileOpenDlg( ), Fonction FileSaveAsDlg( ), Instruction Note, Fonction ReadControlValue(
)
Instruction Dialog Preserve
Objectif
Réactive une boîte de dialogue après que l'utilisateur ait cliqué sur OK ou sur Annuler.
Syntaxe
Dialog Preserve
Restrictions
Cette instruction ne peut être exécutée qu'au sein d'une sous-procédure qui agit en tant que gestionnaire
pour une commande de boîte de dialogue OKButton ou CancelButton. Vous ne pouvez pas exécuter
cette instruction à partir de la fenêtre MapBasic.
Référence
285
Instruction Dialog Remove
Description
L'instruction Dialog Preserve permet à l'utilisateur de reprendre l'utilisation d'une boîte de dialogue
personnalisée (créée via une instruction Dialog) même après avoir cliqué sur la commande OKButton
ou CancelButton.
L'instruction Dialog Preserve vous permet de « confirmer » l'action OK ou Annuler de l'utilisateur. Par
exemple, si l'utilisateur clique sur Annuler, vous pouvez afficher une boîte de dialogue posant une
question, telle que « Voulez-vous annuler les modifications ». Si l'utilisateur sélectionne « Non » dans
la boîte de dialogue de confirmation, l'application réactivera la boîte de dialogue d'origine. Vous pouvez
proposer cette fonctionnalité en exécutant une instruction Dialog Preserve depuis la procédure de
gestionnaire de la commande CancelButton.
Exemple
La procédure suivante pourrait être utilisée comme gestionnaire pour une commande CancelButton.
Sub confirm_cancel
If Ask("Do you really want to lose your changes?",
"Yes", "No") = FALSE Then
Dialog Preserve
End If
End Sub
Voir également
Instruction Alter Control, Instruction Dialog, Instruction Dialog Remove, Fonction
ReadControlValue( )
Instruction Dialog Remove
Objectif
Supprime une boîte de dialogue personnalisée de l'écran.
Syntaxe
Dialog Remove
Restrictions
Cette instruction ne peut être exécutée qu'au sein d'une sous-procédure qui agit en tant que gestionnaire
pour une commande de boîte de dialogue. Vous ne pouvez pas exécuter cette instruction à partir de la
fenêtre MapBasic.
Description
L'instruction Dialog Remove supprime la boîte de dialogue créée par la dernière instruction Dialog.
Une boîte de dialogue disparaît automatiquement après que l'utilisateur ait cliqué sur une commande
OKButton ou CancelButton. Utilisez l'instruction Dialog Remove (contenue dans la routine de gestionnaire
d'une commande de boîte de dialogue) pour supprimer la boîte de dialogue avant que l'utilisateur ne
clique sur OK ou Annuler. Cela est utile, par exemple, si une boîte de dialogue contient une commande
ListBox, et que vous souhaitez qu'elle soit réduite lorsque l'utilisateur double-clique sur un élément de
la liste.
286
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Remarque: L'instruction Dialog Remove indique de supprimer la boîte de dialogue après le retour de
la sous-procédure de gestionnaire. Elle ne supprime pas la boîte de dialogue
instantanément.
Exemple
La procédure suivante fait partie de l'exemple de programme NVIEWS.MB. Elle gère la commande
ListBox dans la boîte de dialogue Vues nommées. Lorsque l'utilisateur clique une fois sur un élément
de la liste, cette procédure de gestionnaire active différents boutons de la boîte de dialogue. Lorsque
l'utilisateur double-clique sur un élément de la liste, ce gestionnaire utilise une instruction Dialog Remove
pour fermer la boîte de dialogue.
Remarque: MapInfo Professional appelle cette procédure de gestionnaire pour les clics et doubles-clics.
Sub listbox_handler
Dim i As SmallInt
Alter Control 2 Enable
Alter Control 3 Enable
If CommandInfo(CMD_INFO_DLG_DBL) = TRUE Then
'
' ... then the user double-clicked.
'
i = ReadControlValue(1)
Dialog Remove
Call go_to_view(i)
End If
End Sub
Voir également
Instruction Alter Control, Instruction Dialog , Instruction Dialog Preserve, Fonction
ReadControlValue( )
Instruction Dim
Objectif
Définit une ou plusieurs variables. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Restrictions
Lorsque vous exécutez des instructions Dim via la fenêtre MapBasic vous ne pouvez définir qu'une
variable par instruction Dim, bien que celle-ci puisse définir plusieurs variables dans un programme
compilé. Vous ne pouvez pas définir des variables de tableau à l'aide de la fenêtre MapBasic.
Syntaxe
Dim var_name [ , var_name ... ] As var_type
[ , var_name [ , var_name ... ] As var_type ... ]
var_name est le nom d'une variable à définir.
var_type est une variable Type standard ou personnalisée.
Référence
287
Instruction Dim
Description
Une instruction Dim déclare une ou plusieurs variables. La table ci-dessous récapitule les types de
variable que vous pouvez déclarer par le biais d'une instruction Dim.
Table 4: Emplacement des instructions Dim et portée des variables
288
Variable Type
Description
SmallInt
Nombres entiers compris entre - 32 768 et 32 767
(inclus), stockés sur 2 octets.
Entier
>Nombres entiers compris entre -2 147 483 648 et
+2 147 483 647 (inclus), stockés sur 4 octets.
Nombre à virgule flottante
Valeur à virgule flottante, stockée au format IEEE
sur 8 octets.
Chaîne
Chaîne de caractères à longueur variable, pouvant
comporter jusqu'à 32 768 octets.
Chaîne * longueur
Chaîne de caractères à longueur fixe (longueur
détermine la longueur de la chaîne en octets, et
comporte jusqu'à 32 768 octets). Les chaînes de
longueur fixe sont complétées par des espaces à
droite.
Logique
TRUE ou FALSE, stocké sur 1 octet : zéro =
FALSE, autre = TRUE.
Date
Date stockée sur quatre octets : deux octets pour
l'année, un octet pour le mois et un autre pour le
jour.
DateTime
Date et heure stockées sur neuf octets : 4 octets
pour la date et 5 octets pour l'heure. Les 5 octets
pour l'heure comprennent 2 octets pour les
millisecondes, 1 octet pour les secondes, 1 octet
pour les minutes et 1 octet pour les heures.
Time
L'heure est stockée sur 5 octets : 2 octets pour les
millisecondes, 1 octet pour les secondes, 1 octet
pour les minutes et 1 octet pour les heures.
Objet
Objet graphique (point, région, ligne, polyligne, arc,
rectangle, rectangle aux coins arrondis, ellipse,
texte ou cadre).
Alias
Nom de colonne
Pen
Paramètre de style Pen (ligne)
Brush
Paramètre de style Brush (remplissage)
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Variable Type
Description
polices
Paramètre de style Font (texte)
Symbol
Paramètre de style Symbol (point)
L'instruction Dim, qui définit une variable, doit précéder les autres instructions qui utilisent cette
variable.Les instructions Dim apparaissent généralement en haut d'une procédure ou d'une fonction.
Si une instruction Dim apparaît dans une Instruction Sub...End Sub ou une Instruction Function...End
Function, l'instruction définit les variables à portée locale. Les variables locales ne sont accessibles
que depuis la procédure ou fonction qui contenait l'instruction Dim.
Si une instruction Dim apparaît en dehors de toute définition de procédure ou de fonction, l'instruction
définit les variables dont la portée se trouve au niveau du module. Les variables de niveau de module
sont accessibles par une procédure ou une fonction dans un module de programme (par exemple, dans
le fichier de programme .MB).
Pour déclarer des variables globales (variables accessibles par toute procédure ou fonction dans l'un
des modules constituant un projet), utilisez l'Instruction Global.
Déclaration de plusieurs variables et types de variable
Une instruction Dim unique peut déclarer deux ou plusieurs variables, séparées par des virgules. Vous
pouvez également définir des variables de différents types dans une instruction Dim en regroupant des
variables semblables ensemble et en séparant les différents groupes par une virgule après le type de
variable :
Dim jointer, i_min, i_max As Integer, s_name As String
Variables de tableau
MapBasic prend en charge des variables de tableau à une dimension. Pour définir une variable de
tableau, ajoutez une paire de parenthèses immédiatement après le nom de variable. Pour spécifier une
taille de tableau initiale, incluez une expression d'entier constante entre les parenthèses.
L'exemple ci-dessous déclare un tableau de dix variables à virgule flottante, puis affecte une valeur au
premier élément dans le tableau :
Dim f_stats(10) As Float
f_stats(1) = 17.23
Le nombre qui apparaît entre parenthèses est appelé indice. Le premier élément du tableau est l'élément
avec l'indice 1 (indiqué dans l'exemple ci-dessous).
Pour redimensionner un tableau, utilisez l'instruction ReDim. Pour déterminer la taille actuelle d'un
tableau, utilisez la fonction UBound( ). Si l'instruction Dim n'indique aucune taille de tableau initiale,
le tableau ne contiendra au début aucun membre. Dans ce cas, vous ne pourrez stocker aucune donnée
dans le tableau avant de le redimensionner avec une instruction ReDim. Un tableau MapBasic peut
comporter jusqu'à 32 767 éléments.
Variables de chaîne
Une variable de chaîne peut contenir une chaîne de texte d'une longueur maximale de 32 Ko. Cependant,
il existe une limite quant à la longueur d'une constante de chaîne que vous pouvez spécifier dans une
Référence
289
Instruction Dim
instruction d'affectation simple. L'exemple ci-dessous effectue une affectation de variable de chaîne
simple, dans laquelle une expression de chaîne de constante est affectée à une variable de chaîne
Dim status As String
status = "This is a string constant ... "
Dans ce type d'affectation, l'expression de chaîne de constante à droite du signe égal comporte une
longueur maximale de 256 caractères.
MapBasic, comme les autres langages BASIC, remplace les variables de chaîne de longueur fixe par
des espaces. En d'autres termes, si vous définissez une variable de chaîne de 10 octets, puis que vous
affectez une chaîne de 5 caractères à cette variable, la variable est de fait complétée par 5 espaces afin
de remplir l'espace alloué. (Cette fonction facilite le formatage de la sortie de texte, de sorte que les
colonnes soient alignées).
Les variables de chaîne de longueur fixe, en revanche, ne sont pas complétées de cette manière. Cette
différence peut affecter les comparaisons de chaîne. Vous devez faire preuve d'attention lorsque vous
comparez des variables de chaîne de longueur fixe et de longueur variable. Dans le programme suivant,
l'instruction If...Then indiquerait que les deux chaînes ne sont pas égales :
Dim s_var_len As String
Dim s_fixed_len As String * 10
s_var_len = "testing"
s_fixed_len = "testing"
If s_var_len = s_fixed_len Then
Note "strings are equal" ' this won't happen
Else
Note "strings are NOT equal" ' this WILL happen
End If
Restrictions sur les noms de variable
Les noms de variable ne respectent pas la casse. Ainsi, si une instruction Dim définit une variable
appelée abc, le programme peut appeler cette variable abc, ABC ou Abc.
Les noms de variable peuvent comporter jusqu'à 31 caractères et contenir des lettres, des nombres et
des traits de soulignement (_). Les noms de variable peuvent également inclure les signes de ponctuation
$, %, &, !, # et @ mais uniquement comme caractère de fin dans le nom. Un nom de variable ne peut
pas commencer par un nombre.
Beaucoup de mots-clés du langage MapBasic, tels que Open, Close, Set et Do, sont des mots réservés
qui ne peuvent pas être utilisés comme noms de variable. Si vous tentez de définir une variable appelée
Set, MapBasic génère une erreur lorsque vous compilez le programme. Le tableau ci-dessous récapitule
les mots-clés MapBasic qui ne peuvent pas être utilisés comme noms de variable.
Add
Alter
Fermer
290
Parcourir
Call
Créer
DDE
DDEExecute
DDEPoke
DDETerminate
DDETerminateAll
Declare
Delete
Dialog
Dim
Do
Drop
Else
ElseIf
End
Erreur
Event
Quitter
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exporter
Fetch
Rechercher
For
Function
Get
Global
Atteindre
Graphique
If
Importer
Insérer
Mise en Page
Map
Menu
Note
Objets
OnError
Ouvrir
Compactage
Imprimer
PrintWin
ProgressBar
Put
ReDim
Register
Recharger
Remove
Renommer
Resume
Rollback
Run
Sauver
Seek
Select
Set
Shade
Barre d'état
Annuler
Sub
Type
Mettre à Jour
While
Dans certains langages BASIC, vous pouvez déterminer le type d'une variable en terminant la variable
par l'un des signes de ponctuation mentionnés ci-dessus. Par exemple, certains langages BASIC
considèrent qu'une variable nommée avec un signe dollar (par exemple, LastName$) est une variable
de chaîne. Néanmoins, dans MapBasic vous devez déclarer chaque type de variable de manière explicite,
via l'instruction Dim.
Valeurs de variables initiales
MapBasic initialise les variables numériques sur la valeur 0 lorsqu'elles sont définies. Les variables de
chaîne de longueur variable sont initialisées sur une chaîne vide. Les variables de chaîne de longueur
fixe sont initialisées sur tous les espaces.
Les variables d'objet et de style ne sont pas initialisées automatiquement. Vous devez initialiser les
variables d'objet et de style avant d'effectuer des références à ces variables.
Exemple
' Below is a custom Type definition, which creates
' a new data type known as Person
Type Person
Name As String
Age As Integer
Phone As String
End Type
' The next Dim statement creates a Person variable
Dim customer As Person
' This Dim creates an array of Person variables:
Dim users(10) As Person
' this Dim statement defines an integer variable
' "counter", and an integer array "counters" :
Dim counter, counters(10) As Integer
Référence
291
Fonction Distance( )
' the next statement assigns the "Name" element
' of the first member of the "users" array
users(1).Name = "Chris"
Voir également
Instruction Global, Instruction ReDim, Instruction Type, Fonction UBound( )
Fonction Distance( )
Objectif
Renvoie la distance entre deux points. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
Distance ( x1, y1, x2, y2, unit_name )
x1 et x2 sont des coordonnées de l'axe des X (par exemple, la longitude).
y1 et y2 sont des coordonnées de l'axe des Y (par exemple, la latitude).
unit_name est une chaîne qui représente le nom d'une unité de distance (par exemple, « km »).
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Distance( ) calcule la distance entre deux emplacements.
La fonction renvoie la mesure de la distance dans les unités spécifiées par le paramètre unit_name. Par
exemple, pour obtenir une distance en miles, spécifiez "mi" comme paramètre unit_name. Pour obtenir
la liste des noms d'unités disponibles, reportez-vous à la section Instruction Set Distance Units .
Les paramètres des coordonnées x et y doivent utiliser le système de coordonnées actuel de MapBasic.
Par défaut, MapInfo Professional attend que les coordonnées utilisent un système de coordonnées
Longitude/Latitude. Vous pouvez réinitialiser le système de coordonnées MapBasic par le biais de
l'instruction Set CoordSys.
Si le système de coordonnées actuel est un système terrestre, la fonction Distance( ) renvoie une
distance de grand cercle entre les deux points. Une distance de grand cercle est la distance la plus
courte entre deux points d'une sphère. (Un grand cercle est un cercle qui fait le tour de la Terre, avec
le centre du cercle au centre de la terre ; une distance de grand cercle entre deux points est la distance
le long du grand cercle, qui connecte les deux points).
MapInfo Professional effectue, pour la plus grande partie, un calcul cartésien ou sphérique. Généralement,
un calcul sphérique est effectué sauf si les données proviennent d'un système de coordonnées non
terrestre, auquel cas un calcul cartésien a lieu.
Exemple
Dim dist, start_x, start_y, end_x, end_y As Float
Open Table "cities"
292
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fetch First From cities
start_x = CentroidX(cities.obj)
start_y = CentroidY(cities.obj)
Fetch Next From cities
end_x = CentroidX(cities.obj)
end_y = CentroidY(cities.obj)
dist = Distance(start_x,start_y,end_x,end_y,"mi")
Voir également
Fonction Area( ), Fonction ObjectLen( ), Instruction Set CoordSys, Instruction Set Distance Units
Instruction Do Case...End Case
Objectif
Décide du groupe d'instructions à exécuter, en fonction de la valeur actuelle d'une expression.
Restrictions
Vous ne pouvez pas exécuter d'instruction Do Case via la fenêtre MapBasic.
Syntaxe
Do Case do_expr
Case case_expr [ , case_expr ]
statement_list
[ Case ... ]
[ Case Else
statement_list ]
End Case
do_expr est une expression.
case_expr est une expression représentant une valeur possible pour do_expr.
statement_list est un groupe d'instructions à exécuter sous les bonnes conditions.
Description
L'instruction Do Caseest semblable à l'instruction If...Then, dans la mesure où Do Case recherche
l'existence de certaines conditions et détermine les instructions à exécuter (le cas échéant) en fonction
des résultats de la recherche. L'instruction Do Case de MapBasic est analogue à l'instruction Select
Case du langage BASIC. (Dans MapBasic, le nom de l'instruction a été modifié afin d'éviter tout conflit
avec l'instruction Select).
Lors de l'exécution d'une instruction Do Case, MapBasic examine la première clause Case case_expr.
Si l'une des expressions contenues dans la clause Case case_expr est égale à la valeur de l'expression
do_expr, elle est considérée comme une correspondance. Par conséquent, MapBasic exécute les
instructions du groupe statement_list de l'expression, puis passe directement à la première instruction
suivant l'instruction End Case.
Si aucune des expressions dans la première clause Case case_expr n'est égale à l'expression do_expr,
MapBasic tente de trouver une correspondance dans la clause Case case_expr suivante. MapBasic
testera chaque clause Case case_expr successivement, jusqu'à ce que l'une des expressions corresponde
ou qu'elles aient toutes été testées.
Référence
293
Instruction Do...Loop
MapBasic exécutera, au maximum, un groupe statement_list d'une instruction Do Case. Si une
correspondance est trouvée, MapBasic exécutera son groupe statement_list, puis passera directement
à la première instruction suivant l'instruction End Case.
Si aucune expression case_expr n'est égale à l'expression do_expr, aucune expression Case ne
correspondra et aucun groupe statement_list ne sera donc exécuté. Cependant, si une instruction Do
Case contient une clause Case Else clause, et qu'aucune clause Case case_expr ne correspond, alors
MapBasic exécutera la liste d'instructions à partir de la clause Case Else.
Notez qu'une instruction Do Case de cette forme :
Do Case expr1
Case expr2
statement_list1
Case expr3, expr4
statement_list2
Case Else
statement_list3
End Case
aura le même effet qu'une instruction If...Then de cette forme :
If expr1 = expr2 Then
statement_list1
ElseIf expr1 = expr3 Or expr1 = expr4 Then
statement_list2
Else
statement_list3
End If
Exemple
L'exemple suivant crée une chaîne de texte, telle que "First Quarter" (1er trimestre), "Second Quarter"
(2e trimestre), etc., en fonction de la date en cours.
Dim cur_month As Integer, msg As String
cur_month = Month( CurDate( ) )
Do Case cur_month
Case 1, 2, 3
msg = "First Quarter"
Case 4, 5, 6
msg = "Second Quarter"
Case 7, 8, 9
msg = "Third Quarter"
Case Else
msg = "Fourth Quarter"
End Case
Voir également
Instruction If...Then
Instruction Do...Loop
Objectif
Définit une boucle qui s'exécutera jusqu'à ce qu'une condition particulière devienne TRUE (ou FALSE).
294
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Restrictions
Vous ne pouvez pas exécuter d'instruction Do Loop via la fenêtre MapBasic.
Syntaxe 1
Do
statement_list
Loop [ { Until | While } condition ]
Syntaxe 2
Do [ { Until | While } condition ]
statement_list
Loop
statement_list est un groupe d'instructions à exécuter plusieurs fois (ou aucune).
condition est une expression conditionnelle qui contrôle le moment où la boucle s'arrête.
Description
L'instruction Do...Loop assure le contrôle de la boucle. En règle générale, l'instruction Do...Loop exécute
les instructions d'un groupe statement_list de façon répétitive tant que la valeur d'une condition While
reste TRUE (ou, à l'inverse, la boucle exécute le groupe statement_list de façon répétitive jusqu'à ce
que la valeur de la condition Until devienne TRUE).
Si l'instruction Do...Loop ne contient pas de clause Until / While facultative, la boucle répétera les
instructions indéfiniment. Dans ce cas, une instruction de contrôle du flux, telle que l'instruction Goto
ou l'instruction Exit Do, sera nécessaire pour interrompre ou quitter la boucle. L'instruction Exit Do
interrompt toute instruction Do...Loopimmédiatement (que la boucle possède ou non une clause Until
/ While), et reprend l'exécution du programme au niveau de la première instruction suivant la clause
Loop.
Comme indiqué ci-dessus, la clause facultative Until/While suit le mot-clé Do ou Loop. La position de
la clause Until/While détermine si MapBasic teste la condition avant ou après l'exécution du groupe
statement_list. Ceci est particulièrement important lors de la première itération de la boucle. Une boucle
utilisant la syntaxe suivante :
Do
statement_list
Loop While condition
exécutera le groupe statement_list, puis testera la condition. Si la condition est TRUE, MapBasic
continuera d'exécuter le groupe statement_list jusqu'à ce qu'elle devienne FALSE. Ainsi, une instruction
Do...Loop utilisant la syntaxe ci-dessus exécutera le groupe statement_list au moins une fois.
En revanche, une instruction Do...Loop de la forme suivante n'exécutera le groupe statement_list que
si la condition est TRUE.
Do While condition
statement_list
Loop
Référence
295
Instruction Drop Index
Exemple
L'exemple suivant utilise l'instruction Do...Loop pour lire les dix premiers enregistrements d'une table.
Dim sum As Float, counter As Integer
Open Table "world"
Fetch First From world
counter = 1
Do
sum = sum + world.population
Fetch Next From world
counter = counter + 1
Loop While counter <= 10
Voir également
Instruction Exit Do, Instruction For...Next
Instruction Drop Index
Objectif
Supprime un index d'une table. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Syntaxe
Drop Index table( column )
table est le nom d'une table ouverte.
column est le nom d'une colonne de cette table.
Description
L'instruction Drop Index supprime un index existant d'une table ouverte. La suppression d'un index
réduit l'espace disque occupé par une table. (Pour recréer cet index ultérieurement, exécutez une
instruction Create Index.)
Remarque: MapInfo Professional ne peut pas supprimer un index si la table inclut des modifications
non enregistrées. Utilisez l'instruction Commit Table pour enregistrer les modifications.
L'instruction Drop Index prend effet immédiatement. Il n'est pas nécessaire d'effectuer une opération
de sauvegarde. Vous ne pouvez pas annuler les effets d'une instruction Drop Index en sélectionnant
Fichier > Annuler changement ou Édition > Annuler. De même, l'instruction Rollback MapBasic
n'annulera pas les effets de l'instruction Drop Index.
Exemple
L'exemple ci-dessous supprime l'index du champ Name de la table World.
Open Table "world"
Drop Index world(name)
Voir également
Instruction Create Index
296
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Instruction Drop Map
Objectif
Supprime tous les objets graphiques d'une table. Ne peut pas être utilisée sur des tables liées. Vous
pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Drop Map table
table est le nom d'une table ouverte.
Description
Une instruction Drop Map supprime tous les objets graphiques (points, lignes, régions, cercles, etc.)
d'une table ouverte et modifie la structure de la table de sorte que les objets graphiques ne puissent pas
être associés à la table.
Remarque: L'instruction Drop Map prend effet immédiatement. Il n'est pas nécessaire d'effectuer une
opération de sauvegarde. Vous ne pouvez pas annuler les effets d'une instruction Drop
Map en sélectionnant Fichier > Annuler changements ou Édition > Annuler. De même,
l'instruction Rollback MapBasic n'annulera pas les effets de l'instruction Drop Map. Par
conséquent, soyez prudent lorsque vous utilisez l'instruction Drop Map.
Après avoir effectué une opération Drop Map, vous ne pouvez plus afficher la table correspondante
dans une fenêtre Carte. L'instruction Drop Map modifie la structure de la table afin que les objets ne
puissent plus être associés à la table. (Une instruction Create Map suivante restaurera la capacité de
la table à contenir des objets graphiques. Néanmoins, une instruction Create Map ne restaurera pas les
objets graphiques supprimés lors de l'opération Drop Map.) L'instruction Drop Map n'affecte pas le
nombre d'enregistrements contenus dans une table. Vous pouvez toujours parcourir une table après
l'exécution de l'instruction Drop Map.
Si vous souhaitez supprimer tous les objets graphiques d'une table, mais avez l'intention d'en joindre
de nouveaux à la même table, utilisez l'instruction Delete Object plutôt que Drop Map.
L'instruction Drop Map ne fonctionne pas sur les tables liées.
Exemple
Open Table "clients"
Drop Map clients
Voir également
Instruction Create Map, Instruction Create Table, Instruction Delete
Référence
297
Instruction Drop Table
Instruction Drop Table
Objectif
Supprime une table dans son intégralité. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Drop Table table
table est le nom d'une table ouverte.
Description
L'instruction Drop Table efface intégralement la table indiquée du lecteur de l'ordinateur. La table doit
déjà être ouverte.
Si une table est basée sur une base de données ou une feuille de calcul préexistante, l'instruction Drop
Table supprime le fichier initial ainsi que les fichiers de composant qui constituent une table. En d'autres
termes, une opération Drop Table peut revenir à supprimer un fichier utilisé en dehors de MapInfo
Professional.
L'instruction Drop Table prend effet immédiatement. Il n'est pas nécessaire d'effectuer une opération
de sauvegarde. Vous ne pouvez pas annuler les effets d'une instruction Drop Table en sélectionnant
Fichier > Annuler changements ou Édition > Annuler. De même, l'instruction Rollback MapBasic
n'annulera pas les effets de l'instruction Drop Table. Par conséquent, soyez prudent lorsque vous utilisez
l'instruction Drop Table.
Remarque: De nombreuses opérations MapInfo (par exemple, Select) stockent les résultats dans des
tables temporaires (par exemple, Query1). Les tables temporaires sont supprimées
automatiquement lorsque vous quittez MapInfo Professional. Vous n'avez pas besoin
d'utiliser l'instruction Drop Table pour supprimer des tables temporaires.
L'instruction Drop Table ne permet pas de supprimer une table utilisée comme « vue ». Par exemple,
une table StreetInfo (comme SF_STRTS) est une vue qui associe deux autres tables (SF_STRT1 et
SF_STRT2). Vous ne pouvez donc pas supprimer la table SF_STRTS à l'aide de l'instruction Drop
Table.
Exemple
Open Table "clients"
Drop Table clients
Voir également
Instruction Create Table, Instruction Delete, Instruction Kill
298
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Instruction End MapInfo
Objectif
Cette instruction interrompt MapInfo Professional.
Syntaxe
End MapInfo [ Interactive ]
Description
L'instruction End MapInfo interrompt MapInfo Professional.
Une application peut définir une procédure spéciale appelée EndHandler, qui est exécutée
automatiquement lorsque MapInfo Professional s'arrête. Ainsi, lorsqu'une application émet une instruction
End MapInfo, MapInfo Professional exécute automatiquement toute procédure EndHandler en veille
avant de fermer. Reportez-vous à la section Procédure EndHandler pour plus d'informations.
Si une application émet une instruction End MapInfo, et que des tables contiennent des modifications
non enregistrées, MapInfo Professional invite l'utilisateur à enregistrer ou à annuler ces modifications.
Si vous intégrez le mot-clé Interactive et que des thèmes ou étiquettes ne sont pas enregistrés, MapInfo
Professional invite l'utilisateur à enregistrer ou à annuler le travail non sauvegardé. Néanmoins, si le
système de l'utilisateur est configuré de façon à enregistrer MAPINFOW.WOR automatiquement lors de
sa fermeture, cette invite n'apparaît pas. Si vous omettez le mot-clé Interactive, cette invite n'apparaît
pas.
Pour interrompre une application MapBasic sans quitter MapInfo Professional, utilisez l'instruction End
Program.
Voir également
Instruction End Program, Procédure EndHandler
Instruction End Program
Objectif
Interrompt une application MapBasic.
Restrictions
L'instruction End Program ne peut pas être émise depuis la fenêtre MapBasic.
Syntaxe
End Program
Référence
299
Procédure EndHandler
Description
L'instruction End Program interrompt l'exécution d'un programme MapBasic. Une application MapBasic
peut ajouter des options aux menus MapInfo Professional, et même des nouveaux menus à la barre de
menus. Habituellement, une option de menu ajoutée de cette façon appelle une sous-procédure à partir
d'un programme MapBasic. Une fois qu'une application MapBasic a connecté une procédure au menu
de cette façon, l'application est dite « en veille ».
Si l'une des procédures d'une application MapBasic émet une instruction End Program, toute l'application
est interrompue, même si des procédures « en veille » ont été jointes aux options de menu personnalisées.
Lorsqu'une application s'interrompt, MapInfo Professional supprime automatiquement toutes les options
de menu créées par cette application.
Si une application définit une procédure appelée EndHandler, MapBasic appelle automatiquement cette
procédure lorsque l'application s'interrompt, quel que soit le motif de l'interruption.
Voir également
Instruction End MapInfo, Procédure EndHandler
Procédure EndHandler
Objectif
Nom de procédure réservé, appelé automatiquement lors de l'arrêt d'une application.
Syntaxe
Declare Sub EndHandler
Sub EndHandler
statement_list
End Sub
statement_list est une liste d'instructions à exécuter lors de l'arrêt d'une application.
Description
EndHandler est un nom de procédure MapBasic ayant un objectif spécifique.
Si l'utilisateur exécute une application contenant une procédure nommée EndHandler, celle-ci est
appelée automatiquement lors de l'arrêt de l'application. Cela se produit si l'utilisateur a quitté MapInfo
Professional ou si une autre procédure dans l'application a exécuté une instruction End Program.
Remarque: Plusieurs applications MapBasic peuvent être « en veille » simultanément. Lorsque MapInfo
Professional s'arrête, MapBasic appelle automatiquement toutes les procédures
EndHandler en veille, l'une après l'autre.
Voir également
Procédure RemoteMsgHandler, Procédure SelChangedHandler, Procédure ToolHandler, Procédure
WinChangedHandler, Procédure WinClosedHandler
300
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction EOF( )
Objectif
Renvoie TRUE si MapBasic a essayé de lire au-delà de la fin d'un fichier, renvoie FALSE dans le cas
contraire.
Syntaxe
EOF( filenum )
filenum est le numéro d'un fichier ouvert via l'instruction Open File.
Valeur renvoyée
Logique
Description
La fonction EOF( ) renvoie une valeur logique indiquant l'existence d'une condition End-Of-File pour le
fichier indiqué. Le paramètre filenum entier représente le numéro d'un fichier ouvert.
Si une instruction Get tente de lire au-delà de la fin du fichier indiqué, la fonction EOF( ) renvoie une
valeur TRUE, sinon EOF( ) renvoie une valeur FALSE.
La fonction EOF( ) fonctionne avec les fichiers ouverts. Lorsque vous souhaitez vérifier la position actuelle
d'une table ouverte, utilisez la fonction EOT( ).
Pour voir un exemple d'appel de la fonction EOF( ), consultez l'exemple de programme NVIEWS.MB
(Vues nommées).
Conditions d'erreur
L'erreur ERR_FILEMGR_NOTOPEN (366) est générée si le fichier spécifié n'est pas ouvert.
Voir également
Fonction EOT( ), Instruction Open File
Fonction EOT( )
Objectif
Renvoie TRUE si MapBasic a atteint la fin de la table spécifiée, FALSE dans les autres cas. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
EOT( table )
table est le nom d'une table ouverte.
Référence
301
Fonction EPSGToCoordSysString$( )
Valeur renvoyée
Logique
Description
La fonction EOT( ) renvoie TRUE ou FALSE pour indiquer si MapInfo Professional a essayé de lire après
la fin de la table spécifiée. Le paramètre de table représente le nom d'une table ouverte.
Conditions d'erreur
L'erreur ERR_TABLE_NOT_FOUND (405) est générée si la table spécifiée n'est pas disponible.
Exemple
L'exemple ci-dessous utilise le résultat logique de la fonction EOT( ) pour déterminer le moment auquel
mettre fin à une boucle. La boucle extrait de manière répétée l'enregistrement suivant dans une table,
jusqu'à ce que le point auquel la fonction EOT( ) indique que le programme a atteint la fin de la table.
Dim f_total As Float
Open Table "customer"
Fetch First From customer
Do While Not EOT(customer)
f_total = f_total + customer.order
Fetch Next From customer
Loop
Voir également
Fonction EOF( ), Instruction Fetch, Instruction Open File, Instruction Open Table
Fonction EPSGToCoordSysString$( )
Objectif
Convertit une chaîne qui contient un système de référence spatial en CoordSys clause qui peut être
utilisée avec une fonction ou une instruction MapBasic. Vous pouvez appeler cette fonction à partir de
la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
EPSGToCoordSysString$( srs_string )
srs_string est une chaîne qui décrit un système de référence spatial pour tout système de coordonnées
pris en charge. Les chaînes SRS sont également appelées chaînes EPSG (European Petroleum Survey
Group) (par exemple, epsg:2600). Pour obtenir une liste complète des codes EPSG utilisés avec MapInfo
Professional, reportez-vous au fichier MAPINFOW.PRJ de votre installation MapInfo Professional. Les
codes EPSG sont identifiés par un « \p » suivi d'un nombre.
Description
La fonction EPSGToCoordSysString$( ) est utilisée pour convertir une chaîne SRS en clause CoordSys,
qui peut être utilisée dans une fonction ou une instruction MapBasic qui utilise une clause CoordSys
comme entrée.
302
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
L'exemple ci-dessous définit le système de coordonnées d'une carte dans une projection terrestre 1,
104.
run command("Set Map " +
EPSGToCoordSysString$("EPSG:4326"))
Voir également
Clause CoordSys
Fonction Erase( )
Objectif
Renvoie un objet créé en effaçant une partie d'un autre objet. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Erase( source_object, eraser_object )
source_object est un objet, dont une partie doit être effacée. Ce ne peut pas être un objet point ou texte.
eraser_object est un objet fermé, représentant la zone qui sera effacée.
Valeur renvoyée
Renvoie un objet représentant ce qu'il reste de source_object après effacement de eraser_object.
Description
La fonction Erase( ) efface une partie d'un objet et renvoie une expression qui représente ce qui reste
de l'objet.
Le paramètre source_object peut être un objet linéaire (ligne, polyligne, arc) ou un objet fermé (région,
rectangle, rectangle aux coins arrondis, ellipse), mais pas un objet point ou texte. L'objet eraser_object
doit être fermé. L'objet renvoyé conserve les styles de couleur et de trame de source_object.
Exemple
' In this example, o1 and o2 are Object variables
' that already contain Object expressions.
If o1 Intersects o2 Then
If o1 Entirely Within o2 Then
Note "Cannot Erase; nothing would remain."
Else
o3 = Erase( o1, o2 )
End If
Else
Note "Cannot Erase; objects do not intersect."
End If
Voir également
Instruction Objects Erase, Instruction Objects Intersect
Référence
303
Fonction Err( )
Fonction Err( )
Objectif
Renvoie un code numérique, qui représente l'erreur actuelle. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Err( )
Valeur renvoyée
Entier
Description
La fonction Err( ) renvoie le code numérique indiquant la dernière erreur survenue.
Par défaut, un programme MapBasic qui génère une erreur affiche un message d'erreur, puis s'interrompt.
Cependant, en émettant une instruction OnError,un programme peut configurer une routine gérant
les erreurs afin de répondre aux conditions d'erreur. Une fois qu'une routine de gestion des erreurs a
été indiquée, MapBasic passe immédiatement à cette routine en cas d'erreur. La routine de gestion des
erreurs peut ensuite appeler la fonction Err( ) pour déterminer quelle erreur est survenue.
La fonction Err( ) ne peut renvoyer que des codes d'erreur lorsqu'elle est utilisée dans le gestionnaire
d'erreurs. Une fois que le programme exécute une instruction Resume pour revenir de la routine de
gestion des erreurs, la condition d'erreur est réinitialisée. Cela signifie que si vous appelez la fonction
Err( ) en dehors de la routine de gestion des erreurs, elle renvoie 0.
Certaines descriptions d'instruction et de fonction dans ce document contiennent une section Conditions
d'erreur (juste avant la section Exemple), qui répertorie les codes d'erreur liés à cette instruction ou
fonction. Cependant, les codes d'erreur ne sont pas tous identifiés dans la section Conditions d'erreur.
Certains codes d'erreur MapBasic ne sont générés que dans des circonstances spécifiques et précises.
Par exemple, l'erreur ERR_INVALID_CHANNEL (696) n'est générée que par des fonctions ou instructions
liées à DDE. Si une instruction peut générer ce type d'erreur inhabituel, les informations sur cette
instruction identifient l'erreur dans la section Conditions d'erreur.
En revanche, d'autres erreurs MapBasic sont des erreurs « génériques », qui peuvent être générées
dans différentes circonstances. Par exemple, beaucoup de fonctions, telles que la fonction Area( ) et
la fonction ObjectInfo( ), prennent une expression Object comme paramètre. Toute fonction de ce
genre génère l'erreur ERR_FCN_OBJ_FETCH_FAILED (650) si vous acceptez une expression au format
tablename.obj comme paramètre, lorsque la ligne sélectionnée de la table ne contient aucun objet
associé. En d'autres termes, une fonction qui utilise un paramètre Object peut générer l'erreur
ERR_FCN_OBJ_FETCH_FAILED (650). Dans la mesure où l'erreur ERR_FCN_OBJ_FETCH_FAILED
(650) peut se produire à différents emplacements, les fonctions n'identifient pas explicitement l'erreur.
De même, il existe deux erreurs mathématiques, ERR_FP_MATH_LIB_DOMAIN (911) et
ERR_FP_MATH_LIB_RANGE (912), qui peuvent se produire en raison d'un paramètre numérique non
valide. Ces erreurs peuvent être générées par des appels des fonctions suivantes : fonction Acos( ),
304
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
fonction Asin( ), fonction Atn( ), fonction Cos( ), fonction Exp( ), fonction Log( ), fonction Sin( ),
fonction Sqr( ) ou fonction Tan( ).
La liste complète des codes d'erreur MapBasic est incluse dans le fichier ERRORS.DOC.
Voir également
Instruction Error, Fonction Error$( ), Instruction OnError
Instruction Error
Objectif
Simule la survenue d'une condition d'erreur. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Error error_num
error_num est un numéro d'erreur sous forme d'entier.
Description
L'instruction Error simule l'occurrence d'une erreur.
Si une routine de gestion d'erreur est activée via une instruction OnError, l'erreur simulée entraînera
l'exécution, par MapBasic, de la routine de gestion des erreurs adaptée. Si aucune routine de gestion
des erreurs n'est activée, l'erreur simulée par l'instruction Error provoquera l'interruption de l'application
MapBasic après l'affichage d'un message d'erreur approprié.
Voir également
Fonction Err( ), Fonction Error$( ), Fonction OnError
Fonction Error$( )
Objectif
Renvoie un message qui décrit l'erreur actuelle. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Error$( )
Valeur renvoyée
Chaîne
Description
La fonction Error$( ) renvoie une chaîne de caractères qui décrit l'erreur d'exécution actuelle, si une
erreur s'est produite. Si aucune erreur ne s'est produite, la fonction Error$( ) renvoie une chaîne nulle.
Référence
305
Instruction Exit Do
La fonction Error$( ) ne devrait être appelée que depuis une routine de gestion des erreurs. Reportez-vous
à la section Fonction Err( ) pour plus d'informations.
Voir également
Fonction Err( ), Instruction Error, Instruction OnError
Instruction Exit Do
Objectif
Quitte une instruction Do...Loop prématurément.
Restrictions
Vous ne pouvez pas exécuter d'instruction Exit Do via la fenêtre MapBasic.
Syntaxe
Exit Do
Description
Une instruction Exit Do met fin à une instruction Do...Loop. S'il détecte une instruction Exit Do passera
à la première instruction suivant l'instruction Do...Loop. L'instruction Exit Do est valable uniquement
dans le cadre d'une instruction Do...Loop.
Les instructions Do...Loop peuvent être emboîtées : une instruction Do...Loop peut apparaître dans
le corps d'une autre instruction Do...Loop « externe ». Une instruction Exit Do n'interrompt que l'itération
de l'instruction Do...Loop. Ainsi, dans une organisation de ce genre :
Do While condition1
:
Do While condition2
:
If error_condition
Exit Do
End If
:
Loop
:
Loop
l'instruction Exit Do interrompra la boucle interne (Do While condition2) sans affecter obligatoirement
la boucle externe (Do While condition1).
Voir également
Instruction Do...Loop, Instruction Exit For, Instruction Exit Sub
Instruction Exit For
Objectif
Quitte une instruction For...Next prématurément.
306
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Restrictions
Vous ne pouvez pas exécuter d'instruction Exit For via la fenêtre MapBasic.
Syntaxe
Exit For
Description
Une instruction Exit For met fin à une instruction For...Next. S'il détecte une instruction Exit For,
MapBasic passera à la première instruction suivant l'instruction For...Next. L'instruction Exit For est
valable uniquement dans le cadre d'une instruction For...Next.
Les instructions For...Next peuvent être emboîtées : une instruction For...Next peut apparaître dans
le corps d'une autre instruction For...Next « externe ». Une instruction Exit For n'interrompt que
l'itération de l'instruction For...Next la plus proche. Ainsi, dans une organisation de ce genre :
For x = 1 to 5
:
For y = 2 to 10 step 2
:
If error_condition
Exit For
End If
:
Next
:
Next
l'instruction Exit For interrompra la boucle interne (For y = 2 to 10 step 2) sans affecter
obligatoirement la boucle externe (For x = 1 to 5).
Voir également
Instruction Exit Do, Instruction For...Next
Instruction Exit Function
Objectif
Quitte une Instruction Function...End Function.
Restrictions
Vous ne pouvez pas exécuter d'instruction Exit Function via la fenêtre MapBasic.
Syntaxe
Exit Function
Description
Une instruction Exit Function entraîne l'arrêt par MapBasic de la fonction en cours. C'est pourquoi une
instruction Exit Function ne peut être émise que depuis une Instruction Function...End Function.
Référence
307
Instruction Exit Sub
Les appels de fonction peuvent être emboîtés : une fonction peut appeler une autre fonction, qui, à son
tour, peut en appeler une autre. Une seule instruction Exit Function quitte uniquement la fonction en
cours.
Voir également
Instruction Function...End Function
Instruction Exit Sub
Objectif
Quitte une instruction Sub...End Sub.
Restrictions
Vous ne pouvez pas exécuter d'instruction Exit Sub via la fenêtre MapBasic.
Syntaxe
Exit Sub
Description
L'instruction Exit Sub entraîne la fermeture par MapBasic de la sous-procédure en cours. C'est pourquoi
une instruction Exit Sub ne peut être émise que depuis une sous-procédure.
Instruction Sub...End Sub peut être emboîtée : une sous-procédure peut appeler une autre
sous-procédure, qui, à son tour, peut en appeler une autre, etc. Une seule instruction Exit Sub quitte
uniquement la sous-procédure en cours.
Voir également
Instruction Call, Instruction Sub...End Sub
Fonction Exp( )
Objectif
Renvoie le nombre e élevé à un exposant spécifié. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Exp( num_expr )
num_expr représente une expression numérique.
Valeur renvoyée
Nombre à virgule flottante
308
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
La fonction Exp( ) élève la valeur mathématique e à la puissance représentée par num_expr. e possède
une valeur approximative de 2,7182818.
Remarque: MapBasic prend en charge l'élévation à la puissance générale par le biais de l'opérateur
caret (^).
Exemple
Dim e As Float
e = Exp(1)
' the local variable e now contains
' approximately 2.7182818
Voir également
Fonction Cos( ), Fonction Sin( ), Fonction Log( )
Instruction Export
Objectif
Exporte une table dans un autre format de fichier. Vous pouvez exécuter cette instruction à partir de la
fenêtre MapBasic de MapInfo Professional.
Syntaxe 1 (pour exporter des fichiers MIF/MID, DBF, ou des fichiers texte ASCII)
Export table
Into file_name
[ Type
{ "MIF" |
"DBF" [ Charset char_set ] |
"ASCII" [ Charset char_set ] [ Delimiter "d " ] [ Titles ] |
"CSV" [ Charset char_set ] [ Titles ] } ]
[ Overwrite ]
Syntaxe 2 (pour exporter des fichiers DXF)
Export table
Into file_name
[ Type "DXF" ]
[ Overwrite ]
[ Preserve
[ AttributeData ] [ Preserve ] [ MultiPolygonRgns [ As Blocks ] ] ]
[ { Binary | ASCII [ DecimalPlaces decimal_places ] } ]
[ Version { 12 | 13 } ]
[ Transform
( MI_x1, MI_y1 ) ( MI_x2, MI_y2 )
( DXF_x1, DXF_y1 ) ( DXF_x2, DXF_y2 ) ]
table est le nom d'une table ouverte. N'utilisez pas de guillemets autour de ce nom.
file_name est une chaîne qui spécifie le nom du fichier qui contient les données exportées. Si le nom
de fichier n'inclut pas de chemin, le fichier d'exportation est créé dans le répertoire de travail actuel.
Référence
309
Instruction Export
char_set est une chaîne identifiant un jeu de caractères, tel que « WindowsLatin1 ». Pour plus de détails,
reportez-vous à la section Clause CharSet.
d est un caractère utilisé comme délimiteur lors de l'exportation d'un fichier ASCII.
decimal_places est un entier court (compris entre 0 et 16, la valeur par défaut étant 6), qui contrôle le
nombre de décimales utilisées lors de l'exportation de nombres à virgule flottante au format ASCII.
MI_x1, MI_y1, etc. sont des nombres qui représentent des coordonnées délimitées dans la table MapInfo
Professional.
DXF_x1, DXF_y1, etc. sont des nombres qui représentent des coordonnées délimitées dans le fichier
DXF.
Description
L'instruction Export copie le contenu d'une table MapInfo dans un fichier distinct, à l'aide d'un format
de fichier qui peut être modifié ou importé par d'autres logiciels. Par exemple, vous pouvez exporter le
contenu d'une table dans un fichier DXF, puis utiliser un logiciel de CAO pour importer le fichier DXF.
L'instruction Export ne modifie pas la table d'origine.
Spécification du format de fichier
La clause facultative Type indique le format du fichier que vous souhaitez créer.
Clause Type
Format de fichier défini
Type MIF
Format MapInfo Interchange File. Pour plus
d'informations sur le format de fichier MIF,
reportez-vous à la documentation MapInfo
Professional.
Type DXF
Fichier DXF (format pris en charge par les logiciels
de CAO, tels qu'AutoCAD).
Type DBF
Format de fichier dBASE.
Remarque: Les objets carte ne sont pas exportés
lorsque vous spécifiez le format DBF.
Type ASCII
Format de fichier texte.
Remarque: Les objets carte ne sont pas exportés
lorsque vous spécifiez le format
ASCII.
Type CSV
Format de fichier texte délimité par des virgules.
Remarque: Les objets carte ne sont pas exportés
lorsque vous spécifiez le format CSV.
310
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Si vous omettez la clause Type, MapInfo Professional part du principe que l'extension du fichier
correspond au format de fichier souhaité. Par exemple, si vous spécifiez le nom de fichier PARCELS.DXF,
MapInfo Professional crée un fichier DXF.
Si vous incluez le mot-clé facultatif Overwrite, MapInfo Professional crée le fichier d'exportation, qu'un
fichier portant ce nom existe déjà ou non. Si vous omettez le mot-clé Overwrite et que le fichier existe
déjà, MapInfo Professional ne l'écrase pas.
Exportation de fichiers texte au format ASCII
Lorsque vous exportez une table dans un fichier texte au format ASCII ou CSV, le fichier texte contient
des délimiteurs. Un délimiteur est un caractère spécial qui sépare les champs dans chaque ligne de
données. Les fichiers texte CSV utilisent automatiquement une virgule (,) comme délimiteur. Aucun
autre délimiteur ne peut être spécifié pour l'exportation au format CSV.
Le délimiteur par défaut pour un fichier texte ASCII est le caractère de tabulation (Chr$(9)). Pour définir
un délimiteur différent, intégrez la clause facultative Delimiter. L'exemple ci-dessous utilise le caractère
deux points (:) comme délimiteur :
Export sites Into "sitedata.txt" Type "ASCII"
Delimiter ":" Titles
Lorsque vous exportez un fichier texte au format ASCII ou CSV, vous souhaitez peut-être inclure le
mot-clé facultatif Titles. Si vous incluez Titles, la première ligne du fichier texte contient le nom des
colonnes de la table. Si vous omettez Titles, le nom des colonnes n'est pas stocké dans le fichier texte
(cela peut poser un problème si vous avez l'intention de réimporter le fichier par la suite).
Exportation de fichiers DXF
Si vous exportez une table dans un fichier DXF, à l'aide de la syntaxe 2 présentée ci-dessus, l'instruction
Export peut inclure les clauses spécifiques à DFX :
Incluez la clause Preserve AttributeData si vous souhaitez exporter les données de table de la table
sous forme de données d'attribut dans le fichier DXF.
Incluez la clause Preserve MultiPolygonRgns As Blocks si vous souhaitez que MapInfo Professional
exporte chaque région multi-polygones sous forme d'entité de bloc DFX. Si vous omettez cette clause,
chaque polygone d'une région comportant plusieurs polygones est stocké séparément.
Insérez le mot-clé Binary pour exporter dans un fichier DXF binaire ou le mot-clé ASCII pour exporter
dans un fichier DXF texte au format ASCII. Si vous n'incluez pas l'un des mots-clés, MapInfo Professional
crée un fichier DXF au format ASCII. Les fichiers DXF binaires sont généralement plus petits et peuvent
être traités bien plus rapidement que les fichiers DXF au format ASCII. Lorsque vous exportez au format
ASCII, vous pouvez spécifier le nombre de décimales utilisées pour stocker des nombres à virgule
flottante (0 à 16 décimales, 6 étant la valeur par défaut).
La clause Version 12 ou Version 13 contrôle si MapInfo Professional crée un fichier DXF compatible
avec AutoCAD 12 ou 13. Si vous omettez la clause, MapInfo Professional crée un fichier DXF de version
12.
Transform indique une transformation de coordonnées. Dans la clause Transform, vous pouvez définir
les coordonnées délimitées x et y minimales et maximales de la table MapInfo, puis les coordonnées
minimales et maximales dont vous souhaitez disposer dans le fichier DXF.
Référence
311
Fonction ExtractNodes( )
Exemple
L'exemple ci-dessous utilise une table MapInfo existante (Facility) et exporte la table dans un fichier
DXF appelé FACIL.DXF.
Open Table "facility"
Export facility
Into "FACIL.DXF"
Type "DXF"
Overwrite
Preserve AttributeData
Preserve MultiPolygonRgns As Blocks
ASCII DecimalPlaces 3
Transform (0, 0) (1, 1) (0, 0) (1, 1)
Voir également
Instruction Import
Fonction ExtractNodes( )
Objectif
Renvoie une polyligne ou une région créée à partir d'un sous-ensemble de nœuds dans un objet existant.
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ExtractNodes( object, polygon_index, begin_node, end_node, b_region )
object est un objet polyligne ou région.
polygon_index est une valeur entière, 1 ou plus, pour les objets région. Cela indique le polygone (pour
les régions) ou la section (pour les polylignes) à interroger.
begin_node est un numéro de nœud sous forme d'entier court, égal à 1 ou plus. Il indique le début de
la plage de nœuds à renvoyer.
end_node est un numéro de nœud sous forme d'entier court, égal à 1 ou plus. Il indique la fin de la plage
de nœuds à renvoyer.
b_region est une valeur logique qui contrôle si c'est un objet région ou polyligne qui est renvoyé. Utilisez
TRUE pour un objet région ou FALSE pour un objet polyligne.
Valeur renvoyée
Renvoie un objet avec les nœuds spécifiés. MapBasic applique tous les styles (couleur, etc.) de l'objet
initial. Ensuite, si cela est nécessaire, MapBasic applique les styles de dessin actuels.
Description
Si la valeur begin_node est égale ou supérieure à la valeur end_node, les nœuds sont renvoyés dans
l'ordre suivant :
• begin_node au nœud suivant jusqu'au dernier nœud du polygone ;
• Premier nœud du polygone jusqu'à end_node.
312
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Si object est un objet région et si les valeurs begin_node et end_node sont toutes deux égales à 1,
MapBasic renvoie l'intégralité de l'ensemble de nœuds pour ce polygone. Cela permet de bénéficier
d'un mécanisme simple pour extraire un simple polygone d'une région comportant plusieurs polygones.
Pour connaître le nombre de polygones contenus dans une région, appelez la fonction ObjectInfo( ).
Conditions d'erreur
L'erreur ERR_FCN_ARG_RANGE (644) est générée si la valeur de b_region est FALSE et que la plage
de nœuds contient moins de deux nœuds, ou si la valeur de b_region est TRUE et que la plage de
nœuds contient moins de trois nœuds.
Voir également
Fonction ObjectNodeX( ), Fonction ObjectNodeY( )
Instruction Farthest
Objectif
Recherchez l'objet d'une table le plus éloigné d'un objet spécifique. L'objet résultant est un objet polyligne
à deux points, qui représente la distance la plus éloignée. Vous pouvez exécuter cette instruction à partir
de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Farthest [ N | All ]
From { Table fromtable | Variable fromvar }
To totable Into intotable
[ Type { Spherical | Cartesian } ]
[ Ignore [ Contains ] [ Min min_value ]
[ Max max_value ] Units unitname ]
[ Data clause ]
N est un paramètre facultatif représentant le nombre d'objets les plus éloignés (« farthest ») à trouver.
La valeur par défaut est de 1. Si vous utilisez All, un objet distance est alors créé pour chaque association.
fromtable est une table d'objets à partir de laquelle vous souhaitez rechercher les distances les plus
éloignées.
fromvar est une variable MapBasic qui représente un objet à partir duquel vous souhaitez rechercher
les distances les plus éloignées.
totable est une table d'objets vers laquelle vous souhaitez rechercher les distances les plus éloignées.
intotable est une table dans laquelle placer les résultats.
min_value est la distance minimale à inclure dans les résultats.
max_value est la distance maximale à inclure dans les résultats.
unitnameest une chaîne représentant le nom de l'unité de distance (« km », par exemple) utilisée pour
le paramètre min_value et/ou max_value.
Référence
313
Instruction Farthest
Description
L'instruction Farthest trouve tous les objets de la table fromtable les plus éloignés d'un objet particulier.
Tous les objets de la table fromtable sont pris en compte. Pour chaque objet de la table fromtable, l'objet
le plus éloigné de la table totable est localisé. Si le paramètre N est défini, les N objets de la table totable
les plus éloignés sont localisés. Un objet polyligne à deux points représentant les points les plus éloignés
entre l'objet fromtable et l'objet totable sélectionné est ajouté à la table intotable. Si l'option All est
spécifiée, un objet est placé dans la table totable. Il représente alors la distance entre l'objet fromtable
et chaque objet de la table totable.
Si la table totable inclut plusieurs objets situés à la même distance d'un objet de la table fromtable donné,
il est possible que seul l'un d'entre eux soit renvoyé. Si la requête porte sur plusieurs objets (c'est-à-dire
si N est supérieur à 1), les objets de même distance remplissent des emplacements successifs. S'il
existe un lien au niveau du second objet le plus éloigné et que trois objets sont demandés, l'un des
seconds objets les plus éloignés devient le troisième objet le plus éloigné.
Les objets des tables fromtable et totable peuvent être de n'importe quel type, sauf des objets texte. Par
exemple, si les deux tables contiennent des objets région, la distance minimale entre les objets région
est déterminée et l'objet polyligne à deux points créé représente les points de chaque objet utilisés pour
calculer la distance. Si les objets région se croisent, la distance minimale est zéro et la polyligne à deux
points renvoyée est dégénérée : les deux points sont identiques et représentent une intersection.
Les distances calculées ne prennent pas en compte les distances routières. Il s'agit uniquement de
distances à vol d'oiseau.
La clause Ignore peut être utilisée pour limiter les distances à rechercher et peut affecter le nombre
total d'objets totable détectés pour chaque objet fromtable. La distance Min peut permettre de supprimer
les distances nulles. Cette option peut être utile pour supprimer les comparaisons de points identiques
lors de l'utilisation de deux tables de points. Par exemple, si deux tables de points représentent des
villes et que nous souhaitons localiser les villes les plus proches, il est possible d'exclure les villes
identiques.
La distance Max peut être utilisée pour limiter les objets à prendre en compte dans la table totable. Cette
option est particulièrement utile lorsqu'elle est utilisée en association avec N ou All. Par exemple, nous
souhaitons rechercher les cinq aéroports les plus proches d'un ensemble de villes (où la table fromtable
représente l'ensemble de villes et la table totable un ensemble d'aéroports). Nous ne souhaitons
cependant pas prendre en compte les aéroports situés à plus de 160 km de distance. Il est possible que
moins de cinq aéroports soient renvoyés pour une ville donnée. Cette option peut également être utilisée
en association avec le paramètre All, permettant de trouver tous les aéroports situés à 160 km d'une
ville.
L'ajout d'un paramètre Max peut améliorer les performances d'une instruction Farthest, le nombre
d'objets totable recherchés étant limité de manière importante.
Les distances réelles sont supérieures à min_value et inférieures ou égales à max_value :
min_value < distance <= max_value
Cela peut permettre de renvoyer des plages ou des distances en plusieurs fois, à l'aide de l'instruction
Farthest. Par exemple, la première instance peut renvoyer tous les objets entre 0 et 160 km et la
deuxième tous les objets entre 160 et 320 km. Les résultats ne contiendront pas de doublons (c'est-à-dire
qu'une distance de 160 apparaît uniquement la première fois, jamais la deuxième).
314
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Type est la méthode utilisée pour calculer les distances entre les objets. Les paramètres possibles sont
Spherical et Cartesian. Le type de calcul des distances du système de coordonnées de la table intotable
doit être correct, autrement une erreur se produit. Si le système de coordonnées de la table intotable
est non terrestre et que la distance est calculée à l'aide de la méthode sphérique, une erreur se produit.
Si le système de coordonnées de la table intotable est Latitude/Longitude et que la distance est calculée
à l'aide de la méthode cartésienne, une erreur se produit.
La clause Ignore limite les distances renvoyées. Les distances identifiées étant inférieures ou égales à
min_value ou supérieures à max_value ne sont pas prises en compte. min_value et max_value sont
indiqués dans l'unité de distance définie par unitname. Si le paramètre unitname n'est pas une unité de
distance valide, une erreur se produit. Pour obtenir la liste des noms d'unités disponibles, reportez-vous
à la section Instruction Set Distance Units. La clause Ignore, dans son intégralité, est facultative, de
même que les sous-clauses Min et Max qu'elle contient.
Normalement, si un objet est inclus dans un autre, la distance entre les objets est nulle. Par exemple,
si fromtable correspond à la table WorldCaps et totable à la table World, la distance entre Londres et le
Royaume-Uni est de zéro. Si le mot-clé Contains est utilisé dans la clause Ignore, la distance n'est pas
automatiquement égale à zéro. La distance de Londres à la frontière du Royaume-Uni est renvoyée à
la place. En effet, tous les objets fermés, tels que les régions, sont considérés comme des polylignes
dans le cadre de cette opération.
La clause Data peut être utilisée pour indiquer l'objet fromtable et l'objet totable dont est issu le résultat.
Clause Data
Data IntoColumn1=column1, IntoColumn2=column2
La colonne IntoColumn à gauche du signe égal doit être une colonne valide de la table intotable. Le
nom de colonne à droite du signe égal doit être un nom de colonne valide dans la table totable ou
fromtable. Si un nom de colonne est utilisé à la fois dans la table totable et fromtable, la colonne de la
table totable est utilisée (c'est-à-dire que la recherche porte d'abord sur les noms de colonne à droite
du signe égal présents dans la table totable).
Pour éviter de tels conflits, les noms de colonne peuvent être qualifiés à l'aide de l'alias de table. Par
exemple :
Data name1=states.state_name, name2=county.state_name
Pour remplir une colonne de la table totable avec la distance, il est possible d'utiliser la fonctionnalité
Table > Mettre à jour Colonne du menu ou l'Instruction Update.
Voir également
Instruction Nearest, Fonction CartesianObjectDistance( ), Fonction ObjectDistance( ), Fonction
SphericalObjectDistance( ), Fonction CartesianConnectObjects( ), Fonction ConnectObjects( ),
Fonction SphericalConnectObjects( )
Instruction Fetch
Objectif
Définit la position du curseur d'une table (par exemple, quelle ligne est active). Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Référence
315
Instruction Fetch
Syntaxe
Fetch { First | Last | Next | Prev | Rec n } From table
n est le numéro de l'enregistrement à lire.
table est le nom d'une table ouverte.
Description
Utilisez l'instruction Fetch pour extraire des enregistrements à partir d'une table ouverte. En exécutant
une instruction Fetch, le programme place le curseur de la table à une certaine position dans la ligne,
dans la table. Cela détermine l'enregistrement actif dans la table.
Remarque: Le terme « curseur » est utilisé ici pour désigner la position d'une ligne dans une table.
Cela n'a rien à voir avec le curseur affiché à l'écran.
Une fois que vous exécutez une instruction Fetch, vous pouvez extraire des données de la ligne actuelle
en utilisant l'un des types d'expression suivants :
Syntaxe
Exemple
table.column
World.Country
table.col#
World.col1
table.col( number )
World.col( 1 )
Une instruction Fetch First positionne le curseur au niveau de la première ligne non supprimée de la
table.
Une instruction Fetch Last positionne le curseur au niveau de la dernière ligne non supprimée de la
table.
Une instruction Fetch Next déplace le curseur vers l'avant jusqu'à la ligne non supprimée suivante.
Une instruction Fetch Prev déplace le curseur vers l'arrière jusqu'à la ligne non supprimée précédente.
Une instruction Fetch Rec n positionne le curseur sur une ligne spécifique, même si cette ligne est
supprimée.
Remarque: Si l'enregistrement spécifié est supprimé, l'instruction génère l'erreur d'exécution 404.
Différentes opérations MapInfo Professional et MapBasic (par exemple, Select, Update et Redraw)
réinitialisent automatiquement la ligne active. En conséquence, les instructions Fetch doivent être
exécutées juste avant toute instruction qui considère la ligne qui est active.
Lecture au-delà de la fin de la table
Une fois que vous avez exécuté une instruction Fetch, vous pouvez avoir besoin d'appeler la fonction
EOT( ) pour déterminer si vous avez extrait une ligne réelle.
Si l'instruction Fetch a positionné le curseur sur une ligne réelle, la fonction EOT( ) renvoie FALSE (ce
qui signifie qu'il n'y a pas de condition de fin de table).
316
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Si l'instruction Fetch a tenté de positionner le curseur après la dernière ligne, la fonction EOT( ) TRUE
(ce qui signifie qu'il y a une condition de fin de table et que par conséquent, il n'y a pas de « ligne active
»).
L'exemple ci-dessous indique comment utiliser une instruction Fetch Next pour effectuer une boucle
dans toutes les lignes d'une table. Dès qu'une instruction Fetch Next tente de lire la dernière ligne, la
fonction EOT( ) renvoie TRUE, ce qui entraîne l'interruption de la boucle.
Dim i As Integer
i = 0
Fetch First From world
Do While Not EOT(world)
i = i + 1
Fetch Next From world
Loop
Print "Number of undeleted records: " + i
Exemples
L'exemple ci-dessous indique comment extraire le troisième enregistrement de la table States :
Open Table "states"
Fetch Rec 3 From states 'position at 3rd record
Note states.state_name 'display name of state
Comme indiqué dans l'exemple ci-dessous, l'instruction Fetch peut être utilisée dans une table temporaire
(par exemple, Selection).
Select * From states Where pop_1990 < pop_1980
Fetch First From Selection
Note Selection.col1 + " has negative net migration"
Voir également
Fonction EOT( ), Instruction Open Table
Fonction FileAttr( )
Objectif
Renvoie des informations concernant un fichier ouvert. Vous pouvez appeler cette fonction à partir de
la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
FileAttr( filenum, attribute )
filenum est le numéro d'un fichier ouvert via une Open File statement.
attribute est un code qui indique l'attribut de fichier à renvoyer. Reportez-vous au tableau ci-dessous.
Valeur renvoyée
Entier
Référence
317
Fonction FileExists( )
Description
La fonction FileAttr( ) renvoie des informations sur un fichier ouvert. Le paramètre attribute doit être l'un
des codes figurant dans le tableau ci-dessous :
Paramètre attribute
ID
Valeur renvoyée
FILE_ATTR_MODE
1
Entier court, qui indique le mode dans lequel le fichier a
été ouvert. La valeur renvoyée est l'une des valeurs
suivantes :
•
•
•
•
•
FILE_ATTR_FILESIZE
2
MODE_INPUT (0)
MODE_OUTPUT (1)
MODE_APPEND (2)
MODE_RANDOM (3)
MODE_BINARY (4)
Entier, qui indique la taille du fichier en octets.
Conditions d'erreur
L'erreur ERR_FILEMGR_NOTOPEN (366) est générée si le fichier spécifié n'est pas ouvert.
Voir également
Fonction EOF( ), Instruction Get, Instruction Open File, Instruction Put
Fonction FileExists( )
Objectif
Renvoie une valeur logique, qui indique si un fichier existe ou pas. Vous pouvez appeler cette fonction
à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
FileExists( filespec )
filespec est une chaîne qui indique le chemin et le nom du fichier.
Valeur renvoyée
Valeur logique : TRUE si le fichier existe déjà, FALSE dans les autres cas.
Exemple
If FileExists("C:\MapInfo\TODO.TXT") Then
Open File "C:\MapInfo\TODO.TXT" For INPUT As #1
End If
Voir également
318
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction TempFileName$( )
Fonction FileOpenDlg( )
Objectif
Affiche une boîte de dialogue Fichier > Ouvrir, et renvoie le nom du fichier sélectionné par l'utilisateur.
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
FileOpenDlg( path, filename, filetype, prompt )
path est une valeur de chaîne qui indique le répertoire ou le dossier dans lequel sélectionner les fichiers.
filename est une valeur de chaîne, qui indique un nom de fichier par défaut que l'utilisateur doit
sélectionner.
filetype est une valeur de chaîne, comportant trois ou quatre caractères, qui indique un type de fichier
(par exemple, TAB pour spécifier des tables).
prompt est un titre sous forme de chaîne, qui s'affiche dans la barre dans la partie supérieure de la boîte
de dialogue.
Valeur renvoyée
Valeur de chaîne, qui représente le nom du fichier sélectionné par l'utilisateur (ou une chaîne vide si
l'utilisateur a annulé l'opération).
Description
La fonction FileOpenDlg( ) affiche une boîte de dialogue semblable à celle qui apparaît lorsque l'utilisateur
sélectionne Fichier > Ouvrir.
Pour sélectionner un fichier dans la liste qui s'affiche dans la boîte de dialogue, l'utilisateur peut cliquer
sur un fichier dans la liste et cliquez sur le bouton OK ou simplement double-cliquer sur un fichier dans
la liste. Dans un cas comme dans l'autre, la fonction FileOpenDlg( ) renvoie une chaîne qui représente
le chemin complet et le nom du fichier sélectionné par l'utilisateur. Autrement, si l'utilisateur clique sur
le bouton Annuler au lieu de sélectionner un fichier, la boîte de dialogue renvoie une chaîne vide ("").
La fonction FileOpenDlg( ) n'ouvre pas réellement des fichiers. Elle affiche simplement une boîte de
dialogue à l'attention de l'utilisateur et permet à ce dernier de sélectionner un fichier. Si l'application doit
ensuite ouvrir réellement le fichier sélectionné par l'utilisateur, l'application doit exécuter une instruction
comme l'instruction Open Table. Si vous souhaitez que l'application affiche une boîte de dialogueOuvrir,
et qu'ensuite vous souhaitez que MapInfo Professional ouvre automatiquement le fichier sélectionné,
vous pouvez exécuter une instruction comme l'instruction Run Menu Command avec M_FILE_OPEN
ou M_FILE_ADD_WORKSPACE.
Le paramètre path spécifie le répertoire ou le dossier à partir duquel l'utilisateur sélectionne un fichier
existant. Notez que le paramètre path ne détermine que le répertoire initial. Il n'empêche pas l'utilisateur
de modifier les répertoires une fois que la boîte de dialogue s'affiche. Si le paramètre path est vide
(chaîne vide), la boîte de dialogue affiche une liste des fichiers dans le répertoire de travail actuel.
Le paramètre filename indique le nom de fichier par défaut à sélectionner par l'utilisateur.
Référence
319
Fonction FileOpenDlg( )
Le paramètre filetype est une chaîne, composée généralement de trois ou quatre caractères, indiquant
le type de fichiers qui doit apparaître dans la boîte de dialogue. Certains paramètresfiletype ont une
signification particulière. Par exemple, si le paramètre filetype est TAB, la boîte de dialogue présente
une liste des tables MapInfo, et si le paramètre filetype est WOR, la boîte de dialogue présente une liste
des fichiers de documents MapInfo.
Il existe également toute une gamme d'autres valeurs filetype, répertoriées dans le tableau ci-après. Si
vous indiquez l'une des valeurs de type particulier contenues dans le tableau suivant, la boîte de dialogue
comprend une commande qui permet à l'utilisateur de choisir entre l'affichage d'une liste des fichiers de
table ou une liste de tous les fichiers (« *.* »).
Paramètre filetype
Type de fichiers qui apparaissent
TAB
Tables MapInfo
WOR
Documents MapInfo
MIF
Fichiers au format MapInfo Interchange Format, utilisés pour
l'importation/exportation de cartes à partir de/vers des fichiers texte au format
ASCII.
DBF
Fichiers dBASE ou de données compatibles
WKS, WK1
Fichiers de feuilles de calcul Lotus
XLS, XLSX
Fichiers de feuilles de calcul Excel
DXF
Fichiers au format d'échange de données AutoCAD
MMI, MBI
Fichiers d'échange MapInfo pour DOS
MB
Fichiers de programme source MapBasic
MBX
Applications MapBasic compilées
TXT
Fichiers texte
BMP
Fichiers bitmap Windows
WMF
Métafichiers Windows
Chacun des types de fichiers à trois caractères mentionné ci-dessus correspond à une extension de
fichier réelle. En d'autres termes, si vous spécifiez un paramètre filetype WOR, cela indique à MapBasic
qu'il doit afficher une liste des fichiers possédant l'extension .WOR, car il s'agit de l'extension utilisée
par les documents MapInfo Professional.
Pour vous aider à écrire des applications portables, MapBasic permet d'utiliser les mêmes paramètres
filetype à trois caractères sur toutes les plates-formes. Sous Windows, une commande dans le coin
inférieur gauche de la boîte de dialogue permet à l'utilisateur de choisir d'afficher une liste des fichiers
avec l'extension .TAB ou une liste de tous les fichiers dans le répertoire actif. Si la fonction FileOpenDlg(
) indique un paramètre filetype non répertorié dans le tableau d'extensions de fichier ci-dessus, la boîte
de dialogue apparaît sans cette commande.
320
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
Dim s_filename As String
s_filename = FileOpenDlg("","","TAB","Open Table")
Voir également
Fonction FileSaveAsDlg( ), Instruction Open File, Instruction Open Table
Fonction FileSaveAsDlg( )
Objectif
Affiche une boîte de dialogue Enregistrer sous et renvoie le nom du fichier indiqué par l'utilisateur.
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
FileSaveAsDlg( path, filename, filetype, prompt )
path est une valeur de chaîne indiquant le répertoire de destination par défaut.
filename est une valeur de chaîne indiquant le nom de fichier par défaut.
filetype est une valeur de chaîne, qui indique le type de fichier que l'utilisateur peut sélectionner dans
la boîte de dialogue.
prompt est un titre de chaîne qui apparaît dans le haut de la boîte de dialogue.
Valeur renvoyée
Valeur de chaîne, qui représente le nom du fichier indiqué par l'utilisateur (ou une chaîne vide si l'utilisateur
a annulé l'opération).
Description
La fonction FileSaveAsDlg( ) affiche une boîte de dialogue Enregistrer sous , semblable à la boîte de
dialogue qui apparaît lorsque l'utilisateur sélectionne Fichier > Enregistrer table sous.
L'utilisateur peut entrer le nom du fichier à enregistrer. Autrement, l'utilisateur peut double-cliquer dans
la liste des noms de fichier grisés qui s'affiche dans la boîte de dialogue. Comme chaque nom de fichier
de la liste représente un fichier existant, MapBasic demande à l'utilisateur de vérifier qu'il souhaite
remplacer le fichier existant.
Si l'utilisateur indique une valeur filename et clique sur OK, la fonction FileSaveAsDlg( ) renvoie une
chaîne de caractères représentant le chemin et nom complets du fichier sélectionné par l'utilisateur. Si
l'utilisateur clique sur le bouton Annuler au lieu de sélectionner un fichier, la fonction renvoie une chaîne
vide ("").
Le paramètre path indique le chemin d'accès au répertoire initial. L'utilisateur peut modifier les répertoires
une fois que la boîte de dialogue s'affiche. Si le paramètre path est vide (chaîne vide), la boîte de dialogue
affiche une liste des fichiers dans le répertoire actuel.
Le paramètre filename indique le nom de fichier par défaut à sélectionner par l'utilisateur.
Référence
321
Instruction Find
Le paramètre filetype est une chaîne, comportant généralement trois caractères (ou moins), qui indique
le type des fichiers s'affichant dans la boîte de dialogue. Pour afficher une boîte de dialogue qui répertorie
les documents, indiquez la chaîne WOR comme paramètre filetype Pour afficher une boîte de dialogue
qui répertorie les noms de table, indiquez la chaîne TAB. Pour plus d'informations sur les codes filetype
sur trois caractères, reportez-vous à la section Fonction FileOpenDlg( ).
La fonction FileSaveAsDlg( ) n'ouvre pas réellement des fichiers. Elle affiche simplement une boîte de
dialogue à l'attention de l'utilisateur et permet à ce dernier de sélectionner un fichier. Pour enregistrer
des données sous un nom de fichier sélectionné par l'utilisateur, exécutez une instruction comme
l'instruction Commit Table.
Voir également
Instruction Commit Table, Fonction FileOpenDlg( )
Instruction Find
Objectif
Recherche un emplacement dans une table cartographiable. Vous pouvez exécuter cette instruction à
partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Find address [ , region ] [ Interactive ]
address est une expression de chaîne, qui représente le nom d'un objet carte à rechercher. Pour trouver
l'intersection de deux rues, utilisez la syntaxe : streetname && streetname.
region est le nom d'un objet région qui affine la recherche.
Description
L'instruction Find recherche une table cartographiable pour un emplacement nommé (représenté par
le paramètre address). MapBasic stocke les résultats de la recherche dans des variables système,
auxquelles un programme peut accéder par le biais de la fonction CommandInfo( ). Si l'instruction
Find contient le mot-clé facultatif Interactive keyword, et si MapBasic ne peut pas localiser l'adresse
indiquée, une boîte de dialogue affiche une liste de « résultats approchants ».
L'instruction Find ne peut effectuer une recherche que dans une table cartographiable (par exemple,
une table à laquelle des objets graphiques sont associés). La table doit déjà être ouverte. L'instruction
Find est applicable dans toutes les colonnes sélectionnées pour la recherche. Un programme MapBasic
peut exécuter une instruction Find Using pour identifier une colonne spécifique d'une table dans
laquelle effectuer une recherche. Si l'instruction Find n'est pas précédée d'une instruction Find Using,
MapBasic recherche la table indiquée la dernière fois que l'utilisateur a sélectionné la commande
Sélection > Rechercher de MapInfo Professional.
L'instruction Find peut affiner une recherche si vous spécifiez un nom de région en plus du paramètre
address. En d'autres termes, vous pouvez simplement essayer de rechercher un nom de ville (par
exemple, « Albany ») en recherchant une table des villes. Vous pouvez également affiner la recherche
en spécifiant un nom de ville et un nom de région (par exemple, « Albany », « CA »). L'instruction Find
n'ajoute pas automatiquement un symbole à la carte pour marquer l'emplacement auquel l'adresse a
322
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
été localisée. Pour créer un tel symbole, appelez la fonction CreatePoint( ) ou l'instruction Create
Point ; voir l'exemple ci-dessous.
Détermination de la détection de l'adresse
Après une instruction Find, un programme MapBasic peut émettre un appel de fonction
CommandInfo(CMD_INFO_FIND_RC) pour déterminer si la recherche a abouti. Si c'est le cas, appelez
la fonction CommandInfo(CMD_INFO_X) pour déterminer la coordonnée x de l'emplacement recherché,
et appelez la fonction CommandInfo(CMD_INFO_Y) pour déterminer la coordonnée y. Pour déterminer
le numéro de ligne qui correspond à l'adresse trouvée, appelez la fonction
CommandInfo(CMD_INFO_FIND_ROWID).
L'instruction Find peut donner une correspondance exacte, une correspondance approchante ou une
correspondance nulle. Si l'instruction Find aboutit à une correspondance exacte, l'appel de la fonction
CommandInfo(CMD_INFO_FIND_RC) renvoie la valeur 1 (un). Si l'instruction Find aboutit à une
correspondance approchante, l'appel de la fonction renvoie une valeur supérieure à 1 (un). Si l'instruction
Find ne correspond pas à l'adresse, l'appel de la fonction renvoie une valeur négative.
Référence
323
Instruction Find
Le tableau ci-dessous récapitule les informations liées à la recherche représentées par la valeur renvoyée
par CommandInfo(CMD_INFO_FIND_RC). La valeur renvoyée possède trois caractères au maximum
et chacun de ces trois caractères indique la réussite relative ou l'échec d'une autre partie de la recherche.
Valeurs des caractères Signification
324
xx1
Correspondance exacte.
xx2
Substitution du fichier d'abréviations utilisé.
xx3 ( - )
Correspondance exacte non trouvée.
xx4 ( - )
Aucun nom d'objet spécifié. Correspondance introuvable.
xx5 ( + )
L'utilisateur a sélectionné un nom dans la boîte de dialogue Interactif.
x1x
Côté de la rue non déterminé.
x2x ( + / - )
Numéro de l'adresse compris dans la plage de valeurs min./max.
x3x ( + / - )
Numéro de l'adresse non compris dans la plage de valeurs min./max.
x4x ( + / - )
Numéro de l'adresse non spécifié.
x5x ( - )
Les rues ne se croisent pas.
x6x ( - )
La correspondance de la ligne ne comporte pas d'objet carte.
x7x ( + )
L'utilisateur a sélectionné un numéro d'adresse dans la boîte de
dialogueInteractif.
1xx ( + / - )
Nom détecté dans une seule région, autre que la région spécifiée.
2xx ( - )
Nom détecté dans plusieurs régions, autres que la région spécifiée.
3xx ( + / - )
Aucune région destinée à affiner la recherche n'a été spécifiée et une
correspondance a été trouvée.
4xx ( - )
Aucune région n'a été spécifiée et plusieurs correspondances ont été
détectées.
5xx ( + )
Nom détecté plusieurs fois dans la région spécifiée.
6xx ( + )
L'utilisateur a sélectionné un nom de région dans la boîte de dialogue
Interactif.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
L'opérateur Mod est utile pour examiner les caractères dans les résultats de la recherche. Par exemple,
pour déterminer le dernier chiffre d'un numéro, utilisez l'expression number Mod 10. Pour déterminer
les deux derniers chiffres d'un numéro, utilisez l'expression number Mod 100, etc.
La distinction entre la correspondance exacte et la correspondance approchante est mieux illustrée par
un exemple. Si une table des villes contient une entrée pour « Albany », et que l'instruction Find Using
tente de rechercher un nom de ville sans affiner le nom de région, et que l'instruction Find spécifie une
valeur de paramètre address « Albany », la recherche aboutit à une correspondance exacte. Après cette
instruction Find, l'appel de la fonction CommandInfo(CMD_INFO_FIND_RC) renvoie une valeur de 1
(un), indiquant la détection d'une correspondance exacte.
Maintenant, supposons que l'opération Find ait été configurée de manière à affiner la recherche avec
un nom de région facultatif. En d'autres termes, l'instruction Find attend un nom de ville suivi d'un nom
d'état (par exemple, "Albany", "NY"). Si un programme MapBasic exécute alors une instruction Find
avec « Albany » comme adresse et une chaîne Null comme nom d'état, il ne s'agit pas d'une
correspondance exacte du point de vue technique car MapBasic s'attend à ce que le nom de ville soit
suivi d'un nom d'état. Néanmoins, s'il y a un seul enregistrement « Albany » dans la table, MapBasic
peut localiser cet enregistrement. Après cette opération Find, l'appel de la fonction
CommandInfo(CMD_INFO_FIND_RC) renvoie une valeur de 301. Le chiffre 1 signifie que le nom de
la ville correspond parfaitement, alors que le chiffre 3 indique que MapBasic n'a obtenu qu'un résultat
partiel lors de la localisation d'une région destinée à affiner la recherche.
Si une table de rues contient « Main St » et qu'une instruction Find tente de rechercher « Main Street
», MapBasic considère que les résultats constituent une correspondance approximative (à condition que
le traitement du fichier d'abréviations ait été activé ; voir Instruction Find Using). À proprement parler,
la chaîne « Main Street » ne correspond pas à la chaîne « Main St ». En revanche, MapBasic peut faire
correspondre les deux chaînes après avoir remplacé les abréviations possibles à partir du fichier
d'abréviations MapInfo Professional (MAPINFOW.ABB). Après l'instruction Find, l'appel de la fonction
CommandInfo(CMD_INFO_FIND_RC) renvoie une valeur de 2.
Si l'opération Find affiche une boîte de dialogue à l'utilisateur et que l'utilisateur entre du texte dans cette
boîte de dialogue pour effectuer la recherche, le code de retour comporte la valeur 1 (un) à la position
des millions.
Exemple
Include "mapbasic.def"
Dim x, y As Float, win_id As Integer
Open Table "states" Interactive
Map From States
win_id = FrontWindow( )
Find Using states(state)
Find "NY"
If CommandInfo(CMD_INFO_FIND_RC) >= 1 Then
x = CommandInfo(CMD_INFO_X)
y = CommandInfo(CMD_INFO_Y)
Set Map
Window win_id
Center (x, y)
' Now create a symbol at the location we found.
' Create the object in the Cosmetic layer.
Insert Into
WindowInfo( win_id, WIN_INFO_TABLE) (Object)
Values ( CreatePoint(x, y) )
Else
Référence
325
Instruction Find Using
Note "Location not found."
End If
Voir également
Instruction Find Using, Fonction CommandInfo( )
Instruction Find Using
Objectif
Détermine les tables et les colonnes dans lesquelles la recherche doit être effectuée dans les opérations
Find suivantes. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Find Using table ( column )
[ Refine Using table ( column ) ]
[ Options
[ Abbrs { On | Off } ]
[ ClosestAddr { On | Off } ]
[ OtherBdy { On | Off } ]
[ Symbol symbol_style ]
[ Inset inset_value { Percent | Distance Units dist_unit} ]
[ Offset value ] [ Distance Units dist_unit ] ]
table est le nom d'une table ouverte.
column est le nom d'une colonne de la table.
symbol_style est une variable Symbol ou un appel de fonction qui renvoie une valeur Symbol. Elle
contrôle le type de symbole dessiné sur la carte si l'utilisateur sélectionne Sélection > Rechercher.
inset_value est une valeur entière positive qui représente la distance à laquelle ajuster la position d'une
adresse par rapport aux extrémités de la ligne.
value indique la valeur Offset (la distance à partir de la rue).
dist_unit est une chaîne qui représente le nom d'une unité de distance (par exemple, « mi » pour miles,
« m » pour mètres).
Description
L'instruction Find Using indique les tables et les colonnes dans lesquelles MapBasic effectue la recherche
lors de l'exécution d'une instruction Find statement. La colonne spécifiée doit être indexée.
La clause facultative Refine spécifie une seconde table, qui sert de critère de recherche supplémentaire.
La table doit contenir des objets région. La colonne spécifiée n'a pas besoin d'être indexée. Si vous
omettez la clause Refine les instructions Refine suivantes attendent un simple nom de lieu (par exemple,
« Portland »). Si vous incluez une clause Refine, les instructions Find suivantes attendent un nom de
lieu et un nom de région (par exemple, « Portland », « OR »).
La clause facultative Abbrs détermine si MapBasic essaie de remplacer les abréviations à partir du
fichier d'abréviations afin de rechercher une correspondance. Par défaut, cette option est activée (On).
Pour désactiver l'option, indiquez la clause Abbrs Off.
326
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
La clause facultative ClosestAddr détermine si MapBasic utilise le numéro d'adresse le plus proche
disponible lorsque le numéro d'adresse ne correspond pas. Par défaut, cette option est désactivée (Off).
Pour activer l'option, indiquez la clause ClosestAddr On.
La clause facultative OtherBdy détermine si MapBasic effectue une correspondance avec un
enregistrement détecté dans une région servant à affiner la recherche autre que la région spécifiée. Par
défaut, cette option est désactivée (Off). Pour activer l'option, indiquez la clause OtherBdy On.
MapInfo Professional enregistre les paramètres Inset et Offset indiqués la dernière fois que l'utilisateur
a sélectionné Sélection > Options de recherche, Table > Options de géocodage ou exécuté une
instruction Find Using. La dernière option de marge indiquée devient la configuration par défaut pour
la prochaine occurrence.
Si Percent est spécifié, il représente le pourcentage de la longueur de la ligne sur laquelle l'adresse doit
être positionnée. Pour Percent, les valeurs valides de inset_value sont comprises entre 0 et 50. Si les
valeurs Distance Units sont renseignées, inset_value représente la distance à partir des extrémités de
la ligne sur laquelle l'adresse doit être positionnée. Pour la distance, les valeurs valides de inset_value
sont comprises entre 0 et 32 767. La marge utilise les adresses qui correspondraient normalement à
l'extrémité de la rue et les déplace à partir de l'extrémité en direction du centre.
La valeur Offset définit les adresses à partir de la rue et non à partir de l'intérieur de la rue. value est
une valeur entière positive, qui représente la distance de décalage servant à positionner l'adresse à
partir de la rue. Les valeurs valides sont comprises entre 0 et 32 767.
Exemple
Find Using city_1k(city)
Refine Using states(state)
Find "Albany", "NY"
Voir également
Instruction Create Index, Instruction Find
Fonction Fix( )
Objectif
Renvoie une valeur entière, obtenue en supprimant la partie fractionnelle d'une valeur décimale. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Fix( num_expr )
num_expr représente une expression numérique.
Valeur renvoyée
Entier
Référence
327
Clause Font
Description
La fonction Fix( ) supprime la fraction d'un nombre et renvoie la valeur entière qui en résulte. La fonction
Fix( ) est semblable, sans toutefois être identique, à la Fonction Int( ). Les deux fonctions ne traitent
pas les valeurs fractionnelles négatives de la même manière. Lorsqu'un nombre fractionnel négatif est
transmis à la fonction Fix( ) renvoie la valeur entière la plus proche, supérieure ou égale à la valeur
initiale. Ainsi, l'appel de fonction :
Fix(-2.3)
renvoie la valeur –2. Cependant, lorsqu'un nombre fractionnel négatif est transmis à la fonction Int( ),
celle-ci renvoie la valeur entière la plus proche, inférieure ou égale à la valeur initiale. Ainsi, l'appel de
fonction :
Int(-2.3)
renvoie la valeur –3.
Exemple
Dim i_whole As Integer
i_whole = Fix(5.999)
' i_whole now has the value 5.
i_whole = Fix(-7.2)
' i_whole now has the value -7.
Voir également
Fonction Int( ), Fonction Round( )
Clause Font
Objectif
Spécifie un style de texte. Vous pouvez utiliser cette clause dans la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Font font_expr
font_expr est une expression Font, par exemple :
MakeFont( fontname, style, size, fgcolor, bgcolor )
Description
La clause Font indique un style de texte. Font est une clause et non une instruction MapBasic complète.
Différentes instructions liées aux objets, comme l'instruction Create Text, permettent de spécifier un
paramètre de police. Cela permet de sélectionner la police et la taille du nouvel objet texte. Si vous
omettez l'expression Font d'une instruction Create Text, le nouvel objet utilise la police actuelle de
MapInfo Professional. Le mot-clé Font peut être suivi d'une expression dont le résultat sera une valeur
Font.
Cette expression peut être une variable Font :
Font font_var
328
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
ou un appel de fonction (par exemple, la fonction CurrentFont( ) ou la fonction MakeFont( )) qui
renvoie une valeur Font :
Font MakeFont("Helvetica", 1, 12, BLACK, WHITE)
Avec certaines instructions MapBasic (par ex. : l'instruction Set Legend), le mot-clé Fontpeut être suivi
directement par les cinq paramètres qui définissent un style Font (nom de police, style, taille de point,
couleur de premier plan et couleur de fond) entre parenthèses :
Font("Helvetica", 1, 12, BLACK, WHITE)
Le tableau ci-dessous récapitule les composants qui définissent une police :
Paramètre
Description
nom de police
Chaîne qui identifie une police. L'ensemble de polices disponibles dépend
du système de l'utilisateur et de la plate-forme matérielle utilisée.
style
Valeur entière. Contrôle les attributs de texte (ex. : gras, italique et souligné).
Pour plus d'informations, reportez-vous au tableau ci-dessous.
taille
Valeur entière qui représente une taille exprimée en points. La taille 12
correspond à 1/6 de pouce.
couleur de premier plan Valeur de couleur RVB entière, qui représente la couleur du texte.
Reportez-vous à la section Fonction Rnd( ).
couleur de fond
Valeur entière qui représente une couleur RVB. Si le style halo est utilisé, il
s'agit de la couleur du halo. Autrement, il s'agit de la couleur de remplissage
du fond.
Pour définir un style de fond transparent dans une clause Font, ne renseignez
pas la couleur de fond. Par exemple : Font( "Helvetica", 1, 12,
BLACK). Pour définir une trame transparente lors de l'appel de la fonction
MakeFont( ), indiquez -1 pour la couleur de fond.
Le tableau ci-dessous indique comment le paramètre de style correspond aux styles de police.
Valeur du style
Description du style de texte
0
Brut
1
Gras
2
Italique
4
Souligné
8
Barré
32
Ombré
256
Halo
512
Majuscules
1024
Espacé
Référence
329
Instruction For...Next
Pour définir plusieurs attributs de style, ajoutez les valeurs de la colonne de gauche. Par exemple, pour
spécifier les attributs Gras et Majuscules, utilisez la valeur de style 513.
Exemple
Include "MAPBASIC.DEF"
Dim o_title As Object
Create Text
Into Variable o_title
"Your message could go HERE"
(73.5, 42.6) (73.67, 42.9)
Font MakeFont("Helvetica",1,12,BLACK,WHITE)
Voir également
Instruction Alter Object, Fonction Chr$( ), Instruction Create Text, Fonction RGB( )
Instruction For...Next
Objectif
Définit une boucle qui exécutera un nombre spécifique d'itérations.
Restrictions
Vous ne pouvez pas émettre d'instruction For...Next dans la fenêtre MapBasic.
Syntaxe
For var_name = start_expr To end_expr [ Step inc_expr ]
statement_list
Next
var_name est le nom d'une variable numérique.
start_expr est une expression numérique.
end_expr est une expression numérique.
inc_expr est une expression numérique.
statement_list est le groupe d'instructions à exécuter à chaque itération de la boucle For.
Description
L'instruction For...Next assure le contrôle de la boucle. Cette instruction nécessite une variable numérique
(identifiée par le paramètre var_name). Une instruction For...Nextexécute un groupe d'instructions
(statement_list) plusieurs fois ou ignore complètement le groupe statement_list. Les valeurs start_expr,
end_expr et inc_expr définissent le nombre de fois où le groupe statement_list sera exécuté, le cas
échéant.
S'il détecte une instruction For...Next, MapBasic affecte la valeur start_exprà la variable var_name. Si
la variable est inférieure ou égale à la valeur end_expr, MapBasic exécute le groupe d'instructions
statement_list, puis ajoute la valeur incrémentielle inc_expr à la variable. Si aucune clause Step n'est
indiquée, MapBasic utilise une valeur incrémentielle par défaut de un. MapBasic compare alors la valeur
actuelle de la variable avec l'expression end_expr. Si la variable est inférieure ou égale à la valeur
330
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
end_expr, MapBasic exécute à nouveau les instructions du groupe statement_list. En revanche, si la
variable var_name est supérieure à l'expression end_expr, MapBasic arrête la boucle For, et reprend
l'exécution avec l'instruction suivant l'instruction Next.
Inversement, l'instruction For...Nextpeut également compter dans le sens inverse à l'aide d'une valeur
Step négative. Dans ce cas, chaque itération de la boucle For diminue la valeur de la variable var_name
et MapBasic ne continuera à exécuter la boucle que tant que la variable var_name restera supérieure
ou égale à end_expr.
Chaque instruction For doit être arrêtée par une instruction Next. Toute instruction qui apparaît entre
les instructions For et Next comprend le groupe statement_list. Ce dernier représente la liste des
instructions à exécuter en fonction de chaque itération de la boucle.
L'instruction Exit For vous permet de quitter une boucle For quel que soit l'état de la variable var_name.
L'instruction Exit For indique à MapBasic de sortir de la boucle et de reprendre l'exécution avec la
première instruction suivant l'instruction Next.
MapBasic vous permet de modifier la variable var_name dans le corps de la boucle For. Cela peut
affecter le nombre d'exécutions de la boucle. Cependant, en ce qui concerne le style de programmation,
essayez d'éviter de modifier le contenu de la variable var_name dans la boucle.
Exemple
Dim i As Integer
' the next loop will execute a Note statement 5 times
For i = 1 to 5
Note "Hello world!"
Next
' the next loop will execute the Note statement 3 times
For i = 1 to 5 Step 2
Note "Hello world!"
Next
' the next loop will execute the Note statement 3 times
For i = 5 to 1 Step -2
Note "Hello world!"
Next
' MapBasic will skip the following For statement
' completely, because the initial start value is
' already larger than the initial end value
For i = 100 to 50 Step 5
Note "This note will never be executed"
Next
Voir également
Instruction Do...Loop, Instruction Exit For
Procédure ForegroundTaskSwitchHandler
Objectif
Nom de procédure réservé, appelé automatiquement lorsque MapInfo Professional est sélectionné
(devenant ainsi l'application active) ou ne l'est plus (une autre application devient active).
Référence
331
Fonction Format$( )
Syntaxe
Declare Sub ForegroundTaskSwitchHandler
Sub ForegroundTaskSwitchHandler
statement_list
End Sub
statement_list est une liste d'instructions.
Description
Si l'utilisateur exécute une application contenant une procédure appelée ForegroundTaskSwitchHandler,
MapInfo Professional appelle la procédure automatiquement chaque fois que MapInfo Professional est
sélectionné ou ne l'est plus. Dans le cadre de la procédure, appelez la fonction CommandInfo( ) pour
savoir si MapInfo Professional est sélectionné ou ne l'est plus.
Exemple
Sub ForegroundTaskSwitchHandler
If CommandInfo(CMD_INFO_TASK_SWITCH)
= SWITCHING_INTO_MAPINFO Then
' ... then MapInfo just became active
Else
' ... another app just became active
End If
End Sub
Voir également
Fonction CommandInfo( )
Fonction Format$( )
Objectif
Renvoie une chaîne qui représente un nombre auquel une mise en forme personnalisée est appliquée.
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Format$ ( value, pattern )
value est une expression numérique.
pattern est une chaîne qui indique comment formater les résultats.
Valeur renvoyée
Chaîne
332
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
La fonction Format$( ) renvoie une chaîne représentant un nombre formaté. Avec une valeur numérique
telle que 12345,67, Format$( ) peut générer des résultats formatés comme « $12 345,67 ».
Le paramètre value indique la valeur numérique que vous souhaitez formater.
Le paramètre pattern est une chaîne de caractères de code, choisi pour générer un type de résultat
formaté spécifique. La chaîne pattern doit comprendre au moins un caractère de format spécial, comme
#, 0, %, la virgule (,), le point (.) ou le point-virgule (;). Ces caractères contrôlent l’apparence des
résultats. Le tableau ci-dessous récapitule les caractères de formatage.
Caractère de motif
Rôle dans le formatage des résultats
#
Le résultat inclut un ou plusieurs chiffres provenant de cette valeur.
Si la chaîne pattern contient un ou plusieurs caractères # avant la décimale,
et que la valeur est comprise entre zéro et un, la chaîne de résultat formatée
n'inclut pas de zéro avant la décimale.
0
Marqueur d’insertion de chiffres semblable au caractère #. Si la chaîne pattern
contient un ou plusieurs caractères 0 avant la décimale, et que la valeur est
comprise entre zéro et un, la chaîne de résultat formatée inclut un zéro avant
la décimale. Reportez-vous aux exemples ci-dessous.
. (period)
La chaîne pattern doit comprendre un point, si vous souhaitez que la chaîne
de résultat intègre un « séparateur décimal ». La chaîne de résultat inclura
le séparateur décimal en cours d'utilisation sur l'ordinateur de l'utilisateur.
Pour que le séparateur décimal soit absolument un point, utilisez l'instruction
Set Format.
, (comma)
La chaîne pattern doit comprendre une virgule si vous souhaitez que la chaîne
de résultat intègre des « séparateurs de milliers ». La chaîne de résultat
inclura le séparateur de milliers actuellement configuré sur l'ordinateur de
l'utilisateur. Pour forcer le séparateur de milliers à être une virgule, utilisez
l'instruction Set Format.
%
Le résultat représente la valeur multipliée par 100. Ainsi, une valeur de 0,75
génère une chaîne de résultat de 75 %. Lorsque vous souhaitez insérer un
signe pourcentage dans votre résultat, mais ne voulez pas que MapBasic
multiplie la valeur par 100, placez un caractère \ (barre oblique inversée)
avant le signe pourcentage (voir plus bas).
E+
Le résultat est formaté selon la notation scientifique. Par exemple, la valeur
1234 produit le résultat : 1.234e+03. Si l'exposant est positif, un signe plus
s'affiche après le « e ». Si l’exposant est négatif (ce qui est le cas pour les
nombres fractionnels), un signe moins apparaît après le « e ».
E-
Cette chaîne de caractères de contrôle fonctionne comme la chaîne E+, mais
le résultat n’affiche jamais un signe plus après le « e ».
; (semi-colon)
En insérant un point-virgule dans votre chaîne pattern, vous pouvez indiquer
un format pour les nombres positifs et un autre pour les nombres négatifs.
Référence
333
Fonction Format$( )
Caractère de motif
Rôle dans le formatage des résultats
Placez le point-virgule après le premier ensemble de caractères de formatage
et avant le second ensemble de caractères de formatage. Le second
ensemble de caractères de formatage concerne les nombres négatifs. Si
vous souhaitez que les nombres négatifs apparaissent avec le signe moins,
intégrez « - » dans le deuxième jeu de caractères de format.
\
Lorsque le caractère barre oblique inversée apparaît dans une chaîne pattern,
MapBasic n'effectue pas de traitement spécial pour le caractère qui suit ce
caractère. Cela permet d'inclure des caractères spéciaux (par exemple, %)
dans les résultats, sans entraîner les actions de formatage spéciales décrites
ci-dessus.
Conditions d'erreur
L'erreur ERR_FCN_INVALID_FMT (643) est générée si la chaîne pattern n'est pas valide.
Exemples
Les exemples ci-dessous présentent les résultats que vous pouvez obtenir en utilisant différentes chaînes
pattern. Les résultats sont indiqués en commentaire dans le code.
Remarque: Vous obtenez des résultats légèrement différents si l'ordinateur est configuré avec un
format de nombres autre que le format américain.
Format$( 12345,
Format$(-12345,
Format$( 12345,
Format$(-12345,
",#")
",#")
"$#")
"$#")
'
'
'
'
returns
returns
returns
returns
"12,345"
"-12,345"
"$12345"
"-$12345"
Format$( 12345.678, "$,#.##") ' returns "$12,345.68"
Format$(-12345.678, "$,#.##") ' returns "-$12,345.68"
Format$( 12345.678, "$,#.##;($,#.##)") 'returns "$12,345.68"
Format$(-12345.678, "$,#.##;($,#.##)") 'returns "($12,345.68)"
Format$(12345.6789, ",#.###") ' returns "12,345.679"
Format$(12345.6789, ",#.#") ' returns "12,345.7"
Format$(-12345.6789, "#.###E+00") ' returns "-1.235e+04"
Format$( 0.054321, "#.###E+00") ' returns "5.432e-02"
Format$(-12345.6789, "#.###E-00") ' returns "-1.235e04"
Format$( 0.054321, "#.###E-00") ' returns "5.432e-02"
Format$(0.054321, "#.##%") ' returns "5.43%"
Format$(0.054321, "#.##\%") ' returns ".05%"
Format$(0.054321, "0.##\%") ' returns "0.05%"
Voir également
Fonction Str$( )
334
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction FormatDate$( )
Objectif
Renvoie une date formatée dans le style de date court spécifié par le Panneau de configuration. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Remarque: La fonction FormatDate$( ) n'est pas configurable, tandis que la fonction FormatTime$(
) permet de contrôler entièrement le résultat.
Syntaxe
FormatDate$( value )
value est un nombre ou une chaîne représentant la date au format AAAAMMJJ.
Valeur renvoyée
Chaîne
Description
La fonction FormatDate$( ) renvoie une chaîne qui représente une date au format du système local,
comme indiqué par le Panneau de configuration.
Si vous spécifiez l'année sous forme de nombre à deux chiffres (par exemple, 96), MapInfo Professional
utilise le siècle actuel ou le siècle déterminé par l'instruction Set Date Window( ).
L'année peut être sous forme d'expressions à deux chiffres. Utilisez la fenêtre Date pour déterminer le
siècle à utiliser. Reportez-vous à la section Fonction DateWindow( ).
Exemples
En considérant que les paramètres du Panneau de configuration sont j/m/a pour l'ordre de la date, '-'
comme séparateur de date et jj-MMM-aaaa pour le format de date court :
Dim d_Today As Date
d_Today = CurDate( )
Print d_Today 'returns "19970910"
Print FormatDate$( d_Today ) 'returns "10-Sep-1997"
Dim s_EnteredDate As String
s_EnteredDate = "03-02-61"
Print FormatDate$( s_EnteredDate ) 'returns "03-Feb-1961"
s_EnteredDate = "12-31-61"
Print FormatDate$( s_EnteredDate ) ' returns ERROR: not d/m/y ordering
s_EnteredDate = "31-12-61"
Print FormatDate$( s_EnteredDate ) ' returns 31-Dec-1961"
Voir également
Fonction FormatTime$( ), Fonction DateWindow( ) , Instruction Set Date Window( )
Référence
335
Fonction FormatNumber$( )
Fonction FormatNumber$( )
Objectif
Renvoie une chaîne qui représente un nombre, incluant les séparateurs de milliers et les séparateurs
décimaux qui correspondent à la configuration du système de l'utilisateur. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
FormatNumber$( num )
num est une valeur numérique ou une chaîne, qui représente une valeur numérique comme « 1234,56
».
Valeur renvoyée
Chaîne
Description
Renvoie une chaîne qui représente un nombre. Si le nombre est suffisamment grand pour avoir besoin
de séparateurs de milliers, cette fonction insère ces séparateurs. MapInfo Professional lit la configuration
du système de l'utilisateur afin de déterminer les caractères à utiliser comme séparateur de milliers et
séparateur décimal.
Exemples
Le tableau ci-dessous présente la fonction FormatNumber$( ) avec une virgule comme séparateurs de
milliers et un point comme séparateur décimal (valeurs par défaut pour les systèmes américains) :
Appel de fonction
Résultat renvoyé
FormatNumber$("12345.67")
“12,345.67” (un séparateur de milliers a été inséré)
FormatNumber$("12,345.67")
“12,345.67” (pas de modification)
Si l'ordinateur de l'utilisateur est configuré de manière à utiliser un point comme séparateur de milliers
et une virgule comme séparateur décimal, le tableau ci-dessous présente les résultats :
336
Appel de fonction
Résultat renvoyé
FormatNumber$("12345.67")
“12.345,67” (un séparateur de milliers a été inséré
et le séparateur décimal a été modifié afin de
correspondre à la configuration de l'utilisateur)
FormatNumber$("12,345.67")
“12.345,67” (les deux caractères ont été modifiés
pour correspondre à la configuration de l'utilisateur)
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Fonction DeformatNumber$( )
Fonction FormatTime$( )
Objectif
Renvoie une chaîne qui représente une heure à l'aide du format spécifié dans le second argument. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Remarque: La fonction FormatDate$( ) n'est pas configurable, tandis que la fonction FormatTime$(
) permet de contrôler entièrement le résultat.
La chaîne de format doit suivre les mêmes normes Microsoft que pour définir le format d'heure des
paramètres régionaux :
Heures
Signification
h
Heures sans zéro au début pour les heures à un chiffre (format 12 heures).
hh
Heures avec zéro au début pour les heures à un chiffre (format 12 heures).
H
Heures sans zéro au début pour les heures à un chiffre (format 24 heures).
HH
Heures avec zéro au début pour les heures à un chiffre (format 24 heures).
Minutes
Signification
m
Minutes sans zéro au début pour les minutes à un chiffre.
mm
Minutes avec zéro au début pour les minutes à un chiffre.
Secondes
Signification
s
Secondes sans zéro au début pour les secondes à un chiffre.
ss
Secondes avec zéro au début pour les secondes à un chiffre.
Marqueur de temps
Signification
t
Chaîne de marqueur de temps à un chiffre.
Remarque: N'utilisez pas ce format pour certaines langues, par exemple,
le japonais (Japon). Avec ce format, l'application utilise toujours
le premier caractère de la chaîne de marqueur de temps, défini
par LOCALE_S1159 (AM) et LOCALE_S2359 (PM). Pour cette
raison, l'application peut créer un formatage incorrect avec la
chaîne utilisée pour le matin et l'après-midi.
tt
Chaîne de marqueur de temps à plusieurs caractères.
Source : http://msdn2.microsoft.com/en-us/library/ms776320.aspx
Référence
337
Instruction FME Refresh Table
Remarque: Dans les formats précédents, les lettres m, s et t doivent être des minuscules. La lettre h
en minuscule désigne le format 12 heures et en majuscule le format 24 heures.
Notre code suit les règles en vigueur pour spécifier le format d'heure locale du système. De plus, nous
permettons également à l'utilisateur de spécifier f, ff ou fff pour les dixièmes de seconde, les centièmes
de seconde et les millisecondes.
Syntaxe
FormatTime$( Time, String )
Valeur renvoyée
Chaîne
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim Z as time
Z = CurTime()
Print FormatTime$(Z, "hh:mm:ss.fff tt")
Voir également
Fonction FormatDate$( ), Fonction GetTime(), Fonction NumberToDateTime( )
Instruction FME Refresh Table
Objectif
Actualise une table de source de données universelles (FME) à partir de la source de données initiale.
Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
FME Refresh Table alias
alias est un alias d'une table de source de données universelles (FME) enregistrée ouverte.
Exemple
L'exemple ci-dessous actualise la table locale appelée watershed.
FME Refresh Table watershed
Fonction FrontWindow( )
Objectif
Renvoie l'identifiant entier de la fenêtre active. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
338
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
FrontWindow( )
Valeur renvoyée
Entier
Description
La fonction FrontWindow( ) renvoie l'identifiant entier de la fenêtre du document au premier plan (Carte,
Données, Graphique ou Mise en page). Immédiatement après une instruction qui crée une fenêtre (par
exemple, Carte, Données, Graphique, Mise en page), la nouvelle fenêtre est la fenêtre au premier plan.
Exemple
Dim map_win_id As Integer
Open Table "states"
Map From states
map_win_id = FrontWindow( )
Voir également
Fonction NumWindows( ) , Fonction WindowID( ) , Fonction WindowInfo( )
Instruction Function...End Function
Objectif
Définit une fonction personnalisée.
Restrictions
Vous ne pouvez pas exécuter d'instruction Function...End Function via la fenêtre MapBasic.
Syntaxe
Function name ( [ [ ByVal ] parameter As datatype ]
[ , [ ByVal ] parameter As datatype... ] ) As return_type
statement_list
End Function
name est le nom de la fonction.
parameter est le nom d'un paramètre de la fonction.
datatype est un type de variable (par ex. : un entier). Les tableaux et variables Type personnalisées sont
autorisés.
return_type est un type de variable scalaire standard. Les tableaux et variables Type personnalisées ne
sont pas autorisés.
statement_list est la liste des instructions que la fonction va exécuter.
Référence
339
Instruction Function...End Function
Description
L'instruction Function...End Function crée une fonction personnalisée, définie par l'utilisateur. Les
fonctions définies par l'utilisateur peuvent être appelées de la même façon que les fonctions MapInfo
Professional standard.
Chaque définition Function...End Functiondoit être précédée d'une instruction Declare Function.
Une fonction définie par l'utilisateur est semblable à une procédure Sub ; mais une fonction renvoie une
valeur. Les fonctions sont plus flexibles, dans la mesure où une expression peut contenir un nombre
illimité d'appels de fonction. Par exemple, l'instruction suivante effectue une attribution comprenant deux
appels de la fonction Proper$( ) :
fullname = Proper$(firstname) + " " + Proper$(lastname)
Dans une définition Function...End Function, le paramètre de nom de la fonction se comporte comme
une variable. La valeur affectée à la « variable » de nom correspondra à la valeur renvoyée lors de
l'appel de la fonction. Si aucune valeur n'est affectée au nom, la fonction renverra toujours une valeur
de zéro (si la fonction dispose d'un type de données numérique), FALSE (si la fonction dispose d'un
type de données logique), ou une chaîne nulle (si la fonction dispose d'un type de données de chaîne).
Restrictions sur la transmission de paramètre
Un appel de fonction renvoie une valeur « scalaire » à la fois. En d'autres termes, un appel de fonction
unique ne peut pas renvoyer un tableau entier de valeurs, ni un ensemble de valeurs pour remplir une
variable personnalisée de type de données. Par défaut, chaque paramètre d'une fonction définie par
l'utilisateur est un paramètre par référence. Cela signifie que l'appelant de la fonction doit indiquer le
nom d'une variable comme paramètre. Si la fonction modifie la valeur d'un paramètre par référence, la
valeur modifiée sera reflétée dans la variable de l'appelant.
Chaque paramètre d'une fonction peut être indiqué en tant que paramètre par valeur si le mot-clé facultatif
ByVal précède le nom du paramètre dans la définition Function...End Function. Lorsqu'un paramètre
est déclaré par valeur, l'appelant de la fonction peut indiquer une expression pour ce paramètre, plutôt
que de devoir indiquer le nom d'une variable unique. Cependant, si une fonction modifie la valeur d'un
paramètre par valeur, l'appelant de la fonction ne pourra pas accéder à la nouvelle valeur. Vous ne
pouvez pas transmettre de tableau, de variable Type personnalisée ou de variable Alias en tant que
paramètres ByVal aux fonctions personnalisées. Toutefois, vous pouvez transmettre n'importe quel type
de données suivant en tant que paramètres par référence. Si votre fonction personnalisée n'accepte
aucun paramètre, l'instruction Function...End Function peut soit inclure une paire de parenthèses vide,
soit omettre complètement les parenthèses. Néanmoins, chaque appel de fonction doit comprendre une
paire de parenthèses, que la fonction accepte des paramètres ou non. Par exemple, si vous souhaitez
définir une fonction personnalisée appelée Foo, l'instruction Function...End Function pourrait ressembler
à cela :
Function Foo( )
' ... statement list goes here ...
End Function
ou à cela :
Function Foo
' ... statement list goes here ...
End Function
340
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
mais tous les appels de fonction devront comprendre des parenthèses, de la façon suivante :
var_name = Foo( )
Disponibilité des fonctions personnalisées
L'utilisateur ne peut pas intégrer d'appel de fonction personnalisée lorsqu'il renseigne des boîtes de
dialogues MapInfo Professional standard. Une fonction personnalisée ne peut être appelée qu'à partir
d'une application MapBasic compilée. Ainsi, un utilisateur ne peut pas indiquer de fonction définie par
l'utilisateur dans la boîte de dialogue Sélection SQL. Néanmoins, un programme MapBasic compilé
peut exécuter une instruction Select qui intègre les appels de fonctions définies par l'utilisateur.
Une fonction personnalisée n'est disponible qu'à partir de l'application qui définit la fonction. Si vous
rédigez une fonction personnalisée que vous souhaitez inclure dans plusieurs applications MapBasic,
vous devez copier la définition Function...End Function dans chacun des fichiers programme.
Noms de fonction
Le paramètre de nom de l'instruction Function...End Function peut correspondre au nom d'une fonction
MapBasic standard, tel Abs ou Chr$. Ce type de fonction personnalisée remplacera la fonction MapBasic
standard par le même nom (dans les limites de l'application MapBasic). Si un programme définit une
fonction appelée Abs, tout appel suivant de la fonction Abs exécutera la fonction personnalisée au lieu
de la fonction Abs( ) de MapBasic.
Lorsqu'une application MapBasic redéfinit une fonction standard de cette façon, les autres applications
ne sont pas affectées. Ainsi, si vous rédigez plusieurs applications distinctes et que vous souhaitez que
chacune d'entre elles utilise votre propre version personnalisée de la fonction Distance( ), celles-ci
doivent comprendre l'instruction Function...End Function appropriée.
Lorsqu'une application MapBasic redéfinit une fonction standard, la redéfinition s'applique à travers toute
l'application. Dans chaque procédure de ce programme, tous les appels de la fonction redéfinie utiliseront
la fonction personnalisée plutôt que celle d'origine.
Exemple
L'exemple suivant définit une fonction personnalisée, CubeRoot, qui renvoie la racine cubique d'un
nombre (celui élevé à la puissance trois). Parce que l'appel de la fonction CubeRoot apparaît dans le
programme avant la définition CubeRoot Function…End Function, cet exemple utilise l'instruction
Declare Function pour prédéfinir la liste de paramètres de la fonction CubeRoot.
Declare Function CubeRoot(ByVal x As Float) As Float
Declare Sub Main
Sub Main
Dim f_result As Float
f_result = CubeRoot(23)
Note Str$(f_result)
End Sub
Function CubeRoot(ByVal x As Float) As Float
CubeRoot = x ^ 0.33333333333
End Function
Voir également
Instruction Declare Function, Instruction Declare Sub, Instruction Sub...End Sub
Référence
341
Instruction Geocode
Instruction Geocode
Objectif
Géocode une table ou une valeur individuelle à l'aide d'un service de géocodage distant via une connexion
créée en utilisant l'instruction Open Connection et définie avec l'instruction Set Connection Geocode.
Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Geocode connection_number
Input
[ Table input_tablename ]
[ Country = Country_expr
[ Street = Street_expr,
[ IntersectingStreet = IntersectingStreet_expr ],
Municipality = Municipality_expr,
CountrySubdivision = CountrySubdiv_expr,
PostalCode = PostalCode_expr,
CountrySecondarySubdivision = CountrySecondarySubdiv_expr,
SecondaryPostalCode = SecondaryPostalCode_expr,
Placename = Placename_expr,
Street2 = Street2_expr,
MunicipalitySubdivision = MunicipalitySubdiv_expr ] ]
Output
[ Into
[ Table out_tablename [ Key out_keycolumn = in_keyexpr ] ] |
[ Variable variable_name ] ]
[ Point [ On | Off ] [ Symbol Symbol_expr ], ]
[ Street_column = Street,
Municipality_column = Municipality,
CountrySubdiv_column = CountrySubdivision,
PostalCode_column = PostalCode,
CountrySecondarySubdiv_column = CountrySecondarySubdivision,
SecondaryPostalCode_column = SecondaryPostalCode,
Placename_column = Placename,
MunicipalitySubdiv_column = MunicipalitySubdivision,
Country_column = Country,
ResultCode_column = ResultCode,
Latitude_column = Latitude,
Longitude_column = Longitude
Columns colname = geocoder_keyname [ , ] ... ]
[ Interactive [ On
[ Max Candidates candidates_expr | All ]
[ CloseMatchesOnly [ On | Off ] ]
| Off [ First | None ] ] ]
connection_number est le nombre renvoyé lorsque la connexion a été créée. Reportez-vous à la section
Instruction Open Connection.
input_tablename est un alias d'une table ouverte, qui inclut des ensembles de résultats et des sélections.
Country_expr est une expression de chaîne qui représente le code ISO à trois lettres pour le pays.
Street_expr est une expression qui indique une adresse de rue.
342
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
IntersectingStreet_expr est une expression qui indique une rue qui doit croiser la rue indiquée dans
Street_expr.
Municipality_expr est une expression qui indique le nom d'une municipalité.
CountrySubdivision_expr est une expression qui indique le nom d'une sous-division d'un pays. Par
exemple, aux États-Unis, cette expression indique le nom d'un État. Au Canada, elle indique le nom
d'une province.
PostalCode_expr est une expression qui indique un code postal.
CountrySecondarySubdiv_expr est une expression qui indique le nom d'une sous-division secondaire
d'un pays. Par exemple, aux États-Unis, cette expression correspond à un comté, tandis qu'au Canada,
elle correspond à une division de recensement.
SecondaryPostalCode_expr est une expression qui indique un système de code postal secondaire. Aux
États-Unis, cette expression correspond à une extension ZIP+4 d'un code postal.
Placename_expr est une expression qui indique le nom d'un lieu d'intérêt comme un grand bâtiment
auquel peuvent correspondre plusieurs adresses.
Street2_expr est une expression qui indique une ligne d'adresse complémentaire.
MunicipalitySubdiv_expr est une expression qui indique le nom d'une sous-division d'une municipalité.
out_tablename est un alias d'une table à utiliser comme conteneur des données résultant de l'opération
de géocodage.
out_keycolumnest une chaîne qui représente le nom d'une colonne de clé dans la table de sortie utilisée
pour contenir une « clé » d'identification à partir des enregistrements d'entrée. Elle est utilisée pour
identifier l'enregistrement dont provient le géocode.
in_keyexpr est une expression dont la valeur (table d'entrée) est insérée dans l'enregistrement de sortie.
variable_name est le nom d'une variable qui contient une géométrie simple.
Symbol_expr est une expression qui spécifie le symbole à utiliser lorsque vous affichez un point à partir
de la colonne de géométrie. Reportez-vous à la section Clause Symbol pour plus d'informations.
Street_column est un alias qui représente le nom de la colonne qui contient le résultat pour la rue.
Municipality_column est une chaîne qui représente le nom de la colonne qui contient le résultat pour la
municipalité.
CountrySubdiv_column est une chaîne qui représente le nom de la colonne qui contient le résultat pour
la sous-division de pays.
PostalCode_column est une chaîne qui représente le nom de la colonne qui contient le résultat pour le
code postal.
CountrySecondarySubdiv_column est une chaîne qui représente le nom de la colonne qui contient le
résultat pour la sous-division secondaire de pays.
SecondaryPostalCode_column est une chaîne qui représente le nom de la colonne qui contient le résultat
pour le code postal secondaire.
Placename_column est une chaîne qui représente le nom de la colonne qui contient le résultat pour le
nom d'un lieu d'intérêt.
Référence
343
Instruction Geocode
MunicipalitySubdiv_column est une chaîne qui représente le nom de la colonne qui contient le résultat
pour la sous-division de municipalité.
Country_column est une chaîne qui représente le nom de la colonne qui contient le résultat pour le pays.
ResultCode_column est une chaîne qui représente le nom de la colonne qui contient le code de résultat
généré par le géocodeur.
Latitude_column est une chaîne qui représente le nom de la colonne (valeur décimale ou à virgule
flottante) qui contient le résultat pour la latitude.
Longitude_column est une chaîne qui représente le nom de la colonne (valeur décimale ou à virgule
flottante) qui contient le résultat pour la longitude.
colname est une chaîne qui représente le nom de la colonne pour un résultat spécifique au géocodeur.
geocoder_keyname est une chaîne qui représente le nom d'un élément de géocodeur spécifique au
pays. Ces éléments sont décrits par le géocodeur spécifique.
candidates_expr est une expression qui spécifie le nombre de candidats à renvoyer dans une session
de géocodage interactive.
Description
Toute instruction Geocode doit comprendre une clause Input et une clause Output. Le paramètre
input_tablename est facultatif. En revanche, si une table n'est pas spécifiée, l'opération de géocodage
qui en résulte est effectuée sur un ensemble d'entrées de chaîne (variables ou constantes) afin qu'une
adresse unique soit géocodée dans chaque demande. Le paramètre output_tablename est également
facultatif. Reportez-vous à la section ci-dessous : Entrée et sortie basées sur les tables ou non.
Clause Input
La clause Input est requise car une requête de géocodage nécessite quelques données d'entrée.
Un pays doit être indiqué en tant qu'argument explicite ou en tant que colonne dans input_tablename.
Lorsqu'un simple pays est utilisé, il peut s'agir d'une chaîne de constante s'il n'y a pas de données
disponibles. Les codes ISO à trois lettres des pays doivent être utilisés.
La liste des champs à inclure du paramètre input_table à géocoder doit comprendre au moins une valeur.
Plus il y a d'expressions incluses, plus le résultat du géocodage est précis.
Clause Output
La clause Output est nécessaire, car sans elle la commande entière ne renvoie rien.
Into Table indique que la clause Output fait référence à des colonnes dans la table output_table, qui
doit être accessible en écriture. Si elle n'est pas spécifiée, les clauses désignent le paramètre input_table.
Si les colonnes d'entrée doivent être mises à jour, elles doivent être spécifiées pour l'entrée ET pour la
sortie.
Key est utilisé avec Into Table. Cette clause crée une relation entre les colonnes de clé dans la table
d'entrée et la table de sortie.
Variable indique que le résultat de la géométrie de l'opération de géocodage est stocké dans une variable
définie dans variable_name. Lorsque vous utilisez cette option de sortie, notez que si l'entrée est une
table, seul le premier enregistrement est traité et les autres enregistrements ne sont pas pris en compte.
344
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Point indique que le résultat géographique du géocodage doit être stocké dans la table ou la variable.
Dans le cas d'une table, cela implique que la table soit cartographiable.
Pour stocker le point enregistré dans la colonne de l'objet, spécifiez Point ou Point On (« On » est la
valeur par défaut). Le symbole par défaut actuel est utilisé. Pour renvoyer le même résultat en utilisant
un symbole spécifique, spécifiez Point On Symbol symbol_expr. Si vous ne souhaitez pas stocker le
point dans la colonne de l'objet, spécifiez Point Off. Que vous souhaitiez que l'objet soit créé ou non,
vous pouvez toujours stocker les valeurs x et y dans des colonnes de nombre réel. À cet effet, spécifiez
ces colonnes sous la forme Latitude = latitude_column Longitude = longitude_column.
Le reste des données de sortie spécifie les colonnes de la table de sortie dans lesquelles les valeurs
renvoyées par le géocodeur connu sont stockées. En général, elles peuvent être plus spécifiques que
l'entrée. Par exemple, il est possible de géocoder une adresse avec simplement un nom d'entreprise
comme « MapInfo » et le code postal « 12180 ». Cependant, bien d'autres éléments sont renvoyés dans
la sortie. L'extension Columns permet de renvoyer les données spécifiques au géocodeur. L'utilisateur
doit connaître le nom des clés définies par les géocodeurs.
Entrée et sortie basées sur les tables ou non
L'instruction Geocode peut être utilisée avec toute combinaison d'entrées et de sorties basées sur des
tables ou non. Si vous choisissez d'utiliser une entrée basée sur une table, vous pouvez diriger la sortie
vers une table nouvelle ou existante, ou vers une variable. Si la sortie est une variable, seul le premier
enregistrement est traité et la seule valeur stockée est l'objet géographique.
Si vous choisissez une entrée qui n'est pas basée sur une table, les valeurs de l'opération doivent être
des chaînes d'expression (pas des noms de colonne), de variable ou de constante. La sortie peut être
placée dans une table ou affectée à une variable.
Clause Interactive
Interactive [ On | Off ] est un mot-clé facultatif qui contrôle si une boîte de dialogue doit être affichée si
plusieurs candidats sont renvoyés pour chaque adresse. Lorsque cela se produit, l'utilisateur est invité
à sélectionner, re-spécifier, ignorer ou annuler l'opération.
Il lui est demandé de déterminer les choix les plus appropriés compte tenu de la possibilité d'ignorer
cette entrée. Lorsque la valeur On est spécifiée, la boîte de dialogue s'affiche en pareilles situations.
Lorsque la valeur Off est spécifiée, si plusieurs correspondances sont générées, il est possible d'accepter
le premier candidat ou aucun, ce qui signifie que l'enregistrement est ignoré. La valeur par défaut est
d'ignorer l'enregistrement.
Si le mot-clé Interactive n'est pas inclus, il est équivalent à Interactive Off None et aucune option ne
peut être spécifiée. Si le mot-clé Interactive est indiqué, la valeur par défaut est On.
• Le mot-clé Interactive est équivalent à Interactive On. Lorsque aucune valeur n'est fournie pour Max,
la valeur par défaut est de 3 (trois) candidats à renvoyer.
• Interactive On Max Candidates All renvoie tous les candidats.
• Interactive On Max Candidates 4* myMBVariable/6 renvoie le nombre de candidats résultant de
l'évaluation de l'expression.
• Interactive Off est équivalent à Interactive Off None.
• Interactive Off First renvoie le premier candidat de la liste.
Référence
345
Fonction GeocodeInfo( )
Le paramètre CloseMatchesOnly définit le service de géocodage de sorte qu'il ne renvoie que les
correspondances proches définies par le serveur. Si le paramètre CloseMatchesOnly est défini sur
Off, tous les résultats sont renvoyés jusqu'au nombre défini dans Max Candidates avec les résultats
considérés comme des correspondances proches et marqués comme tels.
Exemples
L'exemple ci-dessous présente une demande de géocodage à l'aide de la table nystreets et en spécifiant
l'utilisation de la ville, du nom de la rue, de l'État et du code postal.
Geocode connectionHandle Input Table nystreets municipality=city,
street=StreetName, countrysubdivision=state, postalcode=zip,
country="usa"
OUTPUT StreetName=street, address=municipality
Cet exemple illustre une demande de géocodage qui utilise la table nystreets et spécifie un symbole
pour afficher la sortie.
Geocode connectionHandle Input Table nystreets street=StreetName,
country="usa"
Output Point Symbol MakeFontSymbol(65, 255 ,24,"MapInfo
Cartographic",32,0), StreetName=street
Cet exemple envoie une demande avec la clause Interactive définie sur la valeur On. La valeur renvoyée
est placée dans la colonne de rue.
Geocode connectionHandle Input Table nystreets street=StreetName,
country="usa"
Output Point Symbol MakeFontSymbol(65, 255 ,24,"MapInfo
Cartographic",32,0),
StreetName=street Interactive on Max Candidates 5
L'exemple ci-dessous affiche une demande de géocodage sans utiliser de table et en générant les
résultats dans une variable.
Geocode connectionHandle Input street="1 Global View", country="usa",
countrysubdivison="NY", municipality="Troy"
Output Variable outvar
Voir également
Instruction Open Connection
Fonction GeocodeInfo( )
Objectif
Renvoie tous les attributs définis pour une connexion à l'aide de l'instruction Set Connection Geocode.
De plus, GeocodeInfo( ) peut également renvoyer des valeurs de statut à partir de la dernière commande
de géocodage exécutée à l'aide de chaque connexion. Il y a également un attribut servant à gérer le
nombre maximal d'adresses que le serveur permet d'envoyer simultanément au service. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
GeoCodeInfo( connection_handle, attribute )
connection_handle est un entier.
346
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
attribute est un code d'entier qui indique le type d'informations à renvoyer.
Valeur renvoyée
Nombre à virgule flottante, entier, entier court, valeur logique ou chaîne, selon le paramètre attribut.
Description
La fonction GeoCodeInfo( ) renvoie les propriétés proposées par défaut par la connexion ou les propriétés
modifiées à l'aide de Set GeoCode. Comme de nombreuses fonctions de ce type dans MapBasic, les
valeurs renvoyées varient en fonction du paramètre attribute. Tous les codes de ces valeurs sont
répertoriés dans MAPBASIC.DEF.
Valeur de attribute
ID
Valeur renvoyée par GeoCodeInfo( )
GEOCODE_STREET_NAME
1
Valeur logique qui indique si une correspondance est
définie ou non pour StreetName.
GEOCODE_STREET_NUMBER
2
Valeur logique qui indique si une correspondance est
définie ou non pour StreetNumber.
GEOCODE_MUNICIPALITY
3
Valeur logique qui indique si une correspondance est
définie ou non pour la municipalité.
GEOCODE_MUNICIPALITY2
4
Valeur logique qui indique si une correspondance est
définie ou non pour MunicipalitySubdivision.
GEOCODE_COUNTRY_SUBDIVISION 5
Valeur logique qui indique si une correspondance est
définie pour CountrySubdivision.
GEOCODE_COUNTRY_SUBDIVISION2 6
Valeur logique qui indique si une correspondance est
définie ou non pour CountrySecondarySubdivision.
GEOCODE_POSTAL_CODE
7
Valeur logique qui indique si une correspondance est
définie ou non pour PostalCode.
GEOCODE_DICTIONARY
9
Valeur entière courte qui représente l'une de ces cinq
valeurs :
•
•
•
•
•
GEOCODE_BATCH_SIZE
10
GEOCODE_FALLBACK_GEOGRAPHIC 11
Référence
DICTIONARY_ALL
DICTIONARY_ADDRESS_ONLY
DICTIONARY_USER_ONLY
DICTIONARY_PREFER_ADDRESS
DICTIONARY_PREFER_USER
Valeur entière qui représente la taille du lot.
Valeur logique qui indique si le géocodeur doit se reporter
sur un centroïde géographique lorsque les autres options
échouent.
347
Fonction GeocodeInfo( )
Valeur de attribute
ID
Valeur renvoyée par GeoCodeInfo( )
GEOCODE_FALLBACK_POSTAL
12
Valeur logique qui indique si le géocodeur doit se reporter
sur un centroïde postal lorsque les autres options
échouent.
GEOCODE_OFFSET_CENTER
13
Valeur flottante qui représente la distance à partir du
centre de la route à laquelle le point est renvoyé.
GEOCODE_OFFSET_CENTER_UNITS 14
Valeur de chaîne qui représente les unités des valeurs
du centre de la route.
GEOCODE_OFFSET_END
15
Valeur flottante qui représente la distance à partir de
l'extrémité de la route à laquelle le point est renvoyé.
GEOCODE_OFFSET_END_UNITS
16
Valeur de chaîne qui représente les unités de décalage
à partir de la valeur de l'extrémité de la rue.
GEOCODE_MIXED_CASE
17
Valeur logique qui indique si MapInfo Professional doit
formater les chaînes renvoyées avec une combinaison
de minuscules/majuscules ou si elles doivent rester en
majuscules. Cette option n'est pas forcément disponible
pour tous les pays. L'option utilise un algorithme spécifique
au pays, qui connaît les parties d'adresse et les éléments
à mettre en majuscules ou en minuscules.
GEOCODE_RESULT_MARK_MULTIPLE 18
Valeur logique qui indique si MapInfo Professional doit
modifier le code de résultat renvoyé par le serveur en
ajoutant un indicateur au code de résultat qui sert de base
au résultat, selon un choix arbitraire entre plusieurs
correspondances proches. Cet indicateur n'affecte le
comportement que dans certaines circonstances :
1. Le géocodage n'était pas interactif et il était donc
impossible d'afficher la boîte de dialogue Candidats.
2. L'indicateur de commande non interactif devait
sélectionner le premier candidat renvoyé au lieu de
n'en sélectionner aucun. (Reportez-vous à la
commande de géocodage First). MapInfo Professional
est obligé de sélectionner l'un des candidats.
3. La demande réelle a renvoyé plusieurs
correspondances proches pour un enregistrement en
particulier.
GEOCODE_COUNT_GEOCODED
348
19
Valeur entière qui représente le nombre d'enregistrements
géocodés au cours de la dernière opération.
GEOCODE_COUNT_NOTGEOCODED 20
Valeur entière qui représente le nombre d'enregistrements
qui n'ont pas été géocodés au cours de la dernière
opération.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur de attribute
ID
Valeur renvoyée par GeoCodeInfo( )
GEOCODE_UNABLE_TO_CONVERT_DATA 21
Valeur logique qui indique si une colonne n'a pas été mise
à jour au cours de la dernière opération en raison d'un
problème lié au type de données. Ce cas se produit
lorsque des colonnes d'entier sont spécifiées par erreur
pour des codes postaux non numériques.
GEOCODE_MAX_BATCH_SIZE
22
Valeur entière qui représente le nombre maximal
d'enregistrements (par exemple, d'adresses) dont l'envoi
simultané au service est autorisé par le serveur.
GEOCODE_PASSTHROUGH
100 Entier qui spécifie le nombre d'éléments de fonction
d'intercommunication définis pour cette connexion. Il y a
deux éléments pour chaque paire. Cette valeur est utilisée
pour savoir quand arrêter l'énumération de ces valeurs
sans erreur.
GEOCODE_PASSTHROUGH + n
100 Valeurs de chaîne qui représentent le nom et la valeur
pour chaque paire de fonction d'intercommunication. n
est valide jusqu'à la valeur renvoyée par
GEOCODE_INFO_PASSTHROUGH.
Exemple
Le segment de code MapBasic ci-dessous imprime les contraintes d'utilitaire d'emplacement Envinsa
dans la fenêtre Message de MapInfo Professional :
Include "MapBasic.Def"
declare sub main
sub main
dim iConnect as integer
Open Connection Service Geocode Envinsa
URL
"http://envinsa_server:8066/LocationUtility/services/LocationUtility"
User "john"
Password "green"
into variable iConnect
Print "Geocode Max Batch Size: " +
GeoCodeInfo(iConnect,GEOCODE_MAX_BATCH_SIZE)
end sub
Voir également
Instruction Open Connection, Instruction Set Connection Geocode
Instruction Get
Objectif
Lit des données à partir d'un fichier ouvert en mode d'accès binaire ou direct.
Référence
349
Instruction Get
Syntaxe
Get [#] filenum, [ position ], var_name
filenum est le numéro d'un fichier ouvert via une instruction Open File.
position est la position du fichier dans lequel lire les données.
var_name est le nom d'une variable où MapBasic stockera les résultats.
Description
L'instruction Get lit des données à partir d'un fichier ouvert. Le comportement de l'instruction Get et
l'ensemble des paramètres qu'elle attend sont affectés par les options définies dans l'instruction Open
File précédente.
Si l'instruction Open File a défini un accès Random au fichier, la clause Position de l'instruction Get
peut être utilisée pour indiquer l'enregistrement de données qui doit être lu. Lorsque le fichier est ouvert,
la position du fichier indique le premier enregistrement du fichier (enregistrement 1). Une instruction Get
incrémente la position du fichier automatiquement, et ainsi la clause Position n'est pas nécessaire en
cas d'accès séquentiel. Cependant, vous pouvez utiliser la clause Position pour définir la position de
l'enregistrement avant la lecture de celui-ci.
Si l'instruction Open File définit un accès Binary au fichier (accès binaire), une seule variable à la fois
est accessible en lecture. Le type de données lu dépend du format d'ordre des octets du fichier ainsi
que de la variable var_name utilisée pour stocker les résultats. Si le type de variable est entier, 4 octets
du fichier binaire seront alors lus et convertis en une variable MapBasic. Les variables sont stockées de
la façon suivante :
Variable Type
Stockage dans le fichier
Logique
1 octet, (égal ou différent de 0).
Entier court
Entier de 2 octets
Entier
Entier de 4 octets
Nombre à virgule flottante
Format IEEE sur 8 octets
Chaîne
Longueur d'une chaîne plus un octet pour un
terminateur de chaîne 0.
Date
Quatre octets : entier court pour l'année, octet pour
le mois, octet pour le jour.
Autres types de données
Ne peuvent être lus.
Avec l'accès binaire au fichier, le paramètre position est utilisé pour positionner le pointeur de fichier sur
un décalage précis dans le fichier. Lorsque le fichier est ouvert, le paramètre position est défini sur un
(début du fichier). Lors de l'exécution d'une instruction Get, la position est incrémentée du même volume
de données lues. Si la clause Position n'est pas utilisée, l'instruction Get lit les données à partir de la
position du pointeur de fichier.
Remarque: L'instruction Get nécessite deux virgules, même si le paramètre facultatif position est omis.
350
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Si le fichier était ouvert en mode binaire, l'instruction Get ne peut pas définir une variable de chaîne de
longueur variable. Toute variable de chaîne utilisée dans l'instruction Get doit avoir une longueur fixe.
Voir également
instruction Open File, instruction Put
Fonction GetCurrentPath$( )
Objectif
Renvoie le chemin d'accès utilisé par une boîte de dialogue Fichier MapInfo Professional. L'emplacement
de chaque type de table ou de fichier est mémorisé.
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
GetCurrentPath$( current_path_id )
current_path_id est l'une des valeurs suivantes :
PREFERENCE_PATH_TABLE (0)
PREFERENCE_PATH_WORKSPACE (1)
PREFERENCE_PATH_MBX (2)
PREFERENCE_PATH_IMPORT (3)
PREFERENCE_PATH_SQLQUERY (4)
PREFERENCE_PATH_THEMETHEMPLATE (5)
PREFERENCE_PATH_MIQUERY (6)
PREFERENCE_PATH_NEWGRID (7)
PREFERENCE_PATH_CRYSTAL (8)
PREFERENCE_PATH_GRAPHSUPPORT (9)
PREFERENCE_PATH_REMOTETABLE (10)
PREFERENCE_PATH_SHAPEFILE (11)
PREFERENCE_PATH_WFSTABLE (12)
PREFERENCE_PATH_WMSTABLE (13)
Valeur renvoyée
Chaîne
Description
Avec l'identifiant d'un répertoire spécial de préférences MapInfo, la fonction GetCurrentPath$( ) renvoie
le chemin de ce répertoire. Ce répertoire par défaut est un exemple de répertoire spécial MapInfo où
MapInfo Professional écrit les nouvelles tables MapInfo natives.
Remarque: La valeur renvoyée change chaque fois qu'un utilisateur modifie le chemin d'accès de la
boîte de dialogue et termine l'opération (en cas d'annulation, la modification n'est pas prise
en compte).
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
include "mapbasic.def"
declare sub main
Référence
351
Fonction GetDate( )
sub main
dim sMiPrfFile as string
sMiPrfFile = GetCurrentPath$( PREFERENCE_PATH_WORKSPACE)
Print sMiPrfFile
end sub
Voir également
Fonction GetPreferencePath$( )
Fonction GetDate( )
Objectif
Renvoie le composant de date d'un élément de date/heure. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
GetDate( DateTime )
Valeur renvoyée
Date représentant une valeur entière stockée sur 4 octets : deux octets pour l'année, un octet pour le
mois et un autre pour le jour.
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim dtX as datetime
dim Z as date
dtX = "03/07/2007 12:09:09.000 AM"
Z = GetDate(dtX)
Print FormatDate$(Z)
Voir également
Fonction GetTime()
Fonction GetFolderPath$( )
Objectif
Renvoie le chemin d'accès d'un répertoire spécial MapInfo Professional ou Windows. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
GetFolderPath$( folder_id )
folder_id est l'une des valeurs suivantes :
FOLDER_MI_APPDATA (-1)
FOLDER_MI_LOCAL_APPDATA (-2)
FOLDER_MI_PREFERENCE (-3)
FOLDER_MI_COMMON_APPDATA (-4)
352
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
FOLDER_APPDATA (26)
FOLDER_LOCAL_APPDATA (28)
FOLDER_COMMON_APPDATA (35)
FOLDER_COMMON_DOCS (46)
FOLDER_MYDOCS (5)
FOLDER_MYPICS (39)
Valeur renvoyée
Chaîne
Description
Compte tenu de l'ID d'un répertoire spécial MapInfo ou Windows, la fonction GetFolderPath$( ) renvoie
le chemin d'accès au répertoire. Le répertoire Mes documents constitue un exemple de répertoire spécial
Windows. Le répertoire de préférences est un exemple de répertoire spécial MapInfo. C'est l'emplacement
par défaut où MapInfo Professional écrit le fichier de préférences.
L'emplacement de bon nombre de ces répertoires varie d'une version de Windows à une autre. Cela
peut également dépendre de l'utilisateur connecté. Notez que les dossiers FOLDER_MI_APPDATA (-1),
FOLDER_MI_LOCAL_APPDATA (-2) et FOLDER_MI_COMMON_APPDATA (-4) n'existent peut-être
pas. Avant de tenter d'accéder à ces répertoires, vérifiez s'ils existent à l'aide la Fonction FileExists(
). FOLDER_MI_PREFERENCE (-3) existe toujours.
Les identifiants qui commencent par FOLDER_MI renvoient le chemin d'accès aux répertoires spécifiques
à MapInfo Professional. Les autres identifiants renvoient le chemin d'accès aux répertoires Windows et
correspondent aux identifiants définis pour la fonction d'API WIN32 SHGetFolderPath. Les plus courants
de ces identifiants ont été définis pour faciliter l'utilisation des applications MapBasic. Tout identifiant
valide pour SHGetFolderPath fonctionnera avec GetFolderPath$( ).
Exemple
include "mapbasic.def"
declare sub main
sub main
dim sMiPrfFile as string
sMiPrfFile = GetFolderPath$(FOLDER_MI_PREFERENCE)
Print sMiPrfFile
end subet128
Voir également
Fonction LocateFile$( )
Fonction GetGridCellValue( )
Objectif
Détermine la valeur d'une cellule de grille si celle-ci n'est pas nulle.
Syntaxe
GetGridCellValue( table_id, x_pixel, y_pixel )
Référence
353
Fonction GetMetadata$( )
table_id est une chaîne qui représente un nom de table, un numéro de table entier positif ou 0 (zéro).
La table doit être une table de grille.
x_pixel est le nombre entier de la coordonnée X de la cellule de la grille. Le nombre de pixels commence
à 0. La valeur maximale de pixels est (pixel_width-1). Elle est déterminée en appelant
RasterTableInfo(...RASTER_TAB_INFO_WIDTH).
y_pixel est le nombre entier de la coordonnée Y de la cellule de la grille. Le nombre de pixels commence
à 0. La valeur maximale de pixels est (pixel_height-1). Elle est déterminée en appelant
RasterTableInfo(...RASTER_TAB_INFO_HEIGHT).
Valeur renvoyée
Un nombre à virgule flottante est renvoyé. Il représente la valeur d'une cellule spécifiée dans la table si
la cellule n'est pas nulle. La fonction IsGridCellNull() doit être utilisée avant d'être appelée pour déterminer
si la cellule est nulle ou si elle contient une valeur.
Voir également
Instruction Create Grid, GridTableInfo( ), Fonction IsGridCellNull( ), Fonction RasterTableInfo( )
Fonction GetMetadata$( )
Objectif
Extrait les métadonnées d'une table. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
GetMetadata$( table_name, key_name )
table_name est le nom d'une table ouverte, spécifiée sous forme de nom de table explicite (par exemple,
World) ou de chaîne qui représente un nom de table (par exemple, "World").
key_name est une chaîne qui représente le nom d'une clé de métadonnées.
Valeur renvoyée
Chaîne qui comporte jusqu'à 239 octets. Si la clé n'existe pas ou si aucune valeur n'est définie pour
celle-ci, MapInfo Professional renvoie une chaîne vide.
Description
Cette fonction renvoie une valeur de métadonnées à partir d'une table. Pour plus d'informations sur les
requêtes de métadonnées d'une table, reportez-vous à la section Instruction Metadata ou consultez
le Guide de l'utilisateur MapBasic.
354
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
Si la table Parcels comporte une clé de métadonnée appelée "\Copyright", l'instruction ci-dessous lit la
valeur de la clé :
Print GetMetadata$(Parcels, "\Copyright")
Voir également
Instruction Metadata
Fonction GetPreferencePath$( )
Objectif
Renvoie le chemin d'accès stocké dans les préférences MapInfo Professional pour chaque type de table
ou de boîte de dialogue de fichier. Ce chemin d'accès est utilisé pour initialiser la boîte de dialogue la
première fois que celle-ci est ouverte lors d'une session MapInfo Professional ou suite à la modification
de ce chemin d'accès dans la boîte de dialogue Préférences.
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
GetPreferencePath$( preference_path_id )
preference_path_id est l'une des valeurs suivantes :
•
•
•
•
•
•
•
•
•
•
•
•
•
PREFERENCE_PATH_TABLE (0)
PREFERENCE_PATH_WORKSPACE (1)
PREFERENCE_PATH_MBX (2)
PREFERENCE_PATH_IMPORT (3)
PREFERENCE_PATH_SQLQUERY (4)
PREFERENCE_PATH_THEMETHEMPLATE (5)
PREFERENCE_PATH_MIQUERY (6)
PREFERENCE_PATH_NEWGRID (7)
PREFERENCE_PATH_CRYSTAL (8)
PREFERENCE_PATH_GRAPHSUPPORT (9)
PREFERENCE_PATH_REMOTETABLE (11)
PREFERENCE_PATH_WFSTABLE (12)
PREFERENCE_PATH_WMSTABLE (13)
Valeur renvoyée
Chaîne
Description
Avec l'ID d'un répertoire spécial de préférences MapInfo, la fonction GetPreferencePath$( ) renvoie le
chemin de ce répertoire. Ce répertoire par défaut est un exemple de répertoire spécial MapInfo où
MapInfo Professional écrit les nouvelles tables MapInfo natives.
Référence
355
Fonction GetSeamlessSheet( )
Exemple
include "mapbasic.def"
declare sub main
sub main
dim sMiPrfFile as string
sMiPrfFile = GetPreferencePath$( PREFERENCE_PATH_WORKSPACE)
Print sMiPrfFile
end sub
Voir également
Fonction GetCurrentPath$( ), Fonction LocateFile$( )
Fonction GetSeamlessSheet( )
Objectif
Invite l'utilisateur à sélectionner une feuille dans une table logique, puis renvoie le nom de la feuille
sélectionnée. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
GetSeamlessSheet( table_name )
table_name est le nom d'une table logique ouverte.
Valeur renvoyée
Chaîne qui représente un nom de table (ou une chaîne vide si l'utilisateur annule l'opération).
Description
Cette fonction affiche une boîte de dialogue qui répertorie toutes les feuilles qui composent une table
logique. Si l'utilisateur sélectionne une feuille et clique sur OK, cette fonction renvoie le nom de la table
sélectionnée par l'utilisateur. Si l'utilisateur annule l'opération, cette fonction renvoie une chaîne vide.
Exemple
Sub Browse_A_Table(ByVal s_tab_name As String)
Dim s_sheet As String
If TableInfo(s_tab_name, TAB_INFO_SEAMLESS) Then
s_sheet = GetSeamlessSheet(s_tab_name)
If s_sheet <> "" Then
Browse * From s_sheet
End If
Else
Browse * from s_tab_name
End If
End Sub
Voir également
Instruction Set Table, Fonction TableInfo( )
356
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction GetTime()
Objectif
Renvoie le composant d'heure d'un élément de date/heure. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
GetTime( DateTime )
Valeur renvoyée
Heure correspondant à une valeur entière stockée sur 5 octets : 2 octets pour les millisecondes, 1 octet
pour les secondes, 1 octet pour les minutes et 1 octet pour les heures.
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim dtX as datetime
dim Z as time
dtX = "03/07/2007 12:09:09.000 AM"
Z = GetTime(dtX)
Print FormatTime$(Z,"hh:mm:ss.fff tt")
Voir également
Fonction FormatDate$( ), Fonction FormatTime$( ), Fonction NumberToDateTime( ),Fonction
GetDate( )
Instruction Global
Objectif
Définit une ou plusieurs variables globales.
Syntaxe
Global var_name [ , var_name... ] As var_type
[ , var_name... ] As var_type... ]
var_name est le nom d'une variable globale à définir.
var_type est un entier, un nombre à virgule flottante, une date, une valeur logique, une chaîne ou une
variable Type personnalisée.
Description
Une instruction Global définit une ou plusieurs variables globales.Les instructions Global ne peuvent
apparaître qu'en dehors d'une sous-procédure.
La syntaxe de l'instruction Global est identique à celle de l'instruction Dim, la différence étant que les
variables définies par une instruction Global ont une portée globale, alors que celles définies via une
Référence
357
Instruction Goto
instruction Dim sont locales. Une variable locale peut être examinée ou modifiée uniquement par la
sous-procédure qui l'a définie, alors que n'importe quelle sous-procédure d'un programme peut examiner
ou modifier une variable globale. Une sous-procédure peut définir des variables locales avec des noms
correspondant à ceux des variables globales. Dans ce cas-là, les propres variables locales de la
sous-procédure prévalent (par exemple, dans la sous-procédure, les références au nom d'une variable
utilisent la variable locale et non la variable globale du même nom). Les variables de tableau globales
peuvent être redimensionnées avec l'instruction ReDim. Les variables globales Windows sont « visibles
» par les autres applications Windows à travers les conversations DDE.
Exemple
Declare Sub testing( )
Declare Sub Main( )
Global gi_var As Integer
Sub Main( )
Call testing
Note Str$(gi_var) ' this displays "23"
End Sub
Sub testing( )
gi_var = 23
End Sub
Voir également
Instruction Dim, Instruction ReDim, Instruction Type, Fonction UBound( )
Instruction Goto
Objectif
Passe à un emplacement différent (dans la même procédure), identifié par une étiquette.
Restrictions
Vous ne pouvez pas exécuter d'instruction Goto à l'aide de la fenêtre MapBasic.
Syntaxe
Goto label
label est une étiquette qui apparaît à un autre endroit dans la même procédure.
Description
L'instruction Goto effectue un saut inconditionnel. L'exécution du programme se poursuit à la ligne
d'instruction identifiée par la valeur label. La valeur label, elle-même, devrait être précédée du caractère
deux-points. En revanche, le nom de la valeur label doit apparaître dans l'instruction Goto sans le
caractère deux-points.
En règle générale, l'instruction Goto ne devrait pas être utilisée pour quitter une boucle prématurément.
L'instruction Exit Do et l'instruction Exit For permettent de quitter une boucle. De même, vous ne
devriez pas utiliser une instruction Goto pour passer au corps d'une boucle.
Une instruction Goto ne peut passer à la valeur label que dans la même procédure.
358
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
Goto endproc
...
endproc: End Program
Voir également
Instruction Do Case...End Case, Instruction Do...Loop , Instruction For...Next, Instruction OnError
, Instruction Resume
Instruction Graph
Objectif
Ouvre une nouvelle fenêtre Graphique. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
Graph
label_column, expr ["label_text"][ , ... ]
From table
[ Position ( x, y ) [ Units paperunits ] ]
[ Width window_width [ Units paperunits ] ]
[ Height window_height [ Units paperunits ] ]
[ Min | Max ]
[ Using template_file [ Restore ] [ Series In Columns ] ]
label_column est le nom de la colonne à utiliser pour étiqueter l'axe des Y.
expr est une expression qui fournit les valeurs à représenter graphiquement.
label_text est le texte qui apparaît pour chaque étiquette à la place du nom de la colonne
table est le nom d'une table ouverte.
paperunitsest le nom d'une unité papier (par exemple, « in »).
x, y spécifie la position du coin supérieur gauche de la fenêtre Graphique, en unités papier. Pour obtenir
des détails sur les unités papier, consultez la section Instruction Set Paper Units.
window_width et window_height définissent la taille de la fenêtre Graphique, en unités papier. Pour
obtenir une liste des unités papier, reportez-vous à la section Instruction Set Paper Units.
template_file est un fichier de modèle de graphique valide.
Description
Si la clause Using est présente et que template_file indique un fichier de modèle de graphique valide,
un graphique est créé selon le fichier de modèle spécifié. Autrement, un graphique de version 5.0 est
créé. Si la clause Restore est incluse, le texte du titre dans le fichier de modèle est utilisé dans la fenêtre
Graphique. Autrement, le texte par défaut est utilisé pour chaque titre du graphique. Le mot-clé Restore
est inclus lorsque vous écrivez la commande Graphique dans un document. Aussi, lorsque le document
est ouvert, le texte du titre est restauré exactement tel qu'il était lorsque le document a été enregistré.
Référence
359
Fonction GridTableInfo( )
Le mot-clé Restore n'est pas utilisé dans la commande Graphique créée par l'Assistant de création de
graphique. Ainsi, le texte par défaut est utilisé pour chaque titre. Si Series In Columns est inclus, la
série de graphique est basée sur les colonnes de la table. Autrement, la série est basée sur les lignes
de la table.
L'instruction Graph ajoute une nouvelle fenêtre Graphique à l'écran et affiche la table spécifiée. Le
graphique s'affiche sous forme de graphique à barres pivotant. Les instructions Set Graph qui suivent
peuvent reconfigurer les aspects spécifiques du graphique (par exemple, la rotation des graphiques, le
type de graphique, le titre, etc.).
La boîte de dialogue Fenêtre > Graphique de MapInfo Professional est limitée dans le sens où elle
permet uniquement à l'utilisateur de sélectionner des noms de colonne à représenter graphiquement.
Cependant, l'instruction Graph de MapBasic est capable de représenter graphiquement des expressions
entières qui comprennent des noms de colonne. De même, même si la boîte de dialogue Graphique
ne permet à l'utilisateur de sélectionner que quatre colonnes à représenter graphiquement, l'instruction
Graph peut créer un graphique comportant un maximum de 255 colonnes.
Si l'instruction Graph comprend le mot-clé facultatif Max, la fenêtre Graphique qui en résulte est agrandie
et occupe la totalité de l'espace disponible sur l'écran pour MapInfo Professional. Inversement, si
l'instruction Graph inclut le mot-clé Min, la fenêtre est réduite.
Exemple (graphiques de version 5.5 et ultérieure)
Graph State_Name, Pop_1980, Pop_1990, Num_Hh_80 From States Using
"C:\Program Files\MapInfo\GRAPHSUPPORT\Templates\Column\Percent.3tf"
Graph City, Tot_hu, Tot_pop From City_125 Using "C:\Program
Files\MapInfo\GRAPHSUPPORT\Templates\Bar\Clustered.3tf" Series In Columns
Exemple (graphiques de version antérieure à la version 5.5)
Graph Country, Population From Selection
Voir également
Instruction Set Graph
Fonction GridTableInfo( )
Objectif
Renvoie des informations relatives à une table grille.
Syntaxe
GridTableInfo( table_id, attribute )
table_id est une chaîne qui représente un nom de table, un numéro de table entier positif ou 0 (zéro).
La table doit être une table de grille.
attribute est un code d'entier qui indique l'aspect de la table grille à renvoyer.
Valeur renvoyée
Chaîne, entier court, entier ou valeur logique selon le paramètre attribute spécifié.
360
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Le paramètre attribute peut être n'importe quelle valeur qui figure dans le tableau ci-dessous. Les codes
dans la colonne de gauche (par exemple, GRID_TAB_INFO_) sont définis dans MAPBASIC.DEF.
Code attribute
ID
GridTableInfo() renvoie :
GRID_TAB_INFO_MIN_VALUE
1
Résultat à virgule flottante représentant la valeur de cellule
de grille minimale dans le fichier
GRID_TAB_INFO_MAX_VALUE
2
Résultat à virgule flottante représentant la valeur de cellule
de grille maximale dans le fichier
GRID_TAB_INFO_HAS_HILLSHADE 3
Résultat logique : TRUE si le fichier grille contient des
informations d'analyse. Cet indicateur ne dépend pas de
l'affichage du fichier avec analyse ou non.
Voir également
Instruction Create Grid, Fonction GetGridCellValue( ), Fonction IsGridCellNull( ), Fonction
RasterTableInfo( )
Fonction GroupLayerInfo
Objectif
Cette fonction renvoie des informations sur un groupe de couches précis de la carte.
Syntaxe
GroupLayerInfo ( map_window_id, group_layer_id, attribute )
map_window_id est un identifiant de fenêtre Carte.
group_layer_id est le numéro d'un groupe de couches de la fenêtre Carte (par exemple, 1 pour le premier
groupe) ou le nom d'un groupe de couches de la carte. Pour déterminer le nombre de groupes de couches
d'une fenêtre Carte, appelez la fonction MapperInfo( ).
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Valeur renvoyée
Dépend du paramètre attribute.
Description
Les attributs disponibles sont les suivants :
Valeur des paramètres window_id, ID
attribute
Description
GROUPLAYER_INFO_NAME
Renvoie une valeur de chaîne, qui correspond au nom du
groupe de couches.
Référence
1
361
Fonction HomeDirectory$( )
Valeur des paramètres window_id, ID
attribute
Description
GROUPLAYER_INFO_LAYERLIST_ID 2
Renvoie une valeur numérique, à savoir l'ID du groupe
de couches dans la liste correspondante (position occupée
par ce groupe dans la liste de couches).
GROUPLAYER_INFO_DISPLAY
Renvoie une valeur booléenne.
3
• GROUPLAYER_INFO_DISPLAY_ON (True si la couche
est visible (0))
• GROUPLAYER_INFO_DISPLAY_OFF (False si la
couche est invisible (non nulle))
GROUPLAYER_INFO_LAYERS
4
Renvoie le nombre de couches graphiques dans le groupe.
Cet attribut ignore les groupes de couches mais inclut
toutes les couches graphiques emboîtées.
GROUPLAYER_INFO_ALL_LAYERS 5
Renvoie le nombre de couches et de groupes de couches
(couches et groupes de couches emboîtés inclus).
GROUPLAYER_INFO_TOPLEVEL_LAYERS 6
Renvoie le nombre de couches graphiques ou de groupes
de couches situés au début de la liste des groupes de
couches.
GROUPLAYER_INFO_PARENT_GROUP_ID 7
Renvoie l'ID de groupe de couches du groupe contenant
ce groupe. Renvoie zéro (0) si le groupe de couches se
trouve dans la liste de niveau supérieur.
Les ID de groupes de couches sont compris entre zéro (0) et n, n étant le nombre de groupes de la liste
et zéro (0), le niveau supérieur ou « racine » de la liste de couches. Tous les attributs d'informations des
groupes de couches s'appliqueront à la racine de la liste, à l'exception de GROUPLAYER_INFO_DISPLAY
(3). GROUPLAYER_INFO_NAME (1) renvoie le nom de la carte (identique au titre de la fenêtre). La
couche Dessin est incluse dans tous les attributs servant à décompter le nombre de couches graphiques.
Indiquer un ID de fenêtre Carte égal à zéro (0) renvoie le nom de la fenêtre Carte, ainsi que le nom de
la couche Dessin sous la forme « cosmetic1 », « cosmetic2 ».
Voir également
Fonction LayerInfo( ), Fonction MapperInfo( )
Fonction HomeDirectory$( )
Objectif
Renvoie une chaîne indiquant le chemin d'accès au répertoire de base de l'utilisateur. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
HomeDirectory$( )
362
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur renvoyée
Chaîne
Description
La fonction HomeDirectory$( ) renvoie une chaîne qui indique le chemin d'accès au répertoire de base
de l'utilisateur.
L'importance du chemin d'accès au répertoire de base varie en fonction de la plate-forme matérielle de
l'utilisateur. Le tableau ci-dessous récapitule le processus de définition du chemin d'accès au répertoire
de base en fonction de la plate-forme.
Environnement
Définition du chemin d'accès au répertoire de
base
Windows
Chemin d'accès au répertoire Windows de
l'utilisateur.
Exemple
Dim s_home_dir As String
s_home_dir = HomeDirectory$( )
Voir également
Fonction ApplicationDirectory$( ), Fonction ProgramDirectory$( ), Fonction SystemInfo( )
Fonction HotlinkInfo( )
Objectif
Renvoie des informations sur une définition de liaison dynamique dans une couche de la carte. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
HotlinkInfo ( map_window_id, layer_number, hotlink_number, attribute )
map_window_id est un identifiant de fenêtre Carte.
layer_numbercorrespond au numéro d'une couche de la fenêtre Carte active (1 pour la couche supérieure,
par exemple). Pour déterminer le nombre de couches d'une fenêtre Carte, appelez la fonction
MapperInfo( ).
hotlink_number correspond à l'index de la définition de liaison dynamique sur laquelle porte la requête.
La première définition de liaison dynamique d'une couche dispose de l'index 1.
attribute représente l'une des valeurs suivantes :
Nom de la liaison dynamique
ID
Description
HOTLINK_INFO_EXPR
1
Renvoie l'expression de nom de fichier pour cette définition
de liaison dynamique.
Référence
363
Fonction Hour( )
Nom de la liaison dynamique
ID
Description
HOTLINK_INFO_MODE
2
Renvoie le mode de la définition de liaison dynamique,
c.-à-d. l'une des valeurs prédéfinies suivantes :
• HOTLINK_MODE_LABEL (0)
• HOTLINK_MODE_OBJ (1)
• HOTLINK_MODE_BOTH (2)
HOTLINK_INFO_RELATIVE
3
Renvoie TRUE si l'option de chemin relatif est activée
pour cette définition de liaison dynamique.
HOTLINK_INFO_ENABLED
4
Renvoie TRUE si cette définition de liaison dynamique
est activée.
HOTLINK_INFO_ALIAS
5
Renvoie une valeur TRUE si cette définition de liaison
dynamique est un alias.
Voir également
Instruction Set Map, Fonction LayerInfo( )
Fonction Hour( )
Objectif
Récupère le composant Hour d'une valeur Time sous forme de nombre entier (0-23). Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Hour ( Time )
Valeur renvoyée
Entier court
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim Z as time
dim iHour as integer
Z = CurDateTime()
iHour = Hour(Z)
Print iHour
Voir également
Fonction Minute( ), Fonction Second( )
364
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Instruction If...Then
Objectif
Décide quel groupe d'instructions exécuter (le cas échéant), selon la valeur actuelle d'une ou de plusieurs
expressions.
Syntaxe
If if_condition Then
if_statement_list
[ ElseIf elseif_condition Then
elseif_statement_list ]
[ ElseIf ... ]
[ Else
else_statement_list ]
End If
condition est évalue la valeur TRUE ou FALSE.
statement_list est une liste contenant ou non des instructions.
Restrictions
Vous ne pouvez pas exécuter l'instruction If...Then via la fenêtre MapBasic.
Description
L'instruction If...Then permet l'exécution conditionnelle de différents groupes d'instructions.
Dans sa forme la plus simple, l'instruction If n'inclut ni de clause ElseIf, ni de clause Else :
If if_condition Then
if_statement_list
End If
Avec cette disposition, MapBasic évalue la condition if_condition lors de l'exécution. Si la condition
if_condition est TRUE, MapBasic exécute la liste if_statement_list ; sinon, MapBasic ignore
if_statement_list.
Une instruction If peut aussi inclure la clause facultative Else :
If if_condition Then
if_statement_list
Else
else_statement_list
End If
Avec cette disposition, MapBasic exécute soit la liste if_statement_list (si la condition est TRUE) soit la
liste else_statement_list (si la condition est FALSE).
De plus, une instruction If peut inclure une ou plusieurs clauses ElseIf, à la suite de la clause If (et avant
la clause facultative Else) :
If if_condition Then
if_statement_list
ElseIf elseif_condition Then
Référence
365
Instruction Import
elseif_statement_list
Else
else_statement_list
End If
Avec cette disposition, MapBasic teste une série de deux conditions minimum, jusqu'à ce qu'une de ces
conditions renvoie TRUE ou jusqu'à ce que la clause Else ou End If soit atteinte. Si la condition
if_condition est TRUE, MapBasic exécute la liste if_statement_list, puis passe directement à l'instruction
qui se trouve à la suite de End If. Par contre, si la condition est FALSE, MapBasic évalue alors la condition
else_if_condition. Si cette condition est TRUE, MapBasic exécute la liste elseif_statement_list.
Une instruction If peut inclure au moins deux clauses ElseIf et vous permet ainsi de tester plusieurs
conditions possibles. Toutefois, si vous testez une condition parmi la multitude de conditions possibles,
l'instruction Do Case...End Case est plus appropriée qu'une instruction If associée à plusieurs clauses
ElseIf.
Exemple
Dim today As Date
Dim today_mon, today_day, yearcount As Integer
today = CurDate( ) ' get current date
today_mon = Month(today) ' get the month value
today_day = Day(today) ' get the day value (1-31)
If today_mon = 1 And today_day = 1 Then
Note "Happy New Year!"
yearcount = yearcount + 1
ElseIf today_mon = 2 And today_day = 14 Then
Note "Happy Valentine's Day!"
ElseIf today_mon = 12 And today_day = 25 Then
Note "Merry Christmas!"
Else
Note "Good day."
End If
Voir également
Instruction Do Case...End Case
Instruction Import
Objectif
Crée une nouvelle table MapInfo Professional en important un fichier exporté, tel qu'un fichier GML ou
DXF. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Voir Importation de fichiers MIF/MID, PICT, ou MapInfo pour DOS, Importation de fichiers DXF,
Importing GML Files ou Importation de fichiers GML.
Importation de fichiers MIF/MID, PICT, ou MapInfo pour DOS
Syntaxe
Import file_name
[ Type file_type ]
366
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
[ Into table_name ]
[ Overwrite ]
file_name est une chaîne qui définit le nom du fichier à importer.
file_type est une chaîne qui définit le format du fichier à importer (MIF, MBI, MMI, IMG, ou PICT).
table_name définit le nom de la nouvelle table à créer.
Description
L'instruction Import crée une nouvelle table MapInfo en important le contenu d'un fichier existant.
Remarque: Pour créer une table MapInfo basée sur un fichier de feuille de calcul ou de base de
données, utilisez l'instruction Register Table et non l'instruction Import.
La clause Type facultative définit le format du fichier à importer. La clause Type peut prendre l'une des
formes suivantes :
Clause Type
Format de fichier défini
Type "DXF"
Fichier DXF (format pris en charge par les logiciels
de CAO, tels qu'AutoCAD). Reportez-vous à la
section Importation de fichiers DXF.
Type MIF
Paire de fichiers MIF/MID créée lors de l'exportation
d'une table MapInfo.
Type MBI
MapInfo Boundary Interchange, créé par MapInfo
pour DOS.
Type MMI
MapInfo Map Interchange, créé par MapInfo pour
DOS.
Type IMG
Fichier image MapInfo, créé par MapInfo pour DOS.
Type GML
Fichiers GML. Reportez-vous à la section
Importation de fichiers GML.
Type GML21
Fichiers GML 2.1. Reportez-vous à la section
Importation de fichiers GML 2.1.
Si vous omettez la clause Type, MapInfo Professional considère que l'extension du fichier correspond
au format de celui-ci. Un fichier appelé PARCELS.DXF est ainsi supposé être un fichier DXF. (Pour plus
d'informations sur DXF, reportez-vous à la section Importation de fichiers DXF.)
La clause Into vous permet de modifier le nom et l'emplacement de la table MapInfo créée. Si aucune
clause Into n'est définie, la nouvelle table est créée dans le même répertoire que le fichier d'origine,
avec un nom de fichier correspondant. Par exemple, sous Windows, si vous importez le fichier texte
WORLD.MIF, le nom par défaut de la nouvelle table est WORLD.TAB.
Si vous incluez le mot-clé Overwrite facultatif, MapInfo Professional crée une nouvelle table, qu'il existe
déjà ou non une table portant le même nom. La nouvelle table remplace la table existante. Si vous
omettez le mot-clé Overwrite et que la table existe déjà, MapInfo Professional ne l'écrase pas.
Référence
367
Instruction Import
Exemple
Exemple d'importation à l'aide du style MapInfo actuel :
Import "D:\midata\GML\test.gml" Type "GML" layer "TopographicLine" style
auto off Into "D:\midata\GML\test_TopographicLine.TAB" Overwrite
L'exemple suivant détaille l'importation d'un fichier MIF (MapInfo Interchange Format) :
Import "WORLD.MIF"
Type "MIF"
Into "world_2.tab"
Map From world_2
Importation de fichiers DXF
Syntaxe
Import file_name
[ Type "DXF" ]
[ Into table_name ]
[ Overwrite ]
[ Warnings { On | Off } ]
[ Preserve
[ AttributeData ] [ Preserve ] [ Blocks As MultiPolygonRgns ] ]
[ CoordSys... ]
[ Autoflip ]
[ Transform
( DXF_x1, DXF_y1 ) ( DXF_x2, DXF_y2 )
( MI_x1, MI_y1 ) ( MI_x2, MI_y2 ) ]
[ Read
[ Integer As Decimal ] [ Read ] [ Float As Decimal ] ]
[ Store [ Handles ] [ Elevation ] [ VisibleOnly ] ]
[ Layer DXF_layer_name
[ Into table_name ]
[ Preserve
[ AttributeData ] [ Preserve ] [ Blocks As MultiPolygonRgns ] ] ]
[ Layer... ]
file_name est une chaîne qui définit le nom du fichier à importer.
table_name définit le nom de la nouvelle table à créer.
DXF_x1, DXF_y1, etc. sont des nombres qui représentent des coordonnées dans le fichier DXF.
MI_x1, MI_y1, etc. sont des nombres qui représentent des coordonnées dans la table MapInfo.
DXF_layer_name est une chaîne qui représente le nom d'une couche du fichier DXF.
Description
Si vous importez un fichier DXF, l'instruction Import peut inclure les clauses DXF spécifiques suivantes.
Remarque: L'ordre des clauses est important. Placer les clauses dans le mauvais ordre peut entraîner
des erreurs de compilation.
Warnings On ou Warnings Off : contrôle si des messages d'avertissement sont affichés pendant
l'opération d'import. Par défaut, les avertissements sont désactivés.
368
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Preserve AttributeData : incluez cette clause si vous souhaitez que MapInfo Professional préserve les
données d'attributs du fichier DXF.
Preserve Blocks As MultiPolygonRgns : incluez cette clause si vous souhaitez que MapInfo
Professional stocke l'ensemble des polygones d'un enregistrement de bloc DXF dans un objet région
incluant plusieurs polygones. Si vous omettez cette clause, chaque polygone DXF devient un objet
région MapInfo Professional distinct.
CoordSys : contrôle la projection et le système de coordonnées de la table. Pour plus d'informations,
reportez-vous à la section Clause CoordSys.
Autoflip : incluez cette option si vous souhaitez qu'une symétrie des coordonnées x de la carte soit
créée au niveau de la ligne centrale de la carte. Cette option n'est autorisée que si le système de
coordonnées défini est non terrestre.
Transform : indique une transformation de coordonnées. Dans la clause Transform, vous pouvez définir
les coordonnées x et y minimales et maximales du fichier importé et les coordonnées minimales et
maximales dont vous souhaitez disposer dans la table MapInfo.
Read Integer As Decimal : incluez cette clause si vous souhaitez stocker les nombres entiers du fichier
DXF dans une colonne des valeurs décimales de la nouvelle table. Cette clause n'est autorisée que
lorsque la clause Preserve AttributeData est incluse.
Read Float As Decimal : incluez cette clause si vous souhaitez stocker les nombres à virgule flottante
du fichier DXF dans une colonne des valeurs décimales de la nouvelle table. Cette clause n'est autorisée
que lorsque la clause Preserve AttributeData est incluse.
Store [Handles] [Elevation] [VisibleOnly] : si vous incluez Handles, la table MapInfo stocke les
poignées (numéros d'identification uniques des objets du dessin) dans une colonne appelée _DXFHandle.
Si vous incluez Elevation, MapInfo Professional stocke l'élévation centrale de chaque objet dans une
colonne appelée _DXFElevation. (Pour les lignes, MapInfo Professional stocke l'élévation au centre de
la ligne ; pour les régions, MapInfo Professional stocke la moyenne des valeurs d'élévation de l'objet.)
Si vous incluez VisibleOnly, MapInfo Professional ne prend pas en compte les objets invisibles.
Layer clause : si vous n'incluez aucune clause Layer, tous les objets du fichier DXF sont importés dans
une même table MapInfo. Si vous incluez une ou plusieurs clauses Layer, chaque couche DXF désignée
devient une table MapInfo distincte.
Si le fichier DXF contient plusieurs couches et si l'instruction Import inclut une ou plusieurs clauses
Layer, MapInfo Professional importe uniquement les couches désignées. Supposons, par exemple, que
votre fichier DXF contienne quatre couches (couches 0, 1, 2 et 3). L'instruction Import suivante permet
d'importer les quatre couches dans une même table MapInfo :
Import "FLOORS.DXF"
Into "FLOORS.TAB"
Preserve AttributeData
L'instruction suivante permet d'importer les couches 1 et 3, mais pas les couches 0 et 2 :
Import "FLOORS.DXF"
Layer "1"
Into "FLOOR_1.TAB"
Preserve AttributeData
Layer "3"
Into "FLOOR_3.TAB"
Preserve AttributeData
Référence
369
Instruction Import
Importation de fichiers GML
Syntaxe
Import file_name
[ Type "GML" ]
[ Layer layer_name ]
[ Into table_name ]
[ Style Auto [ On | Off ] ]
file_name est une chaîne qui définit le nom du fichier à importer.
layer_name est une chaîne qui représente le nom d'une couche du fichier GML.
table_name définit le nom de la nouvelle table à créer.
Description
Type est “GML” pour les fichiers GML.
MapInfo Professional prend en charge l'importation des fichiers GML de l'OSGB (Ordnance Survey of
Great Britain). Les éléments Cartographic Symbol, Topographic Point, Topographic Line, Topographic
Area et Boundary Line sont pris en charge. L'élément Cartographic Text n'est pas pris en charge.
L'élément Topographic Area peut être distribué de deux manières : MapInfo Professional prend en
charge la forme non topologique. Si le fichier contient des liens XLINKS, MapInfo Professional importe
uniquement les données d'attributs et non les objets spatiaux. Les liens XLINK sont stockés dans le
fichier GML sous « xlink:href= ». Si des objets topologiques sont inclus dans le fichier, un avertissement
s'affiche, indiquant que les objets spatiaux ne peuvent pas être importés. Accédez à la fenêtre Données
pour afficher les données d'attributs.
Exemple
Exemple d'importation à l'aide du style GML :
Import "D:\midata\GML\est.gml" Type "GML" layer "LandformArea" style auto
on Into "D:\midata\GML\est_LandformArea.TAB" Overwrite
Importation de fichiers GML 2.1
Syntaxe
Import file_name
[ Type "GML21" ]
[ Layer layer_name]
[ Into table_name ]
[ Overwrite ]
[ CoordSys... ]
file_name correspond au nom du fichier GML 2.1 à importer.
layer_name correspond au nom de la couche GML.
table_name correspond au nom de la table MapInfo.
370
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
Type est « GML21 » pour les fichiers GML 2.1.
Overwrite entraîne l'écrasement automatique du fichier TAB. Lorsque la clause Overwrite n'est pas
spécifiée, une erreur est générée si le fichier TAB existe déjà.
La clause Coordsys est facultative. Si le fichier GML contient une projection prise en charge et si la
clause Coordsys n'est pas spécifiée, la projection du fichier GML est utilisée. Si le fichier GML contient
une projection prise en charge et si la clause Coordsys est spécifiée, la projection de la clause Coordsys
est utilisée. Si le fichier GML ne contient aucune projection prise en charge, la clause Coordsys doit
être spécifiée.
Remarque: Si la clause Coordsys ne correspond pas à la projection du fichier GML, il est possible
que les données ne soient pas importées correctement. Le système de coordonnées doit
correspondre à celui du fichier GML. Les données ne seront pas transformées d'une
projection à une autre.
Exemple
Exemple d'importation à l'aide du style GML21 :
Import "D:\midata\GML\GML2.1\mi_usa.xml" Type "GML21" layer "USA" Into
"D:\midata\GML\GML2.1\mi_usa_USA.TAB" Overwrite CoordSys Earth Projection
1, 104
Voir également
Instruction Export
Instruction Include
Objectif
Intègre le contenu d'un fichier texte distinct à un programme MapBasic. L'exécution de cette instruction
de la fenêtre MapBasic dans MapInfo Professional ne fonctionne pas.
Syntaxe
Include "filename"
filename est le nom du fichier texte existant.
Restrictions
Vous ne pouvez pas exécuter l'instruction Include via la fenêtre MapBasic.
Description
Lorsque MapBasic compile le fichier d'un programme et rencontre une instruction Include, tout le contenu
du fichier inclus est inséré dans le fichier du programme. Le fichier défini par l'instruction Include doit
être un fichier texte, contenant uniquement des instructions MapBasic légitimes.
Si le paramètre filename ne définit pas le chemin d'accès à un répertoire et si le fichier indiqué n'existe
pas dans le répertoire sélectionné, le compilateur MapBasic recherche le fichier dans le répertoire du
Référence
371
Instruction Input #
programme. Cette disposition vous permet de conserver les fichiers de définitions standard, tels que
MAPBASIC.DEF, dans un répertoire (au lieu de copier les fichiers de définitions dans les répertoires où
vous conservez les fichiers de programmes).
L'instruction Include est le plus souvent utilisée pour inclure le fichier de définitions MapBasic standard,
MAPBASIC.DEF. Ce fichier, fourni avec MapBasic, définit un certain nombre d'identifiants importants,
tels que TRUE et FALSE.
Lorsque vous modifiez le contenu d'un fichier utilisé via une instruction Include, vous devez recompiler
tous les programmes MapBasic incluant le fichier en question.
Exemple
Include "MAPBASIC.DEF"
Instruction Input #
Objectif
Lit les données à partir d'un fichier et les stocke dans des variables.
Syntaxe
Input # filenum, var_name [ , var_name... ]
filenum est le numéro d'un fichier ouvert via l'instruction Open File.
var_name est le nom d'une variable.
Description
L'instruction Input # lit les données à partir d'un fichier ouvert en mode séquentiel (par exemple, le mode
INPUT) et stocke les données dans une ou plusieurs variables MapBasic.
L'instruction Input # lit les données (jusqu'à la prochaine fin de ligne) dans la ou les variables indiquées
par les paramètres var_name. MapInfo Professional traite les virgules et les caractères de fins de ligne
comme des délimiteurs de champs. Pour lire une ligne entière de texte dans une seule variable de type
chaîne, utilisez l'instruction Line Input.
MapBasic convertit automatiquement les données au type des variables. Lors de la lecture de données
dans une variable de type chaîne, l'instruction Input # traite une ligne vide comme une chaîne vide. Lors
de la lecture de données dans une variable numérique, l'instruction Input # traite une ligne vide comme
une valeur nulle.
Après avoir émis une instruction Input #, appelez la fonction EOF( ) pour déterminer si MapInfo
Professional a pu lire les données. Si l'entrée est concluante, la fonction EOF( ) renvoie la valeur FALSE.
Si la fin de fichier a été atteinte avant que l'entrée ait abouti, la fonction EOF( ) renvoie la valeur TRUE.
Pour obtenir un exemple de l'instruction Input #, reportez-vous à l'exemple de programme NVIEWS
(Named Views : vues nommées).
Les types de données suivants ne sont pas disponibles avec l'instruction Input # :
• Alias
372
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
•
•
•
•
•
Pen
Valeur de remplissage (Brush)
Police
Symboles
Objet
Voir également
Fonction EOF( ), Instruction Line Input, Instruction Open File, Instruction Write #
Instruction Insert
Objectif
Ajoute de nouvelles lignes à une table ouverte. Vous pouvez exécuter cette instruction à partir de la
fenêtre MapBasic de MapInfo Professional.
Syntaxe
Insert Into table
[ ( columnlist ) ]
{ Values ( exprlist ) | Select columnlist From table }
table est le nom d'une table ouverte.
columnlist est la liste des expressions de colonnes, séparées par des virgules.
exprlist est une liste d'une ou plusieurs expressions, séparées par des virgules.
Description
L'instruction Insert permet d'insérer de nouvelles lignes dans une table ouverte. Cette instruction dispose
de deux formes principales, vous permettant d'ajouter une ligne à la fois ou d'insérer des groupes de
lignes d'autres tables (via la clause Select). Dans les deux cas, le nombre de valeurs de colonnes
insérées doit correspondre au nombre de colonnes de la liste. Si aucune liste de colonnes n'est définie,
tous les champs sont pris en compte. Notez que vous devez utiliser une instruction Commit Table si
vous souhaitez sauvegarder de manière permanente (sur disque) les enregistrements nouvellement
insérés.
Si vous connaissez le nombre exact de colonnes de la table en cours de modification et si vous disposez
de valeurs pour chacune des colonnes, il n'est pas nécessaire de définir la clause facultative columnlist.
Dans l'exemple suivant, nous savons que la table compte quatre colonnes (pour le nom, l'adresse, la
ville et l'État) et nous fournissons à MapBasic une valeur pour chacune de ces colonnes.
Insert Into customers
Values ("Mary Ryan", "23 Main St", "Dallas", "TX")
S'il s'avère que la table contient moins (ou plus) de quatre colonnes, l'instruction précédente génèrerait
une erreur lors de l'exécution. Si vous ne connaissez pas le nombre exact de colonnes d'une table ou
l'ordre exact dans lequel les colonnes apparaissent, vous pouvez utiliser la clause facultative columnlist.
Référence
373
Fonction InStr( )
Exemples
L'exemple suivant insère une nouvelle ligne dans la table des clients tout en ne fournissant qu'une seule
valeur de colonne pour la nouvelle ligne. Toutes les autres colonnes de la nouvelle ligne seront donc
initialement vierges. La valeur définie par la clause Values est stockée dans la colonne du nom, quel
que soit le nombre de colonnes de la table et quelle que soit la position de la colonne du nom dans la
structure de la table.
Insert Into customers (Name)
Values ("Steve Harris")
L'instruction suivante crée un objet point et insère l'objet dans une nouvelle ligne de la table Sites. Notez
que le nom Obj est un nom de colonne spécial, représentant les objets graphiques de la table.
Insert Into sites (Obj)
Values ( CreatePoint(-73.5, 42.8) )
L'exemple suivant indique comment l'instruction Insert peut permettre d'ajouter les enregistrements
d'une table à une autre. Dans cet exemple, nous partons du principe que la table NY_ZIPS contient les
limites des codes postaux de l'État de New York et la table NJ_ZIPS celles du New Jersey. Pour des
raisons pratiques, nous souhaitons regrouper toutes les limites de codes postaux dans une même table
(des opérations telles que Find ne pouvant être appliquées que dans une table à la fois).
En conséquence, l'instruction Insert ci-dessous ajoute tous les enregistrements de la table du New
Jersey à la table de New York.
Insert Into NY_ZIPS
Select * From NJ_ZIPS
Dans l'exemple suivant, nous sélectionnons les objets graphiques de la table World, puis insérons chaque
objet en tant que nouvel enregistrement dans la table Outline.
Open Table "world"
Open Table "outline"
Insert Into outline (Obj)
Select Obj From World
Voir également
Instruction Commit Table, Instruction Delete, Instruction Rollback
Fonction InStr( )
Objectif
Renvoie une position de caractère, indiquant l'emplacement où une sous-chaîne apparaît pour la première
fois dans une chaîne. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
InStr( position, string, substring )
position est un entier positif, indiquant la position de départ de la recherche.
string est une expression de chaîne.
substring est une expression de chaîne que nous tentons de localiser dans la chaîne.
374
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur renvoyée
Entier
Description
La fonction InStr( ) vérifie que l'expression de chaîne string contient l'expression de chaîne substring.
MapBasic recherche l'expression de chaîne, en commençant à l'emplacement indiqué par le paramètre
position. Ainsi, si la valeur du paramètre position est un, MapBasic procède à la recherche au tout début
du paramètre string.
Si le paramètre string ne contient pas l'expression de chaîne substring, la fonction InStr( ) renvoie la
valeur 0.
Si le paramètre string contient l'expression de chaîne substring, la fonction InStr( ) renvoie la position
de caractère à laquelle la sous-chaîne apparaît. Par exemple, si l'expression de chaîne substring apparaît
au tout début du paramètre string, InStr( ) renvoie une valeur équivalente à un.
Si le paramètre substring est une chaîne nulle, la fonction InStr( ) renvoie zéro.
La fonction InStr( ) respecte la casse. En d'autres termes, la fonction InStr( ) ne peut pas localiser la
sous-chaîne « BC » dans la chaîne principale « abcde » parce que la sous-chaîne « BC » est en
majuscules.
Conditions d'erreur
L'erreur ERR_FCN_ARG_RANGE (644) est générée si un argument se trouve en dehors de la plage
valide.
Exemple
Dim fullname As String, pos As Integer
fullname = "New York City"
pos = InStr(1, fullname, "York")
' pos will now contain a value of 5 (five)
pos = InStr(1, fullname, "YORK")
' pos will now contain a value of 0;
' YORK is uppercase, so InStr will not locate it
' within the string "New York City"
Voir également
Fonction Mid$( )
Fonction Int( )
Objectif
Renvoie une valeur entière, obtenue en supprimant la partie fractionnelle d'une valeur décimale. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Int( num_expr )
Référence
375
Fonction IntersectNodes( )
num_expr représente une expression numérique.
Valeur renvoyée
Entier
Description
La fonction Int( ) renvoie la valeur entière la plus proche, inférieure ou égale à l'expression num_expr
spécifiée. La Fonction Fix( ) est similaire, mais pas identique à la fonction Int( ). Les deux fonctions ne
traitent pas les valeurs fractionnelles négatives de la même manière. Lorsqu'un nombre fractionnel
négatif est transmis à la Fonction Fix( ) , celle-ci renvoie la valeur entière la plus proche, supérieure ou
égale à la valeur initiale. L'appel de fonction Fix(-2,3) renvoie donc une valeur de -2. Cependant,
lorsqu'un nombre fractionnel négatif est transmis à la fonction Int( ) celle-ci renvoie la valeur entière la
plus proche, inférieure ou égale à la valeur initiale. L'appel de fonction Int(-2.3) renvoie donc une
valeur de -3.
Exemple
Dim whole As Integer
whole = Int(5.999)
' whole now has the value 5
whole = Int(-7.2)
' whole now has the value -8
Voir également
Fonction Fix( ), Fonction Round( )
Fonction IntersectNodes( )
Objectif
Calcule l'ensemble de points au niveau duquel deux objets se rencontrent et renvoie un objet polyligne
contenant chacun des points d'intersection. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
IntersectNodes( object1, object2, points_to_include )
object1 et object2 sont des expressions d'objet. Il ne s'agit pas forcément d'objets point ou texte.
points_to_include correspond à l'une des valeurs d'entier court suivantes :
• INCL_CROSSINGS renvoie les points d'intersection des segments.
• INCL_COMMON renvoie les extrémités de segments qui se chevauchent.
• INCL_ALL renvoie les points d'intersection et de chevauchement des segments.
Valeur renvoyée
Objet polyligne contenant les points d'intersection spécifiés.
376
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
La fonction IntersectNodes( ) renvoie un objet polyligne contenant tous les nœuds d'intersection de
deux objets.
Fonction IsGridCellNull( )
Objectif
Renvoie une valeur logique. Renvoie TRUE si l'emplacement (x, y) de la valeur de la cellule est valide
pour la table et représente une cellule à valeur nulle (elle n'a pas de valeur affectée). Renvoie FALSE
si la cellule contient une valeur non nulle. La fonction GetCellValue() peut être utilisée pour extraire la
valeur.
Syntaxe
IsGridCellNull( table_id, x_pixel, y_pixel )
table_id est une chaîne qui représente un nom de table, un numéro de table entier positif ou 0 (zéro).
La table doit être une table de grille.
x_pixel est le nombre entier de pixels de la coordonnée X de la cellule de la grille. Le nombre de pixels
commence à 0. La valeur maximale de pixels est (pixel_width-1). Elle est déterminée en appelant
RasterTableInfo(...RASTER_TAB_INFO_WIDTH)
y_pixel est le nombre entier de pixels de la coordonnée Y de la cellule de la grille. Le nombre de pixels
commence à 0. La valeur maximale de pixels est (pixel_height-1). Elle est déterminée en appelant
RasterTableInfo(...RASTER_TAB_INFO_HEIGHT).
Valeur renvoyée
Une valeur logique est renvoyée. Elle indique si la cellule définie dans la table est nulle ou non nulle. Si
la cellule de la grille est non nulle (IsGridCellNull() renvoie FALSE), alors la fonction GetGridCellValue()
peut être appelée afin d'extraire la valeur pour ce pixel de la grille.
Voir également
Instruction Create Grid, Fonction GetGridCellValue( ), GridTableInfo( ), Fonction RasterTableInfo(
)
Fonction IsogramInfo( )
Objectif
Renvoie tous les attributs définis pour une connexion à l'aide de l'instruction Set Connection Isogram.
Inclut les attributs permettant de traiter le nombre maximal d'enregistrements pour les valeurs de serveur,
de temps et de distance. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Syntaxe
IsogramInfo( connection_handle, attribute )
Référence
377
Fonction IsogramInfo( )
connection_handle est un entier correspondant au numéro de connexion renvoyé par l'instruction Open
Connection.
attribute est un code d'entier qui indique le type d'informations à renvoyer.
Valeur renvoyée
Nombre à virgule flottante, valeur logique ou chaîne, selon le paramètre attribute.
Description
Cette fonction renvoie les propriétés définies par défaut pour la connexion ou les propriétés modifiées
à l'aide de l'instruction Set Connection Isogram.
La fonction IsogramInfo( ) peut renvoyer plusieurs attributs. Les codes sont définis dans le fichier
MAPBASIC.DEF.
378
Paramètre attribute
ID
Valeur renvoyée par IsogramInfo( ) :
ISOGRAM_BANDING
1
Valeur logique représentant l'option Banding
ISOGRAM_MAJOR_ROADS_ONLY
2
Valeur logique représentant l'option
MajorRoadsOnly
ISOGRAM_RETURN_HOLES
3
Valeur logique indiquant si les régions avec
des trous doivent être renvoyées ou non.
ISOGRAM_MAJOR_POLYGON_ONLY
4
Valeur logique indiquant si seul le polygone
principal d'une région doit être renvoyé.
ISOGRAM_MAX_OFF_ROAD_DISTANCE
5
Valeur à virgule flottante représentant la valeur
Maximum off Road Distance.
ISOGRAM_MAX_OFF_ROAD_DISTANCE_UNITS 6
Chaîne de l'unité associée à la valeur
ISOGRAM_SIMPLIFICATION_FACTOR
7
Valeur à virgule flottante représentant le
facteur de simplification (un pourcentage
représenté sous la forme d'une valeur
comprise entre 0 et 1).
ISOGRAM_DEFAULT_AMBIENT_SPEED
8
Valeur à virgule flottante représentant la
vitesse ambiante par défaut.
ISOGRAM_DEFAULT_AMBIENT_SPEED_DISTANCE_UNIT 9
Valeur de chaîne représentant l'unité de
distance (« mi », « km »).
ISOGRAM_DEFAULT_AMBIENT_SPEED_TIME_UNIT 10
Valeur de chaîne représentant l'unité de temps
(« hr », « min », « sec »).
ISOGRAM_DEFAULT_PROPAGATION_FACTOR 11
Détermine le pourcentage de réseau non
routier des frais restants (distance) pour
lesquels les trajets hors réseau sont autorisés
lors de la définition de la limite Distance. Les
routes n'appartenant pas au réseau peuvent
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée par IsogramInfo( ) :
être des allées, des voies d'accès, etc. Le
facteur de propagation est un pourcentage
des frais utilisé pour calculer la distance entre
le point de départ et la limite Distance. La
valeur par défaut de cette propriété est 0,16.
ISOGRAM_BATCH_SIZE
12
Valeur entière représentant le nombre maximal
d'enregistrements envoyés simultanément au
service.
ISOGRAM_POINTS_ONLY
13
Valeur logique indiquant si les enregistrements
contenant des objets autres que des objets
point doivent être ignorés ou non.
ISOGRAM_RECORDS_INSERTED
14
Valeur entière représentant le nombre
d'enregistrements insérés dans la dernière
commande.
ISOGRAM_RECORDS_NOTINSERTED
15
Valeur entière représentant le nombre
d'enregistrements NON insérés dans la
dernière commande.
ISOGRAM_MAX_BATCH_SIZE
16
Valeur entière représentant le nombre maximal
d'enregistrements (c'est-à-dire de points) dont
l'envoi simultané au service est autorisé par
le serveur.
ISOGRAM_MAX_BANDS
17
Valeur entière représentant le nombre maximal
de bandes ISO (c'est-à-dire de distances ou
de temps) autorisées.
ISOGRAM_MAX_DISTANCE
18
Valeur à virgule flottante représentant la
distance maximale autorisée pour une requête
Isodistance. Les unités de distance sont
définies par
ISOGRAM_MAX_DISTANCE_UNITS.
ISOGRAM_MAX_DISTANCE_UNITS
19
Valeur de chaîne représentant les unités pour
ISOGRAM_MAX_DISTANCE.
ISOGRAM_MAX_TIME
20
Valeur à virgule flottante représentant le temps
maximal autorisé pour une requête Isochrone.
Les unités de temps sont définies par
ISOGRAM_MAX_TIME_UNITS.
ISOGRAM_MAX_TIME_UNITS
21
Valeur de chaîne représentant les unités pour
ISOGRAM_MAX_TIME.
Référence
379
Fonction IsPenWidthPixels( )
Exemple
Le segment de code MapBasic suivant imprime les contraintes de routing Envinsa dans la fenêtre
Message de MapInfo Professional :
Include "MapBasic.Def"
declare sub main
sub main
dim iConnect as integer
Open Connection Service Isogram
URL "http://envinsa_server:8062/Route/services/Route"
User "john"
Password "green"
into variable iConnect
Print "Isogram_Max_Batch_Size: " +
IsogramInfo(iConnect,Isogram_Max_Batch_Size)
Print "Isogram_Max_Bands: " + IsogramInfo(iConnect, Isogram_Max_Bands)
Print "Isogram_Max_Distance: " + IsogramInfo(iConnect,
Isogram_Max_Distance)
Print "Isogram_Max_Distance_Units: " + IsogramInfo(iConnect,
Isogram_Max_Distance_Units)
Print "Isogram_Max_Time: " + IsogramInfo(iConnect,Isogram_Max_Time)
Print "Isogram_Max_Time_Units: " +
IsogramInfo(iConnect,Isogram_Max_Time_Units)
Close Connection iConnect
end sub
Voir également
Instruction Create Object, Instruction Open Connection, Instruction Set Connection Isogram
Fonction IsPenWidthPixels( )
Objectif
La fonction IsPenWidthPixels détermine si l'épaisseur d'une ligne est exprimée en pixels ou en points.
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
IsPenWidthPixels( penwidth )
penwidth est un entier court représentant l'épaisseur de la ligne.
Valeur renvoyée
True si l'épaisseur est en pixels. False si l'épaisseur est en points.
Description
La fonction IsPenWidthPixels( ) renvoie TRUE si l'épaisseur de ligne est indiquée en pixels. L'épaisseur
d'une ligne peut être déterminée à l'aide de la fonction StyleAttr( ).
Exemple
Include "MAPBASIC.DEF"
Dim CurPen As Pen
380
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Dim Width As Integer
Dim PointSize As Float
CurPen = CurrentPen( )
Width = StyleAttr(CurPen, PEN_WIDTH)
If Not IsPenWidthPixels(Width) Then
PointSize = PenWidthToPoints(Width)
End If
Voir également
Fonction CurrentPen( ), Fonction MakePen( ), Clause Pen, Fonction PenWidthToPoints( ), Fonction
StyleAttr( )
Instruction Kill
Objectif
Supprime un fichier. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo
Professional.
Syntaxe
Kill filespec
filespec est une chaîne définissant le nom d'un fichier (et, éventuellement, le chemin d'accès au fichier).
Valeur renvoyée
Chaîne
Description
L'instruction Kill permet de supprimer un fichier du disque. L'instruction Kill ne peut être annulée. Il est
donc nécessaire d'appliquer l'instruction Kill avec prudence.
Exemple
Kill "C:\TEMP\JUNK.TXT"
Voir également
Instruction Open File
Fonction LabelFindByID( )
Objectif
Initialise un pointeur d'étiquette interne. Vous pouvez ainsi effectuer une requête sur l'étiquette d'une
ligne spécifique dans une couche de carte. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
LabelFindByID( map_window_id, layer_number, row_id, table, b_mapper )
Référence
381
Fonction LabelFindByID( )
map_window_id est un identifiant de fenêtre entier, désignant une fenêtre Carte.
layer_number correspond au numéro d'une couche de la fenêtre Carte sélectionnée (1 pour la couche
supérieure, par exemple).
row_id est une valeur entière positive indiquant le numéro de la ligne contenant l'étiquette sur laquelle
repose votre requête.
table est un nom de table ou une chaîne vide ("") : lorsque vous effectuez une requête dans une table
appartenant à une table logique, définissez le nom de la table membre. Sinon, définissez une chaîne
vide.
b_mapper est une valeur logique. Indiquez TRUE pour rechercher les étiquettes qui apparaissent lorsque
la carte est active, ou FALSE pour effectuer une requête sur les étiquettes qui apparaissent lorsque la
carte est intégrée à une mise en page.
Valeur renvoyée
Valeur logique : TRUE indique qu'il existe une étiquette pour la ligne spécifiée.
Description
Appelez la fonction LabelFindByID( ) lorsque vous souhaitez effectuer une requête sur l'étiquette d'une
ligne spécifique d'une couche de carte. Si la valeur renvoyée est TRUE, il existe une étiquette pour la
ligne. Vous pouvez effectuer une requête sur l'étiquette en appelant la Fonction LabelInfo( ).
Exemple
L'exemple suivant trace la table World, affiche les étiquettes automatiques et détermine si une étiquette
a été dessinée pour une ligne spécifique de la table.
Include "mapbasic.def"
Dim b_morelabels As Logical
Dim i_mapid As Integer
Dim obj_mytext As Object
Open Table "World" Interactive As World
Map From World
i_mapid = FrontWindow( )
Set Map Window i_mapid Layer 1 Label Auto On
' Make sure all labels draw before we continue...
Update Window i_mapid
' Now see if row # 1 was auto-labeled
b_morelabels = LabelFindByID(i_mapid, 1, 1, "", TRUE)
If b_morelabels Then
' The object was labeled; now query its label.
obj_mytext = LabelInfo(i_mapid, 1, LABEL_INFO_OBJECT)
' At this point, you could save the obj_mytext object
' in a permanent table; or you could query it by
' calling ObjectInfo( ) or ObjectGeography( ).
End If
Voir également
Fonction LabelFindFirst( ), Fonction LabelFindNext( ), Fonction LabelInfo( )
382
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction LabelFindFirst( )
Objectif
Initialise un pointeur d'étiquette interne. Vous pouvez ainsi effectuer une requête sur la première étiquette
d'une couche de carte. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
LabelFindFirst( map_window_id, layer_number, b_mapper )
map_window_id est un identifiant de fenêtre entier, désignant une fenêtre Carte.
layer_number correspond au numéro d'une couche de la fenêtre Carte sélectionnée (1 pour la couche
supérieure, par exemple).
b_mapper est une valeur logique. Indiquez TRUE pour rechercher les étiquettes qui apparaissent lorsque
la carte est active, ou FALSE pour effectuer une requête sur les étiquettes qui apparaissent lorsque la
carte est intégrée à une mise en page.
Valeur renvoyée
Valeur logique : TRUE indique qu'il existe des étiquettes pour la couche définie (les étiquettes sont
actuellement visibles ou l'utilisateur a modifié des étiquettes et celles-ci ne sont pas visibles actuellement).
Description
Appelez la fonction LabelFindFirst( ) si vous souhaitez parcourir les étiquettes d'une couche de carte
en boucle pour y effectuer une requête. Les requêtes dans les étiquettes se déroulent en deux étapes
:
1. Définissez le pointeur d'étiquette interne de MapBasic en appelant la fonction LabelFindFirst( ), la
Fonction LabelFindNext( ) ou la Fonction LabelFindByID( ).
2. Si la fonction appelée à l'étape 1 ne renvoie pas FALSE, vous pouvez effectuer une requête sur
l'étiquette sélectionnée en appelant la Fonction LabelInfo( ).
Pour effectuer des requêtes dans d'autres étiquettes, retournez à l'étape 1.
Exemple
Un exemple vous est proposé dans la section Fonction LabelInfo( ).
Voir également
Fonction LabelFindByID( ), Fonction LabelFindNext( ), Fonction LabelInfo( )
Référence
383
Fonction LabelFindNext( )
Fonction LabelFindNext( )
Objectif
Faites avancer le pointeur d'étiquette interne, afin de pouvoir effectuer une requête dans la prochaine
étiquette d'une couche de carte. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
LabelFindNext( map_window_id, layer_number )
map_window_id est un identifiant de fenêtre entier, désignant une fenêtre Carte.
layer_number correspond au numéro d'une couche de la fenêtre Carte sélectionnée (1 pour la couche
supérieure, par exemple).
Valeur renvoyée
Valeur logique : TRUE indique que le pointeur d'étiquette a atteint l'étiquette suivante, FALSE indique
que la couche ne contient pas d'autres étiquettes.
Description
Une fois que vous avez appelé la Fonction LabelFindFirst( ) pour lancer la recherche des étiquettes,
vous pouvez appeler la fonction LabelFindNext( ) pour atteindre la prochaine étiquette de la couche.
Exemple
Un exemple vous est proposé dans la section Fonction LabelInfo( ).
Voir également
Fonction LabelFindByID( ), Fonction LabelFindFirst( ), Fonction LabelInfo( )
Fonction LabelInfo( )
Objectif
Renvoie des informations sur l'étiquette d'une carte. LabelInfo peut renvoyer une étiquette sous forme
d'objet texte qui peut être aligné ou sous forme de texte droit ayant subi une rotation. Cependant, si
l'étiquette est alignée, elle est renvoyée en tant que texte plat ayant subi une rotation. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Labelinfo( map_window_id, layer_number, attribute )
map_window_id est un identifiant de fenêtre entier, désignant une fenêtre Carte.
layer_number correspond au numéro d'une couche de la fenêtre Carte sélectionnée (1 pour la couche
supérieure, par exemple).
384
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Valeur renvoyée
La valeur renvoyée varie en fonction du paramètre attribute.
Description
La fonction Labelinfo( ) renvoie des informations sur une étiquette de la fenêtre Carte.
Remarque: Les étiquettes ne sont pas des objets texte. Pour effectuer une requête sur un objet texte,
appelez des fonctions telles que la Fonction ObjectInfo( ) ou la Fonction
ObjectGeography( ).
Avant d'appeler la fonction Labelinfo( ), vous devez initialiser le pointeur d'étiquette interne de MapBasic
en appelant la Fonction LabelFindFirst( ), la Fonction LabelFindNext( ) ou la Fonction LabelFindByID(
). Reportez-vous à l'exemple ci-dessous.
Le paramètre attribute doit être l'un des codes répertoriés dans le tableau suivant. Les codes sont définis
dans MAPBASIC.DEF.
Code attribute
ID
Valeur renvoyée par Labelinfo( )
LABEL_INFO_OBJECT
1
Objet texte correspondant à une approximation de
l'étiquette. Cette fonction vous permet de convertir une
étiquette en objet texte, que vous pouvez enregistrer dans
une table permanente.
Remarque: LABEL_INFO_OBJECT renvoie un objet
texte. Cependant, si l'étiquette est alignée,
la fonction renvoie une étiquette avec une
orientation parallèle. MapBasic ne prend pas
en charge les étiquettes alignées en tant
qu'objets texte.
LABEL_INFO_POSITION
2
Valeur entière comprise entre 0 et 8, indiquant la position
de l'étiquette par rapport à son emplacement d'ancrage.
La valeur renvoyée correspond à l'un des codes suivants
:
•
•
•
•
•
•
•
•
•
•
Référence
LAYER_INFO_LBL_POS_AUTO (-1),
LAYER_INFO_LBL_POS_CC (0),
LAYER_INFO_LBL_POS_TL (1),
LAYER_INFO_LBL_POS_TC (2),
LAYER_INFO_LBL_POS_TR (3),
LAYER_INFO_LBL_POS_CL (4),
LAYER_INFO_LBL_POS_CR (5),
LAYER_INFO_LBL_POS_BL (6),
LAYER_INFO_LBL_POS_BC (7),
LAYER_INFO_LBL_POS_BR (8).
385
Fonction LabelInfo( )
Code attribute
ID
Valeur renvoyée par Labelinfo( )
Par exemple, si l'étiquette est située dans la zone
inférieure droite du point d'ancrage, sa position est de 8.
Si l'étiquette est centrée horizontalement et verticalement
au-dessus de son point d'ancrage, sa position est de 0.
Si l'étiquette est positionnée automatiquement, sa position
est -1.
386
LABEL_INFO_ANCHORX
3
Valeur à virgule flottante indiquant la coordonnée x de
l'emplacement d'ancrage de l'étiquette.
LABEL_INFO_ANCHORY
4
Valeur à virgule flottante indiquant la coordonnée y de
l'emplacement d'ancrage de l'étiquette.
LABEL_INFO_OFFSET
5
Valeur entière comprise entre 0 et 200, indiquant la
distance de décalage (en points) de l'étiquette par rapport
à son emplacement d'ancrage.
LABEL_INFO_ROWID
6
Valeur entière représentant l'identifiant de la ligne à
laquelle cette étiquette appartient. Renvoie zéro s'il
n'existe aucune étiquette.
LABEL_INFO_TABLE
7
Valeur de chaîne représentant le nom de la table à laquelle
cette étiquette appartient. Cette fonction est utile si vous
utilisez des tables logiques et que vous souhaitez savoir
à quelle table membre appartient l'étiquette.
LABEL_INFO_EDIT
8
Valeur logique, TRUE si l'étiquette a été modifiée.
LABEL_INFO_EDIT_VISIBILITY
9
Valeur logique, TRUE si la visibilité de l'étiquette est
désactivée.
LABEL_INFO_EDIT_ANCHOR
10
Valeur logique, TRUE si l'étiquette a été déplacée.
LABEL_INFO_EDIT_OFFSET
11
Valeur logique, TRUE si le décalage de l'étiquette a été
modifié.
LABEL_INFO_EDIT_FONT
12
Valeur logique, TRUE si la police de l'étiquette a été
modifiée.
LABEL_INFO_EDIT_PEN
13
Valeur logique, TRUE si le style Pen de la ligne de renvoi
a été modifié.
LABEL_INFO_EDIT_TEXT
14
Valeur logique, TRUE si le texte de l'étiquette a été
modifié.
LABEL_INFO_EDIT_TEXTARROW
15
Valeur logique, TRUE si le type de flèche du texte de
l'étiquette a été modifié.
LABEL_INFO_EDIT_ANGLE
16
Valeur logique, TRUE si l'angle de rotation de l'étiquette
a été modifié.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par Labelinfo( )
LABEL_INFO_EDIT_POSITION
17
Valeur logique, TRUE si la position de l'étiquette (par
rapport au point d'ancrage) a été modifiée.
LABEL_INFO_EDIT_TEXTLINE
18
Valeur logique, TRUE si la ligne de renvoi a été déplacée.
LABEL_INFO_SELECT
19
Valeur logique, TRUE si l'étiquette est sélectionnée.
LABEL_INFO_DRAWN
20
Valeur logique, TRUE si l'étiquette est actuellement visible.
LABEL_INFO_ORIENTATION
21
Renvoie une valeur d'entier court indiquant l'orientation
de l'étiquette sélectionnée. L'étiquette sélectionnée est
initialisée à l'aide d'une des fonctions Label suivantes :
LabelFindFirst, LabelFindByID, ou LabelFindNext. La
valeur renvoyée est l'une des valeurs suivantes :
• LAYER_INFO_LABEL_ORIENT_HORIZONTAL (l'angle
de l'étiquette est nul)
• LAYER_INFO_LABEL_ORIENT_PARALLEL (l'étiquette
est inclinée)
• LAYER_INFO_LABEL_ORIENT_CURVED (l'étiquette
est alignée)
Exemple
L'exemple ci-dessous indique comment parcourir l'ensemble des étiquettes d'une ligne en boucle via la
fonction Labelinfo( ) pour effectuer une requête dans chaque étiquette.
Dim b_morelabels As Logical
Dim i_mapid, i_layernum As Integer
Dim obj_mytext As Object
' Here, you would assign a Map window's ID to i_mapid,
' and assign a layer number to i_layernum.
b_morelabels = LabelFindFirst(i_mapid, i_layernum, TRUE)
Do While b_morelabels
obj_mytext = LabelInfo(i_mapid, i_layernum, LABEL_INFO_OBJECT)
' At this point, you could save the obj_mytext object
' in a permanent table; or you could query it by
' calling ObjectInfo( ) or ObjectGeography( ).
b_morelabels = LabelFindNext(i_mapid, i_layernum)
Loop
Voir également
Fonction LabelFindByID( ), Fonction LabelFindFirst( ), Fonction LabelFindNext( )
Fonction LabelOverrideInfo( )
Renvoie des informations sur un remplacement d'étiquette spécifique.
Syntaxe
LabelOverrideInfo (
window_id, layer_number, labeloverride_index, attribute )
Référence
387
Fonction LabelOverrideInfo( )
window_id est l'identifiant de fenêtre entier d'une fenêtre Carte.
layer_numbercorrespond au numéro d'une couche de la fenêtre Carte active (1 pour la couche supérieure,
par exemple). Pour déterminer le nombre de couches d'une fenêtre Carte, appelez la fonction
MapperInfo( ) .
labeloverride_index est un index d'entier (à base 1) pour la définition de remplacement dans la couche.
Chaque remplacement d'étiquette est associé à un seuil de zoom et classé par ordre croissant selon la
valeur du seuil de zoom (index 1).
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Valeur renvoyée
La valeur renvoyée varie en fonction du paramètre attribute.
Description
La section Fonction LabelOverrideInfo( ) renvoie les informations de l'étiquette pour un remplacement
spécifique dans une couche de fenêtre Carte existante. layer_number doit être une couche valide (1 est
la couche de la table supérieure, etc.). Le paramètre attribute doit être l'un des codes répertoriés dans
le tableau suivant. Les codes sont définis dans MAPBASIC.DEF.
Code attribute
ID
Valeur renvoyée par LabelOverrideInfo( )
LBL_OVR_INFO_NAME
1
Nom du remplacement des paramètres
d'étiquetage
LBL_OVR_INFO_VISIBILITY
2
Valeur d'entier court indiquant si le
remplacement des paramètres d'étiquetage est
visible. La valeur renvoyée est l'une des valeurs
suivantes :
• LBL_OVR_INFO_VIS_OFF (0)
Le remplacement des paramètres d'étiquetage
est désactivé/off, jamais visible.
• LBL_OVR_INFO_VIS_ON (1)
Le remplacement des paramètres d'étiquetage
est actuellement visible sur la carte.
• LBL_OVR_INFO_VIS_OFF_ZOOM (2)
Le remplacement des paramètres d'étiquetage
est actuellement invisible car il ne figure pas
dans le seuil de zoom de la carte.
LBL_OVR_INFO_ZOOM_MIN
388
3
Valeur à virgule flottante indiquant le zoom
minimal (dans les unités de distance
sélectionnées dans MapBasic) utilisé pour
l'affichage du remplacement des paramètres
d'étiquetage.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par LabelOverrideInfo( )
LBL_OVR_INFO_ZOOM_MAX
4
Valeur à virgule flottante indiquant le zoom
maximal utilisé pour l'affichage du remplacement
des paramètres d'étiquetage.
LBL_OVR_INFO_EXPR
5
Valeur de chaîne : expression utilisée dans les
étiquettes.
LBL_OVR_INFO_LT
6
Valeur d'entier court qui indique le type de trait
(le cas échéant) reliant une étiquette à son
emplacement d'origine une fois l'étiquette
déplacée. La valeur renvoyée correspond à l'une
des valeurs suivantes :
• LAYER_INFO_LBL_LT_NONE (0),
Pas de trait
• LAYER_INFO_LBL_LT_SIMPLE (1)
Trait simple
• LAYER_INFO_LBL_LT_ARROW (2),
Trait avec une flèche
LBL_OVR_INFO_FONT
7
Style Font utilisé pour les étiquettes.
LBL_OVR_INFO_PARALLEL
8
Valeur logique : TRUE si la couche est
configurée pour des étiquettes parallèles.
LBL_OVR_INFO_POS
9
Valeur d'entier court indiquant l'emplacement
de l'étiquette. La valeur renvoyée correspond à
l'une des valeurs suivantes (T = haut, B = bas,
C = centre, R = droite, L = gauche) :
•
•
•
•
•
•
•
•
•
LAYER_INFO_LBL_POS_CC (0)
LAYER_INFO_LBL_POS_TL (1)
LAYER_INFO_LBL_POS_TC (2)
LAYER_INFO_LBL_POS_TR (3)
LAYER_INFO_LBL_POS_CL (4)
LAYER_INFO_LBL_POS_CR (5)
LAYER_INFO_LBL_POS_BL (6)
LAYER_INFO_LBL_POS_BC (7)
LAYER_INFO_LBL_POS_BR (8)
LBL_OVR_INFO_OVERLAP
10
Valeur logique . TRUE si les étiquettes se
chevauchant sont autorisées.
LBL_OVR_INFO_DUPLICATES
11
Valeur logique : TRUE si les étiquettes en
double sont autorisées.
Référence
389
Fonction LabelOverrideInfo( )
Code attribute
ID
Valeur renvoyée par LabelOverrideInfo( )
LBL_OVR_INFO_OFFSET
12
Valeur d'entier court comprise entre 0 et 50,
définissant le décalage des étiquettes par
rapport aux centroïdes des objets. La valeur de
décalage représente une distance en points.
LBL_OVR_INFO_MAX
13
Valeur entière indiquant le nombre maximal
d'étiquettes autorisées pour ce remplacement
des paramètres d'étiquetage. Si aucune valeur
maximale n'a été définie, la valeur renvoyée est
2 147 483 647.
LBL_OVR_INFO_PARTIALSEGS
14
Valeur logique : TRUE si la case Objets
partiellement visibles est cochée pour cette
couche.
LBL_OVR_INFO_ORIENTATION
15
Renvoie la valeur d'entier court indiquant le
paramètre d'orientation des étiquettes
automatiques de la couche. La valeur renvoyée
est l'une des valeurs suivantes :
• LAYER_INFO_LABEL_ORIENT_HORIZONTAL
L'angle des étiquettes est nul.
• LAYER_INFO_LABEL_ORIENT_PARALLEL
Les étiquettes sont inclinées.
• LAYER_INFO_LABEL_ORIENT_CURVED
Les étiquettes sont alignées.
Si la valeur
LBL_OVR_LABEL_ORIENT_PARALLEL est
renvoyée, la fonction
LAYER_INFO_INFO_PARALLEL renvoie TRUE.
LBL_OVR_INFO_ALPHA
16
Valeur d'entier court représentant le facteur
alpha pour les étiquettes de la couche définie.
• 0 = totalement transparent.
• 255 = totalement opaque.
Pour définir la translucidité ou le facteur alpha
d'une couche, utilisez la clause Label de
l'instruction Set Map (reportez-vous à la section
Gestion des propriétés de chaque étiquette).
390
LBL_OVR_INFO_AUTODISPLAY
17
Valeur logique : TRUE si ce remplacement des
paramètres d'étiquetage est configuré pour
afficher les étiquettes automatiquement.
LBL_OVR_INFO_POS_RETRY
18
Valeur logique : TRUE si l'étiquette en
chevauche d'autres ; positionnez les étiquettes
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par LabelOverrideInfo( )
à différents endroits jusqu'à ce qu'il n'y ait plus
de chevauchement ou de positions possibles.
LBL_OVR_INFO_LINE_PEN
19
Style de ligne utilisé pour l'affichage de la ligne
d'étiquette.
LBL_OVR_INFO_PERCENT_OVER
20
Valeur d'entier court, pourcentage maximal de
dépassement de l'étiquette alignée sur la
polyligne.
LBL_OVR_INFO_AUTO_POSITION
21
Valeur logique : TRUE si l'option d'étiquetage
de région avancé de remplacement des
paramètres d'étiquetage est activée ou
désactivée.
LBL_OVR_INFO_AUTO_SIZES
22
Valeur entière : indique le nombre de tailles de
police qui peuvent être utilisées lorsque vous
tentez d'insérer les étiquettes dans des régions
lors du remplacement des paramètres
d'étiquetage. Le nombre de polices peut varier
de 1 à 10. Une valeur 0 (zéro) indique que la
valeur par défaut est choisie, pour que MapInfo
Professional définisse le nombre de polices à
utiliser.
LBL_OVR_INFO_SUPPRESS_IF_NO_FIT
23
Valeur logique : TRUE si l'option d'étiquetage
est On. Si, après l'application d'incréments
descendants de la taille de police facultative,
l'étiquette est encore plus grande que la région,
alors l'étiquette n'est pas dessinée.
LBL_OVR_INFO_AUTO_SIZE_STEP
24
Valeur entière : définit le pourcentage global de
l'incrément de taille de police utilisé pour
redimensionner automatiquement la police des
étiquettes pour adapter une étiquette lors du
remplacement des paramètres d'étiquetage. Si
la taille de la police originale est de 24 pts et
que l'incrément correspond à 66, la police la
plus petite sera donc 66 % plus petite que 24
pts (la plus petite police est de 8 pts).
LBL_OVR_INFO_CURVED_BEST_POSITION 25
Valeur logique : indique si le positionnement
automatique des étiquettes alignées est activé
ou désactivé.
LBL_OVR_INFO_CURVED_FALLBACK
Valeur logique : indique si l'option de tolérance
de création d'une étiquette pivotée est activée
ou désactivée.
Référence
26
391
Fonction LayerControlInfo( )
Code attribute
ID
Valeur renvoyée par LabelOverrideInfo( )
LBL_OVR_INFO_USE_ABBREVIATION
27
Valeur logique : indique si l'utilisation des
abréviations est activée ou désactivée.
LBL_OVR_INFO_ABBREVIATION_EXPR
28
Renvoie l'expression de champ utilisée pour les
étiquettes abrégées.
LBL_OVR_INFO_AUTO_CALLOUT
29
Valeur logique : TRUE si l'option d'étiquetage
de région avancé du rendu de renvoi du
remplacement des paramètres d'étiquetage est
activée.
Exemple
LabelOverrideInfo(nMID, nLayer, nOverride, LBL_OVR_INFO_ORIENTATION)
Voir également
Fonction StyleOverrideInfo( ), Fonction LayerStyleInfo( ), Instruction Set Map, Fonction LayerInfo(
)
Fonction LayerControlInfo( )
Objectif
Renvoie des informations sur la fenêtre Contrôle des couches.
Syntaxe
LayerControlInfo( attribute )
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Description
Le paramètre attribute est une valeur figurant dans la table ci-dessous. Les codes figurant dans la
colonne de gauche sont définis dans MAPBASIC.DEF.
Code attribute
ID
TableInfo( ) renvoie
LC_INFO_SEL_COUNT
1
Résultat sous forme d'entier court indiquant le nombre
d'éléments sélectionnés.
Exemple
LayerControlInfo(LC_INFO_SEL_COUNT)
Voir également
Fonction LayerControlSelectionInfo( )
392
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction LayerControlSelectionInfo( )
Objectif
Renvoie des informations sur l'élément sélectionné dans la fenêtre Contrôle des couches.
Syntaxe
LayerControlSelectionInfo( selection_index, attribute )
selection_id est l'index d'un élément sélectionné dans le contrôle des couches.
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Description
Le paramètre attribute peut être n'importe quelle valeur qui figure dans le tableau ci-dessous. Les codes
figurant dans la colonne de gauche sont définis dans MAPBASIC.DEF.
Code attribute
ID
TableInfo( ) renvoie
LC_SEL_INFO_NAME
1
Résultat sous forme de chaîne représentant le nom de
l'élément sélectionné.
LC_SEL_INFO_TYPE
2
Résultat sous forme d'entier court qui indique le type
d'élément sélectionné. La valeur renvoyée est l'une des
valeurs suivantes :
•
•
•
•
•
LC_SEL_INFO_TYPE_MAP (0)
LC_SEL_INFO_TYPE_LAYER (1)
LC_SEL_INFO_TYPE_GROUPLAYER (2)
LC_SEL_INFO_TYPE_STYLE_OVR (3)
LC_SEL_INFO_TYPE_LABEL_OVR (4)
LC_SEL_INFO_MAPWIN_ID
3
Valeur entière qui représente l'identifiant de la fenêtre de
la carte associée à l'élément sélectionné.
LC_SEL_INFO_LAYER_ID
4
Valeur d'entier court qui indique l'identifiant de la couche
associée à l'élément sélectionné. Si vous interrogez cette
valeur alors qu'un élément est sélectionné, la valeur
renvoyée est -1.
LC_SEL_INFO_OVR_ID
5
Valeur d'entier court qui indique l'index du remplacement
associé à l'élément sélectionné. Si vous interrogez cette
valeur alors qu'un élément de carte, de couche ou de
groupe de couches est sélectionné, la valeur renvoyée
est -1.
Exemple
LayerControlSelectionInfo(layer_number, LC_SEL_INFO_NAME)
Référence
393
Fonction LayerInfo( )
Voir également
Fonction LayerControlInfo( )
Fonction LayerInfo( )
Objectif
Renvoie des informations sur une couche d'une fenêtre Carte. Vous pouvez appeler cette fonction à
partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
LayerInfo( window_id, layer_number, attribute )
window_id est l'identifiant de fenêtre entier d'une fenêtre Carte.
layer_number correspond au numéro d'une couche de la fenêtre Carte active (1 pour la couche supérieure,
par exemple). Pour déterminer le nombre de couches d'une fenêtre Carte, appelez la fonction
MapperInfo( ).
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Valeur renvoyée
La valeur renvoyée varie en fonction du paramètre attribute.
Restrictions
Un grand nombre des paramètres sur lesquels vous pouvez effectuer une requête à l'aide de la fonction
LayerInfo( ) s'appliquent uniquement aux couches de carte conventionnelles (par opposition aux couches
de carte Dessin, aux couches de carte thématiques et aux couches de carte représentant des tables
d'images raster). Reportez-vous à l'exemple ci-dessous.
Description
La fonction LayerInfo( ) renvoie des informations sur la couche d'une fenêtre Carte existante.
layer_number doit être une couche valide (1 est la couche de la table supérieure, etc.). Le paramètre
attribute doit être l'un des codes répertoriés dans le tableau suivant. Les codes sont définis dans
MAPBASIC.DEF. À ce niveau, vous pouvez également effectuer des requêtes sur les options de liaison
dynamique à l'aide des attributs LAYER_HOTLINK_*.
394
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
LAYER_INFO_NAME
1
Chaîne indiquant le nom de la table associée à
cette couche de carte. Si la couche indiquée est
la couche Dessin de la carte, la chaîne
correspond à un nom de table tel que «
Cosmetic1 ». Ce nom de table peut être utilisé
avec d'autres instructions (telle, par exemple,
l'instruction Select).
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
LAYER_INFO_EDITABLE
2
Valeur logique, TRUE si la couche peut être
modifiée.
LAYER_INFO_SELECTABLE
3
Valeur logique, TRUE si la couche peut être
sélectionnée.
LAYER_INFO_ZOOM_LAYERED
4
Valeur logique, TRUE si les seuils de visibilité
sont activés.
LAYER_INFO_ZOOM_MIN
5
Valeur à virgule flottante indiquant le zoom
minimal (dans les unités de distance
sélectionnées dans MapBasic) utilisé pour
l'affichage de la couche. (Pour définir les unités
de distance de MapBasic, utilisez l'instruction
Set Distance Units.)
LAYER_INFO_ZOOM_MAX
6
Valeur à virgule flottante indiquant la valeur de
zoom maximale utilisée pour l'affichage de la
couche.
LAYER_INFO_COSMETIC
7
Logique, TRUE s'il s'agit de la couche Dessin.
LAYER_INFO_PATH
8
Valeur de chaîne représentant le chemin d'accès
complet au répertoire de la table associée à la
couche de carte.
LAYER_INFO_DISPLAY
9
Entier court indiquant si et comment cette
couche est affichée. La valeur renvoyée est l'une
des valeurs suivantes :
• LAYER_INFO_DISPLAY_OFF (0)
La couche n'est pas affichée.
• LAYER_INFO_DISPLAY_GRAPHIC (1)
Les objets de cette couche sont affichés
conformément à leur style par défaut, c.-à-d.
le style enregistré dans la table.
• LAYER_INFO_DISPLAY_GLOBAL (2)
Les objets de cette couche sont affichés
conformément à un style général, défini dans
la boîte de dialogue Contrôle des couches.
• LAYER_INFO_DISPLAY_VALUE (3)
Les objets de cette couche sont affichés sous
forme d'analyse thématique.
LAYER_INFO_OVR_LINE
Référence
10
Style Pen utilisé pour l'affichage des objets
linéaires. Si l'ensemble de base des propriétés
de la couche inclut un style superposé, la ligne
395
Fonction LayerInfo( )
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
renvoyée est la première instance du style
superposé.
LAYER_INFO_OVR_PEN
11
Style Pen utilisé pour l'affichage des bordures
des objets remplis. Si l'ensemble de base des
propriétés de la couche inclut un style
superposé, la ligne renvoyée est la première
instance du style superposé.
LAYER_INFO_OVR_BRUSH
12
Style Brush utilisé pour l'affichage des objets
remplis. Si l'ensemble de base des propriétés
de la couche inclut un style superposé, le style
renvoyé est la première instance du style
superposé.
LAYER_INFO_OVR_SYMBOL
13
Style Symbol utilisé pour l'affichage des objets
point. Si l'ensemble de base des propriétés de
la couche inclut un style superposé, le symbole
renvoyé est la première instance du style
superposé.
LAYER_INFO_OVR_FONT
14
Style Font utilisé pour l'affichage des objets
texte. Si l'ensemble de base des propriétés de
la couche inclut un style superposé, la police
renvoyée est la première instance du style
superposé.
LAYER_INFO_LBL_EXPR
15
Valeur de chaîne : expression utilisée dans les
étiquettes.
LAYER_INFO_LBL_LT
16
Valeur d'entier court qui indique le type de trait
(le cas échéant) reliant une étiquette à son
emplacement d'origine une fois l'étiquette
déplacée. La valeur renvoyée correspond à l'une
des valeurs suivantes :
• LAYER_INFO_LBL_LT_NONE (0),
Pas de trait
• LAYER_INFO_LBL_LT_SIMPLE (1)
Trait simple
• LAYER_INFO_LBL_LT_ARROW (2),
Trait avec une flèche
396
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
LAYER_INFO_LBL_CURFONT
17
Pour les applications compilées à l'aide de
MapBasic 3.x, cette requête renvoie les valeurs
suivantes :
Valeur logique : TRUE si la couche est
configurée pour utiliser la police sélectionnée
ou FALSE si la couche est configurée pour
utiliser la police personnalisée (voir
LAYER_INFO_LBL_FONT).
Pour les applications compilées à l'aide de
MapBasic 4.0 ou version ultérieure, cette
requête renvoie toujours FALSE.
LAYER_INFO_LBL_FONT
18
Style Font utilisé pour les étiquettes.
LAYER_INFO_LBL_PARALLEL
19
Valeur logique : TRUE si la couche est
configurée pour des étiquettes parallèles.
LAYER_INFO_LBL_POS
20
Valeur d'entier court indiquant l'emplacement
de l'étiquette. La valeur renvoyée correspond à
l'une des valeurs suivantes (T = haut, B = bas,
C = centre, R = droite, L = gauche) :
•
•
•
•
•
•
•
•
•
LAYER_INFO_LBL_POS_TL (1)
LAYER_INFO_LBL_POS_TC (2)
LAYER_INFO_LBL_POS_TR (3)
LAYER_INFO_LBL_POS_CL (4)
LAYER_INFO_LBL_POS_CC (0)
LAYER_INFO_LBL_POS_CR (5)
LAYER_INFO_LBL_POS_BL (6)
LAYER_INFO_LBL_POS_BC (7)
LAYER_INFO_LBL_POS_BR (8)
LAYER_INFO_ARROWS
21
Valeur logique : TRUE si la couche affiche des
flèches de direction sur les objets linéaires.
LAYER_INFO_NODES
22
Valeur logique : TRUE si la couche affiche des
nœuds d'objets.
LAYER_INFO_CENTROIDS
23
Valeur logique : TRUE si la couche affiche des
centroïdes d'objets.
LAYER_INFO_TYPE
24
Valeur d'entier court indiquant le type de fichier
de cette couche :
• LAYER_INFO_TYPE_NORMAL (0)
Pour une couche normale
Référence
397
Fonction LayerInfo( )
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
• LAYER_INFO_TYPE_COSMETIC (1)
Pour la couche Dessin
• LAYER_INFO_TYPE_IMAGE (2)
Pour une couche d'image raster
• LAYER_INFO_TYPE_THEMATIC (3)
Pour une couche thématique
• LAYER_INFO_TYPE_GRID (4)
Pour une couche d'image de grille
• LAYER_INFO_TYPE_WMS (5)
Pour une couche d'un serveur WMS (Web
Map Service)
• LAYER_INFO_TYPE_TILESERVER (6)
Pour une couche provenant d'un serveur
d'images tuilées
LAYER_INFO_LBL_VISIBILITY
25
Valeur d'entier court indiquant si les étiquettes
sont visibles. Reportez-vous à la clause
Visibility de l'instruction Set Map. La valeur
renvoyée est l'une des valeurs suivantes :
• LAYER_INFO_LBL_VIS_ON (3)
Étiquettes toujours visibles
• LAYER_INFO_LBL_VIS_OFF (1)
Étiquettes jamais visibles
• LAYER_INFO_LBL_VIS_ZOOM (2)
Étiquettes visibles lorsqu'elles se trouvent
dans le seuil de zoom
398
LAYER_INFO_LBL_ZOOM_MIN
26
Valeur à virgule flottante indiquant la distance
de zoom minimale pour les étiquettes de cette
couche.
LAYER_INFO_LBL_ZOOM_MAX
27
Valeur à virgule flottante indiquant la distance
de zoom maximale pour les étiquettes de cette
couche.
LAYER_INFO_LBL_AUTODISPLAY
28
Valeur logique : TRUE si cette couche est
configurée pour afficher les étiquettes
automatiquement. Reportez-vous à la clause
Auto de l'instruction Set Map.
LAYER_INFO_LBL_OVERLAP
29
Valeur logique . TRUE si les étiquettes se
chevauchant sont autorisées.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
LAYER_INFO_LBL_DUPLICATES
30
Valeur logique : TRUE si les étiquettes en
double sont autorisées.
LAYER_INFO_LBL_OFFSET
31
Valeur d'entier court comprise entre 0 et 50,
définissant le décalage des étiquettes par
rapport aux centroïdes des objets. La valeur de
décalage représente une distance en points.
LAYER_INFO_LBL_MAX
32
Valeur entière indiquant le nombre maximal
d'étiquettes autorisées pour cette couche. Si
aucune valeur maximale n'a été définie, la valeur
renvoyée est 2 147 483 647.
LAYER_INFO_LBL_PARTIALSEGS
33
Valeur logique : TRUE si la case Objets
partiellement visibles est cochée pour cette
couche.
LAYER_INFO_HOTLINK_EXPR
34
Renvoie l'expression de nom de fichier de la
liaison dynamique de la couche. Peut renvoyer
une chaîne vide ("").
LAYER_INFO_HOTLINK_MODE
35
Renvoie le mode de liaison dynamique de la
couche, l'une des valeurs prédéfinies suivantes
:
• HOTLINK_MODE_LABEL (0) default
• HOTLINK_MODE_OBJ (1)
• HOTLINK_MODE_BOTH (2)
LAYER_INFO_HOTLINK_RELATIVE
36
Renvoie TRUE si l'option de chemin relatif est
activée et FALSE dans le cas contraire. FALSE
est la valeur par défaut.
LAYER_INFO_HOTLINK_COUNT
37
Vous permet d'effectuer une requête sur le
nombre de définitions de liaison dynamique
contenues dans une couche.
LAYER_INFO_LBL_ORIENTATION*
38
Valeur d'entier court indiquant le paramètre
d'orientation des étiquettes automatiques de la
couche. La valeur renvoyée est l'une des valeurs
suivantes :
• LAYER_INFO_LABEL_ORIENT_HORIZONTAL
L'angle des étiquettes est nul.
• LAYER_INFO_LABEL_ORIENT_PARALLEL
Les étiquettes sont inclinées.
• LAYER_INFO_LABEL_ORIENT_CURVED
Les étiquettes sont alignées.
Référence
399
Fonction LayerInfo( )
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
Si la valeur
LBL_OVR_LABEL_ORIENT_PARALLEL est
renvoyée, la fonction
LAYER_INFO_INFO_PARALLEL renvoie TRUE.
LAYER_INFO_LAYER_ALPHA
39
Valeur d'entier court représentant le facteur
alpha pour la couche définie.
• 0 = totalement transparent.
• 255 = totalement opaque.
Pour définir la translucidité ou le facteur alpha
d'une couche, utilisez l'instruction Set Map.
LAYER_INFO_LAYER_TRANSLUCENCY
40
Valeur d'entier court représentant le pourcentage
de translucidité pour la couche définie.
• 100 = totalement transparent.
• 0 = totalement opaque.
Pour définir la translucidité ou le facteur alpha
d'une couche, utilisez l'instruction Set Map.
LAYER_INFO_LABEL_ALPHA
41
Valeur d'entier court représentant le facteur
alpha pour les étiquettes de la couche définie.
• 0 = totalement transparent.
• 255 = totalement opaque.
Pour définir la translucidité ou le facteur alpha
d'une couche, utilisez la clause Label de
l'instruction Set Map.
400
LAYER_INFO_LAYERLIST_ID
42
Renvoie l'ID numérique global de la couche dans
la liste de couches actuelle. Si, par exemple,
une couche se trouve dans le premier groupe
de la liste des couches de la carte, en partant
de la fin, son ID de groupe de couches sera 1.
Par contre, s'il s'agit de la quatrième couche de
la liste, son ID de liste de couches sera 4. Cet
ID peut être utilisé avec la fonction
LayerListInfo( ).
LAYER_INFO_PARENT_GROUP_ID
43
Renvoie l'identifiant de groupe de couches du
groupe contenant cette couche. Renvoie 0 si la
couche se trouve dans la liste de niveau
supérieur.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
LAYER_INFO_OVR_STYLE_COUNT
44
Valeur d'entier court indiquant le nombre de
remplacements du style d'affichage.
LAYER_INFO_OVR_LBL_COUNT
45
Valeur d'entier court indiquant le nombre de
remplacements des paramètres d'étiquetage.
LAYER_INFO_OVR_STYLE_CURRENT
46
Valeur d'entier court indiquant l'index de
remplacement de style d'affichage dans le seuil
de zoom actuel ; 0 signifie qu'il n'y a pas de
remplacement.
LAYER_INFO_OVR_LBL_CURRENT
47
Valeur d'entier court indiquant l'index de
remplacement des paramètres d'étiquetage dans
le seuil de zoom actuel ; 0 signifie qu'il n'y a pas
de remplacement.
LAYER_INFO_OVR_LINE_COUNT
48
Valeur d'entier court indiquant le nombre de
styles de ligne définis en vue de l'affichage des
objets linéaires pour l'ensemble de base des
propriétés de la couche.
LAYER_INFO_OVR_PEN_COUNT
49
Valeur d'entier court indiquant le nombre de
styles de ligne définis en vue de l'affichage des
bordures des objets remplis pour l'ensemble de
base des propriétés de la couche.
LAYER_INFO_OVR_BRUSH_COUNT
50
Valeur d'entier court indiquant le nombre de
styles de trame définis en vue de l'affichage des
objets remplis pour l'ensemble de base des
propriétés de la couche.
LAYER_INFO_OVR_SYMBOL_COUNT
51
Valeur d'entier court indiquant le nombre de
styles de symbole définis en vue de l'affichage
des objets point pour l'ensemble de base des
propriétés de la couche.
LAYER_INFO_OVR_FONT_COUNT
52
Valeur d'entier court indiquant le nombre de
styles de polices définis en vue de l'affichage
des objets texte pour l'ensemble de base des
propriétés de la couche. Ceci renvoie toujours
1 car le style de police n'est pas pris en charge
par les styles superposés.
LAYER_INFO_TILE_SERVER_LEVEL
53
Valeur d'entier court représentant le niveau de
serveur d'images tuilées utilisé pour afficher la
couche dans la vue actuelle de la carte. -1 pour
les couches de serveur d'images non tuilées.
Référence
401
Fonction LayerInfo( )
402
Code attribute
ID
Valeur renvoyée par LayerInfo( ) :
LAYER_INFO_LBL_AUTO_POSITION
54
Valeur logique : indique si l'option d'étiquetage
de région avancé de la couche est activée ou
désactivée.
LAYER_INFO_LBL_AUTO_SIZES
55
Valeur logique : définit le nombre de tailles de
polices qui peuvent être utilisées lors d'une
tentative d'ajustement des étiquettes dans les
régions. Le nombre de polices peut varier de 1
à 10. Une valeur 0 (zéro) indique que la valeur
par défaut est choisie, pour que MapInfo
Professional définisse le nombre de polices à
utiliser.
LAYER_INFO_LBL_SUPPRESS_IF_NO_FIT
56
Valeur logique : indique si cette option
d'étiquetage est Activée ou Désactivée. Si,
après l'application d'incréments descendants de
la taille de police facultative, l'étiquette est
encore plus grande que la région, alors
l'étiquette n'est pas dessinée.
LAYER_INFO_LBL_AUTO_SIZE_STEP
57
Valeur d'entier court : définit le pourcentage
global de l'incrément de taille de police utilisé
pour redimensionner automatiquement la police
de l'étiquette en vue de son ajustement. Si la
taille de la police originale est de 24 pts et que
l'incrément correspond à 66, la police la plus
petite sera donc 66 % plus petite que 24 pts (la
plus petite police est de 8 pts).
LAYER_INFO_LBL_CURVED_BEST_POSITION 58
Valeur logique : indique si le positionnement
automatique des étiquettes alignées est activé
ou désactivé.
LAYER_INFO_LBL_CURVED_FALLBACK
59
Valeur logique : indique si l'option de tolérance
de création d'une étiquette pivotée est activée
ou désactivée.
LAYER_INFO_LBL_USE_ABBREVIATION
60
Valeur logique : indique si l'utilisation des
abréviations est activée ou désactivée.
LAYER_INFO_ABBREVIATION_EXPR
61
Renvoie l'expression de champ utilisée pour les
étiquettes abrégées.
LAYER_INFO_LBL_AUTO_CALLOUT
62
Valeur logique : indique si l'option d'étiquetage
de région avancé du rendu de renvoi de la
couche est activée ou désactivée.
LAYER_INFO_LBL_ORDER
63
Valeur d'entier court : ordre d'étiquetage de la
couche.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Liaisons dynamiques
À des fins de rétrocompatibilité, le jeu d'attributs original antérieur à la version 10.0 fonctionne toujours
et renvoie les valeurs de la première définition de liaison dynamique de la couche. Si aucune liaison
dynamique n'est définie lors de l'appel de la fonction, les valeurs suivantes sont renvoyées :
LAYER_INFO_HOTLINK_EXPR chaîne vide ("")
LAYER_INFO_HOTLINK_MODE : renvoie la valeur par défaut HOTLINK_MODE_LABEL
LAYER_INFO_HOTLINK_RELATIVE : renvoie la valeur par défaut FALSE
Exemples
Un grand nombre des paramètres sur lesquels vous pouvez effectuer une requête à l'aide de la fonction
LayerInfo( ) s'appliquent uniquement aux couches de carte conventionnelles (par opposition aux couches
de carte Dessin, aux couches de carte thématiques et aux couches de carte représentant des tables
d'images raster).
Pour déterminer si une couche de carte est une couche conventionnelle, utilisez le paramètre
LAYER_INFO_TYPE comme indiqué ci-dessous :
i_lay_type = LayerInfo( map_id, layer_number, LAYER_INFO_TYPE)
If i_lay_type = LAYER_INFO_TYPE_NORMAL Then
'
' ... then this is a "normal" layer
'
End If
L'exemple suivant illustre la priorité des couches. Si l'ordre de priorité des étiquettes est défini comme
:
Set Map Window FrontWindow() LabelPriority 5, 1, 2, 4, 3
l'exemple suivant retourne une valeur de 1, car l'ordre de dessin par défaut des étiquettes est identique
à l'ordre de dessin des couches de carte (selon un processus ascendant).
LayerInfo(FrontWindow(), 5, LAYER_INFO_LBL_ORDER)
Voir également
Fonction GroupLayerInfo, Fonction LayerListInfo( ), Fonction MapperInfo( ), Instruction Set Map
Fonction LayerListInfo( )
Objectif
Cette fonction énumère la liste des couches d'une carte et peut désigner à la fois des groupes de couche
et des couches graphiques.
Syntaxe
LayerListInfo( map_window_id, numeric_counter, attribute )
map_window_id est un identifiant de fenêtre Carte.
Référence
403
Fonction LayerStyleInfo( )
numeric_counter est la valeur comprise entre zéro (0) et celle de MAPPER_INFO_ALL_LAYERS. Elle
indique le nombre de couches dans la fenêtre Carte, sauf la couche Dessin. Pour obtenir des détails
sur MAPPER_INFO_ALL_LAYERS, reportez-vous à la section Fonction MapperInfo( ).
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Valeur renvoyée
Dépend du paramètre attribute.
Description
Cette fonction peut être utilisée pour itérer tous les composants de la liste de couches de la carte lorsque
numeric_counter est compris entre zéro (0) et la valeur de MAPPER_INFO_ALL_LAYERS.
Les attributs disponibles sont les suivants :
Valeur des paramètres window_id, ID
attribute
Description
LAYERLIST_INFO_TYPE
Types de couche dans la liste :
1
• LAYERLIST_INFO_TYPE_LAYER (0)
• LAYERLIST_INFO_TYPE_GROUP (1)
LAYERLIST_INFO_NAME
2
Renvoie une valeur de chaîne qui correspond au nom de
la couche ou du groupe de couches.
LAYERLIST_INFO_LAYER_ID
3
Renvoie une valeur numérique, identifiant de la couche.
Utilisez cette valeur pour interroger la couche à l'aide de
la fonction LayerInfo( ).
LAYERLIST_INFO_GROUPLAYER_ID 4
Renvoie une valeur numérique, identifiant du groupe de
couches. Utilisez cette valeur pour interroger la couche à
l'aide de la fonction GroupLayerInfo.
Si le type renvoie une couche graphique, utilisez LayerInfo pour en obtenir les attributs. S'il s'agit d'un
groupe de couches, utilisez GroupLayerInfo pour en obtenir les attributs. Pour parcourir cette vue à plat
de la liste de couches, utilisez MAPPER_INFO_ALL_LAYERS comme limite de boucle.
Indiquer un identifiant de fenêtre Carte égal à zéro (0) renvoie des informations sur la couche Dessin.
Voir également
Fonction GroupLayerInfo, Fonction LayerInfo( ), Fonction MapperInfo( )
Fonction LayerStyleInfo( )
Renvoie des informations sur un style superposé (un style composé d'une ou plusieurs définitions de
style).
404
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Syntaxe
LayerStyleInfo (
window_id, layer_number, override_index, pass_index, attribute )
window_id est l'identifiant de fenêtre entier d'une fenêtre Carte.
layer_numbercorrespond au numéro d'une couche de la fenêtre Carte active (1 pour la couche supérieure,
par exemple). Pour déterminer le nombre de couches d'une fenêtre Carte, appelez la fonction
MapperInfo( ) .
override_index est un index d'entier (à base 0, où 0 représente l'ensemble de base des propriétés de
la couche) ; 1 ou plus représente un remplacement de style.
pass_index est un index d'entier (à base 1) où l'index correspond à une instance du style superposé.
La première instance est la partie du style dessinée en premier, la deuxième instance est la partie du
style dessinée en deuxième, et ainsi de suite.
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Valeur renvoyée
La valeur renvoyée varie en fonction du paramètre attribute.
Description
La fonction LayerStyleInfo( ) renvoie des informations sur un style superposé. Un style superposé est
constitué d'une ou plusieurs définitions de style. Par exemple, une ligne dessinée avec deux styles
différents, une ligne fine rouge clair par dessus une ligne épaisse rouge foncé, serait décrite de la façon
suivante à l'aide de la syntaxe MapBasic :
Line (7,2,12582912), Line (3,2,16736352)
Dans cet exemple, la ligne la plus épaisse rouge foncé est dessinée en premier.
layer_number doit être une couche valide (1 est la couche de la table supérieure, etc.). Le paramètre
attribute doit être l'un des codes répertoriés dans le tableau suivant. Les codes sont définis dans
MAPBASIC.DEF.
Code attribute
ID
Valeur renvoyée par LayerStyleInfo( )
STYLE_OVR _INFO_LINE
10
Style de ligne utilisé en vue de l'affichage des instances
spécifiées pour les objets linéaires.
STYLE_OVR _INFO_PEN
11
Style de ligne utilisé en vue de l'affichage des instances
spécifiées pour les bordures des objets remplis.
STYLE_OVR_INFO_BRUSH
12
Style de trame utilisé en vue de l'affichage des instances
spécifiées pour les objets remplis.
STYLE_OVR_INFO_SYMBOL
13
Style de symbole utilisé en vue de l'affichage des
instances spécifiées pour les objets point.
STYLE_OVR_INFO_FONT
14
Style de police utilisé en vue de l'affichage des instances
spécifiées pour les objets texte.
Référence
405
Instruction Layout
Exemple
LayerStyleInfo(nMID, nLayer, nOverride, nPass, STYLE_OVR_INFO_PEN)
Voir également
Fonction StyleOverrideInfo( ), Fonction LabelOverrideInfo( ), Instruction Set Map, Fonction
LayerInfo( )
Instruction Layout
Objectif
Ouvre une nouvelle fenêtre Mise en page. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Layout
[ Position ( x, y ) [ Units paperunits ] ]
[ Width window_width [ Units paperunits ] ]
[ Height window_height [ Units paperunits ] ]
[ { Min | Max } ]
paperunits est une chaîne qui représente le nom d'une unité papier (par exemple, « in » ou « mm »).
x, y définit l'emplacement du coin supérieur gauche de la mise en page, en unités papier, où 0,0 représente
le coin supérieur gauche de la fenêtre MapInfo Professional. Pour obtenir des détails sur les unités
papier, consultez la section Instruction Set Paper Units.
window_width et window_height définissent la taille de la fenêtre, en unités papier.
Description
L'instruction Layout ouvre une nouvelle fenêtre Mise en page. Si l'instruction inclut le mot-clé Min
facultatif, la fenêtre est réduite avant d'être affichée. Si l'instruction inclut le mot-clé Max facultatif, la
fenêtre est agrandie, occupant tout l'espace de l'écran de MapInfo Professional.
Les clauses Width et Height déterminent la taille de la fenêtre Mise en page, pas la taille de la mise en
page même. La taille de la mise en page est déterminée par la taille du papier en cours d'utilisation et
le nombre de pages incluses dans la mise en page.
Pour plus d'informations sur la définition du nombre de pages d'une mise en page, reportez-vous à la
section Instruction Set Layout.
MapInfo Professional attribue un nom de table masqué particulier à chaque fenêtre Mise en page. La
première fenêtre Mise en page ouverte est appelée Layout1, la suivante est appelée Layout2, etc.
Le programme MapBasic peut créer, sélectionner ou modifier les objets d'une fenêtre Mise en page en
exécutant des instructions faisant référence à ces noms de table. Par exemple, l'instruction suivante
sélectionne tous les objets d'une fenêtre Mise en page :
Select * From Layout1
406
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
L'exemple suivant crée une fenêtre Mise en page de 2 pouces de large et de 4 pouces de haut, placée
dans le coin supérieur gauche du document MapInfo Professional.
Layout Position (0, 0) Width 2 Height 4
Voir également
Instruction Open Window, Instruction Set Layout
Fonction LCase$( )
Objectif
Renvoie l'équivalent en minuscules d'une chaîne. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
LCase$( string_expr )
string_expr est une expression de type chaîne.
Valeur renvoyée
Chaîne
Description
La fonction LCase$( ) renvoie la chaîne qui est l'équivalent en minuscules de l'expression de chaîne
string_expr.
La conversion de majuscules en minuscules n'affecte que les caractères alphabétiques (A à Z). Les
caractères numériques et les signes de ponctuation ne sont pas concernés. Ainsi, l'appel de fonction :
LCase$( "A#12a" )
renvoie la chaîne « a#12a ».
Exemple
Dim regular, lower_case As String
regular = "Los Angeles"
lower_case = LCase$(regular)
'
' Now, lower_case contains the value "los angeles"
'
Voir également
Fonction Proper$( ), Fonction UCase$( )
Référence
407
Fonction Left$( )
Fonction Left$( )
Objectif
Renvoie une chaîne, complète ou partielle, en commençant par l'extrémité gauche de la chaîne. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Left$( string_expr, num_expr )
string_expr est une expression de type chaîne.
num_expr est une expression numérique supérieure ou égale à zéro.
Valeur renvoyée
Chaîne
Description
La fonction Left$( ) renvoie une chaîne composée des caractères num_expr situés à gauche de
l'expression de chaîne string_expr.
Le paramètre num_expr doit être une valeur entière, supérieure ou égale à zéro. Si num_expr est une
valeur fractionnelle, MapBasic arrondit à l'entier le plus proche. Si num_expr est égal à zéro, Left$( )
renvoie une chaîne vide. Si le paramètre num_expr est plus élevé que le nombre de caractères de la
chaîne string_expr, Left$( ) renvoie une copie de toute la chaîne string_expr.
Exemple
Dim whole, partial As String
whole = "Afghanistan"
partial = Left$(whole, 6)
' at this point, partial contains the string: "Afghan"
Voir également
Fonction Mid$( ), Fonction Right$( )
Fonction LegendFrameInfo( )
Objectif
Renvoie des informations sur un cadre de légende. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
LegendFrameInfo( window_id, frame_id, attribute )
window_id est un numéro qui définit la fenêtre Légende sur laquelle vous souhaitez effectuer une requête.
408
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
frame_id est un numéro qui définit le cadre de la fenêtre Légende sur laquelle porte votre requête. Les
cadres sont numérotés de 1 à n, où n correspond au nombre de cadres de la légende.
attribute est un code d'entier qui indique le type d'informations à renvoyer.
Valeur renvoyée
Dépend du paramètre attribute.
Codes attribute
ID
Valeur renvoyée par LegendFrameInfo( ) :
FRAME_INFO_TYPE
1
Renvoie l'une des constantes prédéfinies
suivantes, qui indiquent le type de cadre :
• FRAME_TYPE_STYLE (1)
• FRAME_TYPE_THEME (2)
FRAME_INFO_MAP_LAYER_ID
2
Renvoie l'identifiant de la couche à laquelle le
cadre correspond.
FRAME_INFO_REFRESHABLE
3
Renvoie TRUE si le cadre a été créé sans le
mot-clé Norefresh. Renvoie toujours TRUE pour
les cadres thématiques.
FRAME_INFO_POS_X
4
Renvoie la distance entre le coin supérieur
gauche du cadre et le bord gauche de la zone
de légende (en unités papier).
FRAME_INFO_POS_Y
5
Renvoie la distance entre le coin supérieur
gauche du cadre et le bord supérieur de la zone
de légende (en unités papier).
FRAME_INFO_WIDTH
6
Renvoie la largeur du cadre (en unités papier).
Pour obtenir des détails sur les unités papier,
consultez la section Instruction Set Paper
Units.
FRAME_INFO_HEIGHT
7
Renvoie la hauteur du cadre (en unités papier).
FRAME_INFO_TITLE
8
Renvoie le titre d'un cadre de style ou d'un cadre
thématique.
FRAME_INFO_TITLE_FONT
9
Renvoie la police du titre d'un cadre de légende.
Si le cadre ne porte pas de titre, la valeur
renvoyée est la police de titre par défaut.
FRAME_INFO_SUBTITLE
10
Renvoie le sous-titre d'un cadre de style ou d'un
cadre thématique.
FRAME_INFO_SUBTITLE_FONT
11
Identique à FRAME_INFO_TITLE_FONT (9)
Référence
409
Fonction LegendFrameInfo( )
Codes attribute
ID
Valeur renvoyée par LegendFrameInfo( ) :
FRAME_INFO_BORDER_PEN
12
Renvoie le stylo utilisé pour tracer la bordure
dans une fenêtre Légende cartographique ou
Légende thématique.
La fenêtre de conception de légende ne prend
pas en charge cette fonction et renvoie un style
de stylo vide (invisible) : Pen (0, 1, 0).
FRAME_INFO_NUM_STYLES
13
Renvoie le nombre de styles d'un cadre.
FRAME_INFO_VISIBLE
14
Renvoie TRUE si le cadre est visible (les cadres
thématiques peuvent être invisibles).
FRAME_INFO_COLUMN
15
Renvoie le nom de la colonne d'attributs de la
légende sous forme de chaîne (le cas échéant).
Renvoie une chaîne vide pour un cadre
thématique.
FRAME_INFO_LABEL
16
Renvoie l'expression de l'étiquette sous forme
de chaîne (le cas échéant). Renvoie une chaîne
vide pour un cadre thématique.
FRAME_INFO_COLUMNS
17
Renvoie le nombre de colonnes d'un cadre de
légende. Renvoie -1 pour une fenêtre Légende
cartographique.
FRAME_INFO_NUM_VISIBLE_ROWS
18
Renvoie le nombre de lignes visibles dans un
cadre de légende. Pour les fenêtres Légende
cartographique (avant la version 11.5), renvoie
-1.
FRAME_INFO_LINE_SAMPLE_WIDTH
19
Renvoie la largeur d'un exemple de ligne en
unités papier MapBasic. Renvoie -1 pour la
fenêtre Légende cartographique.
FRAME_INFO_REGION_SAMPLE_WIDTH
20
Renvoie la largeur d'un exemple de région en
unités papier MapBasic. Renvoie -1 pour la
fenêtre Légende cartographique. Pour obtenir
des détails sur les unités papier, consultez la
section Instruction Set Paper Units.
FRAME_INFO_REGION_SAMPLE_HEIGHT
21
Renvoie la hauteur d'un exemple de région en
unités papier MapBasic. Renvoie -1 pour la
fenêtre Légende cartographique. Pour obtenir
des détails sur les unités papier, consultez la
section Instruction Set Paper Units.
Voir également
Fonction LegendInfo( ), Fonction LegendTextFrameInfo( ), Fonction LegendStyleInfo( )
410
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction LegendInfo( )
Objectif
Renvoie des informations sur une légende. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
LegendInfo( window_id, attribute )
window_id est un numéro qui définit la fenêtre Légende sur laquelle vous souhaitez effectuer une requête.
attribute est un code d'entier qui indique le type d'informations à renvoyer.
Valeur renvoyée
Dépend du paramètre attribute.
Code attribute
ID
Valeur renvoyée par LegendInfo( ) :
LEGEND_INFO_MAP_ID
1
Renvoie l'identifiant de la fenêtre Carte parent
(il est également possible d'obtenir cette valeur
en appelant la fonction WindowInfo( ) avec le
code WIN_INFO_TABLE).
LEGEND_INFO_ORIENTATION
2
Renvoie une valeur prédéfinie indiquant la mise
en page de la légende :
• ORIENTATION_PORTRAIT (1)
• ORIENTATION_LANDSCAPE (2)
• ORIENTATION_CUSTOM (3)
LEGEND_INFO_NUM_FRAMES
3
Renvoie le nombre de cadres de la légende.
LEGEND_INFO_STYLE_SAMPLE_SIZE
4
Renvoie 0 pour les exemples de légende de
petite taille ou 1 pour ceux de grande taille.
Renvoie -1 pour une fenêtre de conception de
légende.
LEGEND_INFO_LINE_SAMPLE_WIDTH
5
Renvoie la largeur d'un exemple de ligne en
unités papier MapBasic. Pour une fenêtre
Légende cartographique, renvoie la valeur -1.
Pour obtenir des détails sur les unités papier,
consultez la section Instruction Set Paper
Units.
LEGEND_INFO_REGION_SAMPLE_WIDTH
6
Renvoie la largeur d'un exemple de région en
unités papier MapBasic. Pour une fenêtre
Légende cartographique, renvoie la valeur -1.
Référence
411
Fonction LegendStyleInfo( )
Code attribute
ID
Valeur renvoyée par LegendInfo( ) :
LEGEND_INFO_REGION_SAMPLE_HEIGHT 7
Renvoie la hauteur d'un exemple de région en
unités papier MapBasic. Pour une fenêtre
Légende cartographique, renvoie la valeur -1.
LEGEND_INFO_NUM_TEXTFRAMES
Renvoie le nombre de cadres de texte dans la
fenêtre de conception de légende en cours.
8
Exemple
dim wndLegend, wndMap as integer
for i = 1 to NumWindows()
If WindowInfo(WindowID(i), WIN_INFO_TYPE) = WIN_MAPPER then
wndMap = WindowInfo(WindowID(i), WIN_INFO_WINDOWID)
end if
if WindowInfo(WindowID(i), WIN_INFO_TYPE) = WIN_LEGEND_DESIGNER then
wndLegend = WindowInfo(WindowID(i), WIN_INFO_WINDOWID)
end if
next
Cet exemple montre comment connaître l'identifiant de la fenêtre Carte utilisé pour la création de la
fenêtre de conception de légende.
If LegendInfo(wndLegend, LEGEND_INFO_MAP_ID) = wndMap then
Print "Map ID: " + str$(MapID) + " was correct"
End if
Voir également
Fonction LegendFrameInfo( ), Fonction LegendTextFrameInfo( ), Fonction LegendStyleInfo( )
Fonction LegendStyleInfo( )
Objectif
Renvoie des informations sur un élément de style d'un cadre de légende. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
LegendStyleInfo( window_id, frame_id, style_id, attribute )
window_id est un numéro qui définit la fenêtre Légende sur laquelle vous souhaitez effectuer une requête.
frame_id est un numéro qui définit le cadre de la fenêtre Légende sur laquelle porte votre requête. Les
cadres sont numérotés de 1 à n, où n correspond au nombre de cadres de la légende.
style_id est un numéro qui définit le style du cadre sur lequel vous souhaitez effectuer une requête. Les
styles sont numérotés de 1 à n, où n correspond au nombre de styles du cadre.
attribute est un code d'entier qui indique le type d'informations à renvoyer.
412
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur renvoyée
Code attribute
ID
Valeurs renvoyées par LegendStyleInfo( ) :
LEGEND_STYLE_INFO_TEXT
1
Renvoie le texte du style.
LEGEND_STYLE_INFO_FONT
2
Renvoie la police du style.
LEGEND_STYLE_INFO_OBJ
3
Renvoie l'objet du style. Les valeurs de type de légende
thématique possibles sont les suivantes :
• Thème de classes – rectangle, ligne ou point
•
•
•
•
•
LEGEND_STYLE_INFO_ROW_VISIBLE 4
Thème de barres – rectangle
Thématique de coloration continue – rectangle
Thème de symboles proportionnels – point
Thème de densité de points – rectangle
Graphique à secteurs – rectangle
Indique si la ligne de style est visible ou non dans la
légende. Pour les fenêtres Légende cartographique
(avant la version 11.5), renvoie une valeur True.
Conditions d'erreur
Génère une erreur lorsque la fonction est émise pour un cadre ne disposant d'aucun style (cadre
thématique).
Exemple
L'exemple suivant illustre la méthode d'appel de la fonction LegendStyleInfo( ) pour ne renvoyer que
les informations de style des styles de cadre thématique dans la fenêtre de Conception de légende.
Cet exemple suppose que la fenêtre de Conception de légende se trouve au premier plan. Il permet
d'obtenir les informations de style d'un échantillon de style n° 1 d'un cadre thématique de classes n° 1.
dim
dim
dim
dim
dim
dim
objStyle as object
tBrush as Brush
tPen as Pen
tSymbol as Symbol
tFont as Font
strSampleText as string
objStyle = LegendStyleInfo(FrontWindow(), 1, 1, LEGEND_STYLE_INFO_OBJ)
tFont = LegendStyleInfo(FrontWindow(), 1, 1, LEGEND_STYLE_INFO_FONT)
strSampleText = LegendStyleInfo(FrontWindow(), 1, 1, LEGEND_STYLE_INFO_TEXT)
Do Case ObjectInfo(objStyle, OBJ_INFO_TYPE)
Case OBJ_TYPE_POINT
tSymbol = ObjectInfo(objStyle, OBJ_INFO_SYMBOL)
Print tSymbol
'or use StyleAttr() to return specific properties of the Symbol Style, for
example: StyleAttr(tSymbol, SYMBOL_FONT_NAME)
Case OBJ_TYPE_LINE
tPen = ObjectInfo(objStyle, OBJ_INFO_PEN)
Print tPen
Référence
413
Fonction LegendTextFrameInfo( )
'or use StyleAttr() to return specific properties of the Pen\Line Style, for
example: StyleAttr(tPen, PEN_COLOR)
Case OBJ_TYPE_RECT
tBrush = ObjectInfo(objStyle, OBJ_INFO_BRUSH)
Print tBrush
'or use StyleAttr() to return specific properties of the Brush\Region Style,
for example: StyleAttr(tBrush, BRUSH_FORECOLOR)
Case Else
Note "Unexpected Object type"
End Case
Print tFont
'for example: Font ("Arial",0,8,0,0)
Utilisez la fonction StyleAttr() pour renvoyer des propriétés spécifiques du style de police, par exemple
:
StyleAttr(tFont, FONT_NAME)
et imprimer le texte de la première valeur de plage thématique (de 5 700 000 à 23 700 000 par exemple).
Print strSampleText
Voir également
Fonction StyleAttr()
Fonction LegendTextFrameInfo( )
Objectif
Renvoie des informations sur un cadre de texte dans la fenêtre de de conception de légende. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
LegendTextFrameInfo( window_id, frame_id, attribute )
window_id est un numéro qui définit la fenêtre Légende sur laquelle vous souhaitez effectuer une requête.
frame_id est un numéro qui définit le cadre de la fenêtre Légende sur laquelle porte votre requête. Les
cadres sont numérotés de 1 à n, où n correspond au nombre de cadres de la légende.
attribute est un code d'entier qui indique le type d'informations à renvoyer.
Valeur renvoyée
Dépend du paramètre attribute.
414
Codes attribute
ID
Valeur renvoyée par LegendTextFrameInfo( )
FRAME_INFO_POS_X
1
Renvoie la distance entre le coin supérieur gauche du
cadre et le bord gauche de la zone de légende (en unités
papier).
FRAME_INFO_POS_Y
2
Renvoie la distance entre le coin supérieur gauche du
cadre et le bord supérieur de la zone de légende (en unités
papier).
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Codes attribute
ID
Valeur renvoyée par LegendTextFrameInfo( )
FRAME_INFO_WIDTH
3
Renvoie la largeur du cadre (en unités papier). Pour
obtenir des détails sur les unités papier, consultez la
section Instruction Set Paper Units.
FRAME_INFO_HEIGHT
4
Renvoie la hauteur du cadre (en unités papier). Pour
obtenir des détails sur les unités papier, consultez la
section Instruction Set Paper Units.
FRAME_INFO_TEXT
5
Renvoie le texte d'un cadre de texte.
FRAME_INFO_TEXT_FONT
6
Renvoie la police du texte du cadre de texte.
Voir également
Fonction LegendInfo( ), Fonction LegendFrameInfo( ), Fonction LegendStyleInfo( )
Fonction Len( )
Objectif
Renvoie le nombre de caractères d'une chaîne ou le nombre d'octets d'une variable. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Len( expr )
expr est une expression variable. expr ne peut pas être une variable Pen, Brush, Symbol, Font ou Alias.
Valeur renvoyée
Entier court
Description
Le comportement de la fonction Len( ) varie en fonction du type de données du paramètre expr.
Si l'expression expr représente une chaîne de caractères, la fonction Len( ) renvoie le nombre de
caractères de la chaîne.
Si l'expression expr est une variable MapBasic, Len( ) renvoie la taille de la variable, en octets. Ainsi,
si vous transmettez une variable entière, Len( ) renvoie la valeur 4 (chaque variable entière occupe 4
octets). En revanche, si vous transmettez une variable entière courte, Len( ) renvoie la valeur 2 (chaque
variable entière courte occupe 2 octets).
Exemple
Dim name_length As SmallInt
name_length = Len("Boswell")
' name_length now has the value: 7
Référence
415
Fonction LibraryServiceInfo( )
Voir également
Fonction ObjectLen( )
Fonction LibraryServiceInfo( )
Objectif
Renvoie des informations sur les services Bibliothèque, tels que le mode de fonctionnement actuel, la
version, ou l'URL par défaut pour les services Bibliothèques. Offre également la liste des URL CSW
exposées par MapInfo Manager.
Syntaxe
LibraryServiceInfo( attribute )
attribute est un code qui indique le type d'informations à renvoyer. Reportez-vous au tableau ci-dessous.
Description
La fonction LibraryServiceInfo( ) renvoie une information sur les services Bibliothèque.
Le paramètre attribute est une valeur figurant dans la table ci-dessous. Les codes figurant dans la
colonne de gauche sont définis dans MAPBASIC.DEF.
Code attribute
ID
LibraryServiceInfo( ) renvoie
LIBSRVC_INFO_LIBSRVCMODE
1
Résultat entier représentant le mode de fonctionnement
actuel du service Bibliothèque.
LIBSRVC_INFO_LIBVERSION
2
Résultat sous forme de chaîne représentant la version du
service Bibliothèque. L'URL du service Bibliothèque par
défaut doit être définie avant d'appeler cette fonction.
LIBSRVC_INFO_DEFURLPATH
3
Résultat sous forme de chaîne représentant l'URL par
défaut du service Bibliothèque. La valeur par défaut pour
l'URL de la Bibliothèque est une chaîne vide.
LIBSRVC_INFO_LISTCSWURL
4
Résultat sous forme de chaîne, qui donne la liste des URL
CSW exposées par le serveur MapInfo Manager sous
forme de simple chaîne délimitée par un point virgule (;).
Exemple
L'exemple suivant montre comment utiliser cette fonction :
include "mapbasic.def"
declare sub main
sub main
dim liburlpath as string
dim libversion as string
liburlpath = LibraryServiceInfo(LIBSRVC_INFO_DEFURLPATH)if
StringCompare(liburlpath, "") == 0 then
Set LibraryServiceInfo URL
"http://localhost:8080/LibraryService/LibraryService"
416
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
endif
libversion = LibraryServiceInfo(LIBSRVC_INFO_LIBVERSION)
end sub
Voir également
Instruction Set LibraryServiceInfo
Fonction Like( )
Objectif
Renvoie TRUE ou FALSE pour indiquer si une chaîne répond aux critères de correspondance des
éléments. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Like( string, pattern_string, escape_char )
string est une expression de chaîne à tester.
pattern_string est une chaîne contenant des caractères classiques ou des caractères génériques
spéciaux.
escape_char est une expression de chaîne définissant un caractère d'échappement. Utilisez un caractère
d'échappement (« \ », par exemple) si vous devez tester la présence d'un des caractères génériques
(« % » et « _ ») dans l'expression de chaîne. Si vous ne souhaitez disposer d'aucun caractère
d'échappement, utilisez une chaîne vide ("").
Valeur renvoyée
Valeur logique (TRUE si la chaîne correspond au paramètre pattern_string).
Description
La fonction Like( ) met en correspondance des éléments de chaînes. Cette comparaison des chaînes
respecte la casse. Pour procéder à une comparaison qui ne respecte pas la casse, utilisez l'opérateur
Like.
Le paramètre pattern_string peut inclure les caractères génériques suivants :
_ (caractère de soulignement)
correspond à un caractère.
% (pourcentage)
correspond à zéro caractère ou plusieurs.
Pour rechercher des instances de caractères de soulignement ou de pourcentage, utilisez un paramètre
escape_char, comme indiqué dans le tableau ci-dessous.
Référence
417
Instruction Line Input
Pour déterminer si une chaîne...
Utilisez ces paramètres :
commence par « South »
Like( string_var, "South%", "")
se termine par « America »
Like( string_var, "%America", "")
contient « ing » en n'importe quel point
Like( string_var, "%ing%", "" )
commence par un caractère de soulignement
Like( string_var, "\_%", "\")
Voir également
Fonction Len( ), Fonction StringCompare( )
Instruction Line Input
Objectif
Lit une ligne d'un fichier texte séquentiel dans une variable.
Syntaxe
Line Input [#] filenum, var_name
filenum est une valeur entière qui indique le numéro d'un fichier ouvert.
var_name est le nom d'une variable de type chaîne.
Description
L'instruction Line Input lit une ligne entière d'un fichier texte et stocke les résultats dans une variable
de type chaîne. Le fichier texte doit déjà être ouvert en mode Input.
L'instruction Line Input traite chaque ligne du fichier comme une longue chaîne. Si chaque ligne du
fichier contient une liste d'expressions séparées par des virgules et que vous voulez lire chaque expression
dans une variable distincte, utilisez l'instruction Input # au lieu de Line Input.
Exemple
Le programme ci-dessous ouvre un fichier texte existant, lit son contenu une ligne à la fois et copie le
contenu du fichier dans un fichier texte distinct.
Dim str As String
Open File "original.txt" For Input As #1
Open File "copy.txt" For Output As #2
Do While Not EOF(1)
Line Input #1, str
If Not EOF(1) Then
Print #2, str
End If
Loop
Close File #1
Close File #2
418
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Instruction Input #, Instruction Open File, Instruction Print #
Fonction LocateFile$( )
Objectif
Renvoie le chemin d'accès à l'un des fichiers de données de l'application MapInfo. Vous pouvez appeler
cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
LocateFile$( file_id )
file_id est l'une des valeurs suivantes :
Valeur
ID
Description
LOCATE_PREF_FILE
0
Fichier de préférences (MAPINFOW.PRF).
LOCATE_DEF_WOR
1
Fichier de document par défaut (MAPINFOW.WOR).
LOCATE_CLR_FILE
2
Fichier de couleurs (MAPINFOW.CLR).
LOCATE_PEN_FILE
3
Fichier de styles de ligne (MAPINFOW.PEN).
LOCATE_FNT_FILE
4
Fichier de symboles (MAPINFOW.FNT).
LOCATE_ABB_FILE
5
Fichier d'abréviations (MAPINFOW.ABB).
LOCATE_PRJ_FILE
6
Fichier de projection (MAPINFOW.PRJ).
LOCATE_MNU_FILE
7
Fichier de menus (MAPINFOW.MNU).
LOCATE_CUSTSYMB_DIR
8
Répertoire de symboles personnalisés (CUSTSYMB).
LOCATE_THMTMPLT_DIR
9
Répertoire de modèles d'analyse thématique (THMTMPL).
LOCATE_GRAPH_DIR
10
Répertoire de prise en charge des graphiques
(GRAPHSUPPORT).
LOCATE_WMS_SERVERLIST
11
Liste XML des serveurs WMS (MIWMSSERVERS.XML).
LOCATE_WFS_SERVERLIST
12
Liste XML des serveurs WFS (MIWFSSERVERS.XML).
LOCATE_GEOCODE_SERVERLIST 13
Liste XML des serveurs de géocodage
(MIGEOCODESERVERS.XML).
LOCATE_ROUTING_SERVERLIST
Liste XML des serveurs de routing
(MIROUTINGSERVERS.XML).
14
LOCATE_LAYOUT_TEMPLATE_DIR 15
Référence
Répertoire de modèles de mise en page
(LAYOUTTEMPLATE)
419
Fonction LOF( )
Valeur renvoyée
Chaîne
Description
Cette fonction s'appuie sur l'identifiant d'un fichier de données de l'application MapInfo Professional pour
renvoyer l'emplacement où MapInfo Professional a trouvé le fichier en question. MapInfo Professional
installe ces fichiers sous le répertoire des données d'application de l'utilisateur. Il existe cependant
plusieurs emplacements valides pour ces fichiers, notamment le répertoire du programme. Les applications
MapBasic ne doivent pas déterminer l'emplacement de ces fichiers par déduction. Au contraire, la fonction
LocateFile$( ) doit être utilisée.
Exemple
include "mapbasic.def"
declare sub main
sub main
dim sGraphLocations as string
sGraphLocations = LocateFile$(LOCATE_GRAPH_DIR)
Print sGraphLocations
end sub
Voir également
Fonction GetFolderPath$( )
Fonction LOF( )
Objectif
Renvoie la longueur d'un fichier ouvert.
Syntaxe
LOF( filenum )
filenum est le numéro d'un fichier ouvert.
Valeur renvoyée
Entier
Description
La fonction LOF( ) renvoie la longueur d'un fichier ouvert, en octets.
Le paramètre filenum représente le numéro d'un fichier ouvert. Il correspond au même numéro spécifié
dans la clause As de l'Instruction Open File.
Conditions d'erreur
L'erreur ERR_FILEMGR_NOTOPEN (366) est générée si le fichier spécifié n'est pas ouvert.
420
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
Dim size As Integer
Open File "import.txt" For Binary As #1
size = LOF(1)
' size now contains the # of bytes in the file
Voir également
Instruction Open File
Fonction Log( )
Objectif
Renvoie le logarithme naturel d'un nombre. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Log( num_expr )
num_expr représente une expression numérique.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Log( ) renvoie le logarithme naturel de l'expression numérique spécifiée par le paramètre
num_expr.
Le logarithme naturel représente le nombre qui doit être ajouté à la valeur mathématique e pour obtenir
le paramètre num_expr. e possède une valeur approximative de 2,7182818.
Le logarithme est uniquement défini pour les nombres positifs. En conséquence, la fonction Log( ) génère
une erreur si num_expr contient une valeur négative.
Vous pouvez calculer les valeurs logarithmiques en d'autres bases (base 10, par exemple) à l'aide du
logarithme naturel. Pour obtenir le logarithme en base 10 du nombre n, divisez le logarithme naturel de
n ( Log( n ) ) par le logarithme naturel de 10 ( Log( 10 ) ).
Exemple
Dim original_val, log_val As Float
original_val = 2.7182818
log_val = Log(original_val)
' log_val will now have a value of 1 (approximately),
' since E raised to the power of 1 equals
' 2.7182818 (approximately)
Voir également
Fonction Exp( )
Référence
421
Fonction LTrim$( )
Fonction LTrim$( )
Objectif
Supprime les espaces au début d'une chaîne et renvoie les résultats. Vous pouvez appeler cette fonction
à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
LTrim$( string_expr )
string_expr est une expression de type chaîne.
Valeur renvoyée
Chaîne
Description
La fonction LTrim$( ) supprime les espaces du début de la chaîne string_expr, et renvoie la chaîne
résultante.
Exemple
Dim name As String
name = " Mary Smith"
name = LTrim$(name)
' name now contains the string "Mary Smith"
Voir également
Fonction RTrim$( )
Procédure Main
Objectif
Première procédure appelée lors de l'exécution d'une application.
Syntaxe
Declare Sub Main
Sub Main
statement_list
End Sub
statement_list est une liste d'instructions à exécuter lors de l'exécution d'une application.
Description
Main est un nom de procédure MapBasic ayant un objectif particulier. Si une application contient une
sous-procédure appelée Main, MapInfo Professional exécute cette procédure automatiquement lors de
422
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
la première exécution d'une application. La procédure Main peut alors entreprendre des actions (par
exemple, l'exécution d'une Instruction Call) afin d'entraîner l'exécution d'autres procédures.
Toutefois, vous n'êtes pas obligé de déclarer explicitement la procédure Main. Au lieu de déclarer une
procédure nommée Main, placez simplement une ou plusieurs instructions dans la partie supérieure de
votre fichier de programme ou à proximité de celui-ci, en dehors de toute déclaration de procédure.
MapBasic traite alors ce groupe d'instructions comme si elles faisaient partie d'une procédure Main.
Cette procédure est également dite procédure Main « implicite » (à la différence d'une procédure Main).
Exemple
Un programme MapBasic peut être constitué d'une seule ligne. Par exemple, vous pouvez créer un
programme MapBasic comprenant uniquement l'instruction suivante :
Note "Testing, one two three."
Si l'instruction ci-dessus comprend votre programme tout entier, MapBasic considère ce programme
comme une procédure Main implicite. Lors de l'exécution de cette application, MapBasic exécute
l'Instruction Note.
Inversement, l'exemple suivant déclare de façon explicite la procédure Main ce qui entraîne les mêmes
résultats (par exemple, une Instruction Note).
Declare Sub Main
Sub Main
Note "Testing, one two three."
End Sub
L'exemple suivant contient une procédure Main implicite et une sous-procédure distincte appelée Talk.
La procédure Main implicite appelle la procédure Talk via l'Instruction Call.
Declare Sub Talk(ByVal msg As String)
Call Talk("Hello")
Call Talk("Goodbye")
Sub Talk(ByVal msg As String)
Note msg
End Sub
L'exemple suivant contient une procédure Main implicite et une sous-procédure distincte appelée Talk.
La procédure Main appelle la procédure Talk par le biais de l'instruction Call.
Declare Sub Main
Declare Sub Talk(ByVal msg As String)
Sub Main
Call Talk("Hello")
Call Talk("Goodbye")
End Sub
Sub Talk(ByVal msg As String)
Note msg
End Sub
Voir également
Procédure EndHandler, Procédure RemoteMsgHandler, Procédure SelChangedHandler, Instruction
Sub...End Sub, Procédure ToolHandler, Procédure WinClosedHandler
Référence
423
Fonction MakeBrush( )
Fonction MakeBrush( )
Objectif
Renvoie une valeur Brush. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Syntaxe
MakeBrush( pattern, forecolor, backcolor)
pattern est une valeur entière comprise entre 1 et 8 ou entre 12 et 186 définissant une trame de
remplissage. Pour obtenir la liste des trames, reportez-vous à la section Clause Brush.
forecolor est une valeur entière qui représente la couleur RVB du premier plan de la trame. Pour plus
d'informations, reportez-vous à la section Fonction RGB( ).
backcolor est une valeur entière qui représente la couleur RVB du fond de la trame. Si vous souhaitez
que l'arrière-plan soit transparent, indiquez -1 pour la couleur de fond et définissez une trame de 3 ou
plus.
Valeur renvoyée
Valeur de remplissage (Brush)
Description
La fonction MakeBrush( ) renvoie une valeur Brush. La valeur renvoyée peut être attribuée à une variable
Brush ou utilisée comme paramètre d'une instruction basée sur une valeur Brush (telle que Create
Ellipse, Set Map, Set Style ou Shade).
Pour plus d'informations sur les paramètres Brush, reportez-vous à la section Clause Brush.
Exemple
Include "mapbasic.def"
Dim b_water As Brush
b_water = MakeBrush(64, CYAN, BLUE)
Voir également
Clause Brush, Fonction CurrentBrush( ), Fonction RGB( ), Fonction StyleAttr( )
Fonction MakeCustomSymbol( )
Objectif
Renvoie une valeur Symbol basée sur un fichier bitmap. Vous pouvez appeler cette fonction à partir de
la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
MakeCustomSymbol( filename, color, size, customstyle )
424
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
filename correspond à une chaîne ayant jusqu'à 31 caractères, qui représente le nom d'un fichier bitmap.
Le fichier doit se trouver dans le répertoire CustSymb, dans le répertoire MapInfo de l'utilisateur.
color représente une valeur de couleur RVB sous forme d'entier. Pour plus de détails, reportez-vous à
la section Fonction RGB( ).
size correspond à une taille en points sous forme d'entier, comprise entre 1 et 48.
customstyle est un code d'entier qui contrôle les attributs de couleur et de fond. Reportez-vous au tableau
ci-dessous.
Valeur renvoyée
Symboles
Description
La fonction MakeCustomSymbol( ) renvoie une valeur Symbol basée sur un fichier bitmap. Pour plus
d'informations sur les autres types de symboles, reportez-vous à la section Clause Symbol.
Le tableau suivant indique comment l'argument style_personnalisé commande le style du symbole :
Valeur customstyle
Style symbole
0
Les paramètres Fond, Appliquer couleur et Afficher à la taille actuelle sont
désactivés. Le symbole s'affiche dans son état par défaut à la taille en points
spécifiée par le paramètre correspondant. Les pixels blancs de l'image bitmap
sont transparents, ce qui permet de voir tout élément situé le symbole derrière.
1
Le paramètre Fond est activé. Les pixels blancs de l'image bitmap sont
opaques.
2
Le paramètre Appliquer couleur est activé. Les pixels qui ne sont pas blancs
sur l'image bitmap sont remplacés par le paramètre de couleur du symbole.
3
Les paramètres Fond et Appliquer couleur sont activés.
4
Le paramètre Afficher à la taille actuelle est activé. L'image bitmap est rendue
à sa largeur et à sa hauteur d'origine en pixels.
5
Les paramètres Fond et Afficher à la taille actuelle sont activés.
7
Les paramètres Fond, Appliquer couleur et Afficher à la taille actuelle sont
activés.
Exemple
Include "mapbasic.def"
Dim sym_marker As Symbol
sym_marker = MakeCustomSymbol("CAR1-64MP", BLUE, 18, 0)
Voir également
Fonction CurrentSymbol( ), Fonction MakeFontSymbol( ), Fonction MakeSymbol( ), Fonction
StyleAttr( ), Clause Symbol
Référence
425
Fonction MakeDateTime( )
Fonction MakeDateTime( )
Objectif
Renvoie une valeur DateTime basée sur la date et l'heure définies. Vous pouvez appeler cette fonction
à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
MakeDateTime( Date, Time )
Valeur renvoyée
DateTime, qui représente une valeur entière DateTime sur 9 octets : 4 octets pour la date et 5 octets
pour l'heure. Les 5 octets pour l'heure comprennent 2 octets pour les millisecondes, 1 octet pour les
secondes, 1 octet pour les minutes et 1 octet pour les heures.
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim tX as time
dim dX as date
dim dtX as datetime
tX = 105604123
dX = 20070908
dtX = MakeDateTime(dX,tX)
Print FormatDate$(GetDate(dtX))
Print FormatTime$(GetTime(dtX), "hh:mm:ss.fff tt")
Voir également
Fonction DateWindow( ), Instruction Set Date Window( )
Fonction MakeFont( )
Objectif
Renvoie une valeur de police. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Syntaxe
MakeFont( fontname, style, size, forecolor, backcolor )
fontname est une chaîne de texte définissant une police (Arial, par exemple). Cet argument est sensible
à la casse.
style est une expression entière positive : 0 = texte normal, 1 = texte en gras, etc. Pour plus d'informations,
reportez-vous à la clause Font.
size représente une taille en points sous forme d'entier (un ou plus).
426
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
forecolor est une valeur correspondant à la couleur RVB du texte. Reportez-vous à la section Fonction
RGB( ).
backcolor est une valeur correspondant à la couleur RVB du fond (ou du halo, si le paramètre de style
définit un halo). Si vous souhaitez que l'arrière-plan soit transparent, indiquez -1 pour la couleur de fond.
Valeur renvoyée
Police
Description
La fonction MakeFont( ) renvoie une valeur de police. La valeur renvoyée peut être attribuée à une
variable Font ou utilisée comme paramètre d'une instruction basée sur une police (telle que l'instruction
Create Text ou l'instruction Set Style).
Pour plus d'informations sur les paramètres de police, reportez-vous à la section Clause Font.
Exemple
Include "mapbasic.def"
Dim big_title As Font
big_title = MakeFont("Arial", 1, 20,BLACK,WHITE)
Voir également
Fonction CurrentFont( ), Clause Font, Fonction StyleAttr( )
Fonction MakeFontSymbol( )
Objectif
Renvoie une valeur Symbol en utilisant un caractère d'une police TrueType comme symbole. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
MakeFontSymbol( shape, color, size, fontname, fontstyle, rotation )
shape est une valeur d'entier court, de 31 ou plus (31 signifiant invisible), qui définit un code de caractère
à partir d'une police TrueType.
color représente une valeur de couleur RVB sous forme d'entier. Pour plus de détails, reportez-vous à
la section Fonction RGB( ).
size est une valeur d'entier court, comprise entre 1 et 48, définissant la taille en points du symbole.
fontname est une chaîne qui représente le nom d'une police TrueType (WingDings, par exemple). Cet
argument est sensible à la casse.
fontstyle correspond à un code numérique qui contrôle les attributs de gras, de contours et autres. Voir
ci-dessous.
rotation est un nombre à virgule flottante qui indique l'angle de rotation du symbole en degrés.
Référence
427
Fonction MakePen( )
Valeur renvoyée
Symboles
Description
La fonction MakeFontSymbol( ) renvoie une valeur Symbol basée sur un caractère d'une police TrueType.
Pour plus d'informations sur les autres types de symboles, reportez-vous à la section Clause Symbol.
Le tableau suivant indique comment le paramètre fontstyle commande le style du symbole :
style de police valeur
Style symbole
0
Brut
1
Gras
16
Bordure (contour noir)
32
Ombré
256
Halo (contour blanc)
Pour définir plusieurs attributs de style, ajoutez les valeurs de la colonne de gauche. Par exemple, pour
indiquer les attributs Gras et Ombré, utilisez la valeur fontstyle 33. Les styles Bordure et Halo s'excluent
mutuellement.
Exemple
Include "mapbasic.def"
Dim sym_marker As Symbol
sym_marker = MakeFontSymbol(65,RED,24,"WingDings",32,0)
Voir également
Fonction CurrentSymbol( ), Fonction MakeCustomSymbol( ), Fonction MakeSymbol( ), Fonction
StyleAttr( ), Clause Symbol
Fonction MakePen( )
Objectif
Renvoie une valeur Pen. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Syntaxe
MakePen( width, pattern, color )
width définit une épaisseur de ligne.
pattern représente une trame de ligne. Pour obtenir une liste complète, reportez-vous à la clause Pen.
color représente une valeur de couleur RVB. Pour plus de détails, reportez-vous à la section Fonction
RGB( ).
428
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Valeur renvoyée
Pen
Description
La fonction MakePen( ) renvoie une valeur Pen qui définit le style de ligne. La valeur renvoyée peut être
attribuée à une variable Font ou utilisée comme paramètre d'une instruction basée sur une police (telle
que l'instruction Create Line, l'instruction Create Pline, l'instruction Set Style ou l'instruction Set
Map).
Pour plus d'informations sur les paramètres de ligne, reportez-vous à la section Clause Pen clause.
Exemple
Include "mapbasic.def"
Dim p_bus_route As Pen
p_bus_route = MakePen(3, 9, RED)
Voir également
Fonction CurrentPen( ), Clause Pen, Fonction StyleAttr( ), Fonction RGB( )
Fonction MakeSymbol( )
Objectif
Renvoie une valeur Symbol en utilisant un caractère du jeu de symboles MapInfo 3.0. Il s'agit du jeu de
symboles initialement publié avec MapInfo pour Windows 3.0, conservé dans les versions suivantes de
MapInfo Professional. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
MakeSymbol( shape, color, size )
shape est une valeur d'entier court, de 31 ou plus (31 signifiant invisible), qui définit une forme de
symbole. Le jeu de symboles standard inclut les symboles 31 à 67. Pour obtenir une liste complète,
reportez-vous à la section Clause Symbol.
color représente une valeur de couleur RVB sous forme d'entier. Pour plus de détails, reportez-vous à
la section Fonction RGB( ).
size est une valeur d'entier court, comprise entre 1 et 48, définissant la taille en points du symbole.
Valeur renvoyée
Symboles
Description
La fonction MakeSymbol( ) renvoie une valeur de symbole. La valeur renvoyée peut être attribuée à
une variable Symbol ou utilisée comme paramètre d'une instruction basée sur une clause Symbol
Référence
429
Instruction Map
comme paramètre (telle que l'instruction Create Point, l'instruction Set Map, l'instruction Set Style
ou l'instruction Shade).
Pour créer un symbole à partir d'un caractère d'une police TrueType, appelez la fonction
MakeFontSymbol( ).
Pour créer un symbole à partir d'un fichier bitmap, appelez la fonction MakeCustomSymbol( ).
Pour plus d'informations sur les paramètres de symboles, reportez-vous à la section Clause Symbol.
Exemple
Include "mapbasic.def"
Dim sym_marker As Symbol
sym_marker = MakeSymbol(44, RED, 16)
Voir également
Fonction CurrentSymbol( ), Fonction MakeCustomSymbol( ), Fonction MakeFontSymbol( ),
Fonction StyleAttr( ), Clause Symbol
Instruction Map
Objectif
Ouvre une nouvelle fenêtre Carte. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Syntaxe
Map From item [ , item ... ]
[ Position ( x, y ) [ Units paperunits ] ]
[ Width window_width [ Units paperunits ] ]
[ Height window_height [ Units paperunits ] ]
[ { Min | Max } ]
où item = table | [GroupLayer ("friendly_name" [ , item ...])
item est le nom d'une table ouverte ou d'un groupe de couches
friendly_name fest obligatoire pour chaque groupe de couches mais ne doit pas nécessairement être
unique. Les groupes de couches peuvent contenir d'autres groupes de couches et/ou tables et ils peuvent
être vides (sans aucune table).
paperunitsest le nom d'une unité papier (par exemple, « in »).
x, y indique la position du coin supérieur gauche de la fenêtre Carte, en unités papier. Pour obtenir des
détails sur les unités papier, consultez la section Instruction Set Paper Units.
window_width et window_height définissent la taille de la fenêtre, en unités papier.
Description
L'instruction Map ouvre une nouvelle fenêtre Carte. Une fois ouverte, vous pouvez la modifier en émettant
plusieurs fois l'instruction Set Map.
430
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Le mot-clé GroupLayer permet désormais de créer des groupes de couches imbriqués. Les groupes de
couches sont un type de couche spécifique permettant aux utilisateurs de regrouper les couches de
carte entre elles, tout comme les dossiers et les sous-dossiers permettent aux utilisateurs d'organiser
les fichiers. Ils simplifient la gestion des cartes possédant de nombreuses couches. Les deux principaux
avantages des groupes de couches sont les suivants :
1. Une meilleure organisation : il est plus facile de gérer les listes de couches lorsque celles-ci sont
organisées en fonction de groupes explicites.
2. Une plus grande efficacité : lorsque les couches sont rassemblées en groupes, les opérations du
type « désactiver toutes les couches de rues » sont simplifiées et peuvent être effectuées en quelques
clics/étapes seulement.
La table définie doit déjà être ouverte. La table doit également pouvoir être cartographiée. En d'autres
termes, il doit être possible d'associer des objets graphiques aux enregistrements de la table. Il n'est
pas nécessaire qu'elle en contienne mais sa structure doit permettre d'affecter des objets.
L'instruction Map doit inclure au moins une table, que celle-ci fasse ou non partie d'un groupe de couches,
car toute fenêtre Carte doit contenir au moins une couche. L'instruction Map peut également définir
plusieurs noms de tables (séparés par des virgules) de manière à ouvrir une fenêtre Carte à plusieurs
couches. Le premier nom de table de l'instruction Map est dessiné en dernier lorsque la fenêtre Carte
est mise à jour. Ainsi, la première table de l'instruction Map correspond toujours à la carte supérieure.
Généralement, les tables avec des objets point apparaissent en premier dans les instructions Map, et
les tables avec des objets région (limite) sont énoncées par la suite.
La taille par défaut de la fenêtre Carte obtenue correspond à environ un quart de l'écran. La position
par défaut varie en fonction du nombre de fenêtres actuellement affichées à l'écran. Les clauses
facultatives Position, Height et Width vous permettent de contrôler la taille et la position de la nouvelle
fenêtre Carte. Les clauses Height et Width définissent la taille de la fenêtre en pouces. Notez que la
clause Position de base sur le coin supérieur gauche de l'application MapInfo Professional et non sur
le coin supérieur gauche de l'écran.
Si l'instruction Map inclut le mot-clé Max facultatif, la nouvelle fenêtre Carte est agrandie et occupe la
totalité de l'espace disponible sur l'écran pour MapInfo Professional. Inversement, si l'instruction Map
inclut le mot-clé Min, la fenêtre est immédiatement réduite.
Chaque fenêtre Carte peut disposer de sa propre projection. MapInfo Professional définit la projection
initiale d'une fenêtre Carte en fonction de la projection native de la première table cartographiée.
L'utilisateur peut modifier la projection d'une carte en sélectionnant la commande Carte > Options. Le
programme MapBasic peut modifier la projection en émettant une instruction Set Map.
Exemples
L'exemple suivant ouvre une fenêtre Carte de 3 in (7,5 cm) de large et 2 in (5 cm) de haut, avec une
marge de 1 in (2,5 cm) à partir du coin supérieur gauche de l'application MapInfo Professional. La carte
possède deux couches.
Open Table "world"
Open Table "cust1994" As customers
Map from customers, world
Position (1,1) Width 3 Height 2
Référence
431
Instruction Map
L'exemple suivant ouvre une fenêtre Carte possédant plusieurs groupes de couches, dont certains sont
imbriqués (toutes les tables ont d'abord été ouvertes).
Map From
GroupLayer (
"Grid",
GroupLayer ("Tropics", Tropic_Of_Capricorn, Tropic_Of_Cancer),
Wgrid15
),
GroupLayer (
"World Places", WorldPlaces, WorldPlacesMajor, WorldPlaces_Capitals
),
Airports,
GroupLayer ("World Boundaries", world_Border),
GroupLayer (
"Roads", Roads, US_Primary_Roads, US_Secondary_Roads, US_Major_Roads
),
GroupLayer ("Countries" Countries_small, Countries_large),
Ocean
Les ID de groupe de couches, tout comme les ID de couche, sont uniques. Les ID de couche peuvent
être des numéros ou des noms de tables. Les ID numériques représentent l'ordre (inverse de celui de
dessin) des couches dans la liste à partir de la fin. Les ID des groupes de couches font partie d'une
autre séquence, mais ils sont également affectés en partant de la fin. Dans l'exemple ci-dessus, les ID
de couche et de groupe de couches seraient les suivants :
Groupe de couches
ID de couche
GroupLayer "Grid"
groupe 1
GroupLayer "Tropics"
groupe 2
Tropic_Of_Capricorn
couche 1
Tropic_Of_Cancer
couche 2
Wgrid15
couche 3
GroupLayer "World Places"
groupe 3
WorldPlaces
couche 4
WorldPlacesMajor
432
couche 5
WorldPlaces_Capitals
couche 6
Airports
couche 7
GroupLayer "World Boundaries"
groupe 4
world_Border
couche 8
GroupLayer "Roads"
groupe 5
Roads
couche 19
US_Primary_Roads
couche 10
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Groupe de couches
ID de couche
US_Secondary_Roads
couche 11
US_Major_Roads
couche 12
GroupLayer "Countries"
groupe 6
Countries_small
couche 13
Countries_large
couche 14
Ocean
couche 15
Voir également
Instruction Add Map, Instruction Remove Map, Instruction Set Map, Instruction Set Shade,
Instruction Shade
Fonction Map3DInfo( )
Objectif
Renvoie les propriétés d'une fenêtre Vue3D. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Map3DInfo( window_id, attribute )
window_id est un identifiant de fenêtre entier.
attribute est un code d'entier définissant le type d'informations à renvoyer.
Valeur renvoyée
Nombre à virgule flottante, valeur logique ou chaîne, selon le paramètre attribute.
Description
La fonction Map3DInfo( ) renvoie des informations sur une fenêtre Vue3D.
Le paramètre window_id définit la fenêtre Vue3D à rechercher. Pour obtenir un identifiant de fenêtre,
appelez immédiatement la fonction FrontWindow( ) après ouverture de la fenêtre ou appelez la fonction
WindowID( ) à tout moment après la création de la fenêtre.
La fonction Map3DInfo( ) peut renvoyer différents attributs numériques pour une fenêtre Vue3D. Le
paramètre attribute indique à la fonction Map3DInfo( ) les statistiques de fenêtre Carte à renvoyer. Le
paramètre attribute doit être l'un des codes répertoriés dans le tableau suivant. Les codes sont définis
dans MAPBASIC.DEF.
Référence
433
Fonction Map3DInfo( )
434
Attribut
ID
Valeur renvoyée
MAP3D_INFO_SCALE
1
Résultat à virgule flottante représentant le facteur d'échelle
de la fenêtre Vue3D.
MAP3D_INFO_RESOLUTION_X
2
Résultat entier représentant la résolution X des grilles de
la fenêtre Vue3D.
MAP3D_INFO_RESOLUTION_Y
3
Résultat entier représentant la résolution Y des grilles de
la fenêtre Vue3D.
MAP3D_INFO_BACKGROUND
4
Résultat entier représentant la couleur de fond.
Reportez-vous à la fonction RGB.
MAP3D_INFO_UNITS
5
Chaîne représentant le nom abrégé de l'unité de surface
de la carte (« mi » pour miles, par exemple).
MAP3D_INFO_LIGHT_X
6
Résultat à virgule flottante représentant la coordonnée x
de l'éclairage dans la scène.
MAP3D_INFO_LIGHT_Y
7
Résultat à virgule flottante représentant la coordonnée y
de l'éclairage dans la scène.
MAP3D_INFO_LIGHT_Z
8
Résultat à virgule flottante représentant la coordonnée z
de l'éclairage dans la scène.
MAP3D_INFO_LIGHT_COLOR
9
Résultat entier représentant la couleur de l'éclairage.
Reportez-vous à la section Fonction RGB( ).
MAP3D_INFO_CAMERA_X
10
Résultat à virgule flottante représentant la coordonnée x
de la caméra dans la scène.
MAP3D_INFO_CAMERA_Y
11
Résultat à virgule flottante représentant la coordonnée y
de la caméra dans la scène.
MAP3D_INFO_CAMERA_Z
12
Résultat à virgule flottante représentant la coordonnée z
de la caméra dans la scène.
MAP3D_INFO_CAMERA_FOCAL_X 13
Résultat à virgule flottante représentant la coordonnée x
du foyer de la caméra dans la scène.
MAP3D_INFO_CAMERA_FOCAL_Y 14
Résultat à virgule flottante représentant la coordonnée y
du foyer de la caméra dans la scène.
MAP3D_INFO_CAMERA_FOCAL_Z 15
Résultat à virgule flottante représentant la coordonnée z
du foyer de la caméra dans la scène.
MAP3D_INFO_CAMERA_VU_1
16
Résultat à virgule flottante représentant la première valeur
du vecteur ViewUp Unit Normal.
MAP3D_INFO_CAMERA_VU_2
17
Résultat à virgule flottante représentant la deuxième valeur
du vecteur ViewUp Unit Normal.
MAP3D_INFO_CAMERA_VU_3
18
Résultat à virgule flottante représentant la troisième valeur
du vecteur ViewUp Unit Normal.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Attribut
ID
Valeur renvoyée
MAP3D_INFO_CAMERA_VPN_1
19
Résultat à virgule flottante représentant la première valeur
du vecteur ViewPlane Unit Normal.
MAP3D_INFO_CAMERA_VPN_2
20
Résultat à virgule flottante représentant la deuxième valeur
du vecteur ViewPlane Unit Normal.
MAP3D_INFO_CAMERA_VPN_3
21
Résultat à virgule flottante représentant la troisième valeur
du vecteur ViewPlane Unit Normal.
MAP3D_INFO_CAMERA_CLIP_NEAR 22
Résultat à virgule flottante représentant les caméras à
proximité du plan du pochoir.
MAP3D_INFO_CAMERA_CLIP_FAR 23
Résultat à virgule flottante représentant les caméras
éloignées du plan du pochoir.
Exemple
Imprime l'ensemble des variables des États spécifiques à la fenêtre Vue3D.
include "Mapbasic.def"
Print "MAP3D_INFO_SCALE: " + Map3DInfo(FrontWindow( ), MAP3D_INFO_SCALE)
Print "MAP3D_INFO_RESOLUTION_X: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_RESOLUTION_X)
Print "MAP3D_INFO_RESOLUTION_Y: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_RESOLUTION_Y)
Print "MAP3D_INFO_BACKGROUND: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_BACKGROUND)
Print "MAP3D_INFO_UNITS: " + Map3DInfo(FrontWindow( ), MAP3D_INFO_UNITS)
Print "MAP3D_INFO_LIGHT_X : " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_LIGHT_X )
Print "MAP3D_INFO_LIGHT_Y : " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_LIGHT_Y )
Print "MAP3D_INFO_LIGHT_Z: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_LIGHT_Z)
Print "MAP3D_INFO_LIGHT_COLOR: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_LIGHT_COLOR)
Print "MAP3D_INFO_CAMERA_X: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_X)
Print "MAP3D_INFO_CAMERA_Y : " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_Y )
Print "MAP3D_INFO_CAMERA_Z : " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_Z )
Print "MAP3D_INFO_CAMERA_FOCAL_X: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_FOCAL_X)
Print "MAP3D_INFO_CAMERA_FOCAL_Y: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_FOCAL_Y)
Print "MAP3D_INFO_CAMERA_FOCAL_Z: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_FOCAL_Z)
Print "MAP3D_INFO_CAMERA_VU_1: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_VU_1)
Print "MAP3D_INFO_CAMERA_VU_2: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_VU_2)
Print "MAP3D_INFO_CAMERA_VU_3: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_VU_3)
Print "MAP3D_INFO_CAMERA_VPN_1: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_VPN_1)
Référence
435
Fonction MapperInfo( )
Print "MAP3D_INFO_CAMERA_VPN_2: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_VPN_2)
Print "MAP3D_INFO_CAMERA_VPN_3: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_VPN_3)
Print "MAP3D_INFO_CAMERA_CLIP_NEAR: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_CLIP_NEAR)
Print "MAP3D_INFO_CAMERA_CLIP_FAR: " + Map3DInfo(FrontWindow( ),
MAP3D_INFO_CAMERA_CLIP_FAR)
Voir également
Instruction Create Map3D, Instruction Set Map3D
Fonction MapperInfo( )
Objectif
Renvoie des informations sur les coordonnées ou les distances d'une fenêtre Carte. Vous pouvez appeler
cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
MapperInfo( window_id, attribute )
window_id est un identifiant de fenêtre entier.
attribute est un code d'entier définissant le type d'informations à renvoyer. Reportez-vous au tableau
ci-dessous pour les valeurs.
Valeur renvoyée
Nombre à virgule flottante, valeur logique ou chaîne, selon le paramètre attribute.
Description
La fonction MapperInfo( ) renvoie des informations sur une fenêtre Carte.
Le paramètre window_id définit la fenêtre Carte à rechercher. Pour obtenir un identifiant de fenêtre,
appelez immédiatement la fonction FrontWindow( ) après ouverture de la fenêtre ou appelez la fonction
WindowID( ) à tout moment après la création de la fenêtre.
La fonction MapperInfo( ) peut renvoyer différents attributs numériques pour une fenêtre Carte. Le
paramètre attribute indique à la fonction MapperInfo( ) les statistiques de fenêtre Carte à renvoyer. Le
paramètre attribute doit être l'un des codes répertoriés dans le tableau suivant. Les codes sont définis
dans MAPBASIC.DEF.
436
Paramètre attribute
ID
Valeur renvoyée par MapperInfo( )
MAPPER_INFO_ZOOM
1
Valeur de zoom actuelle de la fenêtre Carte
(par exemple, la distance est-ouest affichée
dans la fenêtre Carte), définie à l'aide des
unités de distance actuelles de MapBasic.
Reportez-vous à la section Instruction Set
Distance Units.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée par MapperInfo( )
MAPPER_INFO_SCALE
2
Échelle actuelle de la fenêtre Carte, définie en
termes du nombre d'unités de distance de la
carte (kilomètres, par exemple) par unité
papier (centimètres, par exemple) affichée
dans la fenêtre. La valeur est renvoyée selon
les unités de distance actuelles de MapBasic.
MAPPER_INFO_CENTERX
3
Coordonnée x du centre de la fenêtre Carte.
MAPPER_INFO_CENTERY
4
Coordonnée y du centre de la fenêtre Carte.
MAPPER_INFO_MINX
5
Coordonnée x la plus petite de la fenêtre.
MAPPER_INFO_MINY
6
Coordonnée y la plus petite de la fenêtre.
MAPPER_INFO_MAXX
7
Coordonnée x la plus grande de la fenêtre.
MAPPER_INFO_MAXY
8
Coordonnée y la plus grande de la fenêtre.
MAPPER_INFO_LAYERS
9
Renvoie le nombre de couches de la fenêtre
Carte sous forme d'entier court (couche Dessin
et groupes de couches non inclus).
MAPPER_INFO_EDIT_LAYER
10
Entier court indiquant le numéro de la couche
pouvant actuellement être modifiée. La valeur
0 indique que la couche Dessin peut être
modifiée. La valeur -1 indique qu'aucune
couche ne peut être modifiée.
MAPPER_INFO_XYUNITS
11
Chaîne représentant le nom abrégé de l'unité
des coordonnées de la carte (« degree », par
exemple).
MAPPER_INFO_DISTUNITS
12
Chaîne représentant le nom abrégé de l'unité
de distance de la carte (« mi » pour miles, par
exemple).
MAPPER_INFO_AREAUNITS
13
Chaîne représentant le nom abrégé de l'unité
de surface de la carte (« sq mi » pour les miles
carrés, par exemple).
MAPPER_INFO_SCROLLBARS
14
Valeur logique indiquant si la fenêtre Carte
comporte des barres de défilement.
MAPPER_INFO_DISPLAY
15
Entier court indiquant l'aspect de la carte
affiché dans la barre d'état. Correspond à
l'instruction Set Map Display. La valeur
renvoyée est l'une des suivantes :
• MAPPER_INFO_DISPLAY_SCALE (0)
• MAPPER_INFO_DISPLAY_ZOOM (1)
Référence
437
Fonction MapperInfo( )
Paramètre attribute
ID
Valeur renvoyée par MapperInfo( )
• MAPPER_INFO_DISPLAY_POSITION (2)
• MAPPER_INFO_DISPLAY_CARTOGRAPHIC_SCALE
(3)
MAPPER_INFO_NUM_THEMATIC
16
Entier court indiquant le nombre de couches
thématiques dans une fenêtre Carte.
MAPPER_INFO_COORDSYS_CLAUSE
17
Résultat sous forme de chaîne qui indique la
clause CoordSys de la fenêtre.
MAPPER_INFO_COORDSYS_NAME
18
Résultat sous forme de chaîne, représentant
le nom du système de coordonnées de la carte
qui figure dans le fichier MAPINFOW.PRJ
(sans le suffixe facultatif « \p... » qui s'affiche
dans MAPINFOW.PRJ). Renvoie une chaîne
vide si le système de coordonnées est
introuvable dans MAPINFOW.PRJ.
MAPPER_INFO_MOVE_DUPLICATE_NODES
19
Entier court indiquant si les nœuds en double
doivent être déplacés lors de la modification
d'objets de cette fenêtre Carte. Si la valeur est
0, les nœuds en double ne sont pas déplacés.
Si la valeur est 1, les nœuds en double d'une
même couche sont déplacés. Pour rétablir les
préférences de carte par défaut, appelez
l'instruction Set Map Move Nodes Default.
MAPPER_INFO_DIST_CALC_TYPE
20
Entier court indiquant le type de calcul à
utiliser pour déterminer la distance, la
longueur, le périmètre et la surface de la carte
active. Correspond à Set Map Distance Type.
Les valeurs renvoyées incluent :
• MAPPER_INFO_DIST_SPHERICAL (0)
• MAPPER_INFO_DIST CARTESIAN (1)
MAPPER_INFO_DISPLAY_DMS
21
Entier court indiquant si la carte affiche les
coordonnées en degrés décimaux, au format
DMS (degrés, minutes, secondes), au format
du système de référence de carroyage militaire
ou au format de la grille nationale US (USNG).
La valeur renvoyée est l'une des suivantes :
• MAPPER_INFO_DISPLAY_DECIMAL (0)
• MAPPER_INFO_DISPLAY_DEGMINSEC
(1)
• MAPPER_INFO_DISPLAY_MGRS (2)
438
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée par MapperInfo( )
Système de référence de carroyage militaire
• MAPPER_INFO_DISPLAY_USNG_WGS84
(3)
Grille nationale US NAD 83/WGS 84
• MAPPER_INFO_DISPLAY_USNG_NAD27
(4)
Grille nationale US NAD 27
MAPPER_INFO_COORDSYS_CLAUSE_WITH_BOUNDS 22
Résultat sous forme de chaîne qui indique la
clause CoordSys de la fenêtre, limites
incluses.
MAPPER_INFO_CLIP_TYPE
Type de pochoir utilisé. Options possibles :
23
• MAPPER_INFO_CLIP_DISPLAY_ALL (0),
• MAPPER_INFO_CLIP_DISPLAY_POLYOBJ
(1)
• MAPPER_INFO_CLIP_OVERLAY (2)
MAPPER_INFO_CLIP_REGION
24
Renvoie une chaîne indiquant si un pochoir
est activé. Renvoie la chaîne « on » si un
pochoir est activé dans la fenêtre Carte, sinon
la chaîne « off ».
MAPPER_INFO_REPROJECTION
25
Valeur de chaîne indiquant la valeur actuelle
du mode de reprojection : La valeur peut être
:
• Aucune : la carte n'est jamais reprojetée.
• Toujours : la carte est toujours reprojetée.
• Auto : MapInfo Professional décide si la
reprojection de la carte est appropriée.
MAPPER_INFO_RESAMPLING
26
Valeur de chaîne indiquant la méthode de
calcul des valeurs en pixels de l'image source
reprojetée : La valeur peut être :
• CubicConvolution
• NearestNeighbor
MAPPER_INFO_MERGE_MAP
Référence
27
Valeur de chaîne : chaîne des instructions
MapBasic dont un utilisateur a besoin pour
intégrer une fenêtre Carte à celle en cours.
439
Fonction MapperInfo( )
Paramètre attribute
ID
Valeur renvoyée par MapperInfo( )
MAPPER_INFO_ALL_LAYERS
28
Renvoie le nombre de couches et de groupes
de couches (couches et groupes de couches
imbriqués inclus).
MAPPER_INFO_GROUPLAYERS
29
Renvoie le nombre de groupes de couches
(groupes de couches imbriqués inclus).
MAPPER_INFO_LABELS_SELECTABLE
30
Valeur logique indiquant si les étiquettes
peuvent être sélectionnées dans la fenêtre
Carte.
MAPPER_INFO_NUM_ADORNMENTS
200 Renvoie un entier représentant le nombre
d'habillages associés à une fenêtre Carte.
Utilisez des valeurs compatibles en dehors de
la plage habituelle pour MapperInfo, comme
100, par exemple.
MAPPER_INFO_ADORNMENT+n
200 Renvoie le WindowID d'un habillage associé
à la fenêtre Carte.
Lorsque vous appelez la fonction MapperInfo( ) pour obtenir des valeurs de coordonnées (en définissant
MAPPER_INFO_CENTERX comme attribut, par exemple), la valeur renvoyée représente une coordonnée
du système de MapBasic lequel peut être différent du système de coordonnées de la fenêtre Carte).
Utilisez l'instruction Set CoordSys pour définir un autre système de coordonnées.
Indiquez un paramètre pour chaque fenêtre Carte pour permettre à MapBasic de définir et obtenir le
paramètre actuel de chaque carte active. Lors de la modification, l'option de déplacement des nœuds
en double peut être configurée de manière à ne déplacer aucun des nœuds ou à déplacer tous les
doublons d'une même couche.
Lorsqu'une nouvelle fenêtre Carte est créée, le paramètre initial de déplacement des nœuds en double
est récupéré à partir des préférences de la carte active (Options/Préférences/Fenêtre Carte/Synchroniser
les nœuds dans).
Il est possible de rechercher le paramètre de déplacement des nœuds en double d'une fenêtre Carte
existante en utilisant un nouvel attribut dans la fonction MapperInfo( ).
L'état de la fenêtre Carte peut être modifié à l'aide de l'instruction Set Map.
Valeurs de coordonnées renvoyées
MapperInfo( )ne renvoie pas les coordonnées (c'est-à-dire MINX, MAXX, MINY, MAXY) dans les unités
définies pour la fenêtre Carte. Les valeurs sont renvoyées conformément aux unités du système de
coordonnées interne de la session MapInfo Professional ou de l'application MapBasic qui appelle la
fonction (si le système de coordonnées a été modifié au sein de l'application). De même, l'attribut
MAPPER_INFO_XYUNITS renvoie les unités utilisées pour afficher l'emplacement du curseur dans la
barre d'état (définies à l'aide de la fonction Set Map Window Frontwindow( ) XY Units).
440
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Informations sur le pochoir
Depuis la version 6.0 de MapInfo Professional, la fonctionnalité de pochoir dispose de trois méthodes
d'utilisation. La méthode MAPPER_INFO_CLIP_OVERLAY (2) était la seule disponible jusqu'à MapInfo
Professional 6.0. Elle permet d'utiliser la fonction Overlap( ) (Objet > Supprimer extérieur) en interne.
La fonction Overlap( ) ne permettant pas de produire des résultats avec les objets texte, aucun pochoir
n'est réalisé à partir de ces derniers. Pour les objets point, un test simple est effectué au niveau du point
de la région afin de déterminer si le point est inclus ou non. Les objets étiquette sont traités de manière
similaire. Ils sont affichés si le point de l'étiquette se trouve à l'intérieur du pochoir, sinon ils n'apparaissent
pas. Le pochoir étant réalisé au niveau des objets spatiaux, il ne concerne jamais les styles (lignes
épaisses, symboles, texte).
La méthode MAPPER_INFO_CLIP_DISPLAY_ALL (0) crée le pochoir à l'aide de l'affichage des fenêtres.
Un pochoir est créé pour tous les types d'objets. Cela vaut également pour les cartes thématiques, les
rasters et les grilles. Un pochoir est toujours créé pour les styles (lignes épaisses, symboles, texte). Il
s'agit du type de pochoir par défaut.
La méthode MAPPER_INFO_CLIP_DISPLAY_POLYOBJ (1) crée un pochoir sélectif à l'aide de l'affichage
des fenêtres. Elle reprend les fonctionnalités de la méthode MAPPER_INFO_CLIP_OVERLAY (2). La
fonction Windows Display Clipping permet de créer un pochoir de tous les objets « poly » (régions et
polylignes) et ceux pouvant être convertis en objets « poly » (rectangles, rectangles arrondis, ellipses
et arcs). Un pochoir est toujours créé pour les symboles de ces objets. Les points, les étiquettes et le
texte sont traités de la même manière qu'avec la méthode MAPPER_INFO_CLIP_OVERLAY (2). Vous
obtiendrez généralement de meilleures performances qu'avec la méthode
MAPPER_INFO_CLIP_OVERLAY (2).
Conditions d'erreur
Une erreur ERR_BAD_WINDOW (590) est générée si le paramètre n'est pas un numéro de fenêtre
valide.
L'erreur ERR_FCN_ARG_RANGE (644) est générée si un argument se trouve en dehors de la plage
valide.
Une erreur ERR_WANT_MAPPER_WIN (313) est générée si l'identifiant d'une fenêtre ne correspond
pas à une fenêtre Carte.
Voir également
Fonction LayerInfo( ), Instruction Set Distance Units, Instruction Set Map
Fonction Maximum( )
Objectif
Renvoie le plus grand de deux nombres. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Maximum( num_expr, num_expr )
num_expr représente une expression numérique.
Référence
441
Fonction MBR( )
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Maximum( ) renvoie la plus grande de deux expressions numériques.
Exemple
Dim
x =
y =
z =
x, y, z As Float
42
27
Maximum(x, y)
' z now contains the value: 42
Voir également
Fonction Minimum( )
Fonction MBR( )
Objectif
Renvoie un objet rectangle, qui représente le rectangle intérieur d'encadrement d'un autre objet. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
MBR( obj_expr )
obj_expr correspond à une expression d'objet.
Valeur renvoyée
Objet (rectangle)
Description
La fonction MBR( ) calcule le rectangle intérieur d'encadrement (MBR) de l'objet obj_expr indiqué.
Un rectangle intérieur d'encadrement est le plus petit rectangle dans lequel un objet spécifique peut être
inséré. En d'autres termes, le rectangle intérieur d'encadrement des États-Unis s'étend à l'est jusqu'à
l'extrémité est du Maine, au sud jusqu'à l'extrémité sud de Hawaï, à l'ouest jusqu'à l'extrémité ouest de
l'Alaska et au nord jusqu'à l'extrémité nord de l'Alaska.
Le rectangle intérieur d'encadrement d'un objet point dispose d'une largeur et d'une hauteur égales à
zéro.
Exemple
Dim o_mbr As Object
Open Table "world"
Fetch First From world
o_mbr = MBR(world.obj)
442
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Fonction Centroid( ), Fonction CentroidX( ), Fonction CentroidY( )
InstructionMenu Bar
Objectif
Affiche ou masque la barre de menus. Vous pouvez exécuter cette instruction à partir de la fenêtre
MapBasic de MapInfo Professional.
Syntaxe
Menu Bar { Hide | Show }
Description
L'instruction Menu Bar permet d'afficher ou de masquer la barre de menus de MapInfo Professional.
Une application peut masquer la barre de menus afin de disposer de davantage d'espace à l'écran pour
les fenêtres.
À la suite d'une instruction Menu Bar Hide, la barre de menus reste masquée, jusqu'à ce que l'instruction
Menu Bar Show soit exécutée. Le fait que la barre de menus soit masquée peut handicaper lourdement
les utilisateurs. Vous devez donc utiliser l'instruction Menu Bar Hide avec précaution. Chaque instruction
Menu Bar Hide doit être suivie d'une instruction Menu Bar Show.
Lorsque la barre de menus est masquée, MapInfo Professional ne prend pas en compte les raccourcis
clavier correspondants. Par exemple, un utilisateur de MapInfo Professional peut d'habitude utiliser le
raccourci Ctrl+Opour afficher la boîte de dialogue Ouvrir. Cependant, lorsque la barre de menus est
masquée, MapInfo Professional ne prend pas en compte le raccourci clavier Ctrl+O.
Voir également
Instruction Alter Menu Bar, Instruction Create Menu Bar
Fonction MenuItemInfoByHandler( )
Objectif
Renvoie des informations sur une option de menu de MapInfo Professional.
Syntaxe
MenuItemInfoByHandler( handler, attribute )
handler représente soit une chaîne (contenant le nom d'une procédure de gestionnaire définie dans une
clause Calling), soit un entier (défini comme constante dans une clause Calling).
attribute est un code sous forme d'entier qui indique l'attribut à renvoyer. Reportez-vous au tableau
ci-dessous.
Référence
443
Fonction MenuItemInfoByHandler( )
Description
Le paramètre handler peut être un entier ou une chaîne. Si vous définissez une chaîne (nom de procédure)
et si plusieurs options de menu appellent cette procédure, MapInfo Professional renvoie les informations
concernant la première option. Si vous devez interroger plusieurs options de menu qui appellent la même
procédure de gestionnaire, donnez à chacune des options de menu un identifiant (par exemple, en
utilisant la clause ID facultative dans l'Instruction Create Menu). Appelez ensuite la Fonction
MenuItemInfoByID( ) plutôt que la fonction MenuitemInfoByHandler( ).
Le paramètre attribute est un code numérique (défini dans le fichier MAPBASIC.DEF) :
444
Paramètre attribute
ID
Valeur renvoyée
MENUITEM_INFO_ENABLED
1
Valeur logique : TRUE si cette option de menu est activée.
MENUITEM_INFO_CHECKED
2
Valeur logique : TRUE si cette option de menu est cochée
; renvoie également TRUE si elle contient du texte
alternatif (par exemple, si elle alterne entre Afficher et
Masquer), et qu'elle est affichée. Sinon, renvoie FALSE.
MENUITEM_INFO_CHECKABLE
3
Valeur logique : TRUE si cette option de menu peut être
cochée (si tel est le cas, le préfixe « ! » apparaît dans le
texte du menu).
MENUITEM_INFO_SHOWHIDEABLE 4
Valeur logique : TRUE si l'option de menu contient du
texte alternatif (par exemple, si elle alterne entre Afficher
et Masquer). Un élément contient du texte alternatif si,
lors de sa création, le préfixe « ! » a été ajouté au début
du texte de l'option de menu (dans une Instruction Create
Menu ou Instruction Alter Menu) et si la chaîne de cet
élément contient un caret (^).
MENUITEM_INFO_ACCELERATOR 5
Chaîne : séquence de code pour le raccourci des options
de menu (par exemple, /W^Z ou /W#%119) ou chaîne
vide si l'option de menu n'a pas de raccourci. Pour plus
d'informations sur les raccourcis de menu, reportez-vous
à l'instruction Create Menu.
MENUITEM_INFO_TEXT
6
Chaîne : totalité du texte utilisé (par exemple, dans une
instruction Create Menu) pour créer une option de menu.
MENUITEM_INFO_HELPMSG
7
Chaîne : message d'aide de l'option de menu (comme
spécifié par la clause HelpMsg dans l'instruction Create
Menu) ou chaîne vide si l'option de menu n'inclut pas de
message d'aide.
MENUITEM_INFO_HANDLER
8
Entier : numéro du gestionnaire de l'option de menu. Si
la clause Calling de l'option de menu indique une
constante numérique (par exemple, Calling
M_FILE_SAVE), cet appel renvoie la valeur de la
constante. Si la clause Calling indique OLE, DDE ou le
nom d'une procédure, cet appel renvoie un entier unique
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée
(numéro de gestionnaire interne) pouvant être utilisé dans
les appels ultérieurs à la fonction
MenuitemInfoByHandler( ) ou dans l'instruction Run
Menu Command.
MENUITEM_INFO_ID
9
Entier : identifiant du menu (spécifié par la clause ID
facultative d'une instruction Create Menu) ou 0 si l'option
de menu n'a pas d'identifiant.
Voir également
Fonction MenuItemInfoByID( )
Fonction MenuItemInfoByID( )
Objectif
Renvoie des informations sur une option de menu de MapInfo Professional.
Syntaxe
MenuItemInfoByID( menuitem_ID, attribute )
menuitem_ID représente un identifiant de menu sous forme d'entier (spécifié dans la clause ID de
l'instruction Create Menu).
attribute est un code sous forme d'entier qui indique l'attribut à renvoyer.
Description
Cette fonction est identique à la fonction MenuItemInfoByHandler( ), à ceci près que le premier
argument de cette fonction est un identifiant entier.
Appelez cette fonction pour interroger l'état d'une option de menu lorsque vous connaissez son identifiant.
Appelez la fonction MenuItemInfoByHandler( ) pour interroger l'état d'une option de menu si vous
préférez identifier celle-ci par son gestionnaire.
L'argument attribute est un code du fichier MAPBASIC.DEF, tel que MENUITEM_INFO_CHECKED (2).
Pour obtenir la liste complète des codes, reportez-vous à la section Fonction MenuItemInfoByHandler(
).
Voir également
Fonction MenuItemInfoByHandler( )
Instruction Metadata
Objectif
Gère les métadonnées d'une table. Vous pouvez exécuter cette instruction à partir de la fenêtre MapBasic
de MapInfo Professional.
Référence
445
Instruction Metadata
Syntaxe 1
Metadata Table table_name
{ SetKey key_name To key_value |
DropKey key_name [ Hierarchical ] |
SetTraverse starting_key_name [ Hierarchical ]
Into ID traverse_ID_var }
table_name est le nom d'une table ouverte.
key_name est une chaîne qui représente le nom d'une clé de métadonnées. La chaîne doit commencer
par une barre oblique inverse (« \ ») et ne peut pas se terminer ce caractère.
key_value est une chaîne de 239 caractères maximum, représentant la valeur à attribuer à la clé.
starting_key_name est une chaîne qui représente le nom de la première clé à récupérer de la table.
Utilisez la barre oblique inverse (« \ ») pour configurer le parcours au tout début de la liste de clés.
traverse_ID_var est le nom d'une variable sous forme d'entier. MapInfo Professional stocke dans la
variable un identifiant de parcours que vous pouvez utiliser dans les instructions Metadata Traverse....
Syntaxe 2
Metadata Traverse traverse_ID
{ Next Into Key key_name_var In key_value_var |
Destroy }
traverse_ID est une valeur entière (comme la valeur de la variable var_traverse_ID décrite ci-dessus).
key_name_var représente le nom d'une variable de type chaîne. MapInfo Professional stocke le nom
de la clé récupérée dans cette variable.
key_value_var représente le nom d'une variable de type chaîne. MapInfo Professional stocke la valeur
de la clé récupérée dans cette variable.
Description
L'instruction Metadata gère les métadonnées stockées dans des tables MapInfo. Les métadonnées sont
les informations stockées dans le fichier .TAB d'une table (au lieu d'être stockées sous forme de lignes
et de colonnes).
Chaque table peut disposer de plusieurs clés ou d'aucune. Chaque clé représente une catégorie
d'informations, telle que le nom d'un auteur, un avis de copyright, etc. Une valeur de chaîne est associée
à chaque clé. Une clé appelée « \Copyright » peut ainsi représenter la valeur « Copyright 2001 Pitney
Bowes Software Inc. Corporation ». Pour plus d'informations sur les métadonnées, consultez le Guide
de l'utilisateur MapBasic.
Modification des métadonnées d'une table
Pour créer, modifier ou supprimer des métadonnées, utilisez la syntaxe 1. Les clauses suivantes
s'appliquent :
SetKey
Attribue une valeur à une clé de métadonnées. Si la clé existe déjà, MapInfo Professional lui attribue
une nouvelle valeur. Si la clé n'existe pas, MapInfo Professional crée une nouvelle clé. Lors de la création
446
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
d'une nouvelle clé, les modifications sont immédiatement appliquées. Il n'est pas nécessaire de procéder
à une opération d'enregistrement.
MetaData Table Parcels SetKey "\Info\Date" To Str$(CurDate( ))
Remarque: MapInfo Professional crée automatiquement une clé de métadonnées appelée «
\IsReadOnly » (avec FALSE comme valeur par défaut) lorsque vous ajoutez une clé de
métadonnées à une table pour la première fois. La clé \IsReadOnly est une clé spéciale,
réservée à l'usage interne de MapInfo Professional.
DropKey
Supprime la clé indiquée de la table. Si vous incluez le mot-clé Hierarchical, MapInfo Professional
supprime toute la hiérarchie de métadonnées, au niveau de et sous la clé indiquée. Par exemple, si une
table dispose des clés « \Info\Author » et « \Info\Date », vous pouvez supprimer les deux clés à l'aide
de l'instruction suivante :
MetaData Table Parcels DropKey "\Info" Hierarchical
Lecture des métadonnées d'une table
Pour lire les valeurs de métadonnées d'une table, utilisez la clause SetTraverse pour initialiser un
parcours, puis la clause Next pour récupérer les valeurs de clés. Une fois les valeurs récupérées, utilisez
la clause Destroy pour libérer la mémoire utilisée par le parcours. Les clauses suivantes s'appliquent :
SetTraverse
Prépare le parcours des clés de la table, en commençant par la clé indiquée. Pour commencer au début
de la liste de clés, utilisez le caractère « \ » comme nom de clé de départ. Si vous incluez le mot-clé
Hierarchical, le parcours peut récupérer chaque clé de manière hiérarchique. Si vous omettez le mot-clé
Hierarchical le parcours est plat : MapInfo Professional récupère uniquement les clés au niveau de la
racine (le parcours récupère ainsi la clé « \Info », mais pas la clé « \Info\Date »)
Next Into Key... Into Value...
Tente de lire la clé suivante. S'il existe une clé à lire, MapInfo Professional stocke le nom de cette clé
dans la variable key_name_var et sa valeur dans la variable key_value_var. Si aucune autre clé n'est
disponible à la lecture, MapInfo Professional stocke des chaînes vides dans les deux variables.
Destroy
Met fin au parcours et libère la mémoire utilisée par celui-ci.
Remarque: Le parcours de métadonnées hiérarchiques peut traverser jusqu'à dix niveaux de clés
(\Un\Deux\Trois\Quatre\Cinq\Six\Sept\Huit\Neuf\Dix, par exemple) si vous commencez le
parcours à la racine (« \ »). Si vous devez récupérer une clé sur plus de dix niveaux,
commencez le parcours à un niveau plus bas (par \Un\Deux\Trois\Quatre\Cinq, par
exemple).
Exemple
La procédure suivante permet de lire l'ensemble des valeurs de métadonnées d'une table. Le nom de
la table est défini par l'appelant. Cette procédure affiche les noms et les valeurs de clés dans la fenêtre
Message.
Sub Print_Metadata(ByVal table_name As String)
Dim i_traversal As Integer
Référence
447
Fonction MGRSToPoint( )
Dim s_keyname, s_keyvalue As String
' Initialize the traversal:
Metadata Table table_name
SetTraverse "\" Hierarchical Into ID i_traversal
' Attempt to fetch the first key:
Metadata Traverse i_traversal
Next Into Key s_keyname Into Value s_keyvalue
' Now loop for as long as there are key values;
' with each iteration of the loop, retrieve
' one key, and print it to the Message window.
Do While s_keyname <> ""
Print " "
Print "Key name: " & s_keyname
Print "Key value: " & s_keyvalue
Metadata Traverse i_traversal
Next Into Key s_keyname Into Value s_keyvalue
Loop
' Release this traversal to free memory:
MetaData Traverse i_traversal Destroy
End Sub
Voir également
Fonction GetMetadata$( ), Fonction TableInfo( )
Fonction MGRSToPoint( )
Objectif
Convertit une chaîne représentant une coordonnée du système de référence de carroyage militaire
(MGRS) en un objet point du système de coordonnées actuel de MapBasic. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
MGRSToPoint( string )
string est une expression de type chaîne représentant une coordonnée du système de référence de
carroyage militaire.
Le système de coordonnées Longitude/Latitude par défaut est utilisé comme sélection initiale.
Valeur renvoyée
Objet
Description
Le point renvoyé est localisé dans le système de coordonnées actuel de MapBasic, c'est-à-dire le système
Longitude/Latitude par défaut (sans datum). Pour obtenir des résultats précis lors de l'enregistrement
des points obtenus dans une table, configurez le système de coordonnées MapBasic afin qu'il corresponde
448
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
à celui de la table de destination avant d'appeler la fonction MGRSToPoint( ). Ceci permet d'éviter que
MapInfo Professional ne procède à une conversion intermédiaire vers le système de coordonnées
Longitude/Latitude sans datum, ce qui entraîne une perte de précision importante.
Exemple
Exemple 1 :
dim obj1 as Object
dim s_mgrs As String
dim obj2 as Object
obj1 = CreatePoint(-74.669, 43.263)
s_mgrs = PointToMGRS$(obj1)
obj2 = MGRSToPoint(s_mgrs)
Exemple 2 :
Open Table "C:\Temp\MyTable.TAB" as MGRSfile
' When using the PointToMGRS$( ) or MGRSToPoint( ) functions,
' it is very important to make sure that the current MapBasic
' coordsys matches the coordsys of the table where the
' point object is being stored.
'Set the MapBasic coordsys to that of the table used
Set CoordSys Table MGRSfile
'Update a Character column (for example COL2) with MGRS strings from
'a table of points
Update MGRSfile
Set Col2 = PointToMGRS$(obj)
'Update two float columns (Col3 & Col4) with
'CentroidX & CentroidY information
'from a character column (Col2) that contains MGRS strings.
Update MGRSfile
Set Col3 = CentroidX(MGRSToPoint(Col2))
Update mgrstestfile ' MGRSfile
Set Col4 = CentroidY(MGRSToPoint(Col2))
Commit Table MGRSfile
Close Table MGRSfile
Voir également
Fonction PointToMGRS$( )
Fonction Mid$( )
Objectif
Renvoie une chaîne extraite du cœur d'une autre chaîne. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Mid$( string_expr, position, length )
string_expr est une expression de type chaîne.
position est une expression numérique indiquant une position de départ dans la chaîne.
length est une expression numérique indiquant le nombre de caractères à extraire.
Référence
449
Fonction MidByte$( )
Valeur renvoyée
Chaîne
Description
La fonction Mid$( ) renvoie une sous-chaîne copiée à partir de la chaîne string_expr indiquée.
Mid$( ) copie le nombre de caractères de la chaîne string_expr en commençant par la position indiquée
par le paramètre correspondant. Si la valeur de position est inférieure ou égale à 1, MapBasic commence
la copie à partir du tout début de la chaîne string_expr.
Si la chaîne string_expr n'est pas suffisamment longue, il est possible que le nombre de caractères
indiqué par le paramètre de longueur ne puisse pas être copié. Il se peut donc que la fonction Mid$( )
ne renvoie pas une chaîne dont le nombre de caractères correspond au paramètre de longueur défini.
Si le paramètre position correspond à un nombre plus élevé que le nombre de caractères constituant la
chaîne, la fonction string_expr, Mid$( ) renvoie une chaîne vide. Si le paramètre de longueur est égal à
zéro, Mid$( ) renvoie une chaîne vide. Si le paramètre longueur ou position est fractionnel, MapBasic
arrondit à l'entier le plus proche.
Exemple
Dim str_var, substr_var As String
str_var = "New York City"
substr_var = Mid$(str_var, 10, 4)
' substr_var now contains the string "City"
Voir également
Fonction InStr( ), Fonction Left$( ), Fonction Right$( )
Fonction MidByte$( )
Objectif
Accède aux octets d'une chaîne sur un système qui prend en charge les caractères à deux octets. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
MidByte$( string_expr, position, length )
string_expr est une expression de type chaîne.
position est une expression numérique entière indiquant une position de départ dans la chaîne.
length est une expression numérique entière indiquant le nombre d'octets à renvoyer.
Valeur renvoyée
Chaîne
450
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
La fonction MidByte$( ) renvoie les octets d'une chaîne.
Utilisez la fonction MidByte$( ) lorsque vous devez extraire une plage d'octets d'une chaîne et que
l'application est exécutée sur un système qui prend en charge les jeux de caractères à deux octets. Par
exemple, la version japonaise de Microsoft Windows prend en charge les caractères à deux octets.
Sur les systèmes qui prennent en charge les caractères à un octet, les résultats renvoyés par la fonction
MidByte$( ) sont identiques à ceux renvoyés par la Fonction Mid$( ).
Voir également
Fonction InStr( ), Fonction Left$( ), Fonction Right$( )
Fonction Minimum( )
Objectif
Retourne le plus petit de deux nombres. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
Minimum( num_expr, num_expr )
num_expr représente une expression numérique.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction Minimum( ) renvoie la plus petite de deux expressions numériques.
Exemple
Dim
x =
y =
z =
x, y, z As Float
42
-100
Minimum(x, y)
' z now contains the value: -100
Voir également
Fonction Maximum( )
Fonction Minute( )
Objectif
Récupère la partie minutes d'une valeur Time sous forme de nombre entier (0-59). Vous pouvez appeler
cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Référence
451
Fonction Month( )
Syntaxe
Minute( Time )
Valeur renvoyée
Entier court
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim X as time
dim iMin as integer
X = CurDateTime()
iMin = Minute(X)
Print iMin
Voir également
Fonction Hour( ), FonctionSecond( )
Fonction Month( )
Objectif
Renvoie le composant mois (1 à 12) d'une valeur de date. Vous pouvez appeler cette fonction à partir
de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
Month( date_expr )
date_expr est une expression de date.
Valeur renvoyée
Valeur entière courte comprise entre 1 et 12 (inclus)
Description
La fonction Month( ) renvoie un entier qui représente le composant mois (1 à 12) de la date indiquée.
Exemples
L'exemple suivant vous indique comment extraire uniquement le composant mois d'une valeur de date
spécifique, à l'aide de la fonction Month( ).
If Month(CurDate( )) = 12 Then
'
' ... then it is December...
'
End If
Vous pouvez également utiliser la fonction Month( ) dans l'instruction SQL Select. L'instruction Select
ci-dessous n'extrait que des lignes spécifiques de la table Orders. Cet exemple suppose que la table
452
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Orders possède une colonne de date appelée Date_Cmde. La clause Where de l'instruction Select
indique à MapInfo Professional de ne sélectionner que les commandes à compter de décembre 1993.
Open Table "orders"
Select *
From orders
Where Month(orderdate) = 12 And Year(orderdate) = 1993
Voir également
Fonction CurDate( ), Fonction Day( ), Fonction Minute( ), Fonction Month( ), Fonction Second( ),
Fonction Weekday( ), Fonction Year( )
Instruction Nearest
Objectif
Trouve l'objet d'une table le plus proche d'un objet spécifique. L'objet résultant est une polyligne à deux
points représentant la distance la plus proche. Vous pouvez exécuter cette instruction à partir de la
fenêtre MapBasic de MapInfo Professional.
Syntaxe
Nearest [ N | All ]
From { Table fromtable | Variable fromvar }
To totable Into intotable
[ Type { Spherical | Cartesian }]
[ Ignore [ Contains ] [ Min min_value ] [ Max max_value ]
Units unitname ] [ Data clause ]
N est un paramètre facultatif représentant le nombre d'objets les plus proches à trouver. La valeur par
défaut est de 1. Si vous utilisez All, un objet distance est alors créé pour chaque association.
fromtable représente une table d'objets à partir de laquelle vous souhaitez trouver les distances les plus
proches.
fromvar correspond à une variable MapBasic représentant un objet à partir duquel vous souhaitez trouver
les distances les plus proches.
totable représente une table d'objets vers laquelle vous souhaitez trouver les distances les plus proches.
totable représente une table dans laquelle les résultats doivent être placés.
min_value est la distance minimale à inclure dans les résultats.
max_value est la distance maximale à inclure dans les résultats.
unitnameest une chaîne représentant le nom de l'unité de distance (« km », par exemple) utilisée pour
le paramètre min_value et/ou max_value.
clause est une expression qui définit la table dont sont issus les résultats.
Description
L'instruction Nearest trouve tous les objets de la table fromtable situés à proximité d'un objet spécifique.
Tous les objets de la table fromtable sont pris en compte. Pour chaque objet de la table fromtable, l'objet
le plus proche de la table totable est localisé. Si le paramètre N est défini, les N objets de la table totable
Référence
453
Instruction Nearest
les plus proches sont localisés. Un objet polyligne à deux points représentant les points les plus proches
entre l'objet fromtable et l'objet totable sélectionné est ajouté à la table indiquée par le paramètre intotable.
Si l'option All est spécifiée, un objet est placé dans la table totable. Il représente alors la distance entre
l'objet fromtable et chaque objet de la table totable.
Si la table totable inclut plusieurs objets situés à la même distance d'un objet de la table fromtable donné,
il est possible que seul l'un d'entre eux soit renvoyé. Si la requête porte sur plusieurs objets (c'est-à-dire
si N est supérieur à 1), les objets de même distance remplissent des emplacements successifs. S'il
existe un nœud au niveau du deuxième objet le plus proche et que la requête porte sur trois objets,
l'objet devient le troisième objet le plus proche.
Les objets des tables fromtable et totable peuvent être de n'importe quel type, sauf des objets texte. Par
exemple, si les deux tables contiennent des objets région, la distance minimale entre les objets région
est déterminée et l'objet polyligne à deux points créé représente les points de chaque objet utilisés pour
calculer la distance. Si les objets région se croisent, la distance minimale est zéro et la polyligne à deux
points renvoyée est dégénérée : les deux points sont identiques et représentent une intersection.
Les distances calculées ne prennent pas en compte les distances routières. Il s'agit uniquement de
distances à vol d'oiseau.
Type est la méthode utilisée pour calculer les distances entre les objets. Les paramètres possibles sont
Spherical et Cartesian. Le type de calcul des distances du système de coordonnées de la table intotable
doit être correct, autrement une erreur se produit. Si le système de coordonnées de la table intotable
est non terrestre et que la distance est calculée à l'aide de la méthode sphérique, une erreur se produit.
Si le système de coordonnées de la table intotable est Latitude/Longitude et que la distance est calculée
à l'aide de la méthode cartésienne, une erreur se produit.
La clause Ignore limite les distances renvoyées. Les distances identifiées étant inférieures ou égales à
min_value ou supérieures à max_value ne sont pas prises en compte. min_value et max_value sont
indiqués dans l'unité de distance définie par unitname. Si le paramètre unitname n'est pas une unité de
distance valide, une erreur se produit. La distance Min peut permettre de supprimer les distances nulles.
Cette option peut être utile pour supprimer les comparaisons de points identiques lors de l'utilisation de
deux tables de points. Par exemple, si deux tables de points représentent des villes et que nous
souhaitons localiser les villes les plus proches, il est possible d'exclure les villes identiques. Toute la
clause Ignore est facultative. Il en est de même pour les sous-clauses Min et Max qu'elle contient.
La distance Max peut être utilisée pour limiter les objets à prendre en compte dans la table totable. Cette
option est particulièrement utile lorsqu'elle est utilisée en association avec N ou All. Par exemple, nous
souhaitons rechercher les cinq aéroports les plus proches d'un ensemble de villes (où la table fromtable
représente l'ensemble de villes et la table totable un ensemble d'aéroports). Nous ne souhaitons
cependant pas prendre en compte les aéroports situés à plus de 160 km de distance. Il est possible que
moins de cinq aéroports soient renvoyés pour une ville donnée. Cette option peut également être utilisée
en association avec le paramètre All, permettant de trouver tous les aéroports situés à 160 km d'une
ville. L'ajout d'un paramètre Max peut améliorer les performances d'une instruction Nearest, le nombre
d'objets totable recherchés étant limité de manière significative.
Les distances réelles sont supérieures à min_value et inférieures ou égales à max_value :
min_value < distance <= max_value
Ceci peut permettre de renvoyer des plages ou des distances en plusieurs fois, à l'aide de l'instruction
Nearest. Par exemple, la première instance peut renvoyer tous les objets entre 0 et 160 km et la deuxième
454
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
tous les objets entre 160 et 320 km. Les résultats ne contiendront pas de doublons (c'est-à-dire qu'une
distance de 160 apparaît uniquement la première fois, jamais la deuxième).
Normalement, si un objet est inclus dans un autre, la distance entre les objets est nulle. Par exemple,
si fromtable correspond à la table CapMonde et totable représente la table Monde, la distance entre
Londres et le Royaume-Uni est nulle. Si le filtre Contains est activé pour la clause Ignore, la distance
n'est pas automatiquement nulle. La distance de Londres à la frontière du Royaume-Uni est renvoyée
à la place. En effet, tous les objets fermés, tels que les régions, sont considérés comme des polylignes
dans le cadre de cette opération.
Clause Data
La clause Data peut être utilisée pour indiquer l'objet fromtable et l'objet totable dont est issu le résultat.
Data IntoColumn1=column1, IntoColumn2=column2
La colonne IntoColumn à gauche du signe égal doit être une colonne valide de la table totable. Le nom
de colonne à droite du signe égal doit être un nom de colonne valide dans la table totable ou fromtable.
Si un nom de colonne est utilisé à la fois dans la table totable et fromtable, la colonne de la table totable
est utilisée (c'est-à-dire que la recherche porte d'abord sur les noms de colonne à droite du signe égal
présents dans la table totable). Pour éviter de tels conflits, les noms de colonne peuvent être qualifiés
à l'aide de l'alias de table :
Data name1=states.state_name, name2=county.state_name
Pour remplir une colonne de la table totable avec la distance, il est possible d'utiliser la fonctionnalité
Table > Mettre à jour Colonne du menu ou l'Instruction Update.
Exemples
Supposons que nous disposons d'une table de points représentant les emplacements de guichets
automatiques bancaires et incluant au moins deux colonnes : Société, qui représente le nom de l'entreprise
disposant du guichet automatique et Adresse, qui représente l'adresse de cette entreprise. Supposons
que l'actuelle sélection représente notre emplacement. L'exemple suivant permet alors de localiser le
guichet automatique le plus proche du lieu où nous nous trouvons :
Nearest From Table selection To atm Into result Data
where=Business,address=Address
Si nous souhaitions trouver les cinq guichets automatiques les plus proches de notre emplacement :
Nearest 5 From Table selection To atm Into result Data
where=Business,address=Address
Si nous souhaitions trouver tous les guichets automatiques dans un rayon de 5 miles (8 km) :
Nearest All From Table selection To atm Into result Ignore Max 5 Units
"mi" Data where=buisness,address=address
Supposons que nous disposons d'une table indiquant les emplacements de maisons (fromtable) et une
table représentant la côte (totable). Pour trouver la distance d'une maison à la côte :
Nearest From Table customer To coastline Into result Data
who=customer.name,
where=customer.address,coast_loc=coastline.county,type=coastline.designat
ion
Référence
455
Instruction Note
Si les clients se trouvant à plus de 30 miles (50 km) d'une côte ne nous intéressent pas :
Nearest From Table customer To coastline Into result Ignore Max 30 Units
"mi" Data who=customer.name,
where=customer.address,coast_loc=coastline.county,
type=coastline.designation
Supposons que nous disposons d'une table de villes (fromtable) et d'une table de capitales (totable), et
que nous souhaitons trouver la capitale d'État la plus proche de chaque ville, sans prendre en compte
les cas où la ville de la table fromtable est également une capitale :
Nearest From Table uscty_1k To usa_caps Into result Ignore Min 0 Units
"mi" Data city=uscty_1k.name,capital=usa_caps.capital
Voir également
Instruction Farthest, Fonction CartesianObjectDistance( ), Fonction ObjectDistance( ), Fonction
SphericalObjectDistance( ), Fonction CartesianConnectObjects( ), Fonction ConnectObjects( ),
Fonction SphericalConnectObjects( )
Instruction Note
Objectif
Affiche un message simple dans une boîte de dialogue. Vous pouvez exécuter cette instruction à partir
de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Note message
message est une expression à afficher dans une boîte de dialogue.
Description
L'instruction Note crée une boîte de dialogue dans laquelle un message est affiché. La boîte de dialogue
contient un bouton OK. Elle reste affichée jusqu'à ce que l'utilisateur clique sur le bouton OK.
L'expression du message ne doit pas nécessairement être une expression de type chaîne. Si le message
est un objet, MapBasic crée automatiquement la chaîne adaptée (Région, par exemple) à l'affichage
dans la boîte de dialogue Remarque. Si le message est une chaîne, celle-ci peut contenir jusqu'à 300
caractères, sur 6 lignes maximum.
Exemple
Note "Total # of records processed: " + Str$( i_count )
Voir également
Fonction Ask( ), Instruction Dialog, Instruction Print
456
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction NumAllWindows( )
Objectif
Renvoie le nombre de fenêtres MapInfo Professional, y compris les fenêtres spéciales comme ButtonPad
et Informations. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo
Professional.
Syntaxe
NumAllWindows( )
Valeur renvoyée
Entier court
Description
La fonction NumAllWindows( ) renvoie le nombre de fenêtres MapInfo Professional.
Pour déterminer le nombre de fenêtres de documents ouvertes par MapInfo Professional (Carte, Données,
Graphique et Mise en page), appelez la fonction NumWindows( ).
Voir également
Fonction NumWindows( ) , Fonction WindowID( )
Fonction NumberToDate( )
Objectif
Renvoie une valeur de date à partir d'un entier. Vous pouvez appeler cette fonction à partir de la fenêtre
MapBasic dans MapInfo Professional.
Syntaxe
NumberToDate( numeric_date )
numeric_date est un entier à huit chiffres au format AAAAMMJJ (19951231, par exemple).
Valeur renvoyée
Date
Description
La fonction NumberToDate( ) renvoie une valeur de date représentée par un entier à huit chiffres.
L'appel de fonction suivant renvoie la date du 31 décembre 2006, par exemple :
NumberToDate(20061231)
Référence
457
Fonction NumberToDateTime( )
Exemple
L'exemple suivant soustrait une valeur de date d'une autre date. Le résultat de la soustraction correspond
au nombre de jours entre les deux dates.
Dim i_elapsed As Integer
i_elapsed = CurDate( ) - NumberToDate(20060101)
' i_elapsed now contains the number of days
' since January 1, 2006
Voir également
Fonction StringToDate( ), Instruction Set Format, Fonction Str$( ), Fonction NumberToDateTime(
), Fonction NumberToTime( )
Fonction NumberToDateTime( )
Objectif
Renvoie une valeur DateTime. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Syntaxe
NumberToDateTime( numeric_datetime )
numeric_datetime est un entier à dix-sept chiffres, au format AAAAMMJJHHMMSSFFF. Par exemple,
20070301214237582 correspond au 1er mars 2007, à 21h42:37,582.
Valeur renvoyée
DateTime
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim fNum as float
dim Y as datetime
fNum = 20070301214237582
Y = NumbertoDateTime (fNum)
Print FormatDate$(GetDate(Y))
Print FormatTime$(GetDate(Y),"hh:mm:ss.fff tt")
Voir également
Fonction FormatTime$( ), Fonction GetTime() fonction, Fonction NumberToDate( ), Fonction
NumberToTime( )
458
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Fonction NumberToTime( )
Objectif
Renvoie une valeur Time. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans
MapInfo Professional.
Syntaxe
NumberToTime( numeric_time )
numeric_time est un entier à neuf chiffres, au format HHMMSSFFF. Par exemple, 214237582 représente
21h42:37,582.
Valeur renvoyée
Durée
Exemple
Copiez cet exemple dans la fenêtre MapBasic pour une démonstration de cette fonction.
dim fNum as integer
dim Y as time
fNum = 214237582
Y = NumberToTime(fNum)
Print FormatTime$(Y,"hh:mm:ss.fff tt")
Voir également
Fonction FormatTime$( ), Fonction GetTime() , Fonction NumberToDate( ), Fonction
NumberToDateTime( )
Fonction NumCols( )
Objectif
Renvoie le nombre de colonnes d'une table définie. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
NumCols( table )
table est le nom d'une table ouverte.
Valeur renvoyée
Entier court
Description
La fonction NumCols( ) renvoie le nombre de colonnes figurant dans la table ouverte indiquée.
Référence
459
Fonction NumTables( )
Le nombre de colonnes renvoyé par la fonction NumCols( ) n'inclut pas la colonne spéciale connue
sous le nom Objet (ou Obj en abrégé), qui fait référence aux objets graphiques joints aux tables
cartographiables. De même, le nombre de colonnes renvoyé n'inclut pas la colonne spéciale connue
sous le nom ID de ligne (RowID).
Remarque: Si une table comprend des colonnes temporaires (en raison d'une Instruction Add
Column), le nombre renvoyé par NumCols( ) inclut les colonnes temporaires.
Conditions d'erreur
L'erreur ERR_TABLE_NOT_FOUND (405) est générée si la table spécifiée n'est pas disponible.
Exemple
Dim i_counter As Integer
Open Table "world"
i_counter = NumCols(world)
Voir également
Fonction ColumnInfo( ), Fonction NumTables( ), Fonction TableInfo( )
Fonction NumTables( )
Objectif
Renvoie le nombre de tables actuellement ouvertes. Vous pouvez appeler cette fonction à partir de la
fenêtre MapBasic dans MapInfo Professional.
Syntaxe
NumTables( )
Valeur renvoyée
Entier court
Description
La fonction NumTables( ) renvoie le nombre de tables actuellement ouvertes.
La table d'une carte de rues peut être composée de deux tables annexes. Par exemple, lorsque vous
ouvrez la carte des rues de Washington, DC (DCWASHS), MapInfo Professional ouvre également deux
tables annexes : DCWASHS1.TAB et DCWASHS2.TAB. MapInfo Professional considère cependant la
table DCWASHS comme une seule table. La fenêtre Contrôle des couches affiche ainsi uniquement le
nom de la table DCWASHS. De même, la fonction NumTables( ) considère la carte des rues comme
une seule table, même si elle peut être composée de deux tables annexes.
Exemple
If NumTables( ) < 1 Then
Note "You must open a table before continuing."
End If
460
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Voir également
Instruction Open Table, Fonction TableInfo( ), Fonction ColumnInfo( )
Fonction NumWindows( )
Objectif
Renvoie le nombre de fenêtres de documents ouvertes (Carte, Données, Graphique, Mise en page).
Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
NumWindows( )
Valeur renvoyée
Entier court
Description
La fonction NumWindows( )renvoie le nombre de fenêtres Carte, Données, Graphique et Mise en page
actuellement ouvertes. Le fait que les fenêtres soient réduites n'affecte pas le résultat.
Pour déterminer le nombre total de fenêtres ouvertes par MapInfo Professional (y compris les ButtonPads
et les fenêtres spéciales), appelez la fonction NumAllWindows( ).
Exemple
Dim num_open_wins As SmallInt
num_open_wins = NumWindows( )
Voir également
Fonction NumAllWindows( ) , Fonction WindowID( )
Fonction ObjectDistance( )
Objectif
Renvoie la distance entre deux objets. Vous pouvez appeler cette fonction à partir de la fenêtre MapBasic
dans MapInfo Professional.
Syntaxe
ObjectDistance( object1, object2, unit_name )
object1 et object2 sont des expressions d'objet.
unit_name est une chaîne qui représente le nom d'une unité de distance.
Valeur renvoyée
Nombre à virgule flottante
Référence
461
Fonction ObjectGeography( )
Description
ObjectDistance( ) renvoie la distance minimale entre object1 et object2 à l'aide d'une méthode de calcul
sphérique avec la valeur renvoyée dans unit_name. Si le calcul ne peut pas être effectué à l'aide d'une
méthode de distance sphérique (par exemple, si le système de coordonnées MapBasic est non terrestre),
une méthode de distance cartésienne est utilisée.
Fonction ObjectGeography( )
Objectif
Renvoie les informations relatives aux coordonnées ou aux angles décrivant un objet graphique. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectGeography( object, attribute )
object est une expression d'objet.
attribute est un code d'entier définissant le type d'informations à renvoyer.
Valeur renvoyée
Nombre à virgule flottante
Description
Le paramètre attribute contrôle le type d'informations renvoyées. Le tableau ci-dessous répertorie les
différents codes que vous pouvez utiliser pour le paramètre attribute. Les codes de la colonne de gauche
(OBJ_GEO_MINX, par exemple) sont définis dans MAPBASIC.DEF.
Certains attributs s'appliquent uniquement à certains types d'objets. Par exemple, les arcs de cercle
sont les seuls objets avec des attributs du type angle de début et angle de fin et les textes sont les seuls
objets avec un attribut du type angle du texte. Si un objet ne prend pas en charge les valeurs z ou m ou
si les valeurs z ou m du nœud ne sont pas définies, une erreur est renvoyée.
462
Paramètre attribute
ID
Valeur renvoyée (nombre à virgule flottante)
OBJ_GEO_MINX
1
Coordonnée x minimum du rectangle intérieur
d'encadrement d'un objet, sauf si l'objet est une ligne. Si
l'objet est une ligne, renvoie la même valeur que
OBJ_GEO_LINEBEGX.
OBJ_GEO_MINY
2
Coordonnée y minimum du rectangle intérieur
d'encadrement d'un objet. Pour les lignes, renvoie la valeur
OBJ_GEO_LINEBEGY.
OBJ_GEO_MAXX
3
Coordonnée x maximum du rectangle intérieur
d'encadrement d'un objet. Ne s'applique pas aux objets
point. Pour les lignes, renvoie la valeur
OBJ_GEO_LINEENDX.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée (nombre à virgule flottante)
OBJ_GEO_MAXY
4
Coordonnée y maximum du rectangle intérieur
d'encadrement d'un objet. Ne s'applique pas aux objets
point. Pour les lignes, renvoie la valeur
OBJ_GEO_LINEENDY.
OBJ_GEO_ARCBEGANGLE
5
Angle de début d'un objet arc
OBJ_GEO_ARCENDANGLE
6
Angle de fin d'un objet arc
OBJ_GEO_LINEBEGX
1
Coordonnée x du nœud de début d'un objet ligne
OBJ_GEO_LINEBEGY
2
Coordonnée y du nœud de début d'un objet ligne
OBJ_GEO_LINEENDX
3
Coordonnée x du nœud de fin d'un objet ligne
OBJ_GEO_LINEENDY
4
Coordonnée y du nœud de fin d'un objet ligne
OBJ_GEO_POINTX
1
Coordonnée x d'un objet point
OBJ_GEO_POINTY
2
Coordonnée y d'un objet point
OBJ_GEO_POINTZ
8
Valeur z d'un objet point
OBJ_GEO_POINTM
9
Valeur m d'un objet point
OBJ_GEO_ROUNDRADIUS
5
Diamètre du cercle qui définit le coin arrondi d'un objet
rectangle arrondi, exprimé en unités de coordonnées
(degrés, par exemple).
OBJ_GEO_CENTROID
5
Renvoie un objet point pour le centroïde des régions,
collections, multipoints et polylignes. Ce paramètre est le
plus fréquemment utilisé avec l'instruction Alter Object.
OBJ_GEO_TEXTLINEX
5
Coordonnée x de la fin de la ligne d'étiquette d'un objet
texte
OBJ_GEO_TEXTLINEY
6
Coordonnée y de la fin de la ligne d'étiquette d'un objet
texte
OBJ_GEO_TEXTANGLE
7
Angle de rotation d'un objet texte
La fonction ObjectGeography( ) a été développée de manière à prendre en charge les multipoints et
les collections. Ces deux types prennent en charge les attributs 1 à 4 (coordonnées du rectangle intérieur
d'encadrement d'un objet).
OBJ_GEO_MINX
1
Coordonnée x minimum du rectangle intérieur
d'encadrement d'un objet
OBJ_GEO_MINY
2
Coordonnée y minimum du rectangle intérieur
d'encadrement d'un objet
OBJ_GEO_MAXX
3
Coordonnée x maximum du rectangle intérieur
d'encadrement d'un objet
Référence
463
Fonction ObjectInfo( )
OBJ GEO_MAXY
4
Coordonnée y maximum du rectangle intérieur
d'encadrement d'un objet
Exemple
L'exemple suivant détaille les coordonnées de début d'un objet ligne de la table City. Une instruction
Set Map utilise ensuite ces coordonnées pour recentrer la fenêtre Carte.
Include "MAPBASIC.DEF"
Dim i_obj_type As Integer, f_x, f_y As Float
Open Table "city"
Map From city
Fetch First From city
' at this point, the expression:
' city.obj
' represents the graphical object that's attached
' to the first record of the CITY table.
i_obj_type = ObjectInfo(city.obj, OBJ_INFO_TYPE)
If i_obj_type = OBJ_LINE Then
f_x = ObjectGeography(city.obj, OBJ_GEO_LINEBEGX)
f_y = ObjectGeography(city.obj, OBJ_GEO_LINEBEGY)
Set Map Center (f_x, f_y)
End If
Voir également
Fonction Centroid( ), Fonction CentroidX( ), Fonction CentroidY( ), Fonction ObjectInfo( )
Fonction ObjectInfo( )
Objectif
Renvoie des valeurs Pen, Brush ou autres décrivant un objet graphique. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectInfo( object, attribute )
object est une expression d'objet.
attribute est un code d'entier définissant le type d'informations à renvoyer.
Valeur renvoyée
Entier court, entier, chaîne, nombre à virgule flottante, ligne (Pen), valeur de remplissage (Brush),
symbole (Symbol) ou police (Font), selon le paramètre attribute
OBJ_INFO_NPOLYGONS (21) est un entier qui indique le nombre de polygones (dans le cas d'une
région) ou de sections (dans le cas d'une polyligne) qui constituent un objet.
OBJ_INFO_NPOLYGONS+N (21) est un entier qui indique le nombre de nœuds du Nième polygone
d'une région ou de la Nième section d'une polyligne.
464
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Remarque: Avec les objets région, MapInfo Professional compte le nœud de début deux fois (une fois
en tant que nœud de début et une fois en tant que nœud de fin). Par exemple, ObjectInfo(
) renvoie ainsi une valeur de 4 pour une région triangulaire.
Description
La fonction ObjectInfo( ) renvoie des informations générales au sujet d'un aspect d'un objet graphique.
Le premier paramètre doit être une valeur d'objet (le nom d'une variable Object ou une expression de
table sous la forme tablename.obj, par exemple).
Chaque objet dispose de plusieurs attributs. Par exemple, chaque objet dispose d'un attribut « type »,
indiquant si l'objet est un point, une ligne, une région, etc. La plupart des objets disposent d'attributs
Pen et/ou Brush, définissant l'aspect de l'objet. La fonction ObjectInfo( ) renvoie un attribut de l'objet
indiqué. L'attribut renvoyé varie en fonction de la valeur utilisée pour le paramètre attribute. Ainsi, si
vous devez trouver différentes informations au sujet d'un objet, vous devez appeler la fonction ObjectInfo(
) plusieurs fois, en utilisant des valeurs d'attribut différentes à chaque fois.
Le tableau ci-dessous répertorie les différents paramètres d'attribut et les valeurs renvoyées
correspondantes.
Paramètre attribute
ID
Valeur renvoyée
OBJ_INFO_TYPE
1
Entier court représentant le type d'objet. La valeur
renvoyée est l'une des valeurs répertoriées dans le tableau
ci-dessous (OBJ_TYPE_LINE, par exemple). Cet attribut
du fichier DEF est 1 (ObjectInfo( Object, 1 )).
OBJ_INFO_PEN
2
Style Pen renvoyé. Cette requête est uniquement valide
pour les types d'objets suivants : arc, ellipse, ligne,
polyligne, cadre, région, rectangle et rectangle arrondi.
OBJ_INFO_BRUSH
3
Style Brush renvoyé. Cette requête est uniquement valide
pour les types d'objets suivants : ellipse, cadre, région,
rectangle et rectangle arrondi.
OBJ_INFO_TEXTFONT
2
Style Font renvoyé. Cette requête est uniquement valide
pour les objets texte.
Remarque: Si l'objet texte est inclus dans une table
pouvant être cartographiée (contrairement
à une fenêtre Mise en page), la police définit
une taille en points de zéro et la hauteur du
texte est commandée par la distance de
zoom de la fenêtre Carte.
OBJ_INFO_SYMBOL
2
Style Symbol renvoyé. Cette requête est uniquement
valide pour les objets point.
OBJ_INFO_NPNTS
20
Entier indiquant le nombre total de nœuds d'un objet
polyligne ou région.
Référence
465
Fonction ObjectInfo( )
Paramètre attribute
ID
Valeur renvoyée
OBJ_INFO_SMOOTH
4
Logique indiquant si l'objet Polyligne indiqué est lissé.
OBJ_INFO_FRAMEWIN
4
Entier indiquant l'identifiant de la fenêtre jointe à un objet
cadre.
OBJ_INFO_FRAMETITLE
6
Chaîne indiquant le titre d'un objet cadre.
OBJ_INFO_NPOLYGONS
21
Entier court indiquant le nombre de polygones (dans le
cas d'une région) ou de sections (dans le cas d'une
polyligne) qui constituent un objet.
OBJ_INFO_NPOLYGONS+N
21
Entier indiquant le nombre de nœuds du Nième polygone
d'une région ou de la Nième section d'une polyligne.
Remarque: Avec les objets région, MapInfo Professional
compte le nœud de début deux fois (une fois
en tant que nœud de début et une fois en
tant que nœud de fin). Par exemple,
ObjectInfo( ) renvoie ainsi une valeur de 4
pour une région triangulaire.
466
OBJ_INFO_TEXTSTRING
3
Chaîne représentant le corps d'un objet texte. Si l'objet
dispose de plusieurs lignes de texte, la chaîne inclut des
sauts de ligne intégrés (valeurs Chr$( 10 )).
OBJ_INFO_TEXTSPACING
4
Valeur à virgule flottante de 1, 1,5 ou 2 représentant
l'espacement des lignes d'un objet texte.
OBJ_INFO_TEXTJUSTIFY
5
Entier court représentant la justification d'un objet texte :
0 = gauche, 1 = centre, 2 = droite.
OBJ_INFO_TEXTARROW
6
Entier court représentant le style de ligne associé à un
objet texte : 0 = aucun trait, 1 = trait simple, 2 = flèche.
OBJ_INFO_FILLFRAME
7
Valeur logique : TRUE si l'objet est un cadre contenant
une fenêtre Carte et que le paramètre « Fill Frame With
Map » est activé pour le cadre.
OBJ_INFO_NONEMPTY
11
Valeur logique : renvoie TRUE si l'objet multipoint dispose
de nœuds et FALSE si l'objet est vide.
OBJ_INFO_REGION
8
Valeur d'objet représentant la partie région d'un objet
collection. Si l'objet collection ne dispose d'aucune région,
une région vide est renvoyée. Cette requête est
uniquement valide pour les objets collection.
OBJ_INFO_PLINE
9
Valeur d'objet représentant la partie polyligne d'un objet
collection. Si l'objet collection ne dispose d'aucune
polyligne, un objet polyligne vide est renvoyé. Cette
requête est uniquement valide pour les objets collection.
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Paramètre attribute
ID
Valeur renvoyée
OBJ_INFO_MPOINT
10
Valeur d'objet représentant la partie multipoint d'un objet
collection. Si l'objet collection ne dispose d'aucun
multipoint, un objet multipoint vide est renvoyé. Cette
requête est uniquement valide pour les objets collection.
OBJ_INFO_Z_UNIT_SET
12
Valeur logique indiquant si les unités z sont définies.
OBJ_INFO_Z_UNIT
13
Résultat sous forme de chaîne qui indique les unités de
distance utilisées pour les valeurs z. Renvoie une chaîne
vide si les unités ne sont pas spécifiées.
OBJ_INFO_HAS_Z
14
Valeur logique indiquant si l'objet dispose de valeurs z.
OBJ_INFO_HAS_M
15
Valeur logique indiquant si l'objet dispose de valeurs m.
Les codes de la colonne de gauche (OBJ_INFO_TYPE, par exemple) sont définis dans le fichier de
définitions MapBasic, MAPBASIC.DEF. Votre programme doit inclure MAPBASIC.DEF si vous souhaitez
appeler la fonction ObjectInfo( ).
Chaque attribut graphique s'applique uniquement à certains types d'objets graphiques. Par exemple,
les objets point sont les seuls objets avec des attributs Symbol et les objets texte sont les seuls avec
des attributs Font. Par conséquent, la fonction ObjectInfo( ) ne peut renvoyer tous les types de paramètres
attribute de chaque type d'objet.
Si vous indiquez OBJ_INFO_TYPE en tant que paramètre attribute, la fonction ObjectInfo( ) renvoie
un des types d'objets répertoriés dans le tableau ci-dessous.
Table 5: Valeurs OBJ_INFO_TYPE
Valeurs OBJ_INFO_TYPE
ID
Type d'objet correspondant
OBJ_TYPE_ARC
1
Objet arc
OBJ_TYPE_ELLIPSE
2
Objets ellipse/cercle
OBJ_TYPE_LINE
3
Objet ligne
OBJ_TYPE_PLINE
4
Objet polyligne
OBJ_TYPE_POINT
5
Objet point
OBJ_TYPE_FRAME
6
Objet cadre de fenêtre Mise en page
OBJ_TYPE_REGION
7
Objet région
OBJ_TYPE_RECT
8
Objet rectangle
OBJ_TYPE_ROUNDRECT
9
Objet rectangle arrondi
OBJ_TYPE_TEXT
10
Objet texte
OBJ_TYPE_MULTIPOINT
11
Objet point collection
Référence
467
Fonction ObjectLen( )
Valeurs OBJ_INFO_TYPE
ID
Type d'objet correspondant
OBJ_TYPE_COLLECTION
12
Objet texte collection
Exemple
Include "MAPBASIC.DEF"
Dim counter, obj_type As Integer
Open Table "city"
Fetch First From city
' at this point, the expression: city.obj
' represents the graphical object that's attached
' to the first record of the CITY table.
obj_type = ObjectInfo(city.obj, OBJ_INFO_TYPE)
Do Case obj_type
Case OBJ_TYPE_LINE
Note "First object is a line."
Case OBJ_TYPE_PLINE
Note "First object is a polyline..."
counter = ObjectInfo(city.obj, OBJ_INFO_NPNTS)
Note " ... with " + Str$(counter) + " nodes."
Case OBJ_TYPE_REGION
Note "First object is a region..."
counter = ObjectInfo(city.obj, OBJ_INFO_NPOLYGONS)
Note ", made up of " + Str$(counter) + " polygons..."
counter = ObjectInfo(city.obj, OBJ_INFO_NPOLYGONS+1)
Note "The 1st polygon has" + Str$(counter) + " nodes"
End Case
Voir également
Instruction Alter Object, Clause Brush, Clause Font, Fonction ObjectGeography( ), Clause Pen,
Clause Symbol
Fonction ObjectLen( )
Objectif
Renvoie la longueur géographique d'un objet ligne ou polyligne. Vous pouvez appeler cette fonction à
partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectLen( expr, unit_name )
expr est une expression d'objet.
unit_name est une chaîne qui représente le nom d'une unité de distance (par exemple, « mi » pour
miles).
Valeur renvoyée
Nombre à virgule flottante
468
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Description
La fonction ObjectLen( ) renvoie la longueur d'une expression d'objet. Seuls les objets ligne et polyligne
possèdent des valeurs de longueur supérieures à zéro. Pour mesurer la circonférence d'un rectangle,
d'une ellipse ou d'une région, utilisez la fonction Perimeter( ).
La fonction ObjectLen( ) renvoie l'unité de mesure de la longueur indiquée par le paramètre unit_name.
Par exemple, pour obtenir une longueur en kilomètres, attribuez la valeur « km » au paramètre unit_name.
Pour obtenir la liste des noms d'unités valides, reportez-vous à la section Instruction Set Distance
Units.
MapInfo Professional effectue, pour la plus grande partie, un calcul cartésien ou sphérique. Généralement,
un calcul sphérique est effectué sauf si les données proviennent d'un système de coordonnées non
terrestre, auquel cas un calcul cartésien a lieu.
Exemple
Dim geogr_length As Float
Open Table "streets"
Fetch First From streets
geogr_length = ObjectLen(streets.obj, "mi")
' geogr_length now represents the length of the
' street segment, in miles
Voir également
Fonction Distance( ), Fonction Perimeter( ) , Instruction Set Distance Units
Fonction ObjectNodeHasM( )
Objectif
Renvoie TRUE si le nœud d'un objet région, polyligne ou multipoint dispose d'une valeur m. Vous pouvez
appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectNodeHasM( object, polygon_num, node_num )
object est une expression d'objet.
polygon_num est une valeur entière positive définissant le polygone ou la section à interroger. Ce
paramètre n'est pas pris en compte pour les objets multipoint (il est utilisé pour les régions et les
polylignes).
node_num est une valeur entière positive définissant le nœud à lire.
Valeur renvoyée
Logique
Description
La fonction ObjectNodeHasM( ) renvoie TRUE si le nœud d'un objet région, polyligne ou multipoint
dispose d'une valeur m.
Référence
469
Fonction ObjectNodeHasZ( )
Le paramètre polygon_num doit disposer d'une valeur de 1 (un) ou plus. Il définit le polygone (dans le
cadre de l'interrogation d'une région) ou la section (dans le cadre de l'interrogation d'une polyligne) à
interroger. Appelez la fonction ObjectInfo( ) pour déterminer le nombre de polygones ou de sections
d'un objet. La fonction ObjectNodeHasM( ) prend en charge les objets multipoint et renvoie TRUE si
un nœud d'un objet multipoint dispose d'une valeur m.
Le paramètre node_num doit disposer d'une valeur de 1 (un) ou plus. Il permet à MapBasic de savoir
quel nœud de l'objet doit être interrogé. Vous pouvez utiliser la fonction ObjectInfo( ) pour déterminer
le nombre de nœuds d'un objet.
Si l'objet ne prend pas en charge les valeurs m ou si aucune valeur m n'a été définie pour le nœud, la
valeur FALSE est renvoyée.
Exemple
L'exemple suivant interroge le premier objet graphique de la table Routes. Si le premier objet est une
polyligne, le programme interroge le premier nœud de l'objet afin de déterminer s'il dispose de
coordonnées z ou de valeurs m et interroge les coordonnées z et les valeurs m du premier nœud de la
polyligne.
Dim i_obj_type As SmallInt,
z, m As Float
hasZ, hasM as Logical
Open Table "routes"
Fetch First From routes
' at this point, the expression:
' routes.obj
' represents the graphical object that's attached
' to the first record of the routes table.
i_obj_type = ObjectInfo(routes.obj, OBJ_INFO_TYPE)
If i_obj_type = OBJ_PLINE Then
' ... then the object is a polyline...
If (ObjectNodeHasZ(routes.obj, 1, 1)) Then
z = ObjectNodeZ(routes.obj, 1, 1) ' read z-coordinate
End If
If (ObjectNodeHasM(routes.obj, 1, 1)) Then
m = ObjectNodeM(routes.obj, 1, 1) ' read m-value
End If
End If
Voir également
Requête dans des objets carte, Fonction ObjectInfo( )
Fonction ObjectNodeHasZ( )
Objectif
Renvoie TRUE si le nœud d'un objet région, polyligne ou multipoint dispose d'une coordonnée z. Vous
pouvez appeler cette fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectNodeHasZ( object, polygon_num, node_num )
object est une expression d'objet.
470
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
polygon_num est une valeur entière positive définissant le polygone ou la section à interroger. Ce
paramètre n'est pas pris en compte pour les objets multipoint (il est utilisé pour les régions et les
polylignes).
node_num est une valeur entière positive définissant le nœud à lire.
Valeur renvoyée
Logique
Description
La fonction ObjectNodeHasZ( ) renvoie TRUE si le nœud d'un objet région, polyligne ou multipoint
dispose d'une coordonnée z. Le paramètre polygon_num doit disposer d'une valeur de 1 (un) ou plus.
Il définit le polygone (dans le cadre de l'interrogation d'une région) ou la section (dans le cadre de
l'interrogation d'une polyligne) à interroger. Appelez la fonction ObjectInfo( ) pour déterminer le nombre
de polygones ou de sections d'un objet. La fonction ObjectNodeHasZ( ) prend en charge les objets
multipoint et renvoie TRUE si un nœud d'un objet multipoint dispose d'une coordonnée z.
Le paramètre node_num doit disposer d'une valeur de 1 (un) ou plus. Il permet à MapBasic de savoir
quel nœud de l'objet doit être interrogé. Vous pouvez utiliser la fonction ObjectInfo( ) pour déterminer
le nombre de nœuds d'un objet.
Si le paramètre object ne prend pas en charge les coordonnées z ou si aucune coordonnée z n'a été
définie pour le nœud, la valeur FALSE est renvoyée.
Exemple
L'exemple suivant interroge le premier objet graphique de la table Routes. Si le premier objet est une
polyligne, le programme interroge le premier nœud de l'objet afin de déterminer s'il dispose de
coordonnées z ou de valeurs m et interroge les coordonnées z et les valeurs m du premier nœud de la
polyligne.
Dim i_obj_type As SmallInt,
z, m As Float
hasZ, hasM as Logical
Open Table "routes"
Fetch First From routes
' at this point, the expression:
' routes.obj
' represents the graphical object that's attached
' to the first record of the routes table.
i_obj_type = ObjectInfo(routes.obj, OBJ_INFO_TYPE)
If i_obj_type = OBJ_PLINE Then
' ... then the object is a polyline...
If (ObjectNodeHasZ(routes.obj, 1, 1)) Then
z = ObjectNodeZ(routes.obj, 1, 1) ' read z-coordinate
End If
If (ObjectNodeHasM(routes.obj, 1, 1)) Then
m = ObjectNodeM(routes.obj, 1, 1) ' read m-value
End If
End If
Voir également
Requête dans des objets carte, Fonction ObjectInfo( )
Référence
471
Fonction ObjectNodeM( )
Fonction ObjectNodeM( )
Objectif
Renvoie la valeur m du nœud d'un objet région, polyligne ou multipoint. Vous pouvez appeler cette
fonction à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectNodeM( object, polygon_num, node_num )
object est une expression d'objet.
polygon_num est une valeur entière positive définissant le polygone ou la section à interroger. Ce
paramètre n'est pas pris en compte pour les objets multipoint (il est utilisé pour les régions et les
polylignes).
node_num est une valeur entière positive définissant le nœud à lire.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction ObjectNodeM( ) renvoie la valeur m du nœud d'un objet région, polyligne ou multipoint.
Le paramètre polygon_num doit disposer d'une valeur de 1 (un) ou plus. Il définit le polygone (dans le
cadre de l'interrogation d'une région) ou la section (dans le cadre de l'interrogation d'une polyligne) à
interroger. Appelez la fonction ObjectInfo( ) pour déterminer le nombre de polygones ou de sections
d'un objet. La fonction ObjectNodeM( ) prend en charge les objets multipoint et renvoie la valeur m du
nœud d'un objet multipoint.
Le paramètre node_num doit disposer d'une valeur de 1 (un) ou plus. Il permet à MapBasic de savoir
quel nœud de l'objet doit être interrogé. Vous pouvez utiliser la fonction ObjectInfo( ) pour déterminer
le nombre de nœuds d'un objet.
Si un objet ne prend pas en charge les valeurs m ou si aucune valeur m n'est définie pour le nœud, une
erreur est renvoyée.
Exemple
L'exemple suivant interroge le premier objet graphique de la table Routes. Si le premier objet est une
polyligne, le programme interroge les coordonnées z et les valeurs m du premier nœud de la polyligne.
Dim i_obj_type As SmallInt,
z, m As Float
Open Table "routes"
Fetch First From routes
' at this point, the expression:
' routes.obj
' represents the graphical object that's attached
' to the first record of the routes table.
i_obj_type = ObjectInfo(routes.obj, OBJ_INFO_TYPE)
472
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
If i_obj_type = OBJ_PLINE Then
' ... then the object is a polyline...
z = ObjectNodeZ(routes.obj, 1, 1) ' read z-coordinate
m = ObjectNodeM(routes.obj, 1, 1) ' read m-value
End If
Voir également
Requête dans des objets carte, Fonction ObjectInfo( )
Fonction ObjectNodeX( )
Objectif
Renvoie la coordonnée x du nœud d'un objet région ou polyligne. Vous pouvez appeler cette fonction
à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectNodeX( object, polygon_num, node_num )
object est une expression d'objet.
polygon_num est une valeur entière positive définissant le polygone ou la section à interroger. Ce
paramètre n'est pas pris en compte pour les objets multipoint (il est utilisé pour les régions et les
polylignes).
node_num est une valeur entière positive définissant le nœud à lire.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction ObjectNodeX( ) renvoie la valeur x d'un nœud spécifique d'un objet région ou polyligne. La
fonction ObjectNodeY( ) correspondante renvoie la valeur de la coordonnée y.
Le paramètre polygon_num doit disposer d'une valeur de 1 (un) ou plus. Il définit le polygone (dans le
cadre de l'interrogation d'une région) ou la section (dans le cadre de l'interrogation d'une polyligne) à
interroger. Appelez la fonction ObjectInfo( ) pour déterminer le nombre de polygones ou de sections
d'un objet. La fonction ObjectNodeX( ) prend en charge les objets multipoint et renvoie la coordonnée
x du nœud d'un objet multipoint.
Le paramètre node_num doit disposer d'une valeur de 1 (un) ou plus. Il permet à MapBasic de savoir
quel nœud de l'objet doit être interrogé. Vous pouvez utiliser la fonction ObjectInfo( ) pour déterminer
le nombre de nœuds d'un objet. La fonction ObjectNodeX( ) renvoie la valeur basée sur le système de
coordonnées actuellement utilisé par MapBasic. Par défaut, MapBasic utilise un système de coordonnées
Longitude/Latitude. Pour plus d'informations sur les systèmes de coordonnées, reportez-vous à la section
Instruction Set CoordSys.
Référence
473
Fonction ObjectNodeY( )
Exemple
L'exemple suivant interroge le premier objet graphique de la table Routes. Si le premier objet est une
polyligne, le programme interroge les coordonnées x et y du premier nœud de la polyligne, puis crée un
objet point à l'emplacement du nœud de début de la polyligne.
Dim i_obj_type As SmallInt, x, y As Float, new_pnt As Object
Open Table "routes"
Fetch First From routes
' at this point, the expression:
' routes.obj
' represents the graphical object that's attached
' to the first record of the routes table.
i_obj_type = ObjectInfo(routes.obj, OBJ_INFO_TYPE)
If i_obj_type = OBJ_PLINE Then
' ... then the object is a polyline...
x = ObjectNodeX(routes.obj, 1, 1) ' read longitude
y = ObjectNodeY(routes.obj, 1, 1) ' read latitude
Create Point Into Variable new_pnt (x, y)
Insert Into routes (obj) Values (new_pnt)
End If
Voir également
Instruction Alter Object, Fonction ObjectGeography( ), Fonction ObjectInfo( ), Fonction
ObjectNodeY( ), Instruction Set CoordSys
Fonction ObjectNodeY( )
Objectif
Renvoie la coordonnée y du nœud d'un objet région ou polyligne. Vous pouvez appeler cette fonction
à partir de la fenêtre MapBasic dans MapInfo Professional.
Syntaxe
ObjectNodeY( object, polygon_num, node_num )
object est une expression d'objet.
polygon_num est une valeur entière positive définissant le polygone ou la section à interroger. Ce
paramètre n'est pas pris en compte pour les objets multipoint (il est utilisé pour les régions et les
polylignes).
node_num est une valeur entière positive définissant le nœud à lire.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction ObjectNodeY( ) renvoie la valeur y d'un nœud spécifique d'un objet région ou polyligne.
Pour plus d'informations, reportez-vous à la section Fonction ObjectNodeX( ).
474
MapBasic 12.0
Chapitre 3: Référence du langage MapBasic de A à Z
Exemple
Reportez-vous à la section Fonction ObjectNodeX( ).
Voir également
Instruction Alter Object, Fonction ObjectGeography( ), Fonction ObjectInfo( ), Instruction Set
CoordSys
Fonction ObjectNodeZ( )
Objectif
Renvoie la valeur z du nœud d'un objet région, polyligne ou multipoint.
Syntaxe
ObjectNodeZ( object, polygon_num, node_num )
object est une expression d'objet.
polygon_num est une valeur entière positive définissant le polygone ou la section à interroger. Ce
paramètre n'est pas pris en compte pour les objets multipoint (il est utilisé pour les régions et les
polylignes).
node_num est une valeur entière positive définissant le nœud à lire.
Valeur renvoyée
Nombre à virgule flottante
Description
La fonction ObjectNodeZ( ) renvoie la valeur z du nœud d'un objet région, polyligne ou multipoint.
Le paramètre polygon_num doit disposer d'une valeur de 1 (un) ou plus. Il définit le polygone (dans le
cadre de l'interrogation d'une région) ou la section (dans le cadre de l'interrogation d'une polyligne) à
interroger. Appelez la fonction ObjectInfo( ) pour déterminer le nombre de polygones ou de sections
d'un objet. La fonction ObjectNodeZ( ) prend en charge les objets multipoint et renvoie la coordonnée
z du nœud d'un objet multipoint.
Le paramètre node_num doit disposer d'une valeur de 1 (un) ou plus. Il permet à MapBasic de savoir
quel nœud de l'objet doit être interrogé. Vous pouvez utiliser la fonction ObjectInfo( ) pour déterminer
le nombre de nœuds d'un objet.
Si un objet ne prend pas en charge les valeurs z ou si aucune valeur z n'est définie pour le nœud, une
erreur est renvoyée.
Exemple
L'exemple suivant interroge le premier objet graphique de la table Routes. Si le premier objet est une
polyligne, le programme interroge les coordonnées z et les valeurs m du premier nœud de la polyligne.
Dim i_obj_type As SmallInt,
z, m As Float
Open Table "routes"
Référence
475
Instruction Objects Check
Fetch First From routes
' at this point, the expression:
' routes.obj
' represents the graphical object that's attached
' to the first record of the routes table.
i_obj_type = ObjectInfo(routes.obj, OBJ_INFO_TYPE)
If i_obj_type = OBJ_PLINE Then
' ... then the object is a polyline...
z = ObjectNodeZ(routes.obj, 1, 1) ' read z-coordinate
m = ObjectNodeM(routes.obj, 1, 1) ' read m-value
End If
Voir également
Requête dans des objets carte, Fonction ObjectInfo( )
Instruction Objects Check
Objectif
Vérifie qu'une table donnée ne présente pas de données incorrectes ou éventuellement incorrectes, qui
pourraient générer des problèmes et/ou des résultats incorrects lors de différentes opérations. Vous
pouvez exécuter cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Objects Check From tablename Into Table tablename
[ SelfInt [ Symbol Clause] ]
[ Overlap [ Pen Clause ] [ Brush Clause ] ]
[ Gap areavalue [ Units Units ] [ Pen Clause ] [ Brush Clause ] ] ]
tablename est une chaîne représentant le nom d'une table.
Clause est une expression.
Units est la valeur d'une zone.
areavalue est une valeur au-delà de laquelle tout écart potentiel supérieur à cette valeur de zone d'écart
est ignoré et non signalé.
Description
Objects Check vérifie que la table indiquée dans la clause From ne présente pas de données incorrectes
qui pourraient générer des problèmes ou des résultats incorrects lors de différentes opérations. Seuls
les objets région peuvent être vérifiés. Il est également possible de vérifier que les objets région ne
présentent pas d'auto-intersections, de zones de chevauchements et d'écarts.
Les auto-intersections peuvent poser problème lors de différents calculs, notamment le calcul de la zone
d'une région. Elles peuvent également entraîner