Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Tomar lineas dentro de un Memo ??

Hola amigos del foro, necesito saber, como puedo capturar lineas dentro de un memo, resulta q tengo que hacer una pequeña aplicacion donde el usuario ingrase una consulta SQl y se visualize , claro en otro control, pero me gustaria que solo se ejecutara las lineas selecionadas, bueno si es que estan seleccionadas si no todas, como pudo tomar solo este contenido si es el caso

gracias espero sus comentarios
Responder Con Cita
  #2  
Antiguo 08-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué tal la propiedad SelText del Memo?

// Saludos
Responder Con Cita
  #3  
Antiguo 08-02-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Hola Roman, probe eso , pero solo solo pude capturar la primera linea seleccionada...............hize esto

Código PHP:
 memo.SelText 
Responder Con Cita
  #4  
Antiguo 08-02-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Coco_jac
(...) solo pude capturar la primera linea seleccionada
Es extraño. Algo así me funciona a la perfección:

Código Delphi [-]
  if Memo1.SelLength > 0 then
    ShowMessage(memo1.SelText);

Es decir, primero se mira si hay texto seleccionado en el "Memo", y, si es así, se muestra el texto seleccionado... que puede ser una palabra, una o varias líneas e incluso todo el texto del "Memo"...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-02-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Hola disculpa, pero me habia equivocado je je je.
Mas bien quisiera saber como puedo saber si se ah seleccionado lineas en el Memo, bueno ahora estoy usando un RichEdit, pero necesito saber ese detalle .
A me olvidaba Lines en un Tstring, pero cuando tomo memo.SelText tengo un string??. pero me gustaria poder barrer lo seleccionado e decir cada una de las diferentes lineas que selecciono, es posible.

Espero sus comentarios.
Gracias
Responder Con Cita
  #6  
Antiguo 08-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Mmmm, no. No, realmente no entendí nada. Ya no sé si quieres al Memo o no lo quieres, si quieres un RichEdit o no lo quieres. A ver, si lees en voz alta:

"A me olvidaba Lines en un Tstring"

¿entiendes algo?

Yo digo que te tomes un respirito, ordenes tus ideas y a la carga nuevamente

// Saludos
Responder Con Cita
  #7  
Antiguo 08-02-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Hola Roman, disculpa , creo que escribi tan rapido que no me di cuenta lo que decia, je je je.
Bueno cambie por un RichEdit porque se puede manejar formatos, cosa que me interesa, mi pregunta es saber, si se ha selecionado alguna linea en un RichEdit, estoy haciendo una pequeña aplicacion algo parecido aun analizador de consulta, pero algo simple nomas, pero me gustaria saber si el usuario selecciono determinadas lineas que solo quiere que se ejecute y no barrer todas las lineas.
Espero tus comentarios y disculpa las barbaridades anteriores
Responder Con Cita
  #8  
Antiguo 08-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Pues viene a ser lo mismo! ¿SelText no funciona? Mira que al rato viene dec y te va a decir lo mismo que antes así que, ¿cuál es el problema con SelText?

// Saludos
Responder Con Cita
  #9  
Antiguo 09-02-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Efectivamente, los "TRichEdit" cuentan con sendas propieades "SelLength" y "SelText". La primera es de tipo "integer" y puede indicar si hay texto seleccionado en el "RichEdit", pero texto no significa línea, sino que puede seleccionarse una letra, varias, una palabra, una línea o varias de ellas.

Lo que obtendrás con "SelText" es justamente el texto seleccionado y, sí, es una propiedad de tipo "string", como puedes ver en el siguiente código (y en el de más arriba), puesto que "ShowMessage" requiere una variable de tipo "string", precisamente:

Código Delphi [-]
  if(RichEdit1.SelLength > 0) then
    ShowMessage(RichEdit1.SelText);

Lo que arriba puede leerse vendría a decir "si hay texto seleccionado en el "TRichEdit", por favor, muéstramelo".

Estoy pensando si no te fuera mejor utilizar un componente como "TListBox", puesto que ahí sí se podría hablar propiamente de seleccionar "Items", a modo de "líneas". Pero, claro, no sé yo si este control se adaptaría a lo que precisas. ¿A ti qué te parece?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 09-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Sigo sin entender cabalmente porqué no te gusta SelText. Por ejemplo, si hacemos

Código Delphi [-]
Memo1.Text := RichEdit1.SelText;

el memo tendrá el texto seleccionado en el richedit. ¿No basta eso? De hecho tendrá tantas líneas como tengas en la selección del richedit y puedes procesar las líneas del memo una a una con Memo.Lines.

Bueno, hay un punto a considerar. Si el richedit tiene su propiedad WordWrap en false, lo que dije arriba parece ser cierto, pero si WordWrap es true el concepto mismo de línea es relativo ya que depende del ajuste del texto según el tamaño del control. En este caso te peude servir el siguiente código:

Código Delphi [-]
var
  First, Last, I: Integer;

begin
  with RichEdit1 do
  begin
    First := Perform(EM_LINEFROMCHAR, SelStart, 0);
    Last := Perform(EM_LINEFROMCHAR, SelStart + SelLength, 0);

    for I := First to Last do
      Memo1.Lines.Add(Lines[i]);
  end;
end;

EM_LINEFROMCHAR es un mensaje que se manda al control de edición para determinar el número de línea (basada en cero) que ocupa el caracter con índice especificado (segundo parámetro de Perform). En este caso, no importa el tamaño en que pongas el control, en Memo.Lines obtendrás las líneas que ves en el richedit.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Establecer numero maximo lineas RichEdit o Memo pepecharlie67 Varios 9 05-04-2006 22:52:52
Contar Lineas de Codigo Logicas y Fisicas bustio OOP 9 15-11-2005 22:28:58
Luego de borrar lineas en un memo... pablo OOP 3 26-04-2005 01:03:02
Eliminar líneas repetidas de un memo DarkByte Varios 5 31-03-2004 21:44:14
Insertar Lineas en Memo por Abajo, y subir todas las demás, una linea. sase Varios 1 19-08-2003 23:03:25


La franja horaria es GMT +2. Ahora son las 17:45:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi