Ignore:
Timestamp:
Dec 24, 2017, 11:13:05 AM (7 years ago)
Author:
chronos
Message:
  • Modified: Show rules list docked directly to main form.
Location:
branches/generator
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/generator

    • Property svn:ignore
      •  

        old new  
         1generator
        12generator.exe
        23generator.lps
        34lib
        45heaptrclog.trc
         6Generated
  • branches/generator/Forms

    • Property svn:ignore set to
      *.lrj
  • branches/generator/Forms/UFormMain.pas

    r129 r130  
    2626    CoolBar1: TCoolBar;
    2727    MainMenu1: TMainMenu;
    28     MemoBNF: TMemo;
     28    MemoEbnf: TMemo;
     29    MemoBnf: TMemo;
    2930    MenuItem1: TMenuItem;
    3031    MenuItem10: TMenuItem;
     
    3334    MenuItem13: TMenuItem;
    3435    MenuItem2: TMenuItem;
    35     MenuItem3: TMenuItem;
    3636    MenuItem4: TMenuItem;
    3737    MenuItem5: TMenuItem;
     
    4141    MenuItem9: TMenuItem;
    4242    OpenDialog1: TOpenDialog;
     43    PageControl1: TPageControl;
    4344    SaveDialog1: TSaveDialog;
     45    TabSheetRules: TTabSheet;
     46    TabSheetBnf: TTabSheet;
     47    TabSheetEbnf: TTabSheet;
    4448    ToolBar1: TToolBar;
    45     ToolButton1: TToolButton;
    4649    ToolButton2: TToolButton;
    4750    ToolButton3: TToolButton;
     
    6467    procedure ReloadMemo;
    6568    procedure UpdateInterface;
     69    procedure GrammerChange(Sender: TObject);
     70    procedure GrammerDestroy(Sender: TObject);
    6671  public
    6772    { public declarations }
     
    130135  Core.PersistentForm1.Load(Self, True);
    131136  Core.Initialize;
    132   ReloadMemo;
    133   UpdateInterface;
     137  PageControl1.TabIndex := 0;
     138  ReloadMemo;
     139  UpdateInterface;
     140
     141  FormRules.Rules := Core.Grammer.Rules;
     142  FormRules.ManualDock(TabSheetRules, nil, alClient);
     143  FormRules.Align := alClient;
     144  FormRules.Show;
    134145end;
    135146
    136147procedure TFormMain.ReloadMemo;
    137148begin
    138   if Assigned(Core.Grammer) then
    139     MemoBNF.Lines.Text := Core.Grammer.GetString
    140     else MemoBNF.Lines.Clear;
     149  if Assigned(Core.Grammer) then begin
     150    MemoBnf.Lines.Text := Core.Grammer.GetString;
     151    MemoEbnf.Lines.Text := Core.Grammer.GetString;
     152  end else begin
     153    MemoBnf.Lines.Clear;
     154    MemoEbnf.Lines.Clear;
     155  end;
    141156end;
    142157
     
    159174end;
    160175
     176procedure TFormMain.GrammerChange(Sender: TObject);
     177begin
     178  ReloadMemo;
     179  UpdateInterface;
     180  if Assigned(FormRules) then begin
     181    FormRules.Rules := Core.Grammer.Rules;
     182    FormRules.ReloadList;
     183    FormRules.UpdateInterface;
     184  end;
     185end;
     186
     187procedure TFormMain.GrammerDestroy(Sender: TObject);
     188begin
     189  ReloadMemo;
     190  UpdateInterface;
     191  if Assigned(FormRules) then begin
     192    FormRules.Rules := nil;
     193    FormRules.ReloadList;
     194    FormRules.UpdateInterface;
     195  end;
     196end;
     197
    161198procedure TFormMain.AExitExecute(Sender: TObject);
    162199begin
     
    183220    Core.Grammer := TGrammer.Create;
    184221    Core.Grammer.FileName := SNewGrammer;
    185     ReloadMemo;
    186     UpdateInterface;
     222    Core.Grammer.OnChange := GrammerChange;
     223    Core.Grammer.OnDestroy := GrammerDestroy;
     224    Core.Grammer.Change;
    187225  end;
    188226end;
     
    210248      Core.LastOpenedFile := OpenDialog1.FileName;
    211249      Core.Grammer := TGrammer.Create;
     250      Core.Grammer.OnChange := GrammerChange;
     251      Core.Grammer.OnDestroy := GrammerDestroy;
    212252      Core.Grammer.LoadFromXmlFile(OpenDialog1.FileName);
    213       ReloadMemo;
    214       UpdateInterface;
     253      Core.Grammer.Change;
    215254    end;
    216255  end;
     
    232271  if (DialogResult = mrNo) or (DialogResult = mrYes) then begin
    233272    FreeAndNil(Core.Grammer);
    234     ReloadMemo;
    235     UpdateInterface;
    236273  end;
    237274end;
Note: See TracChangeset for help on using the changeset viewer.