Page 1 sur 1

Problème de Collage dans EditorGadget....[Résolu]

Publié : sam. 15/sept./2007 2:02
par Mytic
Je voudrai savoir comment on fait pour formater un texte !
Je m’explique :
J’ai un EditorGadget , tout va bien pour le moment , le texte se colorie comme je veux le bonheur quoi .
Mais quand je copie un texte venant d’une autre source que le Gadget là le cauchemar commence. 8O
Le saut entre les ligne mesure le double et j’ai une autre police que celle que j’ai utiliser , et la couleur du texte est noir !!
Comment faire pour formater le Collage pour qu’il soit à la norme que je veux ?
Merci…

Re: Problème de Collage dans EditorGadget....

Publié : sam. 15/sept./2007 8:35
par Backup
Mytic a écrit :Je voudrai savoir comment on fait pour formater un texte !
Je m’explique :
J’ai un EditorGadget , tout va bien pour le moment , le texte se colorie comme je veux le bonheur quoi .
Mais quand je copie un texte venant d’une autre source que le Gadget là le cauchemar commence. 8O
Le saut entre les ligne mesure le double et j’ai une autre police que celle que j’ai utiliser , et la couleur du texte est noir !!
Comment faire pour formater le Collage pour qu’il soit à la norme que je veux ?
Merci…
c'est simple tu filtre !! :D
parceque en collant tu garde les attributs RTF (mise en page) du document original, pour filtrer il faut un code qui demande Bac+8
moi qui n'ai pas dépassé la 6em, ben je vais te donner ce code tres complexe ! :D

le voici :


             ; ******************Sert de filtre anti RTF lors d'un copier-collé************
            Texte_editor$ = GetGadgetText ( #Editor_0 )
             SetGadgetText ( #Editor_0 ,Texte_editor$)
             ; *******************************************************************



et voila , enlevé c'est pesé :D

Publié : sam. 15/sept./2007 9:09
par Ollivier
P... Comment tu fais Mytic?!?
Moi c'est ce que je veux : un gros bordel à trier dans le presse-papier. Mais je n'ai jamais rien. Il faudra que je me penche sur la question.

Ce serait intéressant que tu postes un exemple 'en Data' pour que je te donne quelques expli.

Pour exemple, un tableau Excel (juste du texte dans les cellules), il me semble que c'est :

Code : Tout sélectionner

TexteCellA1 + Chr(9) + TexteCellA2 + Chr(13) + Chr(10) + TexteCellB1 + Chr(9) + TexteCellB2
(Exemple pour une zone 2 x 2)

C'était il y a quelques temps, ça a pu changer.

Publié : sam. 15/sept./2007 10:27
par Backup
Ollivier a écrit :P... Comment tu fais Mytic?!?
Moi c'est ce que je veux : un gros bordel à trier dans le presse-papier. Mais je n'ai jamais rien. Il faudra que je me penche sur la question.

Ce serait intéressant que tu postes un exemple 'en Data' pour que je te donne quelques expli.

Pour exemple, un tableau Excel (juste du texte dans les cellules), il me semble que c'est :

Code : Tout sélectionner

TexteCellA1 + Chr(9) + TexteCellA2 + Chr(13) + Chr(10) + TexteCellB1 + Chr(9) + TexteCellB2
(Exemple pour une zone 2 x 2)

C'était il y a quelques temps, ça a pu changer.
quel rapport avec sa question ?? 8O 8O 8O

Publié : sam. 15/sept./2007 10:43
par Ollivier
Ben tu connais l'oiseau que je suis : Si tu me demandais d'aller chercher une baguette, je reviendrais avec une flûte...

J'ai mal compris son post. Je pensais qu'il importait son texte de partout et nullepart : Word, Excel & Cie.

T'as pas un avatar du Schtroumpf bêta ?

Publié : sam. 15/sept./2007 11:01
par Chris
Ollivier a écrit :Ben tu connais l'oiseau que je suis : Si tu me demandais d'aller chercher une baguette, je reviendrais avec une flûte...

J'ai mal compris son post. Je pensais qu'il importait son texte de partout et nullepart : Word, Excel & Cie.

T'as pas un avatar du Schtroumpf bêta ?
J'en ai un de "Simplet".
Ca t'interresse? :lol:

Image

Publié : sam. 15/sept./2007 15:30
par Mytic
@Dobro

Mais là tu prend tout le texte du Gadget, moi je veux intercepter que le collage, le formater et le colorier en mémoire plus l’insérer dans le Gadget !

Une autre petite question ! Est-ce que on peut détecter les Items qui ont changés dans le Gadget pendant le collage ?

Publié : sam. 15/sept./2007 15:39
par Ollivier
@Chris

Fixé :D

Publié : sam. 15/sept./2007 15:41
par Mytic
J’ai pensé à faire ça :
-Créer un tableau en mémoire.
-Enregistrer les lignes du Gadget dans le tableau.
-A chaque modification comparer les Items avec le tableau.
-Colorier et formater que les Items modifiés.

Mais c'est Gourmand en CPU, pour chaque lettre tapée faire tout ce calcule !
:?

Publié : sam. 15/sept./2007 16:20
par Backup
Mytic a écrit :@Dobro

Mais là tu prend tout le texte du Gadget, moi je veux intercepter que le collage, le formater et le colorier en mémoire plus l’insérer dans le Gadget !

Une autre petite question ! Est-ce que on peut détecter les Items qui ont changés dans le Gadget pendant le collage ?
oui c'est ce que je fait ! parceque nul besoin de filtrer en temps reel !!

exemple mon editeur, je colle un code dedans, il suffit de faire Ctrl+TAB (comme avec JAPBE :D ) et cela te remet le code niquel chrome coloré et mise en forme, en une seul fois !

si tu veux pouvoir le faire avant le collage, c'est pas trop dur va voir les fonction purebasic librairie "Clipboard" de l'aide :D

voir
Texte$ = GetClipboardText()
le tout c'est de virer d'une façon ou d'une autre le formatage RTF :)
un peut d'expérimentation, ne fais pas de mal

Publié : sam. 15/sept./2007 16:28
par Chris
ET comme ça, ca n'irait pas?

(Ca utilise l'Api, donc, il faut la version enregistrée)

Edit : Par contre, ça ne répond pas à ta deuxième question.

Code : Tout sélectionner

  Fnt = LoadFont(#PB_Any, "Arial", 14, #PB_Font_Bold|#PB_Font_Italic)
  
  If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0)) 
    EditorGadget(0, 8, 8, 306, 133)
    SendMessage_(GadgetID(0) , #EM_SETEVENTMASK, 0, #ENM_CHANGE)

    
    SetGadgetFont(0, FontID(Fnt))
    SetGadgetColor(0, #PB_Gadget_FrontColor, $FF0000)
    
    
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_Gadget
          Select EventGadget()
            Case 0
              If EventType() = #PB_EventType_Change And GetGadgetText(0) <> ""
                SetGadgetFont(0, FontID(Fnt))
                SetGadgetColor(0, #PB_Gadget_FrontColor, $FF0000)
              EndIf
          EndSelect
        Case #PB_Event_CloseWindow
          Quit = 1
      EndSelect
    Until Quit = 1  
  EndIf 

Publié : sam. 15/sept./2007 16:47
par Mytic
Merci … Pour votre aide
@Chris
Ta méthode marche très bien. 8)

Publié : sam. 15/sept./2007 16:48
par Chris
Mytic a écrit :Merci … Pour votre aide
@Chris
Ta méthode marche très bien. 8)
Pourquoi? D'habitude, je poste des méthodes qui ne marchent pas? :lol: