Einzelnen Beitrag anzeigen

Benutzerbild von derpepe
derpepe

Registriert seit: 16. Mär 2005
Ort: Dotternhausen
164 Beiträge
 
Delphi 2005 Personal
 
#17

Re: SynEdit: Textfarbe an bestimmter Stelle herausfinden

  Alt 17. Mär 2005, 15:24
Mal noch kurz die Funktion um die es geht

Delphi-Quellcode:
function THauptfenster.GetItemPart(identifier,name,pname,part:string):string;
var
  position,line:integer;
  found:boolean;
  aname,s,temp:string;
  xy:tbuffercoord;
  attribute:tsynhighlighterattributes;
begin
  SynEdit2.Lines.Text:=getitem(identifier,name,pname);
  line:=0;
  found:=false;
  while (line<=SynEdit2.lines.count-1) do begin
    temp:=cutby(synedit2.lines[line]);

    xy.Char:=pos(lowercase(part),lowercase(Synedit2.lines[line]))+length(part);
    xy.Line:=line;

    if SynEdit2.GetHighlighterAttriAtRowCol(xy,s,attribute) then
      aname:=attribute.name
    else
      aname:='';

    if (lowercase(copy(temp,1,length(part)+1))=lowercase(part)+' ') and (aname<>commentAttr) and (aname<>stringAttr) then begin
      found:=true;
      break;
    end;
    inc(line);
  end;
  if found then begin
    position:=pos(lowercase(part),lowercase(synedit2.lines[line]));
    getitempart:=cutby(copy(synedit2.lines[line],position+length(part),length(synedit2.lines[line])-position-length(part)+1));
  end else getitempart:='';
end;
Ich würde gerne des SynEdit2 durch eine TStringList ersetzen, allerdings wird dann die GetHighlighterAttriAtRowCol unmöglich. Oder doch nicht?
Peter J. Schneider
http://raketenwerfer.de/programmieren/delphi/index.html
Nes dar in da kev, sed un est a log!
  Mit Zitat antworten Zitat