Lecture de clé de registre et problème de concaténation
Bonjour développeurs,
J'utilise Windows 7, Lazarus version 1.0.12, FPC 2.6.2 et SVN 42478.
Je travaille depuis plusieurs semaines sur un programme et j'ai découvert un problème, lorsque vient le temps de lire une clé de registre.
Voici la portion du code qui me cause problème :
Code:
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
| unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Forms, LCLType, Registry, ShellApi, ComCtrls, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
// Execute FSX.exe
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
str: string;
exeFSX : string;
begin // Allons chercher le chemin de FSX.exe
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKeyreadonly('Software\Microsoft\Microsoft Games\Flight Simulator\10.0');
str := reg.ReadString('AppPath');
reg.closekey;
reg.free;
exeFSX := (str + 'FSX.exe');
// Executer FSX.exe si retourne > 32 c'est qu'il y a erreur
if ShellExecute(0,nil, PChar(exeFSX),nil,nil,SW_SHOWNORMAL) > 32 then
begin
Halt();
end
else
Application.MessageBox('Unable to find FSX.exe!', 'Run FSX.exe', MB_ICONINFORMATION);
end;
end. |
Lorsque je fais appel à cette clé de registre en particulier, la concaténation de cette ligne de code ne fonctionne plus :
Code:
exeFSX := (str + 'FSX.exe');
Cela fait une bonne semaine que je cherche à solutionner ce problème, mais sans succès.
Avez-vous déjà rencontré ce genre de situation ?
Est-ce un bogue avec Lazarus ?
Merci de votre support.