Einzelnen Beitrag anzeigen

Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#11

Re: TSynEdit Aktuelle Zeile Farbig

  Alt 20. Okt 2006, 06:58
Hallo, versuchs doch mal hiermit:
Delphi-Quellcode:
procedure TEditForm.SynEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if farbig then
  begin
    if Key = VK_DOWN then iOffset := 1;
    if (Key = VK_UP) then iOffset := -1;
    if ((SynEdit1.CaretY = 1) and (iOffset = -1)) or
    ((SynEdit1.CaretY = SynEdit1.Lines.Count) and (iOffset = 1)) or
    (not (Key in [VK_DOWN,VK_UP])) then iOffset := 0;
    SynEdit1.Refresh;
  end;
end;
farbig ist dabei eine Boolean-Variable, mit der die Markierung der aktuellen Zeile ein und ausgeschaltet werden kann. iOffset ist eine Integer-Variable.
Weiter geht's:
Delphi-Quellcode:
procedure TEditForm.SynEdit1SpecialLineColors(Sender: TObject;
  Line: Integer; var Special: Boolean; var FG, BG: TColor);
begin
  if farbig then
  begin
    if (Line = (SynEdit1.CaretY+iOffset)) then
    begin
      Special := true;
      bg := clYellow;
    end;
  end
  else
    Special := False;
end;
Mit bg wird die Farbe festgelegt.

Anzeigen der aktuellen Zeile und Spalte z. B. in einer Statusbar:
Delphi-Quellcode:
procedure TEditForm.SynEdit1StatusChange(Sender: TObject;
  Changes: TSynStatusChanges);
begin
  if Changes * [scAll, scCaretX, scCaretY] <> [] then
    Statusbar1.Panels[1].Caption := Format(' Zeile:%6d, Spalte: %3d',
    [SynEdit1.CaretY, SynEdit1.CaretX]);
end;
Hoffe, geholfen zu haben.
  Mit Zitat antworten Zitat