#1 Wed 02 May 2001 22:28
- Roddier Sebastien
- Invité
select rectangle
Bonour a tous
Je cherche a selectionner des objets d'une table presents dans un
rectangle (a partir de 2 paires de coordonnees : coins extreme d'une
fenetre carte par exemple).
Je sais qu'il y a un bouton pour le faire mais je cherche a la faire
dans une routine MB.
Quelqu'un aurait il une idee lumineuse....
Merci d'avance
Sebastien RODDIER
#2 Wed 02 May 2001 22:30
- Pascal Barbier
- Invité
Re: select rectangle
Sans doute plein de solution.. mais en general j'utilise celle ci
Creer un objet rectangle avec vos 2 points
puis lancer une requete sql en MB pour recuperer les objet de la table
concernee. on recupere alors une table..
sinon si vous voulez travailler au plus pres des objet recupere vous pouvez
faire comme suit. je n'ai pas mis tout le code de l aprocedure mais cela
passe par l'utilisation de SearchRect et SearchInfo
Code:
X1 = CommandInfo (CMD_INFO_X) Y1 = CommandInfo (CMD_INFO_Y) X2 = CommandInfo (CMD_INFO_X2) Y2 = CommandInfo (CMD_INFO_Y2) If X1>=X2 then tempoX1 = X1 X1 =X2 X2 = TempoX1 end if If Y1>=Y2 then tempoY1 = Y1 Y1 =Y2 Y2 = TempoY1 end if DX = X2-X1 DY = Y2 -Y1 Nb_obj_trouve = SearchRect (WinId,X1,Y1,X2,Y2) If Nb_obj_trouve = 0 then '/// cas ou l'on ne rammasse rien Beep exit sub End if Nb_arc_trouve = 0 redim Tab_row_arc_trouve (Nb_obj_trouve) ColId = bus_ratp.Id ColGeom = bus_ratp.obj For i = 1 to Nb_obj_Trouve If SearchInfo (i, SEARCH_INFO_TABLE)= bus_ratp then '----------------------------- recherche des arcs de bus Nb_arc_trouve=Nb_arc_trouve+1 Tab_row_arc_trouve(NB_ARC_TROUVE)= SearchInfo (i, SEARCH_INFO_ROW) fetch rec Tab_row_arc_trouve(NB_ARC_TROUVE)from bus_ratp IdArcLu = ColId GeoLue = ColGeom insert into TempoArc (Id,obj) Values (IdARcLu,GeoLue) end if next 'i --------fin du chargement de tempoarc
Cordialement
Pascal Barbier