Ignore:
Timestamp:
Nov 10, 2009, 11:13:51 AM (15 years ago)
Author:
george
Message:
  • Přidáno: Při kliknutí na chybové hlášení se přesune kurzor v kódu na místo chyby.
Location:
branches/Void
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/Void

    • Property svn:ignore
      •  

        old new  
        77*.dsk
        88*.~dsk
         9Output.bdsproj
         10Output.c
         11Output.dpr
         12Output.exe
  • branches/Void/UMainForm.pas

    r16 r17  
    2525    Label3: TLabel;
    2626    Label4: TLabel;
    27     Memo3: TMemo;
     27    ListView1: TListView;
    2828    SynCppSyn1: TSynCppSyn;
    2929    SynEdit1: TSynEdit;
     
    3636    procedure FormDestroy(Sender: TObject);
    3737    procedure FormShow(Sender: TObject);
    38     procedure SynEdit2Change(Sender: TObject);
     38    procedure ListView1Click(Sender: TObject);
    3939  private
    4040    SourceCode: TMemoryStream;
     
    5959end;
    6060
    61 procedure TMainForm.SynEdit2Change(Sender: TObject);
     61procedure TMainForm.ListView1Click(Sender: TObject);
    6262begin
    63 
     63  if Assigned(ListView1.Selected) then begin
     64    SynEdit1.CaretXY := TErrorMessage(Compilator.ErrorMessages[
     65      ListView1.Selected.Index]).CodePosition;
     66    SynEdit1.SetFocus;
     67  end;
    6468end;
    6569
     
    8589var
    8690  Code: string;
     91  OutputFileName: string;
    8792begin
    8893  with Compilator do begin
    89     Memo3.Lines.Clear;
     94    ListView1.Clear;
    9095    Code := SynEdit1.Lines.Text;
    9196    SourceCode.Size := 0;
     
    95100      Generator := TPascalGenerator.Create;
    96101      SynEdit2.Highlighter := SynPasSyn1;
     102      OutputFileName := 'Output.dpr';
    97103    end else
    98104    if ComboBox1.ItemIndex = 1 then begin
    99105      Generator := TCGenerator.Create;
    100106      SynEdit2.Highlighter := SynCppSyn1;
     107      OutputFileName := 'Output.c';
    101108    end else
    102109    if ComboBox1.ItemIndex = 2 then begin
    103110      Generator := TZ80Generator.Create;
    104111      SynEdit2.Highlighter := SynCppSyn1;
     112      OutputFileName := 'Output.asm';
    105113    end;
    106     Compile;
     114
     115    try
     116      Compile;
     117    except
     118    end;
     119
    107120    SynEdit2.Lines.Assign(Generator.Output);
     121    SynEdit2.Lines.SaveToFile(OutputFileName);
    108122    ModelViewer.Show(TreeView1);
    109123  end;
     
    112126procedure TMainForm.CompilatorError(Text: string; var Terminate: Boolean;
    113127  Position: TPoint);
     128var
     129  NewItem: TListItem;
    114130begin
    115131  Terminate := False;
    116   Memo3.Lines.Add('(' + IntToStr(Position.X) + ', ' + IntToStr(Position.Y) + ') Error: ' + Text);
     132  NewItem := ListView1.Items.Add;
     133  with NewItem do begin
     134    Caption := '';
     135    SubItems.Add(IntToStr(Position.X) + ', ' + IntToStr(Position.Y));
     136    SubItems.Add('Error: ' + Text);
     137  end;
    117138end;
    118139
Note: See TracChangeset for help on using the changeset viewer.