Форум: "Базы";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];
ВнизКалендарь под кнопочкой Найти похожие ветки
← →
Шурик Ш (2002-10-31 13:51) [0]Подскажите пожалуйста, как в DBGrid под поле c кнопочкой "..." засунуть календарь, т.е. при щелчке на кнопку появлялся календарь, а при выборе даты, она попадала в поле? Причем, хотелось бы, чтобы календарь открывался "по месту" (под редактируемой ячейкой), а не по середине экрана.
← →
Андрей Прокофьев (2002-10-31 13:53) [1]У колонки DBGrida установить ButtonStyle и в событии OnButtonClick делать, что хотите.
← →
Шурик Ш (2002-10-31 13:56) [2]Это я понимаю! Я не знаю как сделать, то что я хочу (какой лучше компонент использовать, как его подвязать по месту...)
← →
MsGuns (2002-10-31 14:19) [3]Здесь пример рисовки панели с ListView, но вместо него полжи календарь, и по клику делай то же, что по двойному на ListView
Данные вместо лабелей пиши в переменные.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, DB, DBTables, StdCtrls, Grids, DBGrids, ExtCtrls;
type
TForm1 = class(TForm)
Database1: TDatabase;
Query1: TQuery;
Query1Schet: TStringField;
Query1SchSub: TStringField;
Query1SchName: TStringField;
Query1SchFully: TStringField;
Query1SchBal: TStringField;
Query1SchAnPt1: TStringField;
Query1SchAnPt2: TStringField;
Query1SchAnPt3: TStringField;
Query1SchAnPt4: TStringField;
Query1SchAnPt5: TStringField;
Query1SchAnPt6: TStringField;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Panel1: TPanel;
ListView1: TListView;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Label4: TLabel;
procedure DBGrid1EditButtonClick(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FormCreate(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure ListView1Enter(Sender: TObject);
procedure ListView1Exit(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Rct: TRect;
procedure GridOnTop;
procedure GridOnBottom;
implementation
uses Types;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
it: TListItem;
begin
Form1.Database1.Connected := true;
Form1.Query1.Prepare;
Form1.Query1.Open;
if Form1.Query1.Active then
Form1.Query1.Close;
Form1.Query1.Open;
Form1.Query1.First;
ListView1.Items.Clear;
while not Form1.Query1.Eof do
begin
it := ListView1.Items.Add;
it.Caption := Form1.Query1.FieldByName("Schet").AsString;
it.SubItems.Add(Form1.Query1.FieldByName("SchSub").AsString);
it.SubItems.Add(Form1.Query1.FieldByName("SchName").AsString);
Form1.Query1.Next;
end;
Form1.Query1.First;
Form1.Panel1.Visible := false;
Form1.Panel1.Height := 200;
GridOnTop;
end;
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
// Определить левый верхний угол панели
if Form1.Button1.Caption="Bottom" then
Form1.Panel1.Top := Rct.Bottom+Form1.DBGrid1.Top
else
Form1.Panel1.Top := Rct.Top+Form1.DBGrid1.Top-Form1.Panel1.Height+3;
Form1.Panel1.Left := Rct.Left+Form1.DBGrid1.Left+4; //-Form1.Panel1.Height;
Form1.Panel1.Visible := true;
Form1.ListView1.SetFocus;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
Form1.Label4.Caption := "";
if gdSelected in State then
begin
Rct := Rect;
Form1.Label4.Caption := IntToStr(DataCol);
end;
end;
procedure TForm1.ListView1DblClick(Sender: TObject);
var
it: TListItem;
begin
it := ListView1.Items[ListView1.ItemIndex];
Form1.Label1.Caption := "Счет "+it.Caption;
Form1.Label2.Caption := "Субсчет "+it.SubItems[0];
Form1.Label3.Caption := "Имя "+it.SubItems[1];
Form1.Panel1.Hide;
end;
procedure TForm1.ListView1Enter(Sender: TObject);
begin
Form1.Label1.Caption := "";
Form1.Label2.Caption := "";
Form1.Label3.Caption := "";
end;
procedure TForm1.ListView1Exit(Sender: TObject);
begin
Form1.Panel1.Hide;
end;
procedure GridOnTop;
// Грид наверх
begin
Form1.DBGrid1.Top := 0;
Form1.Button1.Caption := "Bottom"
end;
procedure GridOnBottom;
// Грид вниз
begin
Form1.DBGrid1.Top := Form1.ClientHeight-Form1.DBGrid1.Height;
Form1.Button1.Caption := "Top";
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Form1.Button1.Caption = "Bottom" then
GridOnBottom
else
GridOnTop;
end;
end.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c