FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?

Aller en bas 
4 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyDim 24 Avr 2016 - 18:48

Salut tout le monde

J’ai adapté un code Delphi en Panoramic.
J’ai testé le code sous Delphi : il  tourne correctement, No problem.
Mon adaptation en Panoramic tourne souvent correctement mais parfois le code se comporte d’une façon bizarre.
Le jeu de Ouest comporte une anomalie et toujours sur la même carte : la Dame de pique peut se trouver en double ou en mauvaise position !
Parfois aussi, ça me gratifie d’un message de mauvais goût :
(30) Array index overflow or underflow. Line : 153

J’ai vérifié et vérifié mon code, mais mes yeux et mes neurones refusaient de voir d’où venait l’erreur.
Je soumets à votre sagacité  mon code Panoramic et le code source Delphi.
Une tête plus calme que la mienne, des yeux moins fatigués que j'en possède et surtout une matière grise beaucoup bien meilleure que ce que j'ai dans le crâne, peuvent comprende ce que je n'arrive pas à saisir.  

NB : le code utilise cards.dll que vous  pouvez télécharger à partir de mon Webdav.

Code Panoramic:
Code:

rem ============================================================================
rem            Tirage de jeu de carte style bridge
rem          Code original en Delphi par Yves Manuel
rem            Adaptation en Panoramic par Papydall
rem ============================================================================
' Description :
' =============
' Ce programme tire et affiche quatre jeux de treize cartes (style bridge),
' mais il est facilement adaptable à tout jeu se jouant avec des cartes françaises.
' Pour certains jeux il serait nécessaire de modifier les options de tri,
' l'ordre des cartes n'étant pas pour tous les jeux le même.
' (L'ordre dans ce programme est de l'As au 2).
' Il utilise "cards.dll" : ' Si vous ne disposez pas de cette dll, vous pouvez
' la télécharger à partir de mon bebdav
rem ============================================================================
label clic
dim i,hdc%,w%,h%,cdw,cdh,posX,posY,nbc,card,ret%
dim donne(13,4) : ' les quatre jeux triés

width 0,800 : height 0,600
top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2
application_title "Tirage de jeu de carte style bridge"

main_menu 10
    sub_menu 11    : parent 11,10    : caption 11 ,"Tirage"
    sub_menu 12    : parent 12,11    : caption 12, "Aléatoire"
       sub_menu 13 : parent 13,12    : caption 13, "Votre jeu"
       sub_menu 14 : parent 14,12    : caption 14, "Les quatre jeux"
    sub_menu 15    : parent 15,11    : caption 15, "Quitter"
    sub_menu 16    : parent 16,10    : caption 16, "Infos"
for i = 11 to 16   : on_click i,clic : next i
dll_on "cards"     : ' Si vous ne disposez pas de "cards.dll", vous pouvez la télécharger sur mon bebdav

END
rem ============================================================================
Clic:
    select number_click
        case 13 : Votre_Jeu()
        case 14 : Les_4_Jeux()
        case 15 : Quitter()
        case 16 : Infos()
    end_select
return
rem ============================================================================
SUB Votre_Jeu()
    dim_local x
    Tirage()   : ' Appel de la procédure
    posX = 205 : ' Ordonnée x de l'affichage
    posY = 148 : ' Ordonnée y de l'aafichage
    hdc% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%))

    for x = 1 to 13
        card = donne(x,1)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0) : ' Affiche votre jeu
        posX = posX + 20
    next x
END_SUB
rem ============================================================================
SUB Tirage()
    dim_local bb$,r$
    dim_local a,b,c,i,ip,ic,ik,it,j,jj,t,x,y,s
    dim_local trg(13,4), pq(13),cr(13),ka(13),tr(13) : ' des tableaux temporaires

    r$ = "123456789ABCD" : ' variable représentant 13 cartes
    r$ = r$+r$+r$+r$+"0" : ' variable d'un jeu de 52 cartes plus un caractère de contrôle pour éviter les doublons

    for j = 1 to 4       : ' Tirage des quatre jeux
        for i  = 1 to 13
            x = 53
            while mid$(r$,x,1) = "0" : ' Tant que la chaîne r$ n'est pas remplie de 0
                  x = int(rnd(53)+1) : ' on tire un nombre entre 1 et 53
            end_while

            s = Int((x-1)/13)        : ' on calcule la couleur de la carte P=0,C=1,K=2,T=3
            y  = s*13                : ' y = 0,13,26,39, fin de chaque couleur
            bb$ = Mid$(r$,x,1)       : ' le numéro tiré
            jj  =  hex(bb$) + y      : ' le nombre est hexa et convertit en entier
            trg(i,j) = (jj-1)        : ' Dans le tab temporaire, la carte
            r$ =  left$(r$,x-1) + "0" + right$(r$,len(r$)-x) : ' on remplace par 0 dans la chaîne pour ne pas avoir de doublon
        next i

    next j

' Par securité on initialise les 4 tableaux temporaires avec des valeurs impossibles
    for a = 1 to 13
        pq(a) = 99 : cr(a) = 99 : ka(a) = 99 : tr(a) = 99
    next a

    for j = 1 to 4 : ' Les 4 jeux
        ip = 0 : ic = 0 : ik = 0 : it = 0 : ' Compteurs pour les 4 couleurs
        for i = 1 to 13                   : ' Chaque jeu
            x = trg(i,j)                  : ' chaque carte
            select mod(x,4)               : ' Calcule la couleur
                 case 0                   : ' Trèfles
                     if x = 0 then x = 53 : ' L'as est la plus forte carte
                     it = it + 1 : tr(it) = x
                 case 1                   : ' Carreaux
                     if x = 1 then x = 54
                     ik = ik + 1 : ka(ik) = x
                 case 2                   : ' Coeurs
                     if x = 2 then x = 55
                     ic = ic + 1 : cr(ic) = x
                 case 3                   : ' Piques
                     if x = 3 then x = 56
                     ip = ip + 1 : pq(ip) = x
            end_select
        next i

' Typique tri à bulle. Peu de données à trier

        for a = 1 to ip-1 : ' On trie les piques
            for b = a+1 to ip
                if pq(a) < pq(b) then t = pq(a) :  pq(a) = pq(b) : pq(b) = t
            next b
        next a

       for a = 1 to ic-1 : ' On trie les coeurs
           for b = a+1 to ic
                if cr(a) < cr(b) then t = cr(a) : cr(a) = cr(b) : cr(b) = t
           next b
       next a
       for a = 1 to ik-1 : ' On trie les carreaux

          for b = a+1 to ik
             if ka(a) < ka(b) then t = ka(a) : ka(a) = ka(b) : ka(b) = t
          next b
        next a
        for a = 1 to it-1

           for b = a+1 to it : ' On trie les trèfles
              if tr(a) < tr(b) then t = tr(a) : tr(a) = tr(b) : tr(b) = t
           next b
        next a

' On rétablit les as pour leur valeur réelle pour l'affichage et on remplit le
' tableau définitif pour la donne
        for a = 1 to ip
            if pq(a) = 56 then pq(a) = 3
            donne(a,j) = pq(a)
        next a
        for a = 1 to ic
            if cr(a) = 55 then cr(a) = 2
            donne(a+ip,j) = cr(a)
        next a
        for a = 1 to ik
            if ka(a) = 54 then ka(a) = 1
            donne(a+ip+ic,j) = ka(a)
        next a
        for a = 1 to it
            if tr(a) = 53 then tr(a) = 0
            donne(a+ip+ic+ik,j) = tr(a)
        next a
    next j

' C'est fini! donne contient les quatre jeux

END_SUB
rem ============================================================================
SUB Les_4_Jeux()
    dim_local x
    Tirage()
    hdc% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%))
    
' Ouest
    posX = 10 : posY = 198 +50
    for x = 1 to 13
       card = donne(x,1)
       ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
       posX = posX+18
    next x

' Nord
    posX = 215 : posY = 18
    for x = 1 to 13
        card = donne(x,2)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
        posX = posX+18
    next x
' Est
   posX = 485 : posY = 198+50
   for x = 1 to 13
       card = donne(x,3)
       ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
       posX = posX+18
    next x
' Sud
    posX = 215 : posY = 400
    for x = 1 to 13
        card = donne(x,4)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
        posX = posX+18
    next x

END_SUB
rem ============================================================================
SUB Infos()
    dim_local t$
    t$ = "=======================================" + chr$(13)
    t$ = t$ +"Tirage de jeu de carte style bridge" + chr$(13)
    t$ = t$ + "=======================================" + chr$(13)
    t$ = t$ + "Code d'origine en Delphi" + chr$(13)
    t$ = t$ + "Auteur  : Yves Manuel" + chr$(13)
    t$ = t$ + "Date      : 03/08/2013" + chr$(13)
    t$ = t$ + "=======================================" + chr$(13)
    t$ = t$ + "Adaptation en Panoramic" + chr$(13)
    t$ = t$ + "Auteur  : Par Papydall" + chr$(13)
    t$ = t$ + "Date      : 24/04/2016" + chr$(13)
    t$ = t$ + "======================================="
    message t$
END_SUB
rem ============================================================================
SUB Quitter()
    dim_local ret%,hWnd
    dll_off
    hWnd = handle(0)
    dll_on "user32"
    ret% = dll_call4("PostMessageA",hWnd,16,0,0) : ' 16 c'est la constante de fermeture
END_SUB
rem ============================================================================

ça donne ça:

Code Delphi:

Code:

rem ============================================================================
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StrUtils, StdCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    irage1: TMenuItem;
    Alatoire1: TMenuItem;
    N1: TMenuItem;
    Quitter1: TMenuItem;
    Votrejeu1: TMenuItem;
    Lesquatrejeux1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Quitter1Click(Sender: TObject);
    procedure Votrejeu1Click(Sender: TObject);
    procedure Tirage;//la procédure qui fait le tirage et ordonne les jeux
    procedure Lesquatrejeux1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  wdh,hgt,cdw,cdh,posX,posY,nbc,card : integer; //taille et position des cartes
  end;

var
  Form1: TForm1;

  donne : array[1..13,1..4]of byte;// les quatre jeux triés

  implementation

{$R *.dfm}

//déclaration des fonctions de cards.dll
function cdtDraw(DC:HDC; X,Y,Card,Typ:Integer; Color:TColor):Integer; StdCall; external 'CARDS.DLL';
function cdtDrawExt(DC:HDC; X,Y,CardWidth,CardHeight,Card,Typ:Integer; Color:TColor):Integer; StdCall; external 'CARDS.DLL';
function cdtInit(var Width,Height:Integer):Integer; StdCall; external 'CARDS.DLL';
function cdtTerm:Integer; StdCall; external 'CARDS.DLL';


procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Left:=0;
form1.Top:=0;
form1.Height:=600;
form1.Width:=800;
end;

procedure TForm1.Quitter1Click(Sender: TObject);
begin
cdtTerm;
Application.Terminate;
end;

procedure TForm1.Votrejeu1Click(Sender: TObject);
var
x :byte;
begin
Tirage;// Appel de la procédure
posX:=205;//Ordonnée x de l'affichage
posY:=148;//Ordonnée y de l'aafichage
cdtInit(wdh,hgt);
//J'ai employé cdtDraw le format standard des cartes convient parfaitement
for x:=1 to 13 do begin
card:=donne[x,1];
cdtDraw(Form1.Canvas.Handle,posX,posY,card,0,clWhite);// Affiche votre jeu
posX:=posX+20;
end;
end;


procedure TForm1.Tirage;
var
bb,r :String;
a,b,c,i,ip,ic,ik,it,j,jj,t,x,y : byte;
s :real;
//des tableaux temporaires
trg : array[1..13,1..4] of byte;
pq :array[1..13] of byte;
cr :array[1..13] of byte;
ka :array[1..13] of byte;
tr :array[1..13] of byte;
begin
randomize;
r:='123456789abcd';//variable représentant 13 cartes
r:=r+r+r+r+'0';//variable d'un jeu de 52 cartes plus un caractère de contrôle pour éviter les doublons
//Tirage des quatre jeux
for j:=1 to 4 do begin
  for i :=1 to 13 do begin
x:=53;
while(MidStr(r,x,1)='0') do begin //Tant que la chaîne r n'est pas remplie de 0
x:=random(length(r))+1; //on tire un chiffre entre 1 et 53
end;
s:=Int((x-1)/13);//on calcule la couleur de la carte P=0,C=1,K=2,T=3
y:=round(s)*13;//y=0,11,26,39, fin de chaque couleur
bb:= MidStr(r,x,1);//le numéro tiré
bb:='$'+bb;//on rajoute $ devant
jj:=(StrToInt(bb))+y;//Grâce au $ le nombre est hexa et convertit en byte
trg[i,j]:=(jj-1);//Dans le tab temporaire, la carte
r[x]:='0';//on remplace par 0 dans la chaîne pour ne pas avoir de doublon
end;
  end;
//Par securité on initialise les 4 tab temporaires avec des valeurs impossibles
for a:=1 to 13 do begin
pq[a]:=99;
cr[a]:=99;
ka[a]:=99;
tr[a]:=99;
end;
for j:=1 to 4 do begin //Les 4 jeux
//compteurs pour les 4 couleurs
ip:=0;
ic:=0;
ik:=0;
it:=0;
  for i:=1 to 13 do begin //Chaque jeu
x:=trg[i,j] ; //chaque carte
case x mod 4 of //Calcule la couleur
0: //Trèfles
begin
if x=0 then x:=53; //L'as est la plus forte carte
it:=it+1; //incrémente
tr[it]:=x; //dans le tab
end;
1: //Carreaux
begin
if x=1 then x:=54;
ik:=ik+1;
ka[ik]:=x;//trg[i];
end;
2: //Coeurs
begin
if x=2 then x:=55;
ic:=ic+1;
cr[ic]:=x;//trg[i];
end;
3: //Piques
begin
if x=3 then x:=56;
ip:=ip+1;
pq[ip]:=x;//trg[i];
end;
end;
end;
 //On trie les piques
    for a:=1 to ip-1 do
      for b:=a+1 to ip do
        //Typique tri à bulle. Peu de données à trier
        if (pq[a]<pq[b]) then
        begin
        t:=pq[a];
        pq[a]:=pq[b];
        pq[b]:=t;
        end;
  //On trie les coeurs
      for a:=1 to ic-1 do
      for b:=a+1 to ic do
        if (cr[a]<cr[b]) then
        begin
        t:=cr[a];
        cr[a]:=cr[b];
        cr[b]:=t;
        end;
        for a:=1 to ik-1 do
 //On trie les carreaux
      for b:=a+1 to ik do
        if (ka[a]<ka[b]) then
        begin
        t:=ka[a];
        ka[a]:=ka[b];
        ka[b]:=t;
        end;
        for a:=1 to it-1 do
 //On trie les trèfles
      for b:=a+1 to it do
        if (tr[a]<tr[b]) then
        begin
        t:=tr[a];
        tr[a]:=tr[b];
        tr[b]:=t;
        end;
 (*On rétablit les as pour leur valeur réelle pour l'affichage et on remplit le
 tab définitif pour la donne*)
 for a:=1 to ip do begin
     if pq[a]=56 then pq[a]:=3;
     donne[a,j]:=pq[a];
 end;
 for a:=1 to ic  do begin
      if cr[a]=55 then cr[a]:=2;
      donne[a+ip,j]:=cr[a];
 end;
 for a:=1 to ik do begin
      if ka[a]=54 then ka[a]:=1;
      donne[a+ip+ic,j]:=ka[a];
 end;
 for a:=1 to it do begin
      if tr[a]=53 then tr[a]:=0;
      donne[a+ip+ic+ik,j]:=tr[a];
 end;
      end;
end;
// C'est fini! donne contient les quatre jeux
procedure TForm1.Lesquatrejeux1Click(Sender: TObject);
var
x :byte;
begin
Tirage;
//Ouest
posX:=10;
posY:=198;
cdtInit(wdh,hgt);
//J'ai employé cdtDrawExt pour que les cartes soient plus petites
for x:=1 to 13 do begin
card:=donne[x,1];
cdtDrawExt(Form1.Canvas.Handle,posX,posY,60,90,card,0,clWhite);
posX:=posX+18;
end;

//Nord
posX:=215;
posY:=18;
for x:=1 to 13 do begin
card:=donne[x,2];
cdtDrawExt(Form1.Canvas.Handle,posX,posY,60,90,card,0,clWhite);
posX:=posX+18;
end;

//Est
posX:=485;
posY:=198;
for x:=1 to 13 do begin
card:=donne[x,3];
cdtDrawExt(Form1.Canvas.Handle,posX,posY,60,90,card,0,clWhite);
posX:=posX+18;
end;

//Sud
posX:=215;
posY:=400;
for x:=1 to 13 do begin
card:=donne[x,4];
cdtDrawExt(Form1.Canvas.Handle,posX,posY,60,90,card,0,clWhite);
posX:=posX+18;
end;
end;
end.
rem ============================================================================


Dernière édition par papydall le Lun 25 Avr 2016 - 2:21, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyDim 24 Avr 2016 - 23:07

Chouette
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyDim 24 Avr 2016 - 23:34

Bonsoir Papydall, bonsoir à tous,

Après multiples tirages, je n'ai pas constaté -pour l'instant- d'erreur sur le jeu ouest.

Par contre, j'ai le problème d'une manière aléatoire et uniquement sur la dame de pique
lorsque j'affiche "Votre jeu" :

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Papyda10

Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 0:02

J'ai fait qqs essais supplémentaires :

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Papyda11

La 9ème carte (2ème dame de pique) possède une valeur impossible : 99

Edit :
J'ai ajouté un PRINT pour visualiser les valeurs des cartes comme ceci :

Code:
SUB Votre_Jeu()
    dim_local x
    Tirage()   : ' Appel de la procédure
    posX = 205 : ' Ordonnée x de l'affichage
    posY = 148 : ' Ordonnée y de l'aafichage
    hdc% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%))

    for x = 1 to 13
        card = donne(x,1)

        print card : ' <======================= PRINT ajouté pour test =========
        
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0) : ' Affiche votre jeu
        posX = posX + 20
    next x
END_SUB
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 0:21

J'ai aussi constaté que la dame de pique possède une valeur impossible par moment : 99
Après plusieurs essais, c'est quand 'ip' reste à 1, à partir de la ligne 109. (Cela semble venir du tirage, et peut se probablement se produire pour 'it', 'ik', 'ic')
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 1:00

Jicehel, Marc37 et Silverman merci pour vos essais.
Justement le problème se produit toujours avec la dame de pique.
Il parait qu’elle ne m’aime pas. Embarassed

La piste de la valeur impossible 99 est sans doute la clef du mystère.
Pourvu que je trouve la bonne serrure qui va avec. Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 1:17

à la ligne 152, (a+ip+ic+ik)=14 par moment, c'est ce qui produit le message d'erreur 'array...'

je suis presque sûr que c'est un pb d'algorithme;
quand il n'y a que 3 couleurs dans la main, le pb se produit. C'est le tri à bulle qui produit le nombre 99 quand 'it', 'ic', 'ip' ou 'ik' = 1.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 1:40

Merci Silverman.
Je verrai ça tout à l'heure.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 2:19

Silverman, ton analyse est juste : c’est le tri qui pose problème.

En réalité ce n’est pas l’algorithme en lui-même qui est fautif, mais j’étais victime d’un bug sur la structure FOR … NEXT de panoramic.
J’ai d’ailleurs découvert ce bug dès ma 1ère année Panoramic et je l’ai mentionné.
Malheureusement il n’a pas été pris en considération.

Une boucle comme

Code:

dim i
for i = 1 to 0
    print "Salut"
next i

Doit être exécutée ZERO fois.
Or Panoramic, l’exécute sans broncher.


Tenant compte de ceci, j’ai réussi enfin à corriger mon code.
Il fonctionne parfaitement maintenant.

Voici la bonne version
Code:

rem ============================================================================
rem            Tirage de jeu de carte style bridge
rem          Code original en Delphi par Yves Manuel
rem            Adaptation en Panoramic par Papydall
rem ============================================================================
' Description :
' =============
' Ce programme tire et affiche quatre jeux de treize cartes (style bridge),
' mais il est facilement adaptable à tout jeu se jouant avec des cartes françaises.
' Pour certains jeux il serait nécessaire de modifier les options de tri,
' l'ordre des cartes n'étant pas pour tous les jeux le même.
' (L'ordre dans ce programme est de l'As au 2).
' Il utilise "cards.dll" : ' Si vous ne disposez pas de cette dll, vous pouvez
' la télécharger à partir de mon bebdav
rem ============================================================================
label clic
dim i,hdc%,w%,h%,cdw,cdh,posX,posY,nbc,card,ret%
dim donne(13,4) : ' les quatre jeux triés

width 0,800 : height 0,600
top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2
application_title "Tirage de jeu de carte style bridge"

main_menu 10
    sub_menu 11    : parent 11,10    : caption 11 ,"Tirage"
    sub_menu 12    : parent 12,11    : caption 12, "Aléatoire"
       sub_menu 13 : parent 13,12    : caption 13, "Votre jeu"
       sub_menu 14 : parent 14,12    : caption 14, "Les quatre jeux"
    sub_menu 15    : parent 15,11    : caption 15, "Quitter"
    sub_menu 16    : parent 16,10    : caption 16, "Infos"
for i = 11 to 16   : on_click i,clic : next i
dll_on "cards"     : ' Si vous ne disposez pas de "cards.dll", vous pouvez la télécharger sur mon bebdav

END
rem ============================================================================
Clic:
    select number_click
        case 13 : Votre_Jeu()
        case 14 : Les_4_Jeux()
        case 15 : Quitter()
        case 16 : Infos()
    end_select
return
rem ============================================================================
SUB Votre_Jeu()
    dim_local x
    Tirage()   : ' Appel de la procédure
    posX = 205 : ' Ordonnée x de l'affichage
    posY = 148 : ' Ordonnée y de l'aafichage
    hdc% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%))

    for x = 1 to 13
        card = donne(x,1)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0) : ' Affiche votre jeu
        posX = posX + 20
    next x
END_SUB
rem ============================================================================
SUB Tirage()
    dim_local bb$,r$
    dim_local a,b,c,i,ip,ic,ik,it,j,jj,t,x,y,s
    dim_local trg(13,4), pq(13),cr(13),ka(13),tr(13) : ' des tableaux temporaires

    r$ = "123456789ABCD" : ' variable représentant 13 cartes
    r$ = r$+r$+r$+r$+"0" : ' variable d'un jeu de 52 cartes plus un caractère de contrôle pour éviter les doublons

    for j = 1 to 4       : ' Tirage des quatre jeux
        for i  = 1 to 13
            x = 53
            while mid$(r$,x,1) = "0" : ' Tant que la chaîne r$ n'est pas remplie de 0
                  x = int(rnd(53)+1) : ' on tire un nombre entre 1 et 53
            end_while

            s = Int((x-1)/13)        : ' on calcule la couleur de la carte P=0,C=1,K=2,T=3
            y  = s*13                : ' y = 0,13,26,39, fin de chaque couleur
            bb$ = Mid$(r$,x,1)       : ' le numéro tiré
            jj  =  hex(bb$) + y      : ' le nombre est hexa et convertit en entier
            trg(i,j) = (jj-1)        : ' Dans le tab temporaire, la carte
            r$ =  left$(r$,x-1) + "0" + right$(r$,len(r$)-x) : ' on remplace par 0 dans la chaîne pour ne pas avoir de doublon
        next i

    next j

' Par securité on initialise les 4 tableaux temporaires avec des valeurs impossibles
    for a = 1 to 13
        pq(a) = 99 : cr(a) = 99 : ka(a) = 99 : tr(a) = 99
    next a

    for j = 1 to 4 : ' Les 4 jeux
        ip = 0 : ic = 0 : ik = 0 : it = 0 : ' Compteurs pour les 4 couleurs
        for i = 1 to 13                   : ' Chaque jeu
            x = trg(i,j)                  : ' chaque carte
            select mod(x,4)               : ' Calcule la couleur
                 case 0                   : ' Trèfles
                     if x = 0 then x = 53 : ' L'as est la plus forte carte
                     it = it + 1 : tr(it) = x
                 case 1                   : ' Carreaux
                     if x = 1 then x = 54
                     ik = ik + 1 : ka(ik) = x
                 case 2                   : ' Coeurs
                     if x = 2 then x = 55
                     ic = ic + 1 : cr(ic) = x
                 case 3                   : ' Piques
                     if x = 3 then x = 56
                     ip = ip + 1 : pq(ip) = x
            end_select
        next i

' Typique tri à bulle. Peu de données à trier
     if ip > 1
        for a = 1 to ip-1 : ' On trie les piques
            for b = a+1 to ip
                if pq(a) < pq(b) then t = pq(a) :  pq(a) = pq(b) : pq(b) = t
            next b
        next a
     end_if
     if ic > 1
       for a = 1 to ic-1 : ' On trie les coeurs
           for b = a+1 to ic
                if cr(a) < cr(b) then t = cr(a) : cr(a) = cr(b) : cr(b) = t
           next b
       next a
     end_if
     if ik > 1
       for a = 1 to ik-1 : ' On trie les carreaux
          for b = a+1 to ik
             if ka(a) < ka(b) then t = ka(a) : ka(a) = ka(b) : ka(b) = t
          next b
        next a
       end_if
       if it > 1
        for a = 1 to it-1
           for b = a+1 to it : ' On trie les trèfles
              if tr(a) < tr(b) then t = tr(a) : tr(a) = tr(b) : tr(b) = t
           next b
        next a
      end_if
' On rétablit les as pour leur valeur réelle pour l'affichage et on remplit le
' tableau définitif pour la donne
        for a = 1 to ip
            if pq(a) = 56 then pq(a) = 3
            donne(a,j) = pq(a)
        next a
        for a = 1 to ic
            if cr(a) = 55 then cr(a) = 2
            donne(a+ip,j) = cr(a)
        next a
        for a = 1 to ik
            if ka(a) = 54 then ka(a) = 1
            donne(a+ip+ic,j) = ka(a)
        next a
        for a = 1 to it
            if tr(a) = 53 then tr(a) = 0
            donne(a+ip+ic+ik,j) = tr(a)
        next a
    next j

' C'est fini! donne contient les quatre jeux

END_SUB
rem ============================================================================
SUB Les_4_Jeux()
    dim_local x
    Tirage()
    hdc% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%))
    
' Ouest
    posX = 10 : posY = 198 +50
    for x = 1 to 13
       card = donne(x,1)
       ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
       posX = posX+18
    next x

' Nord
    posX = 215 : posY = 18
    for x = 1 to 13
        card = donne(x,2)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
        posX = posX+18
    next x
' Est
   posX = 485 : posY = 198+50
   for x = 1 to 13
       card = donne(x,3)
       ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
       posX = posX+18
    next x
' Sud
    posX = 215 : posY = 400
    for x = 1 to 13
        card = donne(x,4)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
        posX = posX+18
    next x

END_SUB
rem ============================================================================
SUB Infos()
    dim_local t$
    t$ = "=======================================" + chr$(13)
    t$ = t$ +"Tirage de jeu de carte style bridge" + chr$(13)
    t$ = t$ + "=======================================" + chr$(13)
    t$ = t$ + "Code d'origine en Delphi" + chr$(13)
    t$ = t$ + "Auteur  : Yves Manuel" + chr$(13)
    t$ = t$ + "Date      : 03/08/2013" + chr$(13)
    t$ = t$ + "=======================================" + chr$(13)
    t$ = t$ + "Adaptation en Panoramic" + chr$(13)
    t$ = t$ + "Auteur  : Par Papydall" + chr$(13)
    t$ = t$ + "Date      : 24/04/2016" + chr$(13)
    t$ = t$ + "======================================="
    message t$
END_SUB
rem ============================================================================
SUB Quitter()
    dim_local ret%,hWnd
    dll_off
    hWnd = handle(0)
    dll_on "user32"
    ret% = dll_call4("PostMessageA",hWnd,16,0,0) : ' 16 c'est la constante de fermeture
END_SUB
rem ============================================================================


Je mets donc RESOLU

Merci à tous ceux qui ont contribué au diagnostic. king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 9:31

J’en étais arrivé au même constat avant de partir dans les bras de Morphée : problème de tri.

Bravo d’avoir résolu et donc trouvé cette serrure manquante !

Mais… il y a avait 2 clés mystérieuses à trouver, et malheureusement, elles n’entrent pas dans la même serrure :

Testé ce matin avec, bien sûr, la nouvelle version de tri :

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Papyda13

Il faut rappeler le serrurier !

Le remède semble identique au premier cas : boucles FOR...NEXT parfois exécutées zéro fois si ip, ic, ik ou it = 0 :

Code:
' On rétablit les as pour leur valeur réelle pour l'affichage et on remplit le
' tableau définitif pour la donne
        for a = 1 to ip
            if pq(a) = 56 then pq(a) = 3
            donne(a,j) = pq(a)
        next a
        for a = 1 to ic
            if cr(a) = 55 then cr(a) = 2
            donne(a+ip,j) = cr(a)
        next a
        for a = 1 to ik
            if ka(a) = 54 then ka(a) = 1
            donne(a+ip+ic,j) = ka(a)
        next a
        for a = 1 to it
            if tr(a) = 53 then tr(a) = 0
            donne(a+ip+ic+ik,j) = tr(a)
        next a
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  EmptyLun 25 Avr 2016 - 13:38

Bonjour Marc37
Merci d’avoir poussé le test.
Hier soir, quand je me suis rappelé du bug de la boucle FOR … NEXT, j’étais très content d’apporter la correction, mais dans la hâte je n’avais pas regardé plus loin.  Ne vous ai-je pas dit que ma vision s’est détérioré depuis que je n’ai plus vingt ans de moins que je ne l’avais maintenant ?

Que feront les vieux (comme moi) sans les jeunes (comme toi) ?
Une fois encore merci, et voici le code définitif.

Code:

rem ============================================================================
rem            Tirage de jeu de carte style bridge
rem          Code original en Delphi par Yves Manuel
rem            Adaptation en Panoramic par Papydall
rem ============================================================================
' Description :
' =============
' Ce programme tire et affiche quatre jeux de treize cartes (style bridge),
' mais il est facilement adaptable à tout jeu se jouant avec des cartes françaises.
' Pour certains jeux il serait nécessaire de modifier les options de tri,
' l'ordre des cartes n'étant pas pour tous les jeux le même.
' (L'ordre dans ce programme est de l'As au 2).
' Il utilise "cards.dll" : ' Si vous ne disposez pas de cette dll, vous pouvez
' la télécharger à partir de mon bebdav
rem ============================================================================
label clic
dim i,hdc%,w%,h%,cdw,cdh,posX,posY,nbc,card,ret%
dim donne(13,4) : ' les quatre jeux triés

width 0,800 : height 0,600
top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2
application_title "Tirage de jeu de carte style bridge"

main_menu 10
    sub_menu 11    : parent 11,10    : caption 11 ,"Tirage"
    sub_menu 12    : parent 12,11    : caption 12, "Aléatoire"
       sub_menu 13 : parent 13,12    : caption 13, "Votre jeu"
       sub_menu 14 : parent 14,12    : caption 14, "Les quatre jeux"
    sub_menu 15    : parent 15,11    : caption 15, "Quitter"
    sub_menu 16    : parent 16,10    : caption 16, "Infos"
for i = 11 to 16   : on_click i,clic : next i
dll_on "cards"     : ' Si vous ne disposez pas de "cards.dll", vous pouvez la télécharger sur mon bebdav

END
rem ============================================================================
Clic:
    select number_click
        case 13 : Votre_Jeu()
        case 14 : Les_4_Jeux()
        case 15 : Quitter()
        case 16 : Infos()
    end_select
return
rem ============================================================================
SUB Votre_Jeu()
    dim_local x
    Tirage()   : ' Appel de la procédure
    posX = 205 : ' Ordonnée x de l'affichage
    posY = 148 : ' Ordonnée y de l'aafichage
    hdc% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%))

    for x = 1 to 13
        card = donne(x,1)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0) : ' Affiche votre jeu
        posX = posX + 20
    next x
END_SUB
rem ============================================================================
SUB Tirage()
    dim_local bb$,r$
    dim_local a,b,c,i,ip,ic,ik,it,j,jj,t,x,y,s
    dim_local trg(13,4), pq(13),cr(13),ka(13),tr(13) : ' des tableaux temporaires

    r$ = "123456789ABCD" : ' variable représentant 13 cartes
    r$ = r$+r$+r$+r$+"0" : ' variable d'un jeu de 52 cartes plus un caractère de contrôle pour éviter les doublons

    for j = 1 to 4       : ' Tirage des quatre jeux
        for i  = 1 to 13
            x = 53
            while mid$(r$,x,1) = "0" : ' Tant que la chaîne r$ n'est pas remplie de 0
                  x = int(rnd(53)+1) : ' on tire un nombre entre 1 et 53
            end_while

            s = Int((x-1)/13)        : ' on calcule la couleur de la carte P=0,C=1,K=2,T=3
            y  = s*13                : ' y = 0,13,26,39, fin de chaque couleur
            bb$ = Mid$(r$,x,1)       : ' le numéro tiré
            jj  =  hex(bb$) + y      : ' le nombre est hexa et convertit en entier
            trg(i,j) = (jj-1)        : ' Dans le tab temporaire, la carte
            r$ =  left$(r$,x-1) + "0" + right$(r$,len(r$)-x) : ' on remplace par 0 dans la chaîne pour ne pas avoir de doublon
        next i

    next j

' Par securité on initialise les 4 tableaux temporaires avec des valeurs impossibles
    for a = 1 to 13
        pq(a) = 99 : cr(a) = 99 : ka(a) = 99 : tr(a) = 99
    next a

    for j = 1 to 4 : ' Les 4 jeux
        ip = 0 : ic = 0 : ik = 0 : it = 0 : ' Compteurs pour les 4 couleurs
        for i = 1 to 13                   : ' Chaque jeu
            x = trg(i,j)                  : ' chaque carte
            select mod(x,4)               : ' Calcule la couleur
                 case 0                   : ' Trèfles
                     if x = 0 then x = 53 : ' L'as est la plus forte carte
                     it = it + 1 : tr(it) = x
                 case 1                   : ' Carreaux
                     if x = 1 then x = 54
                     ik = ik + 1 : ka(ik) = x
                 case 2                   : ' Coeurs
                     if x = 2 then x = 55
                     ic = ic + 1 : cr(ic) = x
                 case 3                   : ' Piques
                     if x = 3 then x = 56
                     ip = ip + 1 : pq(ip) = x
            end_select
        next i

' Typique tri à bulle. Peu de données à trier
     if ip > 1
        for a = 1 to ip-1 : ' On trie les piques
            for b = a+1 to ip
                if pq(a) < pq(b) then t = pq(a) :  pq(a) = pq(b) : pq(b) = t
            next b
        next a
     end_if
     if ic > 1
       for a = 1 to ic-1 : ' On trie les coeurs
           for b = a+1 to ic
                if cr(a) < cr(b) then t = cr(a) : cr(a) = cr(b) : cr(b) = t
           next b
       next a
     end_if
     if ik > 1
       for a = 1 to ik-1 : ' On trie les carreaux
          for b = a+1 to ik
             if ka(a) < ka(b) then t = ka(a) : ka(a) = ka(b) : ka(b) = t
          next b
        next a
       end_if
       if it > 1
        for a = 1 to it-1
           for b = a+1 to it : ' On trie les trèfles
              if tr(a) < tr(b) then t = tr(a) : tr(a) = tr(b) : tr(b) = t
           next b
        next a
      end_if
' On rétablit les as pour leur valeur réelle pour l'affichage et on remplit le
' tableau définitif pour la donne
        if ip > 0
           for a = 1 to ip
               if pq(a) = 56 then pq(a) = 3
               donne(a,j) = pq(a)
           next a
        end_if
        if ic > 0
           for a = 1 to ic
               if cr(a) = 55 then cr(a) = 2
               donne(a+ip,j) = cr(a)
           next a
        end_if
        if ik > 0
           for a = 1 to ik
               if ka(a) = 54 then ka(a) = 1
               donne(a+ip+ic,j) = ka(a)
           next a
        end_if
        if it > 0
           for a = 1 to it
               if tr(a) = 53 then tr(a) = 0
               donne(a+ip+ic+ik,j) = tr(a)
          next a
        end_if
    next j

' C'est fini! donne contient les quatre jeux

END_SUB
rem ============================================================================
SUB Les_4_Jeux()
    dim_local x
    Tirage()
    hdc% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%))

' Ouest
    posX = 10 : posY = 198 +50
    for x = 1 to 13
       card = donne(x,1)
       ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
       posX = posX+18
    next x

' Nord
    posX = 215 : posY = 18
    for x = 1 to 13
        card = donne(x,2)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
        posX = posX+18
    next x
' Est
   posX = 485 : posY = 198+50
   for x = 1 to 13
       card = donne(x,3)
       ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
       posX = posX+18
    next x
' Sud
    posX = 215 : posY = 400
    for x = 1 to 13
        card = donne(x,4)
        ret% = dll_call6("cdtDraw",hdc%,posX,posY,card,0,0)
        posX = posX+18
    next x

END_SUB
rem ============================================================================
SUB Infos()
    dim_local t$
    t$ = "=======================================" + chr$(13)
    t$ = t$ +"Tirage de jeu de carte style bridge" + chr$(13)
    t$ = t$ + "=======================================" + chr$(13)
    t$ = t$ + "Code d'origine en Delphi" + chr$(13)
    t$ = t$ + "Auteur  : Yves Manuel" + chr$(13)
    t$ = t$ + "Date      : 03/08/2013" + chr$(13)
    t$ = t$ + "=======================================" + chr$(13)
    t$ = t$ + "Adaptation en Panoramic" + chr$(13)
    t$ = t$ + "Auteur  : Par Papydall" + chr$(13)
    t$ = t$ + "Date      : 24/04/2016" + chr$(13)
    t$ = t$ + "======================================="
    message t$
END_SUB
rem ============================================================================
SUB Quitter()
    dim_local ret%,hWnd
    dll_off
    hWnd = handle(0)
    dll_on "user32"
    ret% = dll_call4("PostMessageA",hWnd,16,0,0) : ' 16 c'est la constante de fermeture
END_SUB
rem ============================================================================


Ah ce maudit bug de la boucle FOR ... NEXT !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty
MessageSujet: Re: [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?    [RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?  Empty

Revenir en haut Aller en bas
 
[RESOLU] Pouvez-vous voir ce que je n'arrive pas à saisir?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» pouvez-vous me dire pourquoi ce code plante. (Résolu)
» Saisir directement dans une cellule d'un GRID
» Je vous mets au courant au cas où vous le seriez pas, info
» Pour une coche "résolu" RESOLU
» A voir

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: