IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Open Office Apache visible


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Open Office Apache visible
    Bonjour à tous

    Jusqu'ici, mes appels à Open Office se faisaient sans que le tableau soit visible puisque j'avais spécifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PropC.name := 'Hidden';
    PropC.value := true;
    Mais depuis que la version Apache s'est installée, le tableau est toujours visible et de plus la fonction Dispose ne fonctionne plus. J'ai cherché dans les F.A.Q, mais n'ai trouvé aucune réponse.

    Quelles modifications dois-je apporter à mon code ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,

    Regardez la solution que j'avais donnée sur ce sujet dans le forum dédié à Lazarus, c'est réutilisable tel que, avec Delphi :
    Automation OOo, une fenêtre de trop
    D'ailleurs, la solution vient initialement de Delphi...

  3. #3
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Merci pour cette réponse, mais....
    cela ne fonctionne pas. Toutefois, il se peut que j'ai commis une erreur de code. Je n'ai pas LibreOffice, j'ai donc codifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        APPLICATION = '"C:\Programmes\OpenOffice.org 3\soffice.exe"';
        REPERTOIRE = '"C:\Programmes\OpenOffice.org 3\"';
        ARGUMENT = '-invisible';
    L'appel de ShellExecute est le même.

    Mais je vois toujours la fenêtre OpenOffice

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    "C:\Programmes" me laisse penser qu'il s'agit d'un windows postérieur à XP
    Est ce que l'appel à ShellExecute démarre bien OOo (à vérifier avec le gestionnaire de programmes) ?
    Dans le cas contraire, lors du prochain appel à OOo, le démarrage se fera de manière standard, cad visible...

    Sinon le tips est à priori conforme avec ce qu'indique aussi la FAQ d'OOo

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 081
    Points
    41 081
    Billets dans le blog
    62
    Par défaut
    étonnant , chez moi c'est nickel chrome , j'ai même testé la version 2.3 (encore Oracle) et la version 3.4.1 (Apache)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
        OO_Service : Variant;
        OO_Desktop : Variant;
        OO_Doc : Variant;
        OO_FileName : String;
     
    function TForm2.FileToURL(F : String) : String;
    var i : Word;
        R : String;
    begin
    R:='file:///'+OpenDialog1.FileName;
    // transforme le nom du fichier en adresse URL
    while (Pos('\',R)>0) do    {les \ en /}
      begin
        i:=Pos('\',R);
        Delete(R,i,1);
        Insert('/',R,i);
      end;
    while (Pos(' ',R)>0) do    {les espaces en %20}
      begin
        i:=Pos(' ',R);
        Delete(R,i,1);
        Insert('%20',R,i);
      end;
    result:=R;
    end;
     
    // fermer
    procedure TForm2.Button2Click(Sender: TObject);
    begin
    OO_Service:=unassigned;
    close;
    end;
     
    // ouvrir
    procedure TForm2.Button3Click(Sender: TObject);
    var properties,CoreServ,prop : Variant;
    begin
    if OpenDialog1.Execute then
     begin
      if (VarIsEmpty(OO_Service) or VarIsNull(OO_Service)) then
       OO_Service:=CreateOleObject('com.sun.star.ServiceManager');
      if not(VarIsEmpty(OO_Service) or VarIsNull(OO_Service)) then
      begin
       if (VarIsEmpty(OO_DeskTop) or VarIsNull(OO_DeskTop)) then
              OO_Desktop:= OO_Service.CreateInstance('com.sun.star.frame.Desktop');
       end;
      if (VarIsEmpty(OO_DeskTop) or VarIsNull(OO_DeskTop)) then
       begin
       MessageDlg('Le service Open Office n''est pas ouvert',mtError,[mbOk],0);
       Exit;
       end;
      properties:=VarArrayCreate([0,0],varVariant);
      CoreServ:= OO_Service.CreateInstance('com.sun.star.reflection.CoreReflection');
      CoreServ.forName('com.sun.star.beans.PropertyValue').CreateObject(prop);
      prop.name:='Hidden';
      prop.Value:=True;
      properties[0]:=prop;
      OO_FileName:=FileToURL(OpenDialog1.FileName);
      OO_Doc := OO_Desktop.LoadComponentFromURL(OO_FileName,
                                              '_blank',
                                               0,
                                              properties);
      end;

Discussions similaires

  1. [OpenOffice] AndrOpen Office, une version d'Apache Open Office pour Android, existe !
    Par zoom61 dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 08/12/2013, 09h40
  2. ouverture open office
    Par fostex22 dans le forum Langage
    Réponses: 10
    Dernier message: 22/11/2005, 14h56
  3. [open office] générer du word
    Par kenito dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 12/06/2005, 18h40
  4. [Tableur Open Office] Protection de cellule
    Par LDS45 dans le forum Autres langages
    Réponses: 1
    Dernier message: 06/06/2005, 17h14
  5. Pilotage Open Office
    Par LitteulKevin dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 15/09/2004, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo