[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
{
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.
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]