Hola gente, estoy haciendo una aplicacion que permite hacer consultas SQL a una bases de datos, en donde la pantalla se divide en 2 partes. La superior es para escribir la consulta (con sintaxis resaltada), y la de abajo te muestra los resultados en una grilla con posibilidad de exportar a pdf, excel, html, etc.
Aunque les parezca tonto, esto es muy pobre en algunos motores de DB. Por ejemplo en una empresa donde trabajo, usan Sybase Anywere 5 y tiene una aplicacion similar pero no te resalta la sintaxis y eso es espantoso a la hora de trabajar con consultas tan extensas como estoy acostumbrado.
En el proyecto estoy usando el componente RichEdit, ya que me permite buscar palaras y aplicar formato (color, fuente,etc) . Estuve usando codigo que encotre por aqui en el foro pero no era del todo bueno, yo quiero hacer que resalte la sintaxis a medida que vas escribiendo como el Delphi y que sea eficiente.
Yo lo que hago por ahora es esto:
Código:
procedure ResaltaPalabraEnRE(RichEdit: TCustomRichEdit; Palabra: string);
{Resalta palabra en RichEdit}
var
Texto: string;
Posicion, position, EndPos: integer;
begin
texto := richedit.Lines.Text;
Posicion := 0;
with RichEdit do
begin
Endpos := Length(RichEdit.Text);
Lines.BeginUpdate;
while Position <> -1 do
begin
Endpos := Length(RichEdit.Text) - posicion;
Position := FindText(Palabra, posicion, Endpos, [stWholeWord]);
Inc(Posicion, Length(Palabra));
SelStart := Position;
SelLength := Length(Palabra);
richedit.SelAttributes.Color := clred;
end;
Lines.EndUpdate;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
// Por cada palabra que se encuentra en el ListBox, la resalta
for i:= 0 to lista.Count-1 do
ResaltaPalabraEnRE(RichEdit, ListBox.Items.Strings[i]);
end;
Mientras tanto para ganar tiempo, si alguien conoce un programita similar al que estoy haciendo y que sea independiente de la base de datos, pasenme la direccion para bajarlo.
Gacias......
