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馗larations priv馥s }
 protected
 { D馗larations prot馮馥s }
 public
 constructor Create(AOwner: TComponent); override;
 { D馗larations 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馗larations publi馥s }
 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駱artition normale }
end;
end.


AltStyle によって変換されたページ (->オリジナル) /