[Calc] Inserer caractère (texte) sans dispatcher possible?

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 18:03
Localisation : Toulouse

[Calc] Inserer caractère (texte) sans dispatcher possible?

Message par reginacoco »

Bonjour,
Je voudrais insérer un caractère (ou un texte) dans une cellule après avoir double-cliqué dessus (ou F2) et rester en saisi.
Dans mon fichier ci-joint j'ai 2 routines (Delta et monDelta) associée chacune à un bouton de la barre d'outils.
Delta est une macro enregistrée, monDelta est ma macro.
Ma macro fonctionne seulement si je sélectionne la cellule, si j'y entre (F2) cela ne fonctionne pas.
Quelqu'un peut-il me donner une explication ou du moins m'expliquer comment avoir le même résultat qu'avec la macro enregistrée (Delta) ?
C'est peut-être pas possible ....
Merci de votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9252
Inscription : 28 août 2010 08:45

Re: [Calc] Inserer caractère (texte) sans dispatcher possibl

Message par micmac »

Bonjour,

Si vous désirez poursuivre la discussion sur le sujet que vous avez précédemment ouvert :
[Calc] Formatage du texte sélectionné dans une cellule
Vous devriez le faire remonter, sinon préciser la solution retenue et ajouter le balisage [Résolu]Image.
remonter un sujet.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 18:03
Localisation : Toulouse

Re: [Calc] Inserer caractère (texte) sans dispatcher possibl

Message par reginacoco »

Désolé mais ce n'est pas le même sujet.
Il se ressemblent un peu mais ne sont pas identiques.
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9252
Inscription : 28 août 2010 08:45

Re: [Calc] Inserer caractère (texte) sans dispatcher possibl

Message par micmac »

Ce n'est pas mon propos.
Vous avez mal lu mon message. Je sais que le sujet est différent. J'attire seulement votre attention sur le fait qu'un sujet ouvert par vous est resté sans suite et qu'il vous est possible de le faire remonter afin qu'il ne tombe pas dans l'oubli.
Si vous n'êtes pas intéressé, clôturez-le.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 18:03
Localisation : Toulouse

Re: [Calc] Inserer caractère (texte) sans dispatcher possibl

Message par reginacoco »

Oups :oops: vraiment désolé micmac
Je vous remercie pour le conseil et je vais de ce pas relancer mon autre sujet. :wink: :super:
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] Inserer caractère (texte) sans dispatcher possibl

Message par Hubert Lambert »

Bonjour,

La modification du contenu d'une cellule en mode saisie semble être une affaire plus complexe qu'il n'y paraît.
En attendant d'y voir plus clair, tu peux contourner le problème en quittant le mode saisie le temps d'insérer l'élément voulu, puis réactiver ce mode. L'opération sera quasi imperceptible pour l'utilisateur.
Un exemple rapide :

Code : Tout sélectionner

sub monDelta
    doc = thiscomponent
    frame = doc.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    dispatcher.executeDispatch(frame, ".uno:Deselect", "", 0, array())
    selection = doc.CurrentSelection
    curseur = selection.createTextCursorByRange(selection.End)
    hauteur = curseur.CharEscapement
    taillerelative = curseur.CharEscapementHeight
    curseur.CharEscapement = 33
    curseur.CharEscapementHeight = 50
    curseur.setString(Chr(916))
    curseur.gotoEnd(False)
    curseur.CharEscapement = hauteur
    curseur.CharEscapementHeight = taillerelative
    curseur.gotoEnd(False)
    curseur.setString(" ")

    dispatcher.executeDispatch(frame, ".uno:SetInputMode", "", 0, array())
End Sub
Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 18:03
Localisation : Toulouse

Re: [Calc] Inserer caractère (texte) sans dispatcher possibl

Message par reginacoco »

Je te remercie Hubert.
J'étais déjà arrivé au même type de code :) qui en plus insère un espace pour pouvoir rétablir le formatage du texte :roll:
Mon propos était bien de s'affranchir du DispatchHelper ! Mais apparemment cela me semble impossible :fou:
Je vais donc rester avec une macro préenregistrée :cry:
Merci encore.
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
skilzox
Membre prOOscrit
Messages : 3
Inscription : 18 juin 2020 14:17

Re: [Calc] Inserer caractère (texte) sans dispatcher possibl

Message par skilzox »

Est-il possible de faire un événement, qui sera relevé à chaque fois que le fil a de nouvelles informations?

Ici, je vais faire un code pseudo, nous espérons que vous pouvez comprendre:

//CLASS X
Thread
{
info = new info available()!;
RAISE_EVENT RECIVE_NEW_INFO (info);
}

//ON MAIN FORM
private void RECIVE_NEW_INFO(object sender, EventArgs e, string data)
{
richtextbox1.add(data);
}
OpenOffice 4.1.4, ??dition windows 10 Famille version 1709, 64 bit