Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.21;
Скачать: CL | DM;

Вниз

Календарь под кнопочкой   Найти похожие ветки 

 
Шурик Ш ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
1-69386
maxim2
2002-11-10 13:48
2002.11.21
Подскажите компонент типа Grid в котором можно устанавливать...


14-69505
Forever
2002-10-01 18:25
2002.11.21
Как убрать


4-69617
Alex_win
2002-10-10 10:09
2002.11.21
приостановить приложение


3-69111
Назаров Евгений
2002-11-03 18:30
2002.11.21
подключение к удалённому серверу IB


1-69372
Fokasnik
2002-11-10 00:10
2002.11.21
А как?