Page 1 sur 1

Points aéronautiques de la France

Publié : sam. 29/sept./2018 23:10
par euseluli
Excusez moi par mon mauvais français.
Je suis débutant à la programmation et malgré j'ai PureBasic depuis , je crois, 10 années je me considére aussi an débutant avec Pure.
Le simple programme je vous joins, il a un erreur que je ne peux pas détecter.
En plus, je veux ajouter une autre écran pour présenter des boutons de les points que restent.

Description du logiciel:
Très simple. Il lit un fichier de texte, "fijosFR.txt", 1306 registres avec le nom et des coordonnées géographiques de tous les points aéronautiques de la France.

L'erreur:
Il montre 1120 boutons et après que j'appuie sur un bouton pour la prémiere fois, le bouton 1 disparait.
Comme est possible presénter une autre écran avec les boutons que manquent et les changer á ma choix?
Merci bien ! Gracias

https://mega.nz/#F!6hBlzSoa

Re: Points aéronautiques de la France

Publié : sam. 29/sept./2018 23:39
par Ar-S
Hola..
Ton lien demande une clé... Donc on ne peut rien tester.
Ensuite dans ce que tu dis, je pense que tu as un soucis de boucle.
Pour ouvrir plusieurs fenêtres tu as pas mal d'exemples sur le forum.
En voilà un ici :https://www.purebasic.fr/french/viewtop ... es#p172370

Re: Points aéronautiques de la France

Publié : dim. 30/sept./2018 10:17
par euseluli
Bonjour:

J'essaye un autre lien et j'étudierai comme faire deux fênetres.

Merci

https://www.dropbox.com/sh/tlfh7gz9nofi ... xZVVa?dl=0

Re: Points aéronautiques de la France

Publié : dim. 30/sept./2018 12:38
par cage
Bonjour,

J'ai juste commenté les 2 lignes TextGadget() et le problème disparait.

cage

Code : Tout sélectionner

  StartDrawing(WindowOutput(0))
  
  Repeat
    
    SetGadgetFont(#PB_Default,FontID(2))
    Event=WaitWindowEvent()
    If Event = #PB_Event_Gadget
      Value = GetGadgetData(EventGadget())
      ind$=Left(Messages.s(Value-1),5)
      dat$=Right(Messages.s(Value-1),Len(Messages.s(Value-1))-5) 
      ;TextGadget(0,  956-(Len(ind$)*7),920,250, 50, ind$)
      SetGadgetFont(#PB_Default,FontID(3))
      ;TextGadget(1, 956-(Len(dat$)*7),970, 1900, 50, dat$)
    EndIf
       
  Until Event = #PB_Event_CloseWindow
          
  StopDrawing()

Re: Points aéronautiques de la France

Publié : dim. 30/sept./2018 16:47
par euseluli
C'est vrai mais ensuite je n'aurai pas résultat.
En suivant votre orientation, je crois que le probléme c'est à la seconde ligne TextGadget() parce que si je l'elimine, le nom du point est presenté. Maintenant, il faut des données de ce point.

Merci.

Re: Points aéronautiques de la France

Publié : dim. 30/sept./2018 23:42
par Ollivier
Dropbox marche pas.

Poste ton code direct ici entre balises [code];le code[/code].
Ou bien précise ta demande étape par étape.

Re: Points aéronautiques de la France

Publié : lun. 01/oct./2018 6:55
par Micoute
euseluli a écrit :Il montre 1120 boutons et après que j'appuie sur un bouton pour la prémiere fois, le bouton 1 disparait.
L'erreur se produit parce que à la ligne 43, on trouve un textegadget ayant un identifiant identique au premier bouton, comme il y a 1120 boutons, il faut que le premier textegadget aie un identifiant supérieur.

Code : Tout sélectionner

Repeat
  
  SetGadgetFont(#PB_Default,FontID(2)) 
  Event=WaitWindowEvent()
  If Event = #PB_Event_Gadget  
    Value = GetGadgetData(EventGadget())
    ind$=Left(Messages.s(Value-1),5)
    dat$=Right(Messages.s(Value-1),Len(Messages.s(Value-1))-5) 
    TextGadget(1121,  956-(Len(ind$)*7),920,250, 50, ind$)
    SetGadgetFont(#PB_Default,FontID(3))
    TextGadget(1122, 956-(Len(dat$)*7),970, 1900, 50, dat$)
  EndIf
  
Until Event = #PB_Event_CloseWindow

Re: Points aéronautiques de la France

Publié : lun. 01/oct./2018 17:45
par euseluli
Il fonctionne.

Merci beaucoup !