Autor Beitrag
RoadRunner69
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 21.08.12 14:19 
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?


ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8553
Erhaltene Danke: 479

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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. ;-)

_________________
We are, we were and will not be.

Für diesen Beitrag haben gedankt: Martok
RoadRunner69 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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