home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 August / Chip_1999-08_cd.bin / tema / RKS / _SETUP.2 / Group4 / ClientOle.pas < prev   
Pascal/Delphi Source File  |  1998-08-23  |  3KB  |  127 lines

  1. unit ClientOle;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, Buttons;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Button1: TButton;
  12.     ListBox1: TListBox;
  13.     Button2: TButton;
  14.     Button3: TButton;
  15.     OpenDialog1: TOpenDialog;
  16.     BitBtn1: TBitBtn;
  17.     BitBtn2: TBitBtn;
  18.     procedure FormCreate(Sender: TObject);
  19.     procedure Button1Click(Sender: TObject);
  20.     procedure FormDestroy(Sender: TObject);
  21.     procedure Button2Click(Sender: TObject);
  22.     procedure Button3Click(Sender: TObject);
  23.     procedure BitBtn1Click(Sender: TObject);
  24.     procedure BitBtn2Click(Sender: TObject);
  25.   private
  26.     { Private declarations }
  27.   public
  28.     { Public declarations }
  29.     des:variant;    // Cely program
  30.     proj:variant;   // Jeden projekt
  31.   end;
  32.  
  33. var
  34.   Form1: TForm1;
  35.  
  36. implementation
  37.  
  38. uses {oleauto}comobj;
  39.  
  40. {$R *.DFM}
  41.  
  42. procedure TForm1.FormCreate(Sender: TObject);
  43. begin
  44. des := CreateOleObject('rkscase.command');
  45. // spustim OLE Automation server, a ziskam jeho Variant promennou  "des"
  46. end;
  47.  
  48.  
  49. // Tahle procedura ukazuje, jak se vytahnou informace z modelu
  50.  
  51. procedure TForm1.Button1Click(Sender: TObject);
  52. var i:integer;
  53.     n:integer;
  54.     atr:variant;
  55.     ent:variant;
  56.     rel:variant;
  57.  
  58. begin
  59.  
  60. IF opendialog1.execute then
  61.    begin
  62.    proj := des.LoadModelFromFile(OpenDialog1.FileName);
  63.    // Nahraji model z disku, a ziskam jeho Variant promennou "proj"
  64.  
  65.    listbox1.items.clear;
  66.  
  67.    n :=  proj.atribcount;  // pocet atributu v modelu
  68.  
  69.    for i := 0 to n-1 do
  70.       begin
  71.       atr := proj.atrib(i);
  72.       listbox1.items.add(format('%s %s',[atr.name,proj.DatType(atr.oid)]));
  73.       end;
  74.  
  75.    listbox1.items.add('--');
  76.    listbox1.items.add('Seznam Entit');
  77.    listbox1.items.add('--');
  78.  
  79.    n := proj.Entcount;  // pocet entit v modelu
  80.    for i := 0 to n-1 do
  81.       begin
  82.       ent := proj.ent(i);
  83.       listbox1.items.add(ent.name);
  84.       end;
  85.  
  86.    listbox1.items.add('--');
  87.    listbox1.items.add('Seznam relaci');
  88.    listbox1.items.add('--');
  89.  
  90.    n := proj.RelCount;  // pocet relaci v modelu
  91.    for i := 0 to n-1 do
  92.       begin
  93.       rel := proj.rel(i);
  94.       listbox1.items.add(rel.name);
  95.       end;
  96.  
  97.    proj := unassigned;  // pro jistotu
  98.    end;
  99. end;
  100.  
  101. procedure TForm1.FormDestroy(Sender: TObject);
  102. begin
  103. des.exit;  // Ukonceni serveru
  104. end;
  105.  
  106. procedure TForm1.Button2Click(Sender: TObject);
  107. begin
  108. des.tile;  // Zarovnani oken do dlazdic
  109. end;
  110.  
  111. procedure TForm1.Button3Click(Sender: TObject);
  112. begin
  113. des.cascade;  // Zarovnani oken do kaskady
  114. end;
  115.  
  116. procedure TForm1.BitBtn1Click(Sender: TObject);
  117. begin
  118. des.show;  // Zobrazeni CASE
  119. end;
  120.  
  121. procedure TForm1.BitBtn2Click(Sender: TObject);
  122. begin
  123. des.hide;  // Ukryti CASE, zbyva jen tray icona vpravo dole
  124. end;
  125.  
  126. end.
  127.