Commit 98cc6c01 authored by Jucelino Fonseca's avatar Jucelino Fonseca

Ajuste e teste

parent 30df7598
......@@ -192,6 +192,7 @@ type
function IsKeyword(piItem : string): boolean;
function GetTextBetweenWord(piSynEdit :TSynEdit;piWordPos: TPoint;piWord : string) : string;
function IsExepressaoValida(piOpEve: TFaOpenEvent;piTexto : string; piTemPalavraAntes : Boolean = false):boolean;
function GetPrevWordPosValida(piSynEdit: TSynEdit) :TPoint;
protected
procedure CreateParams(var Params : TCreateParams); override;
function Connect : acPersistenceSession;
......@@ -1304,7 +1305,8 @@ function TExplorerV2.GetTextBetweenLines(piSynEdit: TSynEdit; out
var p1, p2, PointAtual: TPoint;
lLen : integer;
begin
p1 := piSynEdit.PrevWordPos;
//p1 := piSynEdit.PrevWordPos;
p1 := Self.GetPrevWordPosValida(piSynEdit);
piCareWordXY := p1;
p2 := piSynEdit.CaretXY;
PointAtual := P2;
......@@ -1431,7 +1433,10 @@ begin
end
else if (lTextAfterWord <> '') then
begin
result := lTextAfterWord;
if not IsExepressaoValida(opEve,trim(lTextAfterWord),lTemPalavra) then
begin
result := lTextAfterWord;
end;
end;
end
else
......@@ -1526,16 +1531,30 @@ begin
li_len := Length(piTexto);
if (piOpEve = fopEvenSelectCompleto) then
begin
ls_expressao := '=,()*';
if (trim(piTexto) = __ASTERICO) then
begin
li_Pos := li_Len + 1;
result := false;
end;
if piTemPalavraAntes then
begin
ls_expressao := '=,(*';
end
else
begin
ls_expressao := '=,()*';
if (trim(piTexto) = __ASTERICO) then
begin
li_Pos := li_Len + 1;
result := false;
end;
end;
end
else if (piOpEve = fopEvenFromCompleto) then
begin
ls_expressao := '=,()';
if piTemPalavraAntes then
begin
ls_expressao := ',(';
end
else
begin
ls_expressao := '=,()';
end
end
else if (piOpEve = fopEvenWhereCompleto) then
begin
......@@ -1560,10 +1579,36 @@ begin
break;
end;
end;
li_Pos := li_Pos + 1;
li_Pos := li_Pos + 1;
end;
end;
function TExplorerV2.GetPrevWordPosValida(piSynEdit: TSynEdit): TPoint;
var lWordAnt,
lWord : string;
begin
result := piSynEdit.PrevWordPos;
lWordAnt := trim(piSynEdit.GetWordAtRowCol(result));
if lWordAnt = '' then
begin
while (trim(lWordAnt) = '') and (result.Y > 0) do
begin
result.Y := result.Y - 1;
lWordAnt := trim(piSynEdit.GetWordAtRowCol(result));
end;
result.X := result.X + Length(lWordAnt) + 1;
lWord := trim(piSynEdit.GetWordAtRowCol(result));
while lWord <> lWordAnt do
begin
lWordAnt := lWord;
result.X := result.X + Length(lWord);
lWord := trim(piSynEdit.GetWordAtRowCol(result));
end;
end;
end;
procedure TExplorerV2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
......@@ -2358,4 +2403,4 @@ begin
{$ENDIF}
end;
end.11
end.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment