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
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nombre d'objets  - Page 5 Emptypar papydall Hier à 16:57

» PANORAMIC V 1
Nombre d'objets  - Page 5 Emptypar papydall Hier à 3:22

» select intégrés [résolu]
Nombre d'objets  - Page 5 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Nombre d'objets  - Page 5 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Nombre d'objets  - Page 5 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Nombre d'objets  - Page 5 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Nombre d'objets  - Page 5 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Nombre d'objets  - Page 5 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Nombre d'objets  - Page 5 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Nombre d'objets  - Page 5 Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Nombre d'objets  - Page 5 Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Nombre d'objets  - Page 5 Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Nombre d'objets  - Page 5 Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Nombre d'objets  - Page 5 Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Nombre d'objets  - Page 5 Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

 

 Nombre d'objets

Aller en bas 
+4
Jack
659_minifly
Nardo26
JL35
8 participants
Aller à la page : Précédent  1, 2, 3, 4, 5
AuteurMessage
Invité
Invité




Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptyVen 29 Oct 2010 - 19:47

Je reprend ce qui a été mis. J'ai la désagréable impression d'être le père fouettard, et même si il y a des choses sur lequel je partage pas une idée, j'ai pas à en remettre une couche.
Par contre je viens de corriger une erreur dans mon programme, et là je crois qu'il faudra qu'un jour, on fasse un programme pour éviter celle-ci., et je vais en parler à la place de l'ancien texte.

Il s'agit de l'instruction If et END_IF. D'ailleurs je pense qu'avec for/next repeat/until et while/end_while, cela doit être la même chose.

Jusqu'à présent j'utilisais mon programme normalement et ne me donnait pas d'erreur.
Par le biais des boutons,je suis arrivé dans un sous programme avec une erreur sur une ligne, et c'était avec IF ....... Ce IF s'était un erreur vu que j'avais IF font_name x,fonte$. J'ai donc supprimé le IF, et la en essayant le programme, j'ai eu le message d'erreur: MORE.... End_if.
En fait le END_IF était dans un autre sous-programme 500 lignes plus bas.

Cela veut dire qu'il y a un décompte des boucles seule, sans se préoccuper de l'emplacement de celui-ci. Un jour ou l'autre il faudra faire un programme pour rechercher ce genre d'erreur, et montrer les sous programme qui sont mal finis

Travaillez bien!
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptyVen 29 Oct 2010 - 23:10

C'est vrai que le "More If than End_If" est une erreur sur laquelle je me suis cassé les dents plusieurs fois, parce qu'on n'a aucune idée de l'endroit où elle se produit.

En général c'est suite à une manoeuvre malheureuse à l'éditeur, on supprime des lignes devenues inutiles et par inadvertance on a sélectionné également à un endroit la ligne du dessus qui était un end_if, alors là, patatras, si le programme est un peu long tu peux chercher pendant un bon moment ! C'est là que l'indentation est intéressante pour repérer l'endroit.

Par contre le programme pour pister ce genre d'erreur ne me paraît pas facile à réaliser, il y a tellement de cas de figure, mais c'est vrai que ça ferait gagner du temps... et de l'énervement ! On peut bien compter les If et les End_If et s'apercevoir qu'il en manque un, mais ça ne dira pas où.

Cela dit cosmos tu n'es pas le père fouettard bien sûr, tu as des idées souvent intéressantes et c'est bien de les communiquer, et d'en faire profiter tout le monde, même si on n'est pas toujours d'accord sur la façon de procéder c'est toujours enrichissant d'avoir l'avis des autres.
C'est justement le grand intérêt de la programmation, c'est qu'il y a en général plusieurs façons de résoudre un problème, sinon ça ne serait pas amusant !

Allez Sleep
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptySam 30 Oct 2010 - 6:46

Ca y est ! La dll est écrite ! cheers
Trop galérer pour essayer d'installer Delphi sur mon portable:
- Impossible de se connecter sur le site borland pour obtenir une clé
- Après plusieurs essais, j'ai enfin réussi... pour m'apercevoir au final que la version 6 de delphi n'est pas compatible avec Windows 7... Mad
Il a fallu négocier avec ma chère et tendre quelques minutes pour pouvoir écrire la dll sur son PC (et c'était pas gagné! Smile )

J'ai fait la mise à jour sur mon site. Il y a un lien pour récupérer la DLL.
Je rajouterai un lien pour le source delphi dès que j'aurais de nouveau accès au PC... Wink

[Edit]
Ce n'est pas encore parfait car j'utilise, pour ceux qui connaissent en peu delphi, la fonction FileAge, et malheureusement il faut au moins un écart de 1 minute pour "détecter" une différence...
Donc je continu mes recherches... Wink
c'est ok ! Smile
[/Edit]
Revenir en haut Aller en bas
http://nardo26.lescigales.org
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptySam 30 Oct 2010 - 13:51

Merci pour les précisions, je vois que ma question a servi le sujet d'une certaine façon Wink (recentrage)

1) Mais pourquoi rechercher les objets situé dans un source ?

2) Pour attribuer un numéro à un objet que l'on veut créer il suffit de tenir une liste à jour (tableau) des numéros déjà créés non ?
Quand on crée un objet on lui attribue un Numéro que l'on met dans le tableau des numéros créés, et quand l'objet est détruit on enlève ce numéro du tableau et on le place dans le tableau des numéros libres (à attribuer).
Quand un monstre ou une unité quelconque a pour cible un certain objet elle cherche vérifie d'abord que le numéro de l'objet existe dans le tableau des numéros créés, s'il s'y trouve c'est que l'objet existe potentiellement, elle vérifie donc si le nom de l'objet correspond au nom de l'objet qu'elle a pour cible, si c'est le cas, c'est que l'objet existe réellement et donc elle fait l'action voulue sur cet objet.

FIN : L'avantage de la recherche par numéro c'est que c'est pratique et rapide, son inconvénient c'est le vide créé par la destruction de l'objet.
L'avantage de la recherche par nom c'est que l'on est sûr que l'objet existe bien, il n'y a pas le problème du vide comme dans la suite de numéros attribués, mais son inconvénient est une rcherche plus laborieuse que la recherche par numéro.
Donc dans mon exemple en début de mon post, c'est d'utiliser la recherche par numéro pour trouver rapidement et la vérification du nom pour être sûr que c'est bien l'objet voulu.

AUTRE : AU fait, vous avez essayé Lazarus ? (l'autre Delphi)
Je suis en train en ce moment et ça m'a l'air vraiment bien, en plus pas besoin de numéro de licence, libre, et multi-plateforme.
Des composants bien étudiés.

AUTRE BIS :
Citation :
et de l'énervement ! On peut bien compter les If et les End_If et s'apercevoir qu'il en manque un, mais ça ne dira pas où.
Si, en relevant le numéro de la ligne au moment de la détection du mot manquant (non ?)
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptySam 30 Oct 2010 - 14:35

Bonjour Drogonno,
A défaut de delphi, je vais essayer Lazarus... Wink
C'est quoi ton pb de if.. end_if ?

JE viens d'essayer : dommage j'avais espoir...
J'ai réussi à compiler une DLL mais impossible de la charger avec Pano. Pourtant elle est déclarée dans le modele stdcall
Du coup je suis allé sur le forum... pour me rendre compte qu'a premiere vue, lazarus est buggé jusqu'à la moelle et que les utilisateurs se trainent des bugs
considéré comme "Majeur" depuis 2006.... c'est sûr ce n'est pas la même réactivité que celle de notre ami Jack !! Smile

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


Nombre de messages : 12295
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptySam 30 Oct 2010 - 17:58

Juste pour montrer comment je fais mes DLL, voici le source de ma petite DLL Strings.dll:
Code:

library Strings;


uses
  Windows,
  Sysutils,
  Classes,
//  Dialogs,    { pour showmessage }
  TextToPanoramic;

{ définir un type de Pointeur sur Integer pour déclaration de procédure }
type
  PInteger = ^Integer;
  PString = ^String;

// comparer 2 strings, retourner <0 si s1<s2  0 si s1=s2  >0 si s1>s2
function CompareStr(const s1,s2: pchar): integer; stdcall; export;
var
        pstr: PString;
        str1, str2: pchar;
begin
        pstr := PString(s1);
        str1 := pchar(pstr^);
        pstr := PString(s2);
        str2 := pchar(pstr^);

        result := AnsiCompareStr(str1,str2);
end;

function StringOverString(inp,offs,out: integer):integer; stdcall; export;
begin
    CopyTextToPanoramic(inp,offs,out);
    result := 0;
end;

function InString(str1, str2, offs: integer):integer; stdcall; export;
var
    n: integer;
    x1,x2:pchar;
begin
    x1 := pchar(pstring(str1)^);
    x2 := pchar(pstring(str2)^);
    n := offs;
    while n>0 do begin
        if x1^ <> #0 then inc(x1);
        n := n - 1;
    end;
    n := AnsiPos(x2,x1);
    if n>0 then n := n + offs;
    result := n;
end;

function ItemIndexInString(str,sep,item: integer):integer; stdcall; export;
var
    x1,x2,xsep: pchar;
    stri: TStrings;
begin
    x1 := pchar(pstring(str)^);
    xsep := pchar(pstring(sep)^);
    x2 := pchar(pstring(item)^);
    stri := TStringList.Create;
    stri.Delimiter := xsep^;
    stri.DelimitedText := string(x1);
    result := stri.IndexOf(string(x2));
    stri.Free
end;
{  accès direct à un string par d.j.peters
function DoItWithString(var s1: pchar): integer; stdcall; export;
begin
    showmessage(s1);
    result := 1;
end;          }

exports
        CompareStr
        , StringOverString
        , InString
        , ItemIndexInString
;


begin
end.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jjn4

jjn4


Nombre de messages : 2704
Date d'inscription : 13/09/2009

Nombre d'objets  - Page 5 Empty
MessageSujet: +++   Nombre d'objets  - Page 5 EmptySam 30 Oct 2010 - 19:26

C'est quel langage, ça ?
Du C++ ?
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptySam 30 Oct 2010 - 19:36

Merci beaucoup Klaus !
Là où j'ai tendance à coincer c'est le passage des chaines PANO <->DLL et pourtant on en a dejà parlé !...

@@jjn4: non c'est du Delphi (Pascal)
Revenir en haut Aller en bas
http://nardo26.lescigales.org
jjn4

jjn4


Nombre de messages : 2704
Date d'inscription : 13/09/2009

Nombre d'objets  - Page 5 Empty
MessageSujet: +++   Nombre d'objets  - Page 5 EmptySam 30 Oct 2010 - 22:49

Ca a l'air nettement moins simple que panoramic !
cyclops
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


Nombre de messages : 12295
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptyDim 31 Oct 2010 - 2:24

@jjn4: le langage est Delphi (langage dans lequel est réalisé Panoramic), et c'est la version Delphi 6 Personal que j'utilise (freeware).

@Nardo26: pour être complet, il faut que je donne aussi l'unité qui est utilisée dans le source posté ci-dessus:
Code:

unit TextToPanoramic;
{
Cette unité contient la procédure
    CopyTextToPanoramic(source,offset,destination);
source et destination sont des pointeurs sur des strings Panoramic ou des PChar
en Delphi. offset est le décalage à partir duquel on écrit dans la destination
( 0 signifie depuis le début). La copie s'arrêtre automatiquement dès que la fin
d'un des strings est rencontré.
}

interface
procedure CopyTextToPanoramic(inp, offs, out:integer); stdcall;

implementation

procedure CopyTextToPanoramic(inp, offs, out:integer); stdcall;
var
    xout,yinp: pchar;
    n: integer;
begin
    xout := pchar(pstring(out)^);
    yinp := pchar(pstring(inp)^);
    if offs>0 then begin
        for n:=1 to offs do begin
            inc(xout);
            if (xout^ = #0) then exit  { sortir si l'offset va à la fin}
        end
    end;
    while (xout^ <> #0) and (yinp^ <> #0) do begin
        xout^ := yinp^;
        inc(xout);
        inc(yinp);
    end;
end;


end.

Cette unité contint justement la procédure pour recopier un texte proprement de la DLL vers Panoramic. La récupération d'un texte Panoramic par la DLL est gérée dans les fonctions exportées, par les lignes:
Code:

        pstr := PString(s1);
        str1 := pchar(pstr^);

Tu trouveras une construction similaire dans toutes les routines, et en regardant les déclarations de variables, tu as la clé...

Je n'ai pas trouvé cela tout seul: c'est avec l'aide de Panoramiciens et d'un forum spécifique pour Delphi que j'ai pu trouver cela. Merci à tous.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptyDim 31 Oct 2010 - 5:17

En fait Lazarus est buggué seulement pour un probleme de type de string utf8 il me semble, mais le projet est open source ce qui fait qu'il est constamment en développement.
Le créateur est un gars très confirmé du forum "développez.com" il un un forum sur ce site d'ailleurs, ainsi qu'une FAQ LAZARUS sur le même site, que tu devrais aller voir.

Le problème des if n'est pas de moi, je l'ai relevé sur deux ou trois posts plus haut de ce topic.

Revenir en haut Aller en bas
Invité
Invité




Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptyMar 2 Nov 2010 - 14:28

Bonjour,
Elle fait quoi ta dll. J'ai eu une micro coupure ce matin, et depuis j'ai essayé ton programme, mais j'ai une fenêtre de windows qui me dit bloquer le programme par sécurité. J'ai mis les programmes en exception mais ça bloque toujours.
C'est quoi la fenêtre de droite?. C'est pas une fenêtre Panoramic, il y a le triangle d’extension en bas à droite. (Delphi?)
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptyMar 2 Nov 2010 - 15:36

Bonjour Cosmos !

La dll ne fait que "lire" la date système du fichier et elle modifie le contenu de la chaine de caractère qu'on lui a passé en paramètre. Tu peux trouver le code de la DLL avec les explications (sommaires) sur mon site.

Quand à la fenêtre de droite, c'est un formulaire de débug (déclaration en ligne 12:FORM Debug% , que j'ai oublié de désactiver Embarassed ) mais qui n'a aucune influence sur le programme en lui-même...

Qu'est que tu entend par : "le triangle d’extension en bas à droite."

PS: je n'ai pas beaucoup eu de temps pour regarder le forum ces derniers jours ni même aujourd'hui d'ailleurs.... peut être ce soir...
A+
Wink

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 EmptyMer 3 Nov 2010 - 11:41

Concernant mon programme d'analyse de source : c'est le dernier post dans ce sujet.

J'ai ouvert un fil de discussion à ce sujet dans le forum dans la rubrique "Le site de Nardo26". C'est à cet endroit que continueront les échanges concernant ce programme.

A+ Smile
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Contenu sponsorisé





Nombre d'objets  - Page 5 Empty
MessageSujet: Re: Nombre d'objets    Nombre d'objets  - Page 5 Empty

Revenir en haut Aller en bas
 
Nombre d'objets
Revenir en haut 
Page 5 sur 5Aller à la page : Précédent  1, 2, 3, 4, 5
 Sujets similaires
-
» Comment déterminer le nombre de chiffres d'un nombre naturel
» Formatage d'un nombre
» variable nombre
» Une couleur est un nombre
» Racine cubique d'un nombre

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: