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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
  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.