FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Tecnicas para resaltar sintaxis
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; Gacias...... Última edición por Mauro.NET fecha: 04-08-2005 a las 02:59:24. |
#2
|
||||
|
||||
Hola,
De entrada diré que la tarea me parece ardua: no sabría ni por donde empezar. Puede que te resultara útil echar un vistazo al libro Dissecting a C# Application que trata sobre el desarrollo de la aplicación SharpDevelop. Uno de los temas con los que tuvieron que lidiar fue con el que te ocupa y esto se trata en el libro mencionado. Por otro lado tal vez podrías utilizar los componentes SynEdit los cuales cuentan con un montón de sintaxis de lenguajes de programación soportados, y, cuando no te sean suficientes, puedes definir los que te sean menester más o menos sencillamanete. Con uno de los Add-On que hay publicado para los componentes se incluyen cientos de lenguajes de programación. Si los pruebas, digo los componentes SynEdit, a no ser que se te halla metido en la cabeza, como suele decirse, hacer algo por tu propia cuenta, estoy seguro de que te quedarás con ellos, pues son muy buenos, de código abierto, gratuitos y muy usados por no pocas aplicaciones, que fían de su potencialidad. |
#3
|
||||
|
||||
Hacer tu propio resaltador de sintaxis puede ser una tarea muy compleja. Pienso que lo meor es que uses algo ya hecho. Por ejemplo, el SynEdit es una componente gratuita que maneja varias sintaxis, entre ellas SQL.
// Saludos |
#4
|
||||
|
||||
Hola,
roman 0 - dec 1 |
#5
|
|||
|
|||
Gracias....... estoy instalando el componente, por lo que cuentan ya ni tengo ganas de ponerme a programar algo asi jejejejejeje
Saludos... |
|
|
|