Invoquer Galeon depuis Kylix

L'objectif: lancer un browser similaire à Mozilla depuis un programme Kylix.

Le problème: par défaut, lorsqu'un programme Kylix 3 lance Galeon, ce programme n'a pas de difficulté si Gnome est correctement installé. Mais lorsque le programme est lancé depuis l'IDE Kylix, Galeon ne se charge pas.

La raison: lors de l'exécution depuis l'IDE, Kylix définit certaines variables d'environnement, et en particulier pointe MOZILLA_FIVE_HOME vers le répertoire personnel borpreview. Cette définition sert à l'IDE à offrir la prévisualisation des fichiers HTML par l'encapsulation de Mozilla. Mais elle entre en conflit avec le script /usr/bin/galeon qui cherche à identifier l'emplacement de la librairie partagée Mozilla.

La solution:: supprimer MOZILLA_FIVE_HOME, en ajoutant putenv ('MOZILLA_FIVE_HOME') ; avant l'invocation de Galeon.

implementation

  {$R *.xfm}

  uses LibC ;

  var pid : Integer ;

procedure TForm1.Button1Click (Sender : TObject) ;

  const
    csURL = ' title="Riff News">http://www.riff.org/' ;

  var res : Integer ;

  begin
  pid := fork ;
  putenv ('MOZILLA_FIVE_HOME') ;
  if pid = 0 then 
    begin
    res := execlp ('galeon', 'galeon', 
      '--sm-disable', '--disable-crash-dialog',
      '--geometry=' 
              + IntToStr (Memo1.Width) 
        + 'x' + IntToStr (Memo1.Height)
        + '+' + IntToStr (Form1.Left + Memo1.Left) 
        + '+' + IntToStr (Form1.Top + Memo1.Top),
      '-x', csURL, nil) ;
    end
  else
    if pid < 0 then
      begin
      Memo1.Lines.Add ('Erreur de fork, errno = ' 
        + IntToStr (errno)) ;
      Application.Terminate
      end
    else
      // Suite de l'application principale.
      // Le signal SIGCHLD permet d'être informé de la fermeture du browser
  end  ;

Marques les plus citées

toutes les marques

acheter sur OSInet

Accès direct

Recherche

Le mot du jour

LLB

Local Location Broker

in | |

Dans le NCS, composant côté client d'un location broker, qui identifie les serveurs locaux pouvant répondre aux requêtes, et les enregistre dans un GLB s'il existe. Voir NCS, ORB. 

Syndiquer le contenu

Dernières définitions

Android - cross-sell(ing) - EMA - futex - Google - mutex - XForms - XMLP - XQuery - XRX

Un mot au hasard

AMI : Application Messaging Interface  

Alertes CERTA