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 14-06-2006
Avatar de GaaK
GaaK GaaK is offline
Miembro
 
Registrado: oct 2005
Ubicación: Trujillo - Peru
Posts: 31
Poder: 0
GaaK Va por buen camino
Codigo fuente Agenda

Hola, desarrollando una agenda en mi Delphi 2005 (Win32) me ocurre lo siguiente:
1. Creo una Nueva Aplicación VCL.
2. En el Form1 agrego un TListView1.
3. Hago que <Unit1.pas> sea:
Código Delphi [-]
 
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;
type
  TForm1 = class(TForm)
    ListView1: TListView;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
  i, registros : Integer;
  iStr : String;
  Lista : TStringList;
begin
  registros := 100-1;

  ShowMessage('Creando lista de datos ''file.lst'', espere...');
  with TStringList.Create do
  try
    for i:=0 to registros do
      begin
        iStr := IntToStr(i+1);
        Add('Nombre de Contacto ' + iStr);
        Add(DateToStr(Now+i));
        Add('Email_' + iStr + '@hotmail.com');
        Add('Tel. de Contacto ' + iStr);
        Add('Comentarios');
      end;
    SaveToFile(ExtractFilePath(Application.ExeName) + 'file.lst');
  finally
    Free;
  end;

  ShowMessage('Actualizando Propiedades de ListView1, espere...');
  ListView1.ViewStyle := vsReport;
  ListView1.Align := alClient;
  ListView1.Columns.Add.Caption := 'Nombre';
  ListView1.Columns.Add.Caption := 'Nacimiento';
  ListView1.Columns.Add.Caption := 'Correo';
  ListView1.Columns.Add.Caption := 'Telefono';
  ListView1.Columns.Add.Caption := 'Comentarios';

  ShowMessage('Llenando los Items en ListView1, espere...');
  Lista := TStringList.Create;
  Lista.LoadFromFile(ExtractFilePath(Application.ExeName) + 'file.lst');
  for i:=0 to (Lista.Count div 5)-1 do
    with ListView1.Items.Add do
    begin
      Caption := Lista[i*5];
      SubItems.Add(Trim(Lista[i*5+1]));
      SubItems.Add(Trim(Lista[i*5+2]));
      SubItems.Add(Trim(Lista[i*5+3]));
      SubItems.Add(Trim(Lista[i*5+4]));
    end;
end;
end.
4. 'Así como está' el código, al mostrar 100 registros lo hace de manera normal.
5. Si agrego un XPMan en la sección 'uses' y ejecuto el programa, me doy con la NO grata sorpresa que con la barra de desplazamiento, se producen unos destellos como si fuera una actualización muy lenta del ListView1. ¿Hay alguna forma de evitar esto con XPMan activo?
6. Lo dicho en el paso 5 ocurre si compilamos el código 'así como está' pero cambiando el número de registros a 19000, es decir, sin usar XPMan pero con una gran cantidad de registros se obtiene lo mismo que en el paso 5.
7. Con 19000 registros tarda el 'proceso de llenado' del ListView1... pero, ¿porqué tarda ese mismo tiempo al cerrarse la aplicación?
Gracias de antemano.
- GaaK -
Responder Con Cita
  #2  
Antiguo 16-06-2006
Avatar de GaaK
GaaK GaaK is offline
Miembro
 
Registrado: oct 2005
Ubicación: Trujillo - Peru
Posts: 31
Poder: 0
GaaK Va por buen camino
Por favor, algùn comentario acerca de mi problema?

- GaaK -
Responder Con Cita
  #3  
Antiguo 19-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Añade BeginUpdate / EndUpdate al Listview para que no actualice cada vez que se añade un elemento, sino que sólo actualice los items al terminar de añadirlos todos.

Código Delphi [-]
 
procedure TForm1.FormCreate(Sender: TObject);
var
  i, registros : Integer;
  iStr : String;
  Lista : TStringList;
begin
  registros := 100-1;

  ShowMessage('Creando lista de datos ''file.lst'', espere...');
  with TStringList.Create do
  try
    for i:=0 to registros do
      begin
        iStr := IntToStr(i+1);
        Add('Nombre de Contacto ' + iStr);
        Add(DateToStr(Now+i));
        Add('Email_' + iStr + '@hotmail.com');
        Add('Tel. de Contacto ' + iStr);
        Add('Comentarios');
      end;
    SaveToFile(ExtractFilePath(Application.ExeName) + 'file.lst');
  finally
    Free;
  end;

  ShowMessage('Actualizando Propiedades de ListView1, espere...');
  ListView1.ViewStyle := vsReport;
  ListView1.Align := alClient;
  ListView1.Columns.Add.Caption := 'Nombre';
  ListView1.Columns.Add.Caption := 'Nacimiento';
  ListView1.Columns.Add.Caption := 'Correo';
  ListView1.Columns.Add.Caption := 'Telefono';
  ListView1.Columns.Add.Caption := 'Comentarios';

  ShowMessage('Llenando los Items en ListView1, espere...');
  Lista := TStringList.Create;
  Lista.LoadFromFile(ExtractFilePath(Application.ExeName) + 'file.lst');
try 
  ListView1.BeginUpdate;

  for i:=0 to (Lista.Count div 5)-1 do
    with ListView1.Items.Add do
    begin
      Caption := Lista[i*5];
      SubItems.Add(Trim(Lista[i*5+1]));
      SubItems.Add(Trim(Lista[i*5+2]));
      SubItems.Add(Trim(Lista[i*5+3]));
      SubItems.Add(Trim(Lista[i*5+4]));
    end;
  finally
     ListView1.EndUpdate;
  end;
end;
end.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 25-03-2010
alejitoo alejitoo is offline
Miembro
 
Registrado: mar 2010
Posts: 19
Poder: 0
alejitoo Va por buen camino
buenas tengo una duda el links de la agenda que subieron esta beunisimo pero cuando kiero agregar algun recordatorio no me deja sera que el que desarrollo la agenda me podria decir como agregar alguna notificacion ya que e intentado de mil formas y nada que logro hacer que me agregue alguna notificacion
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
Codigo fuente programa P2P Niko Varios 2 11-07-2007 09:27:40
WebBrowser (Código fuente) Silvionel Internet 2 09-04-2006 07:21:20
TPV.- Codigo Fuente Rabata Varios 4 15-10-2005 13:48:51
¿Se Da el Código Fuente al Cliente? emtas Varios 7 18-04-2005 20:33:28
Codigo fuente IBConsole Delfino Firebird e Interbase 0 13-03-2005 21:56:49


La franja horaria es GMT +2. Ahora son las 00:23:13.


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