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 06-04-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Eliminar una Linea Memo especificada

Hola a todos.

Programa:

Delphi XE2

A utilizar:

-Memo

-Boton

Problema:

Necesito eliminar la primera linea o fila del memo en una de las funciones y en otra de las funciones la segunda linea o fila del memo.

Codigo:

E puesto lo siguiente, y claro no a funcionado.

Código Delphi [-]
var 

TT:String;
begin
            TT:=Memo1.Lines[1];
            Memo1.Lines.Delete(TT);
end;

Espero su respuesta por favor y gracias...
Responder Con Cita
  #2  
Antiguo 06-04-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola maxzama.
Cita:
Empezado por maxzama Ver Mensaje
Necesito eliminar la primera linea o fila del memo en una de las funciones y en otra de las funciones la segunda linea o fila del memo.
Por lo que entendí de lo anterior, sería:
Código Delphi [-]
// primer linea
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Delete(0);
end;

// segunda linea
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Delete(0); // la 1 pasó a ser 0
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 06-04-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Gracias.

Otra ayuda, como puedo indicar la fila a eliminar, utilizando un edit.

Ejemplo:

// Se que es erroneo, pero lo hago para hacerme enterder.

Codigo:

Código Delphi [-]

1) Memo1.Lines.Delete(Edit61.Text);

O

2) var
TT:Strin;
Begin
      TT:=Edit61.Text;
      Memo1.Lines.Delete(TT);
end;
Responder Con Cita
  #4  
Antiguo 06-04-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola maxzama.

Basicamente:
Código Delphi [-]
...
begin
  try
    Memo1.Lines.Delete(StrToInt(Edit1.Text));
  except
    raise Exception.Create('El dato ingresado no es un número entero.');
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 06-04-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Uff, que cosa.

Asi que el error era. De que no maneja String, sino real. ((si es que se dice asi)).

// Que codigo tan tonto es, pero como te frega la vida sino te sabes las reglas. en este caso del eliminar fila del Memo...

y falto colocar:
Código Delphi [-]
StrToInt(Edit1.Text)

Gracias, nueva-mente.
Responder Con Cita
  #6  
Antiguo 06-04-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola maxzama.
Cita:
Empezado por maxzama Ver Mensaje
...
Asi que el error era. De que no maneja String, sino real. ((si es que se dice asi)).
...
Solo a modo de aclaración, los índices de las "líneas" de cualquier TStrings, o componente que haga uso de esta clase (Memo, ComboBox, ListBox, ...) son de tipo Integer (entero) no un número real, de allí que usé la función StrToInt.
Cuando se quiere convertir de cadena a punto flotante se debe usar StrToFloat.

Información sobre los tipos de datos que maneja Delphi: Delphi Data Types

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-04-2015 a las 22:52:06.
Responder Con Cita
  #7  
Antiguo 07-04-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Para completar lo del maestro ecfisa:

En un form simplemente coloque un TMemo, 2 TButton, un TEdit y un TSpinEdit

Uno de los botones lo llame BtnBuscarBorrar y el otro BtnBorrarPorIndice

Y agregue este codigo en los eventos OnClick

Código Delphi [-]
procedure TForm3.BtnBuscarBorrarClick(Sender: TObject);
var
    i: integer;
    str: string;
begin
    str := Edit1.Text;
    // le pido el indice del string que quiero borrar
    i := Memo1.Lines.IndexOf(str);

    // IndexOf devuelve un entero. Si me devuelve -1 siginifica que no lo encontro
    if i <> -1 then
    begin
        Memo1.Lines.Delete(i);
        ShowMessageFmt('Borrado string %s en la posicion %d', [QuotedStr(str), i]);
    end;
end;

procedure TForm3.BtnBorrarPorIndiceClick(Sender: TObject);
var
    i: integer;
    str: string;
begin
    i := SpinEdit1.Value;

    try
        // puedo acceder por posicion a cada string si quiero
        str := Memo1.Lines[i];
        Memo1.Lines.Delete(i);
        ShowMessageFmt('Borrado string %s en la posicion %d', [QuotedStr(str), i]);
    except on E: Exception do
        ShowMessageFmt('No pude borrar! El error fue:%s %s', [sLineBreak, E.Message]);
    end;
end;

Y en tiempo de diseño agrege en el memo a traves de la propiedad Lines algun texto (cualquier cosa)

El resultado:

1) Apenas ejecuto el programa:




2) En mi memo tengo el string "Borrame!", si en mi edit escribo "Borrame!" y hago click en el boton "Buscar y Borrar":



3) Y si en el SpinEdit indico el indice y hago click en el otro boton:

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
Eliminar salto de Linea nuxbaster Varios 2 12-11-2014 10:23:14
eliminar una linea de un txt st7 Varios 5 19-04-2011 13:14:33
eliminar una linea en un memo gulder Varios 2 24-04-2007 05:11:30
Eliminar, actualizar e insertar linea en un memo gulder Varios 12 22-04-2007 00:36:38
Eliminar la ultima linea de un Memo MRSAM Varios 2 18-10-2005 21:02:37


La franja horaria es GMT +2. Ahora son las 08:58:54.


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