FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

» Compilateur FBPano
par jean_debord Ven 15 Sep 2017 - 9:59

» 1 (en analyse): 3D_TARGET_IS ne fonctionne pas sur 3D_TEXT
par Jack Jeu 14 Sep 2017 - 19:52

» Problème avec la 3D.
par Jack Jeu 14 Sep 2017 - 18:06

» Test de la 3D.
par mindstorm Mer 13 Sep 2017 - 19:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 2.16 du 22 avril 2013: nouvel objet RichEdit

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: 2.16 du 22 avril 2013: nouvel objet RichEdit   Lun 22 Avr 2013 - 22:16

Nouvelle version:
KGF.dll V2.16 du 22/04/2013

Nouveauté:
une collection de fonctions (et les procédures associées) pour gérer un objet RichEdit dans un programme Panoramic !

Modules modifiés:
KGF.dll
KGF_SUB.bas
KGF.chm, KGF.doc, KGF.pdf


La doc est à jour.

Un RichEdit est un objet qui ressemble à un mémo, mais il peut recevoir le contenu d'un fichier RTF, gérér les attributs (gras, italique, souligné et barré), la couleur, la police et la taille de police, et ce non seulement globalement pour tout le texte comme un mémo, mais sélectivement pour des portions de texte ! On applique ces attributs sur la portion de texte sélectionné (surligné) dans l'objet. Voici ce que ça donne:


Cela vous intéresse ?
Alors voici le programme correspondant:
Code:
' test RichEdit.bas

label create1, create2, delete1, delete2, load1, load2, save1, save2
label bold1, bold2, italic1, italic2, under1, under2, strike1, strike2
label font1, font2, size1, size2, color1, color2, hide1, hide2

dim res%, RE1%, RE2%, fic$, s$, n%, ncar%, nlin%, v1%, v2%

KGF_initialize("KGF.dll")

width 0,600 : height 0,600

button 1 : top 1,10 : left 1, 10 : width 1,20 : caption 1,"+" : on_click 1,create1
  hint 1,"Créer RicheEdit 1"
button 2 : top 2,10 : left 2,310 : width 2,20 : caption 2,"+" : on_click 2,create2
  hint 2,"Créer RicheEdit 2"

button 3 : top 3,10 : left 3, 30 : width 3,20 : caption 3,"x" : on_click 3,delete1
  hint 3,"Supprimer RicheEdit 1"
button 4 : top 4,10 : left 4,330 : width 4,20 : caption 4,"x" : on_click 4,delete2
  hint 4,"Supprimer RicheEdit 2"

button 5 : top 5,10 : left 5, 50 : width 5,20 : caption 5,"L" : on_click 5,load1
  hint 5,"Charger RicheEdit 1 par fichier"
button 6 : top 6,10 : left 6,350 : width 6,20 : caption 6,"L" : on_click 6,load2
  hint 6,"Charger RicheEdit 2 par fichier"

button 7 : top 7,10 : left 7, 70 : width 7,20 : caption 7,"S" : on_click 7,save1
  hint 7,"Enregistrer RicheEdit 1 dans fichier"
button 8 : top 8,10 : left 8,370 : width 8,20 : caption 8,"S" : on_click 8,save2
  hint 8,"Enregistrer RicheEdit 2 dans fichier"

button  9 : top  9,10 : left  9, 90 : width  9,20 : caption  9,"H" : on_click  9,hide1
  hint 9,"Cacher RicheEdit 1"
button 10 : top 10,10 : left 10,390 : width 10,20 : caption 10,"H" : on_click 10,hide2
  hint 10,"Cacher RicheEdit 1"

check 11 : top 11,340 : left 11, 10 : caption 11,"G" : on_click 11,bold1
  hint 11,"Appliquer Gras sur RichEdit 1"
check 12 : top 12,340 : left 12,310 : caption 12,"G" : on_click 12,bold2
  hint 12,"Appliquer Gras sur RichEdit 2"

check 13 : top 13,340 : left 13, 50 : caption 13,"I" : on_click 13,italic1
  hint 13,"Appliquer Italique sur RichEdit 1"
check 14 : top 14,340 : left 14,350 : caption 14,"I" : on_click 14,italic2
  hint 14,"Appliquer Italique sur RichEdit 2"

check 15 : top 15,340 : left 15, 90 : caption 15,"S" : on_click 15,under1
  hint 15,"Appliquer Souligné sur RichEdit 1"
check 16 : top 16,340 : left 16,390 : caption 16,"S" : on_click 16,under2
  hint 16,"Appliquer Souligné sur RichEdit 2"

check 17 : top 17,340 : left 17,130 : caption 17,"B" : on_click 17,strike1
  hint 17,"Appliquer Barré sur RichEdit 1"
check 18 : top 18,340 : left 18,430 : caption 18,"B" : on_click 18,strike2
  hint 18,"Appliquer Barré sur RichEdit 2"

combo 21 : top 21,370 : left 21, 10 : font_names_load 21 : on_click 21,font1
combo 22 : top 22,370 : left 22,310 : font_names_load 22 : on_click 22,font2

combo 23 : top 23,400 : left 23, 10 : on_click 23,size1
combo 24 : top 24,400 : left 24,310 : on_click 24,size2

combo 25 : top 25,430 : left 25, 10 : on_click 25,color1
combo 26 : top 26,430 : left 26,310 : on_click 26,color2


open_dialog 101 : filter 101,"Textes|*.rtf;*.txt"
save_dialog 102 : filter 102,"Textes|*.rtf;*.txt"

text 21,"Arial" : text 22,"Arial"

item_add 23, "8" : item_add 24, "8"
item_add 23,"10" : item_add 24,"10"
item_add 23,"12" : item_add 24,"12"
item_add 23,"14" : item_add 24,"14"
item_add 23,"16" : item_add 24,"16"
item_add 23,"20" : item_add 24,"20"
item_add 23,"24" : item_add 24,"20"
text 23,10      : text 24,10

item_add 25,"Noir"  : item_add 26,"Noir"
item_add 25,"Rouge" : item_add 26,"Rouge"
item_add 25,"Vert"  : item_add 26,"Vert"
item_add 25,"Bleu"  : item_add 26,"Bleu"
text 25,"Noir"      : text 26,"Noir"

v1% = 1 : v2% = 1

end

create1:
  RichEditCreate(0)
  RE1% = RichEditCreate
  RichEditGeometry(RE1%,10,40,200,300)
  return

create2:
  RichEditCreate(0)
  RE2% = RichEditCreate
  RichEditGeometry(RE2%,310,40,200,300)
  return

delete1:
  RichEditDelete(RE1%)
  return

delete2:
  RichEditDelete(RE2%)
  return
 
load1:
  fic$ = file_name$(101)
  if fic$="_" then return
  RichEditFileLoad(RE1%,fic$)
  RichEditGlobalStringLength(RE1%)
  RichEditGlobalLineCount(RE1%)
  message str$(RichEditGlobalLineCount)+" lignes  "+str$(RichEditGlobalStringLength)+" caractères"
  return

load2:
  fic$ = file_name$(101)
  if fic$="_" then return
  RichEditFileLoad(RE2%,fic$)
  RichEditGlobalStringLength(RE2%)
  RichEditGlobalLineCount(RE2%)
  message str$(RichEditGlobalLineCount)+" lignes  "+str$(RichEditGlobalStringLength)+" caractères"
  return

save1:
  fic$ = file_name$(102)
  if fic$="_" then return
  RichEditFileSave(RE1%,fic$)
  return

save2:
  fic$ = file_name$(102)
  if fic$="_" then return
  RichEditFileSave(RE2%,fic$)
  return
 
bold1:
  RichEditBold(RE1%,checked(11))
  return

bold2:
  RichEditBold(RE2%,checked(12))
  return

italic1:
  RichEditItalic(RE1%,checked(13))
  return

italic2:
  RichEditItalic(RE2%,checked(14))
  return
 
under1:
  RichEditUnderline(RE1%,checked(15))
  return

under2:
  RichEditUnderline(RE2%,checked(16))
  return

strike1:
  RichEditStrike(RE1%,checked(17))
  return

strike2:
  RichEditStrike(RE2%,checked(18))
  return

hide1:
  v1% = 1 - v1%
  RichEditVisible(RE1%,v1%)
  return

hide2:
  v2% = 1 - v2%
  RichEditVisible(RE2%,v2%)
  return

font1:
  s$ = text$(21)
  RichEditFontName(RE1%,s$)
  return

font2:
  s$ = text$(22)
  RichEditFontName(RE2%,s$)
  return

size1:
  n% = val(text$(23))
  RichEditFontSize(RE1%,n%)
  return

size2:
  n% = val(text$(24))
  RichEditFontSize(RE2%,n%)
  return

color1:
  s$ = text$(25)
  if s$="Rouge" then RichEditColor(RE1%,255,0,0)
  if s$="Vert" then RichEditColor(RE1%,0,255,0)
  if s$="Bleu" then RichEditColor(RE1%,0,0,255)
  return

color2:
  s$ = text$(26)
  if s$="Rouge" then RichEditColor(RE2%,255,0,0)
  if s$="Vert" then RichEditColor(RE2%,0,255,0)
  if s$="Bleu" then RichEditColor(RE2%,0,0,255)
  return
end

#INCLUDE "KGF_SUB.bas"

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Lun 22 Avr 2013 - 22:38

Et comment que ça nous interesse depuis le temps que tout le monde le réclame ce mémo avec mise en forme.
Tu n'aurais pas de barbe, je t'embrasserais tien !! Bon sérieusement, merci Klaus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 22 Avr 2013 - 22:49

Klaus.... tu es une bénédiction pour tout les panoramiciens !!!!

Je vais intégrer ce nouveau jouet dans mon application dès que
je maîtriserai la bestiole...

Encore un grand merci !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Lun 22 Avr 2013 - 22:50

Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Lun 22 Avr 2013 - 23:58

Je savais qu'un jour tu y arriverais. Il n'y avait pas de raison que je puisse le faire avec AutoIt, et toi expert en Delphi, tu ne le fasses pas.

Bravo !
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Mar 23 Avr 2013 - 0:12

En fait, ce qui a permis de le faire, c'est la mise au point, laborieuse, d'une nouvelle technique d'injection d'objet et de construction de lien vers l'objet injecté. Auparavant, je maintenais, dans la DLL, des tables des objets créés, et je les accédais par un numéro d'objet, en général entre 1 et 20. Cela limite considérablement, et est complexe à gérer, en particulier dans le cas des suppressions d'objets.

J'ai mis au point un mécanisme très simple (et que j'aurais dû trouver depuis bien longtemps si j'avais été moins dilettante). Je laisse Windows gérer la liste des objets créés, sans m'en préoccuper (et Windows fait ça très bien), et je passe à Panoramic un identifiant d'objet qui permet de retrouver l'objet à tout moment.

Du coup, je peux beaucoup plus facilement accéder aux propriétés et méthodes de l'objet (l'ensemble des fonctions pour le RichEdit a été codé aujourd'hui !), et je pourrai également gérer facilement les évènements si Jack implémenta la suggestion que je lui ai faite concernant les USER_EVENT en Panoramic.

Maintenant, lentement, je vais appliquer cette technique aux autres objets que j'ai ajoutés: MaskEdit, ValueListEditor, DateTimePicker, WebBrowser etc. Mais surtout, je vais étudier la faisabilité d'injection d'un objet "onglet". Je sais, j'ai fait un pseudo-objet TAB, entièrement en Panoramic. Mais je vais essayer d'utiliser un objet Windows existant. Enfin, si j'y arrive. Parallèlement, j'ajouterai d'autres fonctions pour rendre accessibles plus de capacités de RichEdit. Voilà ma feuille de route...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Mar 23 Avr 2013 - 0:17

Voila! tu as du grain à moudre.

Une question: est-ce que tu programme aussi en c++?
Revenir en haut Aller en bas
Yannick

avatar

Nombre de messages : 7991
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 23 Avr 2013 - 0:25

Voilà qui promet de beau jours et plein d'objet en plus pour panoramic.
Ce qui est super c' est de rendre accessible de façon panoramicienne des
objets de librairies existantes. Une façon à mon goût d'éviter de ré-inventer la roue... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Mar 23 Avr 2013 - 0:47

Pendant que tu y est, un objet pour visualiser des page HTML serait sympa aussi... tu sais bien de toute façon que nous en voudrons toujours plus Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Mar 23 Avr 2013 - 10:13

@Cosmos70:
Non, je ne programme pas en C++, ni aucun autre clone de C.

@Jicehel:
Avec mes différentes solutions de browser (objet WebBrowser ou lancement de IE ou Firefox dans une fenêtre Panoramic, on peut visualiser une page HTML même si elle est localisée sur son propre disque. Maintenant, si tu penses à un éditeur HTML, c'est différent...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   Mar 23 Avr 2013 - 12:04

Non, je pensais bien à un visualiseur de page web (ce qui est plus simple). Je pensais à une fonction pour tester le navigateur installé et afficher "simplement une fenêtre de visu d'un code HTML local ou distant"
On peut déjà bidouiller des choses, mais il y a pas mal de manipulation à faire alors qu'un appel d'une fonction avec les coordonnées de dépar, la largeur, la hauteur pour ouvrir la fenêtre puis un appel pour y afficher la page, ce serait plus simple. Mais tu l'as peut être déjà fait dans une fonction... Je n'ai pas regardé mais maintenant que tu m'en parles ça me rappelle des choses ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: 2.16 du 22 avril 2013: nouvel objet RichEdit   

Revenir en haut Aller en bas
 
2.16 du 22 avril 2013: nouvel objet RichEdit
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 2.16 du 22 avril 2013: nouvel objet RichEdit
» Nouvelle interface Bbox, toujours rien ?
» mail de masse pour ANIMAL CROSSING WII U.(Fait le 28 avril 2013)
» beIN SPORT en clair du 26 mars au 01 avril 2013 sur Bbox
» [Edit] Formation professionnelle Houdini - 03 - 30 avril 2013 à Paris

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: