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

Programmation d'applications complexes
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

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

Message 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…
Dernière modification par Mytic le sam. 15/sept./2007 16:52, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

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

Message 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
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message 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 ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message 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 ?
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

@Chris

Fixé :D
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message 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 !
:?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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 
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message par Mytic »

Merci … Pour votre aide
@Chris
Ta méthode marche très bien. 8)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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:
Répondre