unit umstMaster; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, DBCtrls, ExtCtrls, Buttons, ComCtrls, DB, ImgList, Menus, CheckLst; type TmstMaster = class(TForm) stbStatus: TStatusBar; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormActivate(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormCreate(Sender: TObject); private { Private declarations } public function Selecionados(CheckListBox: TCheckListBox; Dataset: TDataset; Field: String):String;overload;virtual; { Public declarations } end; var mstMaster: TmstMaster; implementation uses udtmSystem; {$R *.DFM} function TmstMaster.Selecionados(CheckListBox: TCheckListBox; Dataset: TDataset; Field: String):String; // Funcao para obter multi-selecao begin with TStringList.Create do begin Dataset.First; while not Dataset.Eof do begin if CheckListBox.Checked[Dataset.RecNo - 1] then Add(Dataset.FieldByName(Field).AsString); Dataset.Next; end; Result := DelimitedText; Free; end; end; procedure TmstMaster.FormActivate(Sender: TObject); begin Screen.Cursor := crDefault; end; procedure TmstMaster.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (ActiveControl is TDBGrid) or //((ActiveControl is TDBLookupCombo) and (ActiveControl.Tag = 1)) or ((ActiveControl is TDBComboBox) and (ActiveControl.Tag = 1)) or //((ActiveControl is TDBDateTimePicker) and (ActiveControl.Tag = 1)) or ((ActiveControl is TDBEdit) and (ActiveControl.Tag = 1)) or (ActiveControl is TDBMemo) or (ActiveControl is TDBRichEdit) or (ActiveControl is TMemo) then exit; case Key of VK_RETURN: begin SelectNext(ActiveControl as tWinControl, True, True ); Key := 0; end; VK_ESCAPE: begin Key := 0; Close; end; end; end; procedure TmstMaster.FormClose(Sender: TObject; var Action: TCloseAction); begin // Volta o cursor para o estado normal Screen.Cursor := crDefault; // Libera a memória Action := caFree; end; procedure TmstMaster.FormCreate(Sender: TObject); begin dtmSystem.tx_formulario := TForm(Sender).Name; end; end.