Thema: Delphi Schleifen-Problem

Einzelnen Beitrag anzeigen

Tommy1988
(Gast)

n/a Beiträge
 
#7

Re: Schleifen-Problem (While)

  Alt 16. Nov 2007, 01:30
Alsooo.. ich hab es jetzt vielleicht nicht SO elegant gelöst, aber es funktioniert super.

Was geschiet:
Zuerst wird nach "vorne" gesucht (1. Schleife), und zwar nach dem End-tag "</a>",
Delphi-Quellcode:
procedure TForm1.TBXItem79Click(Sender: TObject);
var
aTag, aEndTag: String;
i, x: Integer;
Point: TPoint;
begin
 // erst nach </a> suchen
  for x:= CurPosition+2 {+2 hinzugefügt} to Length(SynMemo1.Lines.Text) do
   begin
    aEndTag := Copy(SynMemo1.Text, x, 4);
     if aEndTag = '</a>then
      begin
         for i := CurPosition-1 {-1 hinzugefügt}  downto 0 do
           begin
              aTag := Copy(SynMemo1.Text, i, 3);
               if aTag = '<a then
                begin
                  GetCaretPos(Point);
                  aLinkPopUp.Popup(Point.X+125, Point.Y+50);
                  break;
                end;
           end;
      end;
   end;
end;
{
Anmerkung zu den beiden in Klammern gesetzten Kommentaren:
OHNE den Zusatz -1, würde das Menu auch dann kommen, wenn der Cursor HINTER "a" (<Xa, da wo's X ist)
ist.
Ohne den Zusatz +1 würde das Menu auch dann kommen, wenn der Cursor zwischen [..]>und</a> wäre.
}
Über Verbesserungsvorschläge bezüglich des Codes wäre ich reichlich dankbar.
  Mit Zitat antworten Zitat