procedure TMainForm.FormShow(Sender: TObject);
var
lpData: Pointer;
cbData: DWORD;
begin
lpData := ParamStrToBlob(cbData);
try
ProcessCommandline(lpData);
finally
FreeMemory(lpData);
end;
end;
procedure TMainForm.WMCopyData(
var Msg: TWMCopyData);
begin
if (Msg.CopyDataStruct.dwData = SecondInstMsgId)
and (SecondInstMsgId <> 0)
then
ProcessCommandline(Msg.CopyDataStruct.lpData)
else
{ Tcha wohl doch nicht ID - stimmte nicht }
inherited;
end;
procedure TMainForm.DefaultHandler(
var Message);
begin
if TMessage(
Message).Msg = SecondInstMsgId
then
{ Eine zweite Instanz hat uns nach dem Handle gefragt }
{ Es wird in die Message-Queue des Threads gepostet. }
PostThreadMessage(TMessage(
Message).WParam, SecondInstMsgId,
Handle, 0)
else
{ Ansonsten rufen wir die geerbte Methode auf }
inherited;
end;
procedure ProcessCommandline(lpData: Pointer);
begin
MainForm.RichEdit1.Lines.Clear;
MainForm.RichEdit1.text := ParamBlobToStr(lpData);
if not (length(MainForm.RichEdit1.Lines[0]) > 1)
then
begin
MainForm.RichEdit1.Lines.Add(ParamStr(1));
end;
if (length(MainForm.RichEdit1.lines[0]) > 2)
then
begin
MainForm.XMLopenF.FileName := MainForm.RichEdit1.Lines[0];
if not (FrachtbriefDrucken =
nil)
then
try
if Assigned(FrachtbriefDrucken)
then
FrachtbriefDrucken.Release;
finally
end;
xmlDatenF := TxmlDatenF.create(AuswahlForm);
xmlDatenF.Show;
end;
end;