Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Unterschiede bei Pchar (Delphi7 und 2010)


RoadRunner69 - Di 21.08.12 14:19
Titel: Unterschiede bei Pchar (Delphi7 und 2010)
Hallo Forum,
vielleicht steh' ich ja nur auf dem Schlauch ... aber ... habe folgende Routine geschrieben, die mir Excel mit einem File, das in s übergeben wird. Unter Delphi7 wird's problemlos compiliert, unter 2010 kommt die Fehlermeldung Inkompatible Typen: 'Char' und 'AnsiChar' in Zeile 19 ... ich kann allerdings nur Pchar entdecken oder?



Delphi-Quelltext
 
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
{ ... }
procedure TFormMain.StartExcel(s: pchar);
begin
  if FileExists('C:\Programme\Microsoft Office\Office12\Excel.Exe'then
    s := Pchar('C:\Programme\Microsoft Office\Office12\Excel.Exe ' + s)
  else if FileExists('C:\Programme\Microsoft Office\Office11\Excel.Exe'then
    s := Pchar('C:\Programme\Microsoft Office\Office11\Excel.Exe ' + s)
  else
    s := Pchar('C:\Programme\Microsoft Office\Office10\Excel.Exe ' + s);

    WinExec(s, SW_shownormal);
end;


Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt


Gausi - Di 21.08.12 14:31

Soweit ich weiß, sollte man WinExec seit ungefähr 300 Jahren nicht mehr benutzen, sondern ShellExecute.

Zu deiner Fehlermeldung: Unter Delphi7 war ein PChar identisch mit einem PAnsiChar. Seit Delphi2009 ist ein PChar ein PWideChar. Bei der Umstellung nach Delphi 2009 oder neueren Versionen gibt es da gelegentlich Probleme. ;-)


RoadRunner69 - Di 21.08.12 15:36

vielen dank für die schnelle antwort. dass man winexec nicht mehr benutzen sollte war mir neu. mit shellexecute hat's prima geklappt.

danke