You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

105 lines
2.5 KiB

unit ufrmEscolheProvidencia;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, Vcl.DBCtrls;
type
TfrmEscolheProv = class(TForm)
DBLookupComboBox1: TDBLookupComboBox;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure Button1Click(Sender: TObject);
private
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
{ Private declarations }
public
{ Public declarations }
end;
var
frmEscolheProv: TfrmEscolheProv;
implementation
{$R *.dfm}
uses udtmSystem, ucadCampanha;
procedure TfrmEscolheProv.Button1Click(Sender: TObject);
begin
if DBLookupComboBox1.KeyValue < 0 then
begin
showmessage('');
abort;
end
else
begin
DataSource1.DataSet.Locate('ID_PROVIDENCIA',
DBLookupComboBox1.KeyValue, []);
cadCampanha.mass_prov := DataSource1.DataSet.FieldByName('TX_NOME')
.AsString;
end;
end;
procedure TfrmEscolheProv.FormCreate(Sender: TObject);
begin
if not DataSource1.DataSet.Active then
begin
DataSource1.DataSet.Open;
end;
end;
procedure TfrmEscolheProv.FormMouseWheelDown(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
if (DBLookupComboBox1.Focused = true) then
begin
DBLookupComboBox1.Perform(WM_KEYDOWN, VK_DOWN, 0);
end;
end;
procedure TfrmEscolheProv.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
if (DBLookupComboBox1.Focused = true) then
begin
DBLookupComboBox1.Perform(WM_KEYDOWN, VK_UP, 0);
end;
end;
procedure TfrmEscolheProv.WMMoving(var Msg: TWMMoving);
var
workArea: TRect;
begin
workArea := Screen.WorkareaRect;
with Msg.DragRect^ do
begin
if left < workArea.left then
OffsetRect(Msg.DragRect^, workArea.left - left, 0);
if top < workArea.top then
OffsetRect(Msg.DragRect^, 0, workArea.top - top);
if Right > workArea.Right then
OffsetRect(Msg.DragRect^, workArea.Right - Right, 0);
if Bottom > workArea.Bottom then
OffsetRect(Msg.DragRect^, 0, workArea.Bottom - Bottom);
end;
end;
end.