Ver Mensaje Individual
  #7  
Antiguo 18-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 25
Caral Va por buen camino
1 Crea una tabla Mensajes.

Campos de la tabla mensajes:
CodMensaje Autonumerico
Origen texto
Destino texto
Mensaje memo
Fechaenvio fecha
Fechalectura fecha
Leido Si/NO

2 Crea una tabla usuarios

Campos de la tabla usuarios:
CodUsuario Numerico
Clave Texto
Nombre texto

3 Crea un From Nuevo: Envio Mensajes

Pon en este:
Nota: No se con que componente trabajes pero yo uso ADO.

1. AdoTable Mensajes
2 AdoTable Uuarios
Conectalos con las tablas y coloca:

1 DBEdit1 Origen
2 DBEdit2 FechaEnvio
3 DBMemo1 Mensaje
4 DBLookupComboBox1 Destino
5 Boton Enviar
6 Boton Cancelar

Codigo del primer from : Envio Mensajes
Código Delphi [-]
unit UFEnviaMsg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UDM1, DB, ADODB, StdCtrls, ComCtrls, Buttons, DBCtrls, Mask;

type
  TFEnviaMsg = class(TForm)
    Label1: TLabel;
    ATMensajes: TADOTable;
    ATUsuarios: TADOTable;
    DSClientes: TDataSource;
    DSUsuarios: TDataSource;
    ATMensajesCodMensaje: TIntegerField;
    ATMensajesorigen: TWideStringField;
    ATMensajesdestino: TWideStringField;
    ATMensajesmensaje: TMemoField;
    ATMensajesFechaEnvio: TDateTimeField;
    ATMensajesFechaLectura: TDateTimeField;
    ATMensajesLeido: TBooleanField;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    Label3: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    DBMemo1: TDBMemo;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label5: TLabel;
    DBEdit2: TDBEdit;
    AQtemp: TADOQuery;
    Label6: TLabel;
    ATUsuariosCodUsuario: TWideStringField;
    ATUsuariosNombre: TWideStringField;
    ATUsuariosClave: TWideStringField;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FEnviaMsg: TFEnviaMsg;

implementation

{$R *.dfm}

procedure TFEnviaMsg.FormCreate(Sender: TObject);
begin
   ATMensajes.Open;
   ATUsuarios.Open;
   ATMensajes.Insert;
   DBEdit1.Field.AsString := Usuario;
   DBEdit2.Field.AsDateTime := Now;
   
end;

procedure TFEnviaMsg.BitBtn2Click(Sender: TObject);
begin
   ATMensajes.Cancel;
   Close;
end;

procedure TFEnviaMsg.BitBtn1Click(Sender: TObject);
begin
   ATMensajes.Post;
   Close;
end;

end.
Si lo copias completo funciona.

4 Crea un From Nuevo: Leer Mensajes

Pon en este:

1 ADoTable Mensajes
Conectalo con la tabla.
2 DBEdit1 CodMensaje
3 DBEdit2 Origen
4 DBMemo Mensaje
5 DBEdit3 Fechaenvio
6 DBEdit4 Fechalectura
7 DBNavigator
8 CheckBox
9 Boton Cancelar

Codigo del segundo from : leer Mensajes

Código Delphi [-]
unit UFLeeMsg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UDM1, StdCtrls, ExtCtrls, DBCtrls, Buttons, DB, Mask, ADODB;

type
  TFLeeMsg = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    DataSource1: TDataSource;
    Label3: TLabel;
    DBEdit2: TDBEdit;
    DBMemo1: TDBMemo;
    Label6: TLabel;
    DBEdit4: TDBEdit;
    Label7: TLabel;
    DBEdit5: TDBEdit;
    BitBtn2: TBitBtn;
    DBNavigator1: TDBNavigator;
    CheckBox1: TCheckBox;
    AQMensajes: TADOQuery;
    AQMensajesCodMensaje: TAutoIncField;
    AQMensajesorigen: TWideStringField;
    AQMensajesdestino: TWideStringField;
    AQMensajesmensaje: TMemoField;
    AQMensajesFechaEnvio: TDateTimeField;
    AQMensajesFechaLectura: TDateTimeField;
    AQMensajesLeido: TBooleanField;
    Label4: TLabel;
    procedure CheckBox1Click(Sender: TObject);
    procedure AQMensajesAfterScroll(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FLeeMsg: TFLeeMsg;

implementation

{$R *.dfm}

procedure TFLeeMsg.CheckBox1Click(Sender: TObject);
begin
   If CheckBox1.Checked then AQMensajes.SQL.Text := 'Select * From Mensajes Where Destino = '+QuotedStr(Usuario)+' Order by CodMensaje Desc'
   else AQMensajes.SQL.Text := 'Select * From Mensajes Where Leido = False AND Destino = '+QuotedStr(Usuario)+' Order by CodMensaje Desc';
   AQMensajes.Close;
   AQMensajes.Open;
end;

procedure TFLeeMsg.AQMensajesAfterScroll(DataSet: TDataSet);
begin
   If (AQMensajesLeido.AsBoolean = False) AND (AQMensajes.RecordCount > 0) then
   Begin
      AQMensajes.Edit;
      AQMensajesLeido.AsBoolean := True;
      AQMensajesFechaLectura.AsDateTime := Now;
      AQMensajes.Post;
   end;
end;

procedure TFLeeMsg.FormCreate(Sender: TObject);
begin
   AQMensajes.SQL.Text := 'Select * From Mensajes Where Leido = False AND Destino = '+QuotedStr(Usuario)+' Order by CodMensaje Desc';
   AQMensajes.Open;
end;

procedure TFLeeMsg.BitBtn2Click(Sender: TObject);
begin
   Close;
end;

end.

Si copias estos completos y los ligas a tus tablas te funcionara.
Si tienes mas dudas me dices, pero este es el codigo completo.
Saludos
Responder Con Cita