home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1999 January
/
Chip_1999-01_cd.bin
/
zkuste
/
delphi
/
QDB
/
QDBG.ZIP
/
QDBGEdt.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1998-07-29
|
8KB
|
272 lines
unit QDBGEdt;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, QDB, QDBView, StdCtrls, QDBGrids;
type
TQDBGridEditDlg = class(TForm)
PopupMenu1: TPopupMenu;
ColumnMenu: TMenuItem;
TitleMenu: TMenuItem;
CellsMenu: TMenuItem;
TitleCaptionMenu: TMenuItem;
TitleAlignmentMenu: TMenuItem;
CellColorMenu: TMenuItem;
CellAlignmentMenu: TMenuItem;
TitleFontMenu: TMenuItem;
CellFontMenu: TMenuItem;
ColumnFieldTypeMenu: TMenuItem;
ColumnButtonStyleMenu: TMenuItem;
ColumnReadOnlyMenu: TMenuItem;
ColumnButtonStyleAuto: TMenuItem;
ColumnButtonStyleButtonsis: TMenuItem;
ColumnButtonStyleNone: TMenuItem;
esSinple1: TMenuItem;
esMemo1: TMenuItem;
e1: TMenuItem;
string1: TMenuItem;
graphic1: TMenuItem;
strings1: TMenuItem;
date1: TMenuItem;
time1: TMenuItem;
datetime1: TMenuItem;
Editable1: TMenuItem;
Readoly1: TMenuItem;
Left1: TMenuItem;
Center1: TMenuItem;
Right1: TMenuItem;
Left2: TMenuItem;
Center2: TMenuItem;
Right2: TMenuItem;
FontDialog: TFontDialog;
ColorDialog: TColorDialog;
integers1: TMenuItem;
richstrings1: TMenuItem;
thing1: TMenuItem;
CancelButton: TButton;
OKButton: TButton;
QDBGrid: TQDBGrid;
procedure ColumnButtonStyleMenuClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ColumnButtonStyleItemsClick(Sender: TObject);
procedure QDBGridMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ColumnFieldTypeMenuClick(Sender: TObject);
procedure ColumnFieldTypeItemClick(Sender: TObject);
procedure ColumnReadOnlyMenuClick(Sender: TObject);
procedure ReadOnlyItemClick(Sender: TObject);
procedure TitleAlignmentMenuClick(Sender: TObject);
procedure TitleAlignmentItemClick(Sender: TObject);
procedure AlignmentItemClick(Sender: TObject);
procedure CellAlignmentMenuClick(Sender: TObject);
procedure CellColorMenuClick(Sender: TObject);
procedure TitleFontMenuClick(Sender: TObject);
procedure CellFontMenuClick(Sender: TObject);
procedure TitleCaptionMenuClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
PoppedCol: TColumn;
end;
var
QDBGridEditDlg: TQDBGridEditDlg;
implementation
{$R *.DFM}
type
THack = class(TQDBGrid);
procedure TQDBGridEditDlg.ColumnButtonStyleMenuClick(Sender: TObject);
begin
with ColumnButtonStyleMenu do
begin
TMenuItem(Items[ord(PoppedCol.ButtonStyle)]).Checked:=true;
end;
end;
procedure TQDBGridEditDlg.FormShow(Sender: TObject);
var
n: integer;
begin
with QDBGrid do
begin
for n:= FixedCols to Columns.Count-1 do
Columns[n].PopupMenu:=PopupMenu1;
end;
end;
procedure TQDBGridEditDlg.ColumnButtonStyleItemsClick(Sender: TObject);
var
ThisMenuItem: TMenuItem ;
n: integer;
begin
ThisMenuItem:=(Sender as TMenuItem);
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].ButtonStyle:= TColumnButtonStyle(ThisMenuItem.MenuIndex);
PoppedCol.ButtonStyle := TColumnButtonStyle(ThisMenuItem.MenuIndex);
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
procedure TQDBGridEditDlg.QDBGridMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
ACol, ARow: longint;
P: TPoint;
begin
if (Button = mbRight) then
begin
QDBGrid.MouseToCell(X,Y, ACol, ARow);
PoppedCol:=QDBGrid.Columns[ACol];
P:=QDBGrid.ClientToScreen(Point(X,Y));
if Assigned(PoppedCol.PopupMenu) then
PoppedCol.PopupMenu.Popup(P.X,P.Y);
end;
end;
procedure TQDBGridEditDlg.ColumnFieldTypeMenuClick(Sender: TObject);
begin
with ColumnFieldTypeMenu do
begin
if PoppedCol.FieldType <> ftunknown then
TMenuItem(Items[ord(PoppedCol.FieldType)-1]).Checked:=true;
end;
end;
procedure TQDBGridEditDlg.ColumnFieldTypeItemClick(Sender: TObject);
var
ThisMenuItem: TMenuItem ;
n: integer;
begin
ThisMenuItem:=(Sender as TMenuItem);
// +1 because of ftunknown
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].FieldType:= TQDBFieldType(ThisMenuItem.MenuIndex+1);
PoppedCol.FieldType := TQDBFieldType(ThisMenuItem.MenuIndex+1);
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
procedure TQDBGridEditDlg.ColumnReadOnlyMenuClick(Sender: TObject);
begin
with ColumnReadOnlyMenu do
begin
TMenuItem(Items[ord(PoppedCol.ReadOnly)]).Checked:=true;
end;
end;
procedure TQDBGridEditDlg.ReadOnlyItemClick(Sender: TObject);
var
ThisMenuItem: TMenuItem ;
n: integer;
begin
ThisMenuItem:=(Sender as TMenuItem);
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].ReadOnly:= boolean(ThisMenuItem.MenuIndex);
PoppedCol.ReadOnly := boolean(ThisMenuItem.MenuIndex);
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
procedure TQDBGridEditDlg.TitleAlignmentMenuClick(Sender: TObject);
begin
with TitleAlignmentMenu do
begin
TMenuItem(Items[ord(PoppedCol.TitleAlignment)]).Checked:=true;
end;
end;
procedure TQDBGridEditDlg.TitleAlignmentItemClick(Sender: TObject);
var
ThisMenuItem: TMenuItem ;
n: integer;
begin
ThisMenuItem:=(Sender as TMenuItem);
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].TitleAlignment:= TAlignment(ThisMenuItem.MenuIndex);
PoppedCol.TitleAlignment := TAlignment(ThisMenuItem.MenuIndex);
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
procedure TQDBGridEditDlg.AlignmentItemClick(Sender: TObject);
var
ThisMenuItem: TMenuItem ;
n: integer;
begin
ThisMenuItem:=(Sender as TMenuItem);
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].Alignment:= TAlignment(ThisMenuItem.MenuIndex);
PoppedCol.Alignment := TAlignment(ThisMenuItem.MenuIndex);
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
procedure TQDBGridEditDlg.CellAlignmentMenuClick(Sender: TObject);
begin
with CellAlignmentMenu do
begin
TMenuItem(Items[ord(PoppedCol.Alignment)]).Checked:=true;
end;
end;
procedure TQDBGridEditDlg.CellColorMenuClick(Sender: TObject);
var
n: integer;
begin
ColorDialog.Color:=PoppedCol.Color;
if ColorDialog.Execute then
begin
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].Color:= ColorDialog.Color;
PoppedCol.Color:=ColorDialog.Color;
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
end;
procedure TQDBGridEditDlg.TitleFontMenuClick(Sender: TObject);
var
n: integer;
begin
FontDialog.Font:=PoppedCol.TitleFont;
if FontDialog.Execute then
begin
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].TitleFont:= FontDialog.Font;
PoppedCol.TitleFont:=FontDialog.Font;
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
end;
procedure TQDBGridEditDlg.CellFontMenuClick(Sender: TObject);
var
n: integer;
begin
FontDialog.Font:=PoppedCol.Font;
if FontDialog.Execute then
begin
for n:= QDBGrid.FixedCols to QDBGrid.Columns.Count-1 do
if QDBGrid.Columns[n].Selected then
QDBGrid.Columns[n].Font:= FontDialog.Font;
PoppedCol.Font:=FontDialog.Font;
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
end;
procedure TQDBGridEditDlg.TitleCaptionMenuClick(Sender: TObject);
begin
PoppedCol.Title:=InputBox('Column Title Editor', 'Enter the new column title' , PoppedCol.Title);
THack(QDBGrid).InvalidateCol(PoppedCol.Index);
end;
end.