home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / Chip_2000-02_cd.bin / zkuste / Delphi / navody / tip2 / 507.txt < prev    next >
Text File  |  1999-11-15  |  3KB  |  61 lines

  1. {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
  2. { Downloaded from The Coder's Knowledge Base                         }
  3. { http://www.netalive.org/ckb/                                       }
  4. {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
  5. { @ CKB Header Version.: 1.01                                        }
  6. { @ Category ID........: delphi_misc                                 }
  7. { @ Added to database..: 14.10.98                                    }
  8. {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
  9. { @ Title..............: DDE connection to WordPerfect               }
  10. { @ Original Filename..: DDEWordperfect.txt                          }
  11. { @ Author.............: John Studt                                  }
  12. { @ Description........: How to connect via DDE to WordPerfect       }
  13. { @ Tested w. Compiler.: not tested yet                              }
  14. { @ Submitted by.......: Mike Orriss (mjo@3kcc.co.uk)                }
  15. {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
  16.  
  17.  
  18. Here is a sample procedure that I use that works: 
  19.  
  20.   procedure TForm1.PrintSave(Doc : String);
  21.   var
  22.      ProdDoc, ArchDoc : String;
  23.      WPCommands : TStringList;
  24.   begin
  25.      ProdDoc := ProdDrive + Doc;
  26.      ArchDoc := ArchDrive + Doc;
  27.  
  28.      WPCommands := TStringList.Create;
  29.      with WPCommands do begin
  30.         Add('FileOpen(Filename:"'+ProdDoc+'")' );
  31.         Add('FileSave(Filename:"'+ProdDoc+'";ExportType:3;Overwrite:1)');
  32.  
  33.         Add('PrintCopies(NumberOfCopies:2)');
  34.         Add('PrintCopiesBy(CopiesBy:1) ');
  35.         Add('PrintFullDoc() ');
  36.         Add('DocCompare(FileName:"'+ArchDoc+'";CompFlags:1) ');
  37.         Add('FileSave(Filename:"'+EMailDoc+'";ExportType:3;Overwrite:1');
  38.  
  39.         Add('Close(Save:0) ');
  40.      end;
  41.  
  42.      if  PDDE.ExecuteMacroLines(WPCommands, True) then begin
  43.          log('WPCommand Worked!')
  44.          {  I need to wait for WP to complete the command now... }
  45.      end
  46.      else log('WPCommand Failed!');
  47.  
  48.      WPCommands.Free;
  49. end;
  50.  
  51.  
  52. A Coupla'notes:  You cannot use the 'True!' or 'False!' equates as you would in a real WP Macro. You must use the numeric values.  I have  found that if you go into WP and use the  macro build facility, you can extract the enumerated types by watching the dialogue box as you  select the commands and their associated parameters.
  53.  
  54. From what I can TELL, the way DDE works with WP/Delphi, the first command returns the 'Okay, I got it' message, and proceeds to process  the macro. When you attempt to send the SECOND DDE request, IT waits for the first to complete, so where you see the 'I need to wait....'  message, you get control back immediately.  I would rather wait for the command to complete before I return from my procedure.
  55.  
  56.  
  57. John Studt
  58.  
  59.  
  60.  
  61.