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.
MMM-Wordpic Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
MMM-Wordpic Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
MMM-Wordpic Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
MMM-Wordpic Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
MMM-Wordpic Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
MMM-Wordpic Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
MMM-Wordpic Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
MMM-Wordpic Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
MMM-Wordpic Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
MMM-Wordpic Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
MMM-Wordpic Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
MMM-Wordpic Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
MMM-Wordpic Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
MMM-Wordpic Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
MMM-Wordpic 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 à ne pas rater :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

 

 MMM-Wordpic

Aller en bas 
3 participants
AuteurMessage
jjn4

jjn4


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

MMM-Wordpic Empty
MessageSujet: MMM-Wordpic   MMM-Wordpic EmptySam 22 Déc 2018 - 16:14

Voici mon petit cadeau de Noël :
(tout est dans l'illustration qui suit)

Code:
rem ' MMM-Wordpic - jjn4 - 22/12/2018 =========================================
  dim DCT$ : rem Dernier Caractère Tapé
  dim ESR% : rem Emplacement Sélectionné pour la Recherche
  dim ETS% : rem Emplacement du texte sélectionné ou du curseur pour la liste
  dim ETS2% : rem Emplacement du texte sélectionné ou du curseur pour le mémo-rich
  dim ICB% : rem Indicateur de Couleur du Bouton (1 ou 2)
  dim ICC% : rem Indicateur de la Couleur des Caractères (0 à 26)
  dim ICF% : rem Indicateur de la Couleur du Fond (0 à 26)
  dim ICG% : rem Indicateur de Caractère Gras (0 ou 1)
  dim ICI% : rem Indicateur de Caractère Italique (0 ou 1)
  dim ICR% : rem Indicateur de Caractère Rayé (0 ou 1)
  dim ICS% : rem Indicateur de Caractère Souligné (0 ou 1)
  dim IDC% : rem Indice de Double Clic (0 ou 1)
  dim IEC% : rem Indicateur d`effacement d`un caractère (DEL) (0 ou 1)
  dim IME% : rem Indicateur de Mise en Exposant (0 ou 1)
  dim IMI% : rem Indicateur de Mise en Indice (0 ou 1)
  dim IMT% : rem Indicateur de Modification du Texte (0 ou 1)
  dim INA% : rem Indicateur du Numéro d`Alignement (0, 1, 2)
  dim IPC% : rem Indicateur de Police de Caractère (0 à 7)
  dim ISI% : rem Indicateur d`une Suppression Intermédiaire d`un caractère (0 ou 1)(Suppr)
  dim ISL% : rem Indicateur de Saut d`une Ligne (0 ou 1)
  dim NBC$(7) : rem Nom des Boutons de Commande
  dim NCD$(26) : rem Noms des Couleurs Disponibles
  dim NCF$ : rem Nom Court du Fichier
  dim NPC$(7) : rem Nom des Polices de Caractères
  dim NTS$ , LTS% : rem Nature et Longeur du Texte Sélectionné
  dim SCT$ : rem Séquence Cherchée dans le Texte
  dim TAP$ : rem Texte d`Aide sur le Programme
  dim TPW$ : rem Titre du Programme MMM-Wordpic
  dim V1M% , V2M% , V3M% , V4M$ : rem Variables à utilisation Multiple
  ICF%=26 : ESR%=1
  TPW$="  MMM-Wordpic.1.0 - Un Mini-Mini-Mini-Wordpad en Panoramic - jjn4 - 22/12/2018"
  label change , choix , clic , close , key

rem Form0 et préparations =====================================================
  width 0,1365
  height 0,720
  caption 0,TPW$
  inactive 0
  for V1M% = 0 to 26 : rem Lecture des datas ---------------------------------
      read NCD$(V1M%)
  next V1M%
  for V1M% = 0 to 7
      read NPC$(V1M%)
  next V1M%
  for V1M% = 1 to 7
      read NBC$(V1M%)
  next V1M%
  for V1M% = 1 to 12
      read V4M$
      TAP$=TAP$+V4M$
  next V1M%
  dlist 40 : rem 1° liste de travail (début de texte RTF) -------------------- 
  dlist 50 : rem 2° liste de travail (fin de texte RTF)  ---------------------
  V4M$="{\rtf1\ansi\deff0 {\*\MMMWp}{\fonttbl "
  for V1M% = 0 to 7 : rem Définition des polices -----------------------------
      V4M$=V4M$+"{\f"+str$(V1M%)+" "+NPC$(V1M%)+";}"
  next V1M%
  V4M$=V4M$+"}{\colortbl"
  for V1M% = 0 to 2 : rem Définition des couleurs ----------------------------
      for V2M% = 0 to 2
        for V3M% = 0 to 2
            V4M$=V4M$+"\red"+str$(V1M%*127)+"\green"+str$(V2M%*127)+"\blue"+str$(V3M%*127)+";"
        next V3M%
      next V2M%
  next V1M%
  V4M$=V4M$+"}"
  item_add 40,V4M$ : rem Ajout dans la première liste de travail -------------
 
memo_rich 100 : rem Fenêtre de texte ==========================================
  format(100,5,75,1050,600,0,8,0)
  bar_vertical 100
  on_change 100,change
  on_key_down 100,key
  on_mouse_up 100,choix
alpha 110 : rem Chiffres de la réglette horizontale ---------------------------
  format(110,5,48,0,0,0,8,1)
  V4M$=" "
  for V1M% = 0 to 28
      if V1M%<10
        V4M$=V4M$+"0"+str$(V1M%)+"        "
      else
        V4M$=V4M$+str$(V1M%)+"        "
      end_if
  next V1M%
  caption 110,V4M$
picture 120 : rem Barres de la réglette horizontale ---------------------------
  format(120,5,60,1040,15,0,8,0)
  color 120,240,240,240
  2d_target_is 120
  2d_fill_color 240,240,240
  print_target_is 120
  for V1M% = 0 to 28
      print_locate V1M%*36+6,1
      print chr$(124)+string$(4,chr$(183))+"i"+string$(4,chr$(183))
  next V1M%
  print_locate 527,1
  print "V"
 
spin 200 : rem Choix de la taille du texte ====================================
  format(200,5,5,65,0,0,20,1)
  min 200,4
  max 200,999
  position 200,36
  hint 200,"Taille des caractères"
  on_change 200,change
 
for V1M% = 1 to 3 : rem N° 210 - 220 et 230 - Combos de police et couleurs ====
  V2M%=V1M%*10+200
  combo V2M%
      format(V2M%,237*(V1M%-1)+72,5,235,0,0,20,1)
      sort_on V2M%
      on_click V2M%,clic
next V1M%
  left 230,516
  width 220,205
  width 230,205
for V1M% = 0 to 26
  item_add 220,NCD$(V1M%)
  item_add 230,NCD$(V1M%)
next V1M%
for V1M% = 0 to 7
  item_add 210,NPC$(V1M%)
next V1M%
  text 210," Police/caractère" : hint 210,"Police de caractère"
  text 220," Couleur/texte" : hint 220,"Couleur du texte"
  text 230," Couleur/fond" : hint 230,"Couleur du fond"

for V1M% = 1 to 16 : rem N° 240 à 390 - Boutons de balises ====================
  V2M%=V1M%*10+230
  panel V2M%
      format(V2M%,V1M%*39+680,5,38,40,0,16,1)
next V1M%
alpha 285 : rem Affichage du dessin de mise en indice -------------------------
  parent 285,280
for V1M% = 305 to 325 step 10 : rem N° 305,315,325 - Images des positions -----
  picture V1M%
      parent V1M%,V1M%-5
      full_space V1M%
      color V1M%,240,240,240
next V1M%
rem Balise Caractère gras -----------------------------------------------------
  font_color 240,190,190,190                     
  caption 240,"G" : hint 240,"Caractères Gras"
  on_click 240,clic
rem Balise Italique -----------------------------------------------------------
  font_bold 250
  font_name 250,"Courier New"
  font_color 250,190,190,190
  caption 250,"I" : hint 250,"Italique"
  on_click 250,clic
rem Balise Souligné -----------------------------------------------------------
  font_color 260,190,190,190                     
  caption 260,"S" : hint 260,"Souligné"
  on_click 260,clic
rem Balise Barré --------------------------------------------------------------
  font_color 270,190,190,190
  caption 270,"R" : hint 270,"Barré"
  on_click 270,clic
rem Balise Indice -------------------------------------------------------------
  left 285,12
  font_size 285,20
  font_color 285,190,190,190
  caption 285,"a" : hint 285,"Mise en indice"
  on_click 280,clic
  on_click 285,clic
rem Balise Exposant -----------------------------------------------------------
  font_color 290,190,190,190
  caption 290,"2" : hint 290,"Mise en exposant"
  on_click 290,clic
rem Balise Aligné à gauche ----------------------------------------------------
  gauche() : hint 305,"Aligné à gauche"
  on_click 305,clic
rem Balise Centré -------------------------------------------------------------
  centre() : hint 315,"Centré"
  on_click 315,clic
rem Balise Aligné à droite ----------------------------------------------------
  droite() : hint 325,"Aligné à droite"
  on_click 325,clic
rem Balise Puce 1 -------------------------------------------------------------
  font_size 330,20
  caption 330,chr$(149) : hint 330,"Puce 1"
  on_click 330,clic
rem Balise Puce 2 -------------------------------------------------------------
  font_size 340,20
  caption 340,chr$(151) : hint 340,"Puce 2"
  on_click 340,clic
rem Balise Date-Heure ---------------------------------------------------------
  font_size 350,24
  font_name 350,"Wingdings"
  caption 350,chr$(184) : hint 350,"Date et Heure"
  on_click 350,clic
rem Balise Couper -------------------------------------------------------------
  font_name 360,"Wingdings"
  caption 360,chr$(34) : hint 360,"Couper"
  on_click 360,clic
rem Balise Copier -------------------------------------------------------------
  font_name 370,"Webdings"
  caption 370,chr$(50) : hint 370,"Copier"
  on_click 370,clic
rem Balise Coller -------------------------------------------------------------
  font_name 380,"Webdings"
  caption 380,chr$(157) : hint 380,"Coller"
  on_click 380,clic
rem Balise Sélectionner tout --------------------------------------------------
  font_size 390,20
  font_name 390,"Webdings"
  caption 390,chr$(168) : hint 390,"Sélectionner tout"
  on_click 390,clic

rem Boutons de commande =======================================================
  for V1M% = 1 to 7 : rem N° 500 à 560
      V2M%=V1M%*10+490
      button V2M%
        format(V2M%,1210,V1M%*90-41,132,85,1,16,1)
        caption V2M%,NBC$(V1M%)
        on_click V2M%,clic
  next V1M%
  height 500,47
  height 520,41
  height 530,47
  button 570 : rem Bouton Continuer ------------------------------------------
      format(570,1210,369,132,35,1,16,1)
      caption 570,"Continuer"
      on_click 570,clic
  button 580 : rem Bouton Tabulation/Effacer
      format(580,1210,99,132,35,1,16,1)
      caption 580,"Tabulation"
      on_click 580,clic
  button 590 : rem Bouton Enregistrer en RTF
      format(590,1210,273,132,41,1,16,1)
      caption 590,"Enreg RTF"
      on_click 590,clic
     
rem Gadgets de la zone de droite ==============================================
  alpha 600 : rem Indication de date -----------------------------------------
      format(600,1065,60,0,0,1,24,1)
      color 600,255,255,0
      caption 600," Date      "
  alpha 610
      format(610,1065,95,0,0,0,18,1)
      color 610,255,255,0
      caption 610," "+date$+" " 
  alpha 620 : rem Indication de l`heure --------------------------------------
      format(620,1065,140,0,0,1,24,1)
      color 620,175,255,175
      caption 620," Heure "
  alpha 630
      format(630,1065,175,0,0,0,18,0)
      color 630,175,255,175
  alpha 640 : rem Indication du nombre de lignes -----------------------------
      format(640,1065,220,0,0,1,18,1)
      color 640,255,200,0
      caption 640," Nombre "+chr$(13)+" de lignes "+chr$(13)+"        "
  alpha 650
      format(650,1065,272,0,0,1,22,1)
      color 650,255,200,0
  alpha 660 : rem Indication du nombre de lettres ----------------------------
      format(660,1065,325,0,0,1,18,1)
      color 660,0,255,255
      caption 660," Nombre "+chr$(13)+" de lettres "+chr$(13)+"        "
  alpha 670
      format(670,1065,377,0,0,1,22,1)
      color 670,0,255,255
  alpha 680 : rem Indication concernant le Presse-papier ---------------------
      format(680,1065,433,0,0,1,18,1)
      color 680,255,175,255
      caption 680," Contenu "+chr$(13)+" du presse "+chr$(13)+" -papier "
  memo 690
      format(690,1065,520,129,155,0,8,0)
      inactive 690
      auto()
     
rem Dossier d`explications sur le fonctionnement du programme =================
  form 700
      hide 700
      format(700,15,120,1045,500,0,8,0)
      V4M$=string$(40," ")+"Cliquez ici pour continuer  "+chr$(151)+chr$(151)+">"
      caption 700,"  Explications sur le fonctionnement du programme MMM-Wordpic"+V4M$
      on_close 700,close
  memo_rich 710
      parent 710,700
      full_space 710
      bar_vertical 710
      on_click 710,close
      active 0
      set_focus 100
      beep
     
end : ' Début des routines ====================================================

sub aide() : rem Explication sur le fonctionnement du programme ===============
  if show(700)=0
      show 700
      inactive 0
      text 710,TAP$
  end_if
end_sub

sub align() : rem Dessins des boutons alignement ==============================
  decal()
  INA%=(number_click-305)/10
  gauche()
  centre()
  droite()
end_sub

sub auto() : rem Automatismes du programme ====================================
  caption 630," "+time$+"  "
  caption 650," "+str$(count(100))+" "
  caption 670," "+str$(len(text$(100)))+" "
end_sub

sub auto2() : rem Automatismes concernant le Presse-papier ====================
  dim_local v1au$
  v1au$=clipboard_string_paste$
  text 690,v1au$
end_sub

sub centre() : rem Dessin de l`alignement centré ==============================
  dim_local v1ce%
  2d_target_is 315
  2d_pen_width 2
  2d_pen_color 190,190,190
  if INA%=1
      2d_pen_color 0,0,0
  end_if
  for v1ce% = 1 to 3
      2d_line 7,v1ce%*8+1,27,v1ce%*8+1
      2d_line 11,v1ce%*8+5,23,v1ce%*8+5
  next v1ce%
end_sub

change: : rem Redirection des on-change =======================================
  select number_change
      case 100
        IDC%=0
        gosub choix
        IDC%=0
        if ETS2%>0
            DCT$=mid$(text$(100),ETS2%,1)
        else
            DCT$=text$(100)
        end_if
        go()
        IMT%=1
        auto()   
      case 200
        remet()
  end_select
  IDC%=0
return

sub cherche() : rem Cherche une séquence dans le texte ========================
  ESR%=1
  SCT$=message_input$("Chercher dans le texte","Quelle séquence rechercher ?","")
  if SCT$<>""
      cont()
  end_if
end_sub

choix: : rem Sélection d`une partie du texte ==================================
  NTS$=select_read$(100)
  LTS%=len(select_read$(100))
  ETS2%=caret_position(100)
  if LTS%>0
      ETS2%=ETS2%+1
  end_if
  ETS%=ETS2%
  for V1M% = 1 to ETS2%
      if mid$(text$(100),V1M%,1)=chr$(13)
        ETS%=ETS%-1
      end_if
  next V1M%
  if ETS%=count(50)-1
      if IDC%=0
        off_change 100
        item_add 100,""
        on_change 100,change
      end_if
  end_if
  if NTS$<>""
      if NTS$<>chr$(13)+chr$(10)
        caption 580,"Effacer"
      end_if
  else
      if active(500)=1
        caption 580,"Tabulation"
      end_if
  end_if
  IDC%=1
return

clic: : rem Redirection des on-click ==========================================
  IDC%=0 : gosub choix : IDC%=0
  select number_click
      case 210 : police()
      case 220 : coul() : rem Couleur du texte
      case 230 : fond()
      case 240 : regle() : rem Balises simples (Gras...)
      case 250 : regle()
      case 260 : regle()
      case 270 : regle()
      case 280 : regle()
      case 285 : regle()
      case 290 : regle()
      case 305 : align()
      case 315 : align()
      case 325 : align()
      case 330 : puce()
      case 340 : puce2()
      case 350 : date()
      case 360 : copier(0) : rem 0 = Couper
      case 370 : copier(1) : rem 1 = Copier
      case 380 : coller()
      case 390 : tout() : rem Sélectionner tout
      case 500 : corrig()
      case 510 : ouvrir()
      case 520 : enreg() : rem en TXT
      case 530 : cherche()
      case 540 : imprime()
      case 550 : aide()
      case 560 : quit()
      case 570 : cont() : rem Continue la recherche
      case 580 : efface()
      case 590 : enreg2() : rem en RTF
  end_select
  caption 630," "+time$+"  "
  IDC%=0
return

close: : rem Retour à Wordpic en cas de fermeture de l`aide ===================
  hide 700
  active 0
  to_foreground 0
return

sub coller() : rem Coller ce qui est dans le presse-papier ====================
  dim_local v1cl$ , v2cl% , v3cl% : rem v1cl$=Contenu du presse-papier
  decal()
  v1cl$=clipboard_string_paste$
  if ETS%=count(50)
      v3cl%=1
  end_if
  if v1cl$<>""
      for v2cl% = 1 to len(v1cl$)
        if asc(mid$(v1cl$,v2cl%,1))<>13
            DCT$=mid$(v1cl$,v2cl%,1)
            if ETS%>count(50)
              item_add 50,go2$()
            else
              item_insert 50,ETS%+1,go2$()
              ETS%=ETS%+1
            end_if
        end_if
      next v2cl%
      if v3cl%=1
        item_add 50,"\ql\f0\fs36\highlight26\cf0\li150\par"
      end_if
  end_if
  off_change 100
  ecrit()
end_sub

sub cont() : rem Continuer la recherche =======================================
  dim_local v2co% , v3co% : rem v3co%=Indice de présence du texte recherché
  if count(100)>0
      if SCT$<>""
        if ESR%>len(text$(100))
            ESR%=1
        end_if
        for v2co% = ESR% to len(text$(100))-len(SCT$)
            if mid$(text$(100),v2co%,len(SCT$))=SCT$
              set_focus 100
              select_text 100,v2co%,len(SCT$)
              ESR%=v2co%+1
              v3co%=1
              exit_for
            end_if
        next v2co%
        if v3co%=0
            ESR%=1
        end_if
      end_if
  end_if
end_sub

sub copier(qc%) : rem Copier (ou couper) du texte dans le presse-papier =======
  rem qc% = Quel type de Copie
  dim_local v1co$ , v2co% , v3co% : rem v1co$=Texte sélectionné
  decal()
  v1co$=select_read$(100)
  clipboard_string_copy v1co$
  if qc%=0 : rem Cas où c`est Couper -----------------------------------------
      if v1co$<>""
        off_change 100
        for v2co% = 1 to LTS%
            if mid$(NTS$,v2co%,1)=chr$(13)
              v3co%=v3co%+1
            end_if
        next v2co%
        for v2co% = ETS% to ETS%+LTS%-1-v3co%
            if ETS%<=count(50)
              item_delete 50,ETS%
            end_if
        next v2co%
        ecrit()
      end_if
  end_if
  auto2()
end_sub

sub corrig() : rem Corrections effectuées sur du texte sélectionné ============
  dim_local v2cg$ : rem Données RTF générales (contenu de la liste 40)
  dim_local v4cg% : rem Ecart de longueur entre le mèmo_rich et la liste
  dim_local v1cg% , v3cg% : rem Variables à utilisation variée
  if NTS$<>""
      off_change 100
      for v1cg% = ETS2% to ETS2%+LTS%-1
        if mid$(text$(100),v1cg%,1)=chr$(10)
            v4cg%=v4cg%+1
        end_if
      next v1cg%
      if ETS%+LTS%-v4cg%<=count(50)
        if right$(item_read$(50,ETS%+LTS%-v4cg%),3)="par"
            v4cg%=v4cg%-1
        end_if
      end_if
      for v1cg% = ETS% to ETS%+LTS%-v4cg%-1
        while v1cg%>count(50)
            v1cg%=v1cg%-1
            if v1cg%<0
              exit_while
            end_if
        end_while
        v3cg%=instr(item_read$(50,v1cg%)," ")
        if v3cg%>0
            DCT$=mid$(item_read$(50,v1cg%),v3cg%+1,1)
            item_insert 50,v1cg%,go2$()
            item_delete 50,v1cg%+1
        else
            DCT$=chr$(10)
            item_insert 50,v1cg%,go2$()
            item_delete 50,v1cg%+1
        end_if
      next v1cg%
      v2cg$=item_read$(40,1)
      if count(50)>0 : rem Ajout des lignes précédentes -----------------------
        for v1cg% = 1 to count(50)
            v2cg$=v2cg$+item_read$(50,v1cg%)
        next v1cg%
      end_if
      v2cg$=v2cg$+"}" : rem Ajout du terminal ---------------------------------
      text 100,v2cg$
      if DCT$=chr$(10) or ETS2%=>len(text$(100))
        item_add 100,""
      end_if
      NTS$="" : ETS%=0 : LTS%=0 : IMT%=1
      caret_position 100,ETS2%
      on_change 100,change
  end_if
  IDC%=0
  set_focus 100
end_sub

sub coul() : rem Choix de la couleur des caractères ===========================
  dim_local v1co% , v2co$ : rem v2co$=Couleur choisie
  v2co$=text$(220)
  for v1co% = 0 to 26
      if v2co$=NCD$(v1co%)
        ICC%=v1co%
        exit_for
      end_if
  next v1co%
  remet()
end_sub
 
rem Datas =====================================================================
  data "Noir","Bleu nuit","Bleu foncé","Vert foncé","Bleu pétrole"
  data "Bleu ciel","Vert anis","Vert-bleu","Bleu pâle","Rouge-marron"
  data "Bordeaux","Violet","Vert caca d'oie","Gris","Bleu d'eau"
  data "Vert tendre","Vert très pâle","Bleu clair","rouge","rose Tyrien"
  data "Parme","Orange","Rose peau","Rose","Jaune","Jaune pâle","Blanc"
  data "Courier New","Lucida Console","Arial","Times New Roman"
  data "Georgia","Tahoma","Verdana","Monotype Corsiva"
  data "Corriger","Ouvrir","Enreg TXT","Chercher","Imprimer","Aide","Quitter"
  data "{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil Arial;}{\f1\fnil\fcharset0 Arial;}{\f2\fnil Courier New;}{\f3\fnil Monotype Corsiva;}}"
  data "{\colortbl ;\red0\green0\blue127;\red127\green254\blue0;\red0\green0\blue0;\red254\green254\blue254;\red254\green0\blue0;\red0\green0\blue254;\red127\green0\blue254;\red254\green254\blue0;\red0\green254\blue254;}"
  data "\viewkind4\uc1\pard\li150\qc\cf1\highlight2\lang1036\f0\fs50  Juste quelques conseils \cf3\highlight4\par \pard\li150\fs36"
  data "\par  \f1\bullet\f0  \cf5 D\f1\'e9\f0 terminez d'abord l'environnement\cf3  de ce que vous voulez \f1\'e9\f0 crire \f2"
  data "\par \f0    \cf6 (\b\f3 Taille, Police, Couleurs, etc...\b0\f0 )\cf3  avant de vous lancer dans la r\f1\'e9\f0 daction.\f2"
  data "\par \f0\par  \f1\bullet\f0  Vous pouvez \cf5 changer d'environnement \f1\'e0\f0  tout moment\cf3 , ce qui se"
  data "\par    traduira dans les \f1\'e9\f0 crits suivants.\f2\par \f0"
  data "\par  \f1\bullet\f0  Si vous voulez \cf5 changer l'environnement de lignes pr\f1\'e9\f0 c\f1\'e9\f0 dentes\cf3 ,"
  data "\par    \cf4\highlight7 s\f1\'e9\f0 lectionnez le texte\cf3\highlight4  \f1\'e0\f0  modifier et le nouvel environnement que vous"
  data "\par    souhaitez lui donner, puis cliquez sur \f1\'ab\highlight8\f0  Corriger \highlight4\f1\'bb\f0 .\par"
  data "\par  \f1\bullet\f0  A noter qu'\cf5\ul il est conseill\f1\'e9\f0  d'enregistrer vos textes en\ulnone  \b TXT\cf3\b0 ."
  data "\par    En effet, les fichiers \highlight9\b RTF\highlight4\b0  sont seulement \highlight9 lisibles\highlight4 , mais \highlight9 pas modifiables\highlight4 .\par\par }"
rem fin des datas

sub date() : rem Insertion de la date et de l`heure ===========================
  dim_local v1da$ , v2da% : rem v1da$=Texte à écrire
  decal()
  off_change 100
  IDC%=0
  gosub choix
  IDC%=0
  ETS%=ETS%+1
  v1da$="> "+date$+" à "+time$+" "
  for v2da% = 1 to len(v1da$)
      DCT$=mid$(v1da$,v2da%,1)
      item_insert 50,ETS%,go2$()
      ETS%=ETS%+1
      ETS2%=ETS2%+1
  next v2da%
  ecrit()
  caret_position 100,ETS2%
  IMT%=1
end_sub

sub decal() : rem Décalage des panels du haut =================================
  left number_click,left(number_click)-1
  top number_click,top(number_click)+1
  pause 50
  left number_click,left(number_click)+1
  top number_click,top(number_click)-1
end_sub

sub droite() : rem Dessin de l`alignement à droite ============================
  2d_target_is 325
  2d_pen_width 2
  2d_pen_color 190,190,190
  if INA%=2
      2d_pen_color 0,0,0
  end_if
  for V1M% = 1 to 3
      2d_line 5,V1M%*8+1,29,V1M%*8+1
      2d_line 13,V1M%*8+5,29,V1M%*8+5
  next V1M%
end_sub

sub ecrit() : rem Ecrire le texte en RTF dans le mémo-rich ====================
  dim_local v1ec% , v2ec$ : rem Données RTF générales (contenu de la liste 40)
  v2ec$=item_read$(40,1)
  if count(50)>0 : rem Ajout des lignes formatées RTF ------------------------
      for v1ec% = 1 to count(50)
        v2ec$=v2ec$+item_read$(50,v1ec%)
      next v1ec%
  end_if
  v2ec$=v2ec$+"}" : rem Ajout du terminal ------------------------------------
  text 100,v2ec$
  if count(50)>1
      if DCT$=chr$(10)
        item_add 100,""
      end_if
  end_if
  set_focus 100
  caret_position 100,ETS2%
  IEC%=0 : IDC%=0
  on_change 100,change
end_sub

sub efface() : rem Efface le texte sélectionné ou Tabulation ==================
  dim_local v1ef% , v2ef$ , v3ef%
  if caption$(580)="Effacer"
      if active(500)=1
        remet()               
        if ETS%=0
            ETS%=ETS%+1
        end_if
        for v1ef% = 1 to len(NTS$)
            if asc(mid$(NTS$,v1ef%,1))=13
              v3ef%=v3ef%+1
            end_if
        next v1ef%   
        for v1ef% = ETS% to ETS%+LTS%-1-v3ef%
            if ETS%<=count(50)
              item_delete 50,ETS%
            end_if
        next v1ef%
        off_change 100
        ecrit()
        if count(50)=0
            clear 100
            IMT%=0
            caption 0,TPW$
            NCF$=""
            auto()
        end_if
        if text$(100)=""
            clear 50
        end_if
      else
        clear 100
        for v1ef% = 200 to 390 step 10
            active v1ef%
        next v1ef%
        active 500 : caption 580,"Tabulation"
        active 520 : active 590
        caption 0,TPW$
        NCF$="" : IMT%=0
        auto()
        set_focus 100
      end_if
  else
      v2ef$="  "
      off_change 100
      IDC%=0
      gosub choix
      IDC%=0
      ETS%=ETS%+1
      for v1ef% = 1 to len(v2ef$)
        DCT$=mid$(v2ef$,v1ef%,1)
        item_insert 50,ETS%,go2$()
        ETS%=ETS%+1
        ETS2%=ETS2%+1
      next v1ef%
      ecrit()
      caret_position 100,ETS2%
      IMT%=1
  end_if
end_sub

sub enreg() : rem Enregistrer le texte en TXT =================================
  dim_local v3en% , v4en% , v5en$ , v6en% , v7en$
  v5en$="Le fichier existe déjà, voulez-vous l'écraser ?"
  save_dialog 999
      filter 999,"Textes|*.£4.txt"
      file_dialog 999,NCF$
      v7en$=file_name$(999)
      if v7en$<>"_"
        if file_exists(v7en$)=1
            v4en%=message_confirmation_yes_no(v5en$)
            if v4en%=1
              v6en%=1
            end_if
        else
            v6en%=1
        end_if
        if v6en%=1
            if right$(v7en$,7)<>".£4.txt"
              v7en$=v7en$+".£4.txt"
            end_if
            file_open_write 1,v7en$
              file_writeln 1,item_read$(40,1)
              for v3en% = 1 to count(50)
                  file_writeln 1,item_read$(50,v3en%)
              next v3en%
            file_close 1
            IMT%=0
            caption 0,TPW$+" --> "+v7en$
            NCF$=file_extract_name$(v7en$)
        end_if
      end_if
  delete 999
end_sub

sub enreg2() : rem Enregistrer le texte en RTF ================================
  dim_local v1eg$ , v2eg% , v3eg$ , v4eg% , v5eg$ , v6eg%
  v5eg$="Le fichier existe déjà, voulez-vous l'écraser ?"
  save_dialog 999
      filter 999,"Textes|*.rtf"
      if NCF$<>""
        file_dialog 999,left$(NCF$,len(NCF$)-4)+".rtf"
      else
        file_dialog 999,NCF$
      end_if
      v3eg$=file_name$(999)
      if v3eg$<>"_"
        if file_exists(v3eg$)=1
            v4eg%=message_confirmation_yes_no(v5eg$)
            if v4eg%=1
              v6eg%=1
            end_if
        else
            v6eg%=1
        end_if
        if v6eg%=1
            file_save 100,v3eg$
            IMT%=0
            caption 0,TPW$+" --> "+v3eg$
            NCF$=file_extract_name$(v3eg$)
        end_if
      end_if
  delete 999
end_sub

sub fond() : rem Choix de la couleur de fond du caractère =====================
  dim_local v1fo% , v2fo$ : rem v2fo$=Couleur de fond choisie
  v2fo$=text$(230)
  for v1fo% = 0 to 26
      if v2fo$=NCD$(v1fo%)
        ICF%=v1fo%
        exit_for
      end_if
  next v1fo%
  remet()
end_sub

sub format(qo%,ql%,qt%,qw%,qh%,qb%,qs%,qn%) : rem Format des objets-systèmes ==
  rem qo%=Quel Objet ql%=Left qt%=Top qw%=Width qh%=Height qb%=Bold qs%=Size qn%=Name
  left qo%,ql%
  top qo%,qt%
  width qo%,qw%
  height qo%,qh%
  if qb%=1
      font_bold qo%
  end_if
  font_size qo%,qs%
  if qn%=1
      font_name qo%,"Arial"
  end_if
end_sub

sub gauche() : rem Dessin de l`alignement à gauche ============================
  2d_target_is 305
  2d_pen_width 2
  2d_pen_color 190,190,190
  if INA%=0
      2d_pen_color 0,0,0
  end_if
  for V1M% = 1 to 3
      2d_line 5,V1M%*8+1,29,V1M%*8+1
      2d_line 5,V1M%*8+5,21,V1M%*8+5
  next V1M%
end_sub

fnc go2$() : rem Mise au format des données RTF ================================
  dim_local v1go$ : rem Nouvelle données RTF à rajouter 
  select INA% : rem Ajout des alignements ------------------------------------
      case 0 : v1go$=v1go$+"\ql"
      case 1 : v1go$=v1go$+"\qc"
      case 2 : v1go$=v1go$+"\qr"
      case 3 : v1go$=v1go$+"\qj"
  end_select : rem Ajout de la police, de la taille et des 2 couleurs --------
  v1go$=v1go$+"\f"+str$(IPC%)+"\fs"+text$(200)+"\highlight"+str$(ICF%)+"\cf"+str$(ICC%)+"\li150"
  if DCT$=chr$(10) : rem Saut à la ligne suivante ou Ajout du texte ----------
      v1go$=v1go$+"\par"
  else
      if ICG%=1 : rem Ajout du caractère gras ---------------------------------
        v1go$=v1go$+"\b"
      end_if
      if ICI%=1 : rem Ajout de l`italique -------------------------------------
        v1go$=v1go$+"\i"
      end_if
      if ICS%=1 : rem Ajout du soulignement classique -------------------------
        v1go$=v1go$+"\ul"
      end_if
      if ICR%=1 : rem Ajout du barré ------------------------------------------
        v1go$=v1go$+"\strike"
      end_if
      if IMI%=0 and IME%=0
        v1go$=v1go$+" " : rem Ajout de l`espace de début de texte ------------
      end_if
      if IMI%=1 : rem Ajout de la mise en indice ------------------------------
        v1go$=v1go$+"{\sub "
      end_if
      if IME%=1 : rem Ajout de la mise en exposant ----------------------------
        v1go$=v1go$+"{\super "
      end_if
      v1go$=v1go$+DCT$
      if IMI%=1 or IME%=1 : rem Ajout du final de l`indice ou de l`exposant ---
        v1go$=v1go$+"}"
      end_if
      if ICG%=1 : rem Ajout du final du caractère gras ------------------------
        v1go$=v1go$+"\b0"
      end_if
      if ICI%=1 : rem Ajout du final de l`italique ----------------------------
        v1go$=v1go$+"\i0"
      end_if
      if ICS%=1 : rem Ajout du final du souligné ------------------------------
        v1go$=v1go$+"\ul0"
      end_if
      if ICR%=1 : rem Ajout du final du barré ---------------------------------
        v1go$=v1go$+"\strike0"
      end_if
  end_if 
  result v1go$
end_fnc

sub go() : rem Entrée du format des données RTF ===============================
  dim_local v1go%
  off_change 100
  if ISL%=1
      if ETS%<count(50)+1 : rem Insertion d`une ligne en interne --------------
        item_insert 50,ETS%,"\ql\f0\fs36\highlight26\cf0\li150\par"
      end_if
  end_if
  if IEC%=1 
      if ETS%=count(50)-1 
        item_delete 50,count(50) : rem Retrait de la dernière ligne (DEL) ----
      else
        if ETS%+1<=count(50)
            item_delete 50,ETS%+1 : rem Retrait d`une ligne interne (DEL) -----
        end_if
      end_if
  end_if
  if ISI%=1
      if ETS%<count(50)+1
        item_delete 50,ETS%+1 : rem Retrait d`une ligne interne (Suppr) ------
      end_if
  end_if 
  if ISL%=0 and IEC%=0 and ISI%=0 and DCT$<>""
      if ETS%=>count(50)
        item_add 50,go2$() : rem Ajout de la ligne à la 2° liste de travail --
      else
        if ETS%>2
            item_insert 50,ETS%,go2$()
        end_if
      end_if
  end_if
  ecrit()
end_sub

sub imprime() : rem Impression du document ====================================
  dim_local v1im$ , v2im% , v3im% : rem v1im$=Contenus des listes 40 et 50
  v3im%=message_confirmation_yes_no("Confirmez-vous votre demande d'impression ?")
  if v3im%=1
      file_save 100,"Provi-Wordpic.rtf"
      execute_wait "write.exe|/p Provi-Wordpic.rtf"
      file_delete "Provi-Wordpic.rtf"
  end_if
end_sub

key: : rem Effet des on-key-down du mémo-rich 100 =============================
  IEC%=0 : rem Cas où on tape sur la touche DEL ------------------------------
  if key_down_code=8
      IEC%=1
  end_if
  ISL%=0 : rem Cas où on tape sur ENTER avec le curseur avant la fin ---------
  if ETS%<count(50)
      if key_down_code=13
        ISL%=1
      end_if
  end_if
  ISI%=0 : rem Cas où on tape sur la touche SUPPR ----------------------------
  if key_down_code=46
      ISI%=1
  end_if
  IDC%=0                                         
return

sub ouvrir() : rem Charger le texte ===========================================
  dim_local v1ou$ , v2ou%
  off_change 100
  if IMT%=1 and active(500)=1
      v2ou%=message_confirmation_yes_no("Voulez-vous enregistrer les modifications du texte précédent ?")
      if v2ou%=1
        enreg()
      else
        IMT%=0   
      end_if
  end_if
  open_dialog 999
      filter 999,"Textes|*.£4.txt;*.rtf"
      v1ou$=file_name$(999)
      if v1ou$<>"_"
        clear 50 : clear 100
        if right$(v1ou$,4)=".txt"
            file_load 50,v1ou$
            if instr(item_read$(50,1),"{\*\MMMWp}")>0
              clear 40
              item_add 40,item_read$(50,1)
              item_delete 50,1
              ecrit()
              for v2ou% = 200 to 390 step 10
                  active v2ou%
              next v2ou%
              active 500 : caption 580,"Tabulation"
              active 520 : active 590
            else
              clear 50
            end_if
        else
            file_load 100,v1ou$
            for v2ou% = 200 to 390 step 10
              inactive v2ou%
            next v2ou%
            inactive 500 : caption 580,"Effacer"
            inactive 520 : inactive 590
        end_if
        caption 0,TPW$+" --> "+v1ou$
        NCF$=file_extract_name$(v1ou$)
        auto()
      end_if
  delete 999
  caret_position 100,len(text$(100))
  IDC%=0
  gosub choix
  IDC%=0
  on_change 100,change
end_sub

sub police() : rem Choix de la police de caractère ============================
  dim_local v1po% , v2po$ : rem v2po$=Police de caractère choisie
  v2po$=text$(210)
  for v1po% = 0 to 7
      if v2po$=NPC$(v1po%)
        IPC%=v1po%
        exit_for
      end_if
  next v1po%
  remet()
end_sub

sub puce() : rem Insertion d`une puce ronde dans le texte =====================
  dim_local v1pu% , v2pu$ : rem Texte de la puce
  decal()
  off_change 100
  IDC%=0
  gosub choix
  IDC%=0
  ETS%=ETS%+1
  v2pu$=" "+chr$(149)+" "
  for v1pu% = 1 to len(v2pu$)
      DCT$=mid$(v2pu$,v1pu%,1)
      item_insert 50,ETS%,go2$()
      ETS%=ETS%+1
      ETS2%=ETS2%+1
  next v1pu%
  ecrit()
  caret_position 100,ETS2%
  IMT%=1
end_sub

sub puce2() : rem Insertion d`une autre puce dans le texte ====================
  dim_local v1p2% , v2p2$ : rem Texte de la puce
  decal()
  off_change 100
  IDC%=0
  gosub choix
  IDC%=0
  ETS%=ETS%+1
  v2p2$="  "+chr$(151)+chr$(151)+" "
  for v1p2% = 1 to len(v2p2$)
      DCT$=mid$(v2p2$,v1p2%,1)
      item_insert 50,ETS%,go2$()
      ETS%=ETS%+1
      ETS2%=ETS2%+1
  next v1p2%
  ecrit()
  caret_position 100,ETS2%
  IMT%=1
end_sub

sub quit() : rem Quitter le programme =========================================
  dim_local v1qu%
  if active(500)=1
      if IMT%=1
        v1qu%=message_confirmation_yes_no("Enregistrer vos modifications du texte ?")
        if v1qu%=1
            enreg()
        end_if
      end_if
  end_if
  terminate
end_sub

sub regle() : rem Détection des choix effectués en balises simples ============
  decal()
  select number_click
      case 240 : rem Caractère gras -------------------------------------------
        ICG%=1-ICG%
        if ICG%=0
            ICB%=2
            font_bold_off 240
            font_size 240,16
        else
            ICB%=1
            font_bold 240
            font_size 240,24
        end_if
      case 250 : rem Italique -------------------------------------------------
        ICI%=1-ICI%
        if ICI%=0
            ICB%=2
            font_italic_off 250
            font_size 250,16
        else
            ICB%=1
            font_italic 250
            font_size 250,20
        end_if
      case 260 : rem Souligné -------------------------------------------------
        ICS%=1-ICS%
        if ICS%=0
            ICB%=2
            font_underline_off 260
            font_size 260,16
        else
            ICB%=1
            font_underline 260
            font_size 260,18
        end_if
      case 270 : rem Barré ----------------------------------------------------
        ICR%=1-ICR%
        if ICR%=0
            ICB%=2
            font_strike_off 270
            font_size 270,16
        else
            ICB%=1
            font_strike 270
            font_size 270,18
        end_if
      case 285 : rem Alpha de la mise en indice -------------------------------
        IMI%=1-IMI%
        if IMI%=0
            ICB%=0
            font_size 285,20
            caption 285,"a"
            font_color 285,190,190,190
        else
            ICB%=0
            font_size 285,10
            caption 285,chr$(13)+"  a"
            font_color 285,0,0,0
            font_size 290,16
            caption 290,"2"
            font_color 290,190,190,190
            IME%=0
        end_if
      case 280 : rem Panel de la mise en indice -------------------------------
        IMI%=1-IMI%
        if IMI%=0
            ICB%=0
            font_size 285,20
            caption 285,"a"
            font_color 285,190,190,190
        else
            ICB%=0
            font_size 285,10
            caption 285,chr$(13)+"  a"
            font_color 285,0,0,0
            font_size 290,16
            caption 290,"2"
            font_color 290,190,190,190
            IME%=0
        end_if
      case 290 : rem Mise en exposant -----------------------------------------
        IME%=1-IME%
        if IME%=0
            ICB%=2
            font_size 290,16
            caption 290,"2"
        else
            ICB%=1
            font_size 290,14
            caption 290,chr$(178)
            font_size 285,20
            caption 285,"a"
            font_color 285,190,190,190
            IMI%=0
        end_if   
  end_select
  if ICB%=2 : rem Couleur du texte des boutons-balises simples ---------------
      font_color number_click,190,190,190
  end_if
  if ICB%=1
      font_color number_click,0,0,0
  end_if
end_sub
 
sub remet() : rem Remet la surbrillance du texte sélectionné ==================
  set_focus 100
  if NTS$<>""
      select_text 100,ETS2%,LTS%
  else
      caret_position 100,ETS2%
  end_if
end_sub

sub tout() : rem Sélectionner tout ============================================
  decal()
  if len(text$(100))>0
      set_focus 100
      caret_position 100,len(text$(100))
      select_text 100,1,len(text$(100))
  end_if
  IDC%=0
  gosub choix
  IDC%=0
  caption 580,"Effacer"
end_sub

MMM-Wordpic Mars-i10

Et maintenant, je m’attelle à une version 2
qui gérera les textes plus longs... A suivre...
santa alien cherry
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


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

MMM-Wordpic Empty
MessageSujet: MMM-Wordpic   MMM-Wordpic EmptySam 22 Déc 2018 - 16:22

Pourquoi 3 fois Mini ?
- D'abord, parce que (comme je l'ai reprécisé il y a peu)
 je ne suis pas un professionnel de la programmation
 mais quelqu'un qui a appris à programmer en bricolant
 à la maison. Alors, je me sens obligé de rester modeste
 face aux productions des ténors de l'informatique.
- Ensuite, parce que Wordpic (version 1) est un petit
 programme, juste un essai ne permettant de gérer que
 des fichiers texte pas trop longs.
- Enfin, parce qu'il fonctionne avec un code RTF simplifié
 ne permettant de gérer que les fichiers eux-mêmes issus
 de Wordpic, pas ceux issus de Wordpad ou autres, faits
 en RTF plus complexe.
 (Mais il peut quand même les lire, les imprimer et faire
 des recherches à l'intérieur, mais pas les modifier).
farao alien santa
Qui a dit qu'un Wordpad en panoramic, ça n'était pas possible ?
Laughing Laughing Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MMM-Wordpic Empty
MessageSujet: Re: MMM-Wordpic   MMM-Wordpic EmptySam 22 Déc 2018 - 17:03

Salut JJN4 ! cheers

Merci pour ce petit cadeau de noël avant l'heure ! drunken
C'est donc vrai ce que l'on dit... sur mars aussi il y a le père noël ! santa

Concernant ton programme, c'est simple, mais terriblement efficace !
Juste une petite remarque, pourquoi ne pas proposer un choix de couleur pour le fond de page ?
Je sais, je chipote... Wink

En tout cas ça prouve la faisabilité d'une gestion des fichiers de type Wordpad.
Un grand BRAVO ! cheers
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
silverman

silverman


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

MMM-Wordpic Empty
MessageSujet: Re: MMM-Wordpic   MMM-Wordpic EmptySam 22 Déc 2018 - 18:29

Félicitation, c'est vaiment bien! king
Et hop, dans ma bibliothèque santa
Revenir en haut Aller en bas
jjn4

jjn4


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

MMM-Wordpic Empty
MessageSujet: +++   MMM-Wordpic EmptySam 22 Déc 2018 - 18:54

Citation :
C'est donc vrai ce que l'on dit... sur mars aussi il y a le père noël !
Parfaitement !
Regardez, l'est-i pas beau ?
MMM-Wordpic Pzore_10
lol!
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MMM-Wordpic Empty
MessageSujet: Re: MMM-Wordpic   MMM-Wordpic EmptySam 22 Déc 2018 - 19:17

Brrrrrrrr ! qu'il est laid... affraid

Je préfère autant celui-ci...

MMM-Wordpic Sans_t34

lol! lol! lol! lol!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





MMM-Wordpic Empty
MessageSujet: Re: MMM-Wordpic   MMM-Wordpic Empty

Revenir en haut Aller en bas
 
MMM-Wordpic
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Wordpic.2

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: