Je viens de Windows, Delphi et je suis quelque peu novice dans l'utilisation de Lazarus et de Linux.
Je vous prie donc de bien vouloir m'excuser si je manque d'informations ou de clarté dans l'exemple que je vous propose.
Ma distribution est une Debian Wheezy / KDE et j'ai installé Lazarus 1.2.4.
Je suis en train de convertir mes applications Delphi sous Lazarus. Et comme certains j'ai notamment rencontré le problème d'intégration d'une aide sous une application Lazarus. Le programme que je convertis actuellement a, à l'origine et sous Delphi, un fichier d'aide .chm.
Bien évidemment j'ai installé KchmViewer (programme permettant de lire des .chm).
Mais il me fallait appeler ce dernier depuis mon application Lazarus. Alors j'ai choisi d'utiliser un TProcess.
Oh, l'idée n'est pas de moi. J'ai trouvé cette info ici :
http://wiki.freepascal.org/Executing...al_Programs/fr.
Mais en modifiant ma commande j'obtiens bien l'ouverture de mon fichier .chm.
Voici ce que ça donne depuis la rubrique d'un menu :
Par contre ce qui m'intéresse moi c'est de pouvoir intégrer mon aide dans le Centre d'aide de KDE. Ceci pour pouvoir éventuellement fournir une aide dans une autre langue. Enfin le rendre plus portable, quoi. Je sais que là je dois entrer notamment dans le domaine des fichiers .po et .mo (PoEdit). Comme je ne maîtrise pas je demande à une âme charitable de m'informer sur un tuto ou autre chose expliquant clairement la marche à suivre.
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 procedure TForme_Main.UtileClick(Sender: TObject); var AProcess: TProcess; begin // Instanciation d'un TProcess AProcess := TProcess.Create(nil); // Initialisation de la commande // Ici j'appelle l'ouverture de kchmviewer avec le fichier .chm // Notre : Lazarus indique que cette commande est dépréciée. AProcess.CommandLine := 'kchmviewer Runes.chm'; // Selon ma traduction cette option interdit toute réaction // sur l'application appelante tant que KchmViewer est en fonctionnement. // Cela dit, il semble que des actions ou sélections peuvent être prises en // compte dès que l'on a quitté KchmViewer. AProcess.Options := AProcess.Options + [poWaitOnExit]; // Exécution de la commande en ligne. AProcess.Execute; // Libération de l'instance du TProcess. AProcess.Free; end;
Bonne journée. Merci.
Partager