AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte PlainEdit 1.7.6 - Texteditor für Windows
Thema durchsuchen
Ansicht
Themen-Optionen

PlainEdit 1.7.6 - Texteditor für Windows

Ein Thema von Gaijin · begonnen am 2. Dez 2006 · letzter Beitrag vom 11. Jan 2009
 
kalmi01
(Gast)

n/a Beiträge
 
#11

Re: PlainEdit 1.4.3 - Texteditor für Windows

  Alt 15. Aug 2007, 10:25
Zitat:
Versprechen kann ich es dir nicht, aber ich werde mich mal damit beschäftigen...
Habe Dir eine Unit gesendet, die Du dafür einbauen kannst.

So könnte dann Dein Compare aussehen:
Delphi-Quellcode:
    procedure TCEp.Compare(const Child1, Child2 : TCEpChild);
      var
        i, j : integer;
        Differ : TStandardTextComparer;
        Diff : TDifference;
        BMark : TSynEditMark;
      begin
        Child1.ChainWith(Child2);
        Child2.ChainWith(Child1);
        Child1.Compare(Child2);
        Child2.Compare(Child1);

        Differ := TStandardTextComparer.Create;
        Differ.IgnoreCase := ((MainForm.TB_SelectHighlighter.Text <> 'PostScript')
                                and
                                (MainForm.TB_SelectHighlighter.Text <> 'Text'));
        Differ.IgnoreSpaces := false;
        Differ.SpacesAsOne := (MainForm.TB_SelectHighlighter.Text <> 'Text');
        Differ.Heuristic := 0;

        Differ.Clear;
        Differ.Compare(Child1.Editor.Lines, Child2.Editor.Lines);

        SetLength(Child1.CmpLineR, Child1.Editor.Lines.Count+1);
        SetLength(Child1.CmpLineG, Child1.Editor.Lines.Count+1);
        for i := 0 to Child1.Editor.Lines.Count
        do begin
             Child1.CmpLineR[i] := false;
             Child1.CmpLineG[i] := false;
           end;
           
        SetLength(Child2.CmpLineR, Child2.Editor.Lines.Count+1);
        SetLength(Child2.CmpLineG, Child2.Editor.Lines.Count+1);
        for i := 0 to Child2.Editor.Lines.Count
        do begin
             Child2.CmpLineR[i] := false;
             Child2.CmpLineG[i] := false;
           end;
           
        for i := 0 to Differ.Count - 1 do
        begin
          Diff := Differ.Diff[i];

          for j := Diff.Left.Start to Diff.Left.Stop
          do Child1.CmpLineR[j] := true;

          if (Diff.Left.Start = Diff.Left.Stop)
          then Child1.CmpLineG[Diff.Left.Start] := true;

          BMark := TSynEditMark.Create(Child1.Editor);
          with BMark
          do begin
               Line := Diff.Left.Start;
               ImageIndex := 10;
               Visible := true;
             end;
          Child1.Editor.Marks.Place(BMark);

          for j := Diff.Right.Start to Diff.Right.Stop
          do Child2.CmpLineR[j] := true;

          if (Diff.Right.Start = Diff.Right.Stop)
          then Child2.CmpLineG[Diff.Right.Start] := true;

          BMark := TSynEditMark.Create(Child2.Editor);
          with BMark
          do begin
               Line := Diff.Right.Start;
               ImageIndex := 10;
               Visible := true;
             end;
          Child2.Editor.Marks.Place(BMark);
        end;
        i := Differ.Count;
        Differ.Free;

        with Child1.Editor
        do begin
             OnSpecialLineColors := Child1.EditorSpecialLineColors;

             CaretX := 1;
             CaretY := 1;
             TopLine := 1;

             Repaint;
           end;
        with Child2.Editor
        do begin
             OnSpecialLineColors := Child2.EditorSpecialLineColors;

             CaretX := 1;
             CaretY := 1;
             TopLine := 1;

             Repaint;
           end;

        Application.ProcessMessages;
        MessageBox(0, PAnsiChar(IntToStr(i) + ' Unterschiede gefunden.'), 'Dateiunterschiede finden', MB_ICONINFORMATION or MB_OK or MB_TOPMOST);
      end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz