Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 13-02-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cita:
te cuento que para la hora tengo una tabla con intervalos de tiempo con valores enteros
mmm, Usas Bases de datos para el resto del programa ?

Si Usas Bases de datos, es más facil crear un campo HoraInicio (de tipo Date) asociado a cada Pc

Si no Usas Bases de datos, acabo de mirar bien el tipo TlistItem y tiene una propiedad llamada Data aqui se puede guardar un puntero a cualquier cosa, así que puedes crearte un puntero a un registro y guardar ahí la hora de inicio de cada Pc.

Para que veas como va. crea un programa nuevo, metele un Listview, un Boton y un timer con Interval a 1 seg.

Este es mi codigo.
Código:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls;

type TInfo = record       // Tipo Informacion
        Hora : TDateTime;
end;
    TpTInfo = ^TInfo; // Tipo Puntero al tipo Informacion
type
  TForm1 = class(TForm)
    Button1: TButton;
    ListView1: TListView;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var H :TpTInfo;
begin
  with ListView1.items.Add do
  begin
     Caption := 'PC3';
     SubItems.Add('Ocupado');
     SubItems.Add('');
     New(H);
     H^.Hora:=Now;
     Data:= H;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  hora:TDateTime;
  i : integer;
begin
    with ListView1 do
    for i:=0 to pred(items.count) do
      if items[i].subItems[0] <>'Libre' then
      begin
        if Assigned(Items[i].data) then  // me aseguro de que se ha creado el registro
        begin
          hora :=TpTinfo(Items[i].data)^.Hora;
          items[i].SubItems[1] := FormatDateTime('hh:nn:ss', Now - Hora );
        end;
      end;

end;

end.
El ejemplo consiste en que cada vez que pulsas el boton se crea un nuevo elemento y aprovecha la propiedad Data para meter la hora en un registro asociado a cada elemento del Listview. En el registro TInfo podrías guardar toda la información que necesitaras.

Eso si. Todo lo que almacenas en Data, eres tú el que has de liberarlo antes de borrar algun elemento del listview.

Saludos, y espero que alguno de estos métodos te sirva.
_________________________________________________
Sugerencia: escribir el codigo fuente entre [ code] y [ /code] al postearlo en el foro. (sin el espacio que hay despues del corchete [, es mas facil leerlo)

Última edición por Lepe fecha: 13-02-2004 a las 13:16:11.
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 16:16:34.


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