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
» PANORAMIC V 1
application créée avec mon IDE Emptypar Klaus Aujourd'hui à 9:53

» Je teste PANORAMIC V 1 beta 1
application créée avec mon IDE Emptypar Klaus Aujourd'hui à 9:52

» bouton dans autre form que 0
application créée avec mon IDE Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
application créée avec mon IDE Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
application créée avec mon IDE Emptypar Klaus Hier à 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
application créée avec mon IDE Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
application créée avec mon IDE Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
application créée avec mon IDE Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
application créée avec mon IDE Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
application créée avec mon IDE Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
application créée avec mon IDE Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
application créée avec mon IDE Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
application créée avec mon IDE Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
application créée avec mon IDE Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
application créée avec mon IDE Emptypar jjn4 Lun 22 Avr 2024 - 13:43

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 application créée avec mon IDE

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

application créée avec mon IDE Empty
MessageSujet: application créée avec mon IDE   application créée avec mon IDE EmptyVen 24 Fév 2012 - 9:32

Ca vous est déjà arrivé ? Savoir avoir, un jour, on a trouvé une solution à un problème technique, en avoir besoin dans un nouveau programme et de ne plus se souvenir des détails ? Ne plus se souvenir exactement dans quel programme se trouvent les quelques lignes de code dont on a besoin ? Avoir à chercher partout pour les retrouver ?

J'étais fatigué de cela et je me suis fait un petit outil que j'appelle "mes astuces". Il affiche, par catégorie, la liste des astuces, et en cliquant dessus, il affiche le code correspondant. Un bouton permet de copier le code dans le presse-papier.

En Delphi, je l'ai ajouté dans le menu Outils - impeccable. Mais même en Panoramic, avec une icône sur le bureau, c'est facilement exploitable. Il faut, bien sûr, créer l'EXE à partir du source pour que cela marche. Le programme cherche un fichier "mes astuces.txt" dans le répertoire où se trouve son exécutable. Et ce n'est évidemment pas limité à Panoramic et Delphi, puisqu'il s'agit de simples séquences de texte, affectées d'un titre et d'une catégorie.

Ce programme "mes astuces.bas" , je l'ai fait avec mon nouveau IDE. Cela se ressent à la structure. Le fichier source représente un projet IDE valide (il peut être ouvert avec l'IDE bouton "Ouvrir"). Voici le source:
Code:
' === Projet IDE
label labels : gosub labels
gosub FORM0
gosub variables
gosub GUI
gosub initialisations
end

' === IDE subroutine labels
labels:
  label charger_liste
  label categorie
  label copier
  label choix
  label retour
  label initialisations
  label FORM0
  label GUI
  label variables
  return

' === IDE subroutine variables
variables:
  dim rep$, s$, tit$, i%, cat_index%
  dim doit%, first%, found%, s1$
  dim flag_sommaire%
  return

' === IDE subroutine GUI
GUI:
' --- IDE objet
  list 1
  top 1,10
  left 1,10
  height 1,530
  width 1,500
  show 1
  active 1
  show 1
  active 1
  on_click 1,choix

' --- IDE objet
  list 2
  top 2,10
  left 2,10
  height 2,530
  width 2,500
  color 2,255,186,186
  hide 2
  active 2
 
' --- IDE objet
  button 3
  top 3,554
  left 3,10
  height 3,25
  width 3,75
  hide 3
  active 3
  caption 3,"Retour"
  on_click 3,retour

' --- IDE objet
  button 4
  top 4,554
  left 4,180
  height 4,25
  width 4,75
  hide 4
  active 4
  caption 4,"Copier"
  on_click 4,copier
 
' --- IDE objet
  list 5
  top 5,10
  left 5,530
  height 5,200
  width 5,190
  show 5
  active 5
  on_click 5,categorie

  return

' === IDE subroutine FORM0
FORM0:
  top 0,0
  left 0,0
  height 0,650
  width 0,740
  show 0
  active 0
  caption 0,"Mes astuces"
  color 0,236,233,216
  return

' === IDE subroutine initialisations
initialisations:
  first% = 1 : ' premier passage
  cat_index% = 1 : ' toutes catégories
  rep$ = file_extract_path$(param_value$(0))
  if right$(rep$,1)<>"\" then rep$ = rep$ + "\"
  file_open_read 1,rep$ + "mes astuces.txt"
  file_readln 1,s$
  file_close 1
  flag_sommaire% = 0
  if s$="Sommaire:" then flag_sommaire% = 1
  gosub charger_liste
  return

' === IDE subroutine retour
retour:
  show 1
  show 5
  hide 2
  hide 3
  hide 4
  return

' === IDE subroutine choix
choix:
  clear 2
  show 2
  hide 1
  hide 5
  show 3
  show 4
  file_open_read 1,rep$ + "mes astuces.txt"
  tit$ = lower$(item_index$(1))
  i% = instr(tit$," ")
  tit$ = mid$(tit$,i%+1,len(tit$))
  if flag_sommaire%=1
    repeat
      file_readln 1,s$
    until instr(lower$(s$),tit$)>0
  end_if
  repeat
    file_readln 1,s$
  until instr(lower$(s$),tit$)>0
  item_add 2,s$
  while file_eof(1)=0
    file_readln 1,s$
    if left$(s$,2)="==" then exit_while
    item_add 2,s$
  end_while
  file_close 1
  return

' === IDE subroutine copier
copier:
  s$ = ""
  for i%=1 to count(2)
    s$ = s$ + item_read$(2,i%)+chr$(13)+chr$(10)
  next i%
  clipboard_string_copy s$
  return

' === IDE subroutine categorie
categorie:
  cat_index% = item_index(5)
  gosub charger_liste
  return

' === IDE subroutine charger_liste
charger_liste:
  clear 1
  if first%=1
    clear 5
    item_add 5,"* Toutes catégories *"
  end_if
  file_open_read 1,rep$ + "mes astuces.txt"
  while file_eof(1)=0
    while (left$(s$,2)<>"==") and (file_eof(1)=0)
      file_readln 1,s$
    end_while
    if file_eof(1)=0
      file_readln 1,s$
      doit% = 1
      if instr(s$,"Catégorie: ")=1
        if cat_index%>1
          doit% = 0
          s1$ = item_read$(5,cat_index%)
          if instr(s$,s1$)=12 then doit% = 1
        end_if
        if doit%=1
          if first%=1
            s$ = right$(s$,len(s$)-11)
            found% = 0
            for i%=1 to count(5)
              if item_read$(5,i%)=s$
                found% = 1
                exit_for
              end_if
            next i%
            if found%=0 then item_add 5,s$
          end_if
          file_readln 1,s$
        end_if
      end_if
      if doit%=1 then item_add 1,s$
    end_if
  end_while
  file_close 1
  first% = 0
  return
' === IDE EOF

Le fichier "mes astuces.txt" doit être dans le répertoire où se trouve l'exécutable "mes astuces.exe". Il contient la doc éxpliquant la construction de ce fichier, plus 3 exemples d'astuces en Delphi et 1 exemple d'astuces en Panoramic (donc 2 catégories). Le nombre d'astuces et de catégories n'est pas limité. Voici le fichier "mes astuces.txt":
Code:
Sommaire:

Delphi:
1. Prendre un string de Panoramic
2. Retourner un string à Panoramic
3. Retourner une valeur entière à travers un paramètre

Panoramic:
1. Passer des données à une DLL
-------- fin du sommaire ------------------------------------------------------------------------------

Ce fichier est utilisé par le programme "mes astuces.exe" écrit en Panoramic. Tout est ignoré jusqu'à
la première ligne commençant par "==". A partir de là, les lignes commençant par "==" introduisent une
nouvelle section, dont la première ligne est le titre, et qui se termine par une ligne commençant par "=="
ou par la fin de fichier. Dans cet exemple, les lignes de titre sont rappelées en début de fichier pour
constituer un sommaire, mais cela n'a qu'une incidence de lisibilité au niveau d'un éditeur de texte.
Le programme ignore tout cela, tout comme ce texte. Cependant, si le sommaire est présent, la toute
première ligne du fichier doit être "Sommaire:", suivi d'une répétition de TOUS les titres des différentes
astuces contenues dans le fichier. Sinon, il suffit simplement d'omettre les lignes jusqu'à la ligne
signalant la fin du sommaire: la première ligne contenant "Sommaire:" ainsi que la répétition des titres.


========================================================================================================
Catégorie: Delphi
1. Prendre un string de Panoramic

  Pour prendre un string de Panoramic, faire comme dans:
        res% = dll_call1("GetWindowFilter",adr(txt$))

    function SetWindowFilter(filter: pchar): integer; stdcall; export;
    var
      s: string;
    begin
      s := pchar(pstring(filter)^);
      sClassListe := Leftstr(s+StringOfChar(' ',255),255);
      result := 0;
    end;

========================================================================================================
Catégorie: Delphi
2. Retourner un string à Panoramic

  Pour retourner un string à Panoramic:
    inclure dans USES:
        TextToPanoramic

    puis faire comme dans:
        res% = dll_call1("SetWindowFilter",adr(txt$))

    function GetWindowFilter(filter: integer): integer; stdcall; export;
    var
      s: string;
    begin
      s := TrimRight(sClassListe);
      CopyTextToPanoramic(integer(@s), 0, filter);  { routine dans l'unité TextToPanoramic.pas }
      result := 0;
    end;

========================================================================================================
Catégorie: Delphi
3. Retourner une valeur entière à travers un paramètre

  Pour retourner une valeur entière à travers un paramètre, faire comme dans:
        res% = dll_call1("test",adr(resultat%))

    function test(res: integer): integer; stdcall; export;
    begin
      PInteger(res)^ := 17;
      result := 0:
    end;
========================================================================================================
Catégorie: Panoramic
1. Passer des données à une DLL

    Les DLL en Panoramic n'acceptent que des entiers en paramètre.
    On peut donc distinguer les cas suivants:

    On veut passer une valeur constante entière:
        On passe la valeur directement, dans le paramètre
              res% = dll_call1("test",17)

    On veut passer une chaîne de caractères:
        On utilise la fonction adr() pour passer l'adresse d'une
        variable de type $ (les constantes "..." sont interdites)
              res% = dll_call1("test",adr(s$))
        Une telle variable peut recevoir une chaîne de caractères
        en sortie. Pour cela, il faut lui réserver suffisamment de
        place au préalable:
              s$ = string(" ",255) : ' réserver 255 caractères
              res% = dll_call1("test",adr(s$))
              print s$            : ' ici, s$ peut être modifié

    On veut passer un entier et permettre à al DLL de le modifier:
        On utilise la fonction adr(à pour passer l'adresse d'une
        variable de type % (une constante ne peut être modifiée)
              i% = 17
              res% = dll_call1("test",adr(i%))
              print str$(i%)      : ' ici, i% peut être modifié
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

application créée avec mon IDE Empty
MessageSujet: Re: application créée avec mon IDE   application créée avec mon IDE EmptyVen 24 Fév 2012 - 10:24

Cool, merci Klaus, j'essaye de tester ça ce soir Smile
Revenir en haut Aller en bas
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

application créée avec mon IDE Empty
MessageSujet: Re: application créée avec mon IDE   application créée avec mon IDE EmptySam 25 Fév 2012 - 1:15

Bonne idée ce programme !
Revenir en haut Aller en bas
Contenu sponsorisé





application créée avec mon IDE Empty
MessageSujet: Re: application créée avec mon IDE   application créée avec mon IDE Empty

Revenir en haut Aller en bas
 
application créée avec mon IDE
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Bug avec la création d'une application.
» Création d'une application avec Panoramic_Editor
» probleme avec application
» Bug avec génération d'application
» Comment utiliser une DLL créée en FB dans FBP

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: