Changeset 92 for oup/current/Main.pas


Ignore:
Timestamp:
Jan 16, 2007, 12:35:04 AM (18 years ago)
Author:
alloc
Message:

Rev86 was first after multi-cons

File:
1 edited

Legend:

Unmodified
Added
Removed
  • oup/current/Main.pas

    r87 r92  
    77  Dialogs, StdCtrls, StrUtils, Clipbrd, ExtCtrls, ComCtrls, Menus, Grids,
    88  MPHexEditor, ToolWin, ImgList, Tabs,
    9   MDITab, TB2Item, TB2Dock, TB2Toolbar, TB2MDI,
     9  MDITab, TB2Item, TB2Dock, TB2Toolbar, TB2MDI, OneInst,
    1010  Data, Functions, DataStructures, OniDataClass, Exporters,
    1111  Helper_LevelDB, Settings, Template,
     
    8989    procedure menu_windows_nextClick(Sender: TObject);
    9090    procedure menu_windows_tileClick(Sender: TObject);
    91     function open_child(window_context: String; fileid: Integer): TForm_ToolTemplate;
     91    function open_child(window_context: String; connection: TOniData; fileid: Integer): TForm_ToolTemplate;
    9292    procedure menu_windows_closeallClick(Sender: TObject);
    9393    procedure menu_windows_cascadeClick(Sender: TObject);
     
    116116    procedure MDITabMouseMove(Sender: TObject; Shift: TShiftState; X,
    117117      Y: Integer);
    118   private
     118
     119    procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
    119120  public
     121    procedure DefaultHandler(var Message); override;
     122  public
    120123  end;
    121124
     
    126129
    127130{$R *.dfm}
     131
     132
     133
     134{ Eine zweite Instanz hat uns ihre Kommandozeilenparameter geschickt }
     135procedure TForm_Main.WMCopyData(var Msg: TWMCopyData);
     136var
     137  strings: TStringList;
     138begin
     139  if (Msg.CopyDataStruct.dwData = SecondInstMsgId) and (SecondInstMsgId <> 0) then
     140  begin
     141    Application.BringToFront;
     142   
     143    strings := TStringList.Create;
     144    strings.Text := ParamBlobToStr(Msg.CopyDataStruct.lpData);
     145    if strings.Count = 2 then
     146    begin
     147      if strings.Strings[0] = 'opf' then
     148      begin
     149        ShowMessage('Load OPF-File: ' + ParamStr(2));
     150      end
     151      else if strings.Strings[0] = 'oldb' then
     152      begin
     153        if CreateDataConnection(strings.Strings[1], ODB_ADB) = nil then
     154          ShowMessage('Error while loading the file:' + CrLf +
     155                strings.Strings[1] + CrLf + 'Perhaps not an OniUnPacker-LevelDatabase-file?');
     156      end
     157      else if strings.Strings[0] = 'dat' then
     158      begin
     159        if CreateDataConnection(strings.Strings[1], ODB_Dat) = nil then
     160          ShowMessage('Error while loading the file:' + CrLf +
     161                strings.Strings[1] + CrLf + 'Perhaps not an Oni-.dat-file?');
     162      end;
     163      UpdateStatBar;
     164      UpdateConLists;
     165    end;
     166  end
     167  else
     168    inherited;
     169end;
     170
     171{----------------------------------------------------------------------------}
     172{ Wir überschreiben den DefaultHandler, der alle Nachrichten zuerst bekommt, }
     173{ damit wir auf die Nachricht mit der ID SecondInstMsgId reagieren können.   }
     174{ (Dies ist notwendig, da wir jetzt noch nicht wissen welchen Wert           }
     175{  die ID haben wird, weswegen wir keine statische Message-Prozedure,        }
     176{  so wie bei WM_COPYDATA, schreiben können.)                                }
     177{----------------------------------------------------------------------------}
     178procedure TForm_Main.DefaultHandler(var Message);
     179begin
     180  if TMessage(Message).Msg = SecondInstMsgId then
     181    { Eine zweite Instanz hat uns nach dem Handle gefragt }
     182    { Es wird in die Message-Queue des Threads gepostet.  }
     183    PostThreadMessage(TMessage(Message).WParam, SecondInstMsgId, Handle, 0)
     184  else
     185    inherited;
     186end;
    128187
    129188
     
    388447      end;
    389448  end;
     449  UpdateStatBar;
    390450  UpdateConLists;
    391451end;
     
    482542procedure TForm_Main.menu_createdbClick(Sender: TObject);
    483543begin
    484 {  if Assigned(OniDataConnection) then
    485     if MessageBox(Self.Handle, PChar('You have currently opened a level-file. ' +
    486           'Do you want to close it to continue?'), PChar('Close file?'),
    487           MB_YESNO + MB_ICONQUESTION) = ID_NO then
    488       Exit
    489     else begin
    490       if TryCloseAll then
    491       begin
    492         CloseDataConnection;
    493         UpdateStatBar;
    494       end else
    495         Exit;
    496     end;
     544  ShowMessage('Not yet usable');
     545{
    497546  opend.Filter     := 'Oni-Dat-Files|*.dat';
    498547  saved.Filter     := 'OUP-Level-DB (*.oldb)|*.oldb';
     
    501550    if saved.Execute then
    502551      Form_LevelDB.CreateDatabase(opend.FileName, saved.FileName);
    503 }end;
     552}
     553end;
    504554
    505555
     
    508558procedure TForm_Main.menu_createlvlClick(Sender: TObject);
    509559begin
    510 {  if Assigned(OniDataConnection) then
    511     if MessageBox(Self.Handle, PChar('You have currently opened a level-file. ' +
    512           'Do you want to close it to continue?'), PChar('Close file?'),
    513           MB_YESNO + MB_ICONQUESTION) = ID_NO then
    514       Exit
    515     else begin
    516       if TryCloseAll then
    517       begin
    518         CloseDataConnection;
    519         UpdateStatBar;
    520       end else
    521         Exit;
    522     end;
     560  ShowMessage('Not yet usable');
     561{
    523562  opend.Filter     := 'OUP-Level-DB (*.oldb)|*.oldb';
    524563  saved.Filter     := 'Oni-Dat-Files|*.dat';
     
    527566    if saved.Execute then
    528567      Form_LevelDB.CreateLevel(opend.FileName, saved.FileName);
    529 }end;
     568}
     569end;
    530570
    531571 {#################################}
     
    534574procedure TForm_Main.menu_previewClick(Sender: TObject);
    535575begin
    536   open_child('preview', -1);
     576  open_child('preview', nil, -1);
    537577end;
    538578
     
    540580procedure TForm_Main.menu_txmpreplaceClick(Sender: TObject);
    541581begin
    542   open_child('txmpreplace', -1);
     582  open_child('txmpreplace', nil, -1);
    543583end;
    544584
     
    546586procedure TForm_Main.menu_bineditClick(Sender: TObject);
    547587begin
    548   open_child('binedit', -1);
     588  open_child('binedit', nil, -1);
    549589end;
    550590
     
    552592procedure TForm_Main.menu_raweditClick(Sender: TObject);
    553593begin
    554   open_child('rawedit', -1);
     594  open_child('rawedit', nil, -1);
    555595end;
    556596
     
    558598procedure TForm_Main.menu_extractorClick(Sender: TObject);
    559599begin
    560   open_child('extractor', -1);
     600  open_child('extractor', nil, -1);
    561601end;
    562602
     
    570610procedure TForm_Main.menu_filecompareClick(Sender: TObject);
    571611begin
    572   open_child('compare', -1);
     612  open_child('compare', nil, -1);
    573613end;
    574614
     
    666706
    667707
    668 function TForm_Main.open_child(window_context: String; fileid: Integer): TForm_ToolTemplate;
     708function TForm_Main.open_child(window_context: String; connection: TOniData; fileid: Integer): TForm_ToolTemplate;
    669709var
    670710  toolform:    TForm_ToolTemplate;
     
    722762    MDITab.AddTab(TForm(toolform), iconindex);
    723763    toolform.Caption := AnsiReplaceStr(toolform.Caption, '       ', '');
    724     if fileid > -1 then
    725       toolform.SelectFileID(fileid);
     764    if (fileid > -1) and (connection <> nil) then
     765    begin
     766      toolform.SelectFileID(connection, fileid);
     767    end;
    726768    Result := toolform;
    727769  end;
Note: See TracChangeset for help on using the changeset viewer.