Contributor: PIERRE MARMET

{
Sorry you must use the sendmessage API to do this.
use the winsight32 to spy this message !.
you can find in compsit.pas a new component witch send a TAB key
when you press ENTER

Best regards

Pierre

pmarmet@mnet.fr
}

unit compsit;
//*******************************************
// Classe TDBedite
// avec gestion de la touche ENTREE
// (c)SIT 8/5/1996 MARMET Pierre
//*******************************************


interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,DBCtrls;

type
  TDBEdite = class(TDBEdit)

  private
  Tentree: integer;
  varia: boolean;
  oldvalue: string;            {memorise l'ancienne valeur du composant}

  function getpierre: integer;
  procedure setpierre (param1: integer);
  procedure WndProc(var Message: TMessage) ;override;
    { Déclarations privées }
  protected
    { Déclarations protégées }


  public
  constructor Create(AOwner: TComponent); override;

   { Déclarations publiques }
  published
  //property ENTREE: Boolean read Getpierre write Setpierre default True;
  / property ENTERKey: integer read getpierre write setpierre default 1;
  property DoEnterKey: boolean read varia write varia;
    { Déclarations publiées }
  end;


procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Exemples', [TDBEdite]);
end;

Constructor TDBEdite.Create(AOwner: TComponent);
begin
     inherited Create(AOwner);
//     ENTERKey := 1;
     varia:=True;
end;

function TDBEdite.getpierre: integer;
begin
     result := Tentree;
end;

procedure TDBEdite.setpierre(param1: integer);
begin
     if param1 > 1 then param1:=1;
     Tentree:=param1;
end;



procedure TDBEdite.WndProc(var Message: TMessage);
begin

  if (message.msg = WM_CHAR) then

     begin

     // La touche ENTREE provoque une tabulation sur le controle
     if (message.WParam = 13) and ( varia = True ) then
          begin
              sendmessage(self.Handle,WM_USER+$B900,9,$F0001);
              exit;
          end;
     end;

  inherited WndProc(Message);        { répartition normale }
end;



end.