unit CNavigation;
interface
uses
System.Drawing, System.Collections, System.ComponentModel,
System.Windows.Forms, System.Data, System.Resources;
type
Navigation =
class(System.Windows.Forms.UserControl)
{$REGION 'Vom Designer verwalteter Code'}
strict private
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
components: System.ComponentModel.IContainer;
btnFirst: System.Windows.Forms.Button;
btnPrior: System.Windows.Forms.Button;
btnNext: System.Windows.Forms.Button;
btnLast: System.Windows.Forms.Button;
Buttons: System.Windows.Forms.ImageList;
btnNew: System.Windows.Forms.Button;
btnDelete: System.Windows.Forms.Button;
btnSave: System.Windows.Forms.Button;
TextBox1: System.Windows.Forms.TextBox;
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers -
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure InitializeComponent;
procedure btnFirst_Click(sender: System.
Object; e: System.EventArgs);
procedure btnPrior_Click(sender: System.
Object; e: System.EventArgs);
procedure btnNext_Click(sender: System.
Object; e: System.EventArgs);
procedure btnLast_Click(sender: System.
Object; e: System.EventArgs);
procedure btnDelete_Click(sender: System.
Object; e: System.EventArgs);
procedure btnNew_Click(sender: System.
Object; e: System.EventArgs);
procedure btnSave_Click(sender: System.
Object; e: System.EventArgs);
procedure TextBox1_Enter(sender: System.
Object; e: System.EventArgs);
procedure TextBox1_KeyPress(sender: System.
Object; e: System.Windows.Forms.KeyPressEventArgs);
procedure TextBox1_TextChanged(sender: System.
Object; e: System.EventArgs);
procedure TextBox1_Leave(sender: System.
Object; e: System.EventArgs);
procedure TextBox1_KeyDown(sender: System.
Object; e: System.Windows.Forms.KeyEventArgs);
{$ENDREGION}
strict protected
/// <summary>
/// Ressourcen nach der Verwendung bereinigen
/// </summary>
procedure Dispose(Disposing: Boolean);
override;
private
{ Private-Deklarationen }
myBindingManagerBase : BindingManagerBase;
ICurrentPosition : Integer;
MyTable :
String;
MyDataSet : DataSet;
Changing : boolean;
procedure BindingManagerBase_CurrentChanged(sender: System.
Object; e: System.EventArgs);
procedure BindingManagerBase_PositionChanged(sender: System.
Object; e: System.EventArgs);
procedure write_Position(pos:integer);
procedure finde_Datensatz(pos: integer);
public
constructor Create;
procedure BindingBase(aDataSet : Dataset; aTable :
String);
published
property Position : integer
read ICurrentPosition
write write_Position;
end;
[assembly: RuntimeRequiredAttribute(TypeOf(TNavigation))]
implementation
uses
System.Globalization;
{$AUTOBOX ON}
{$REGION 'Vom Windows Form-Designer erzeugter Code'}
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers --
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure TNavigation.InitializeComponent;
var
resources: System.Resources.ResourceManager;
begin
Self.components := System.ComponentModel.Container.Create;
resources := System.Resources.ResourceManager.Create(TypeOf(TNavigation));
Self.btnFirst := System.Windows.Forms.Button.Create;
Self.Buttons := System.Windows.Forms.ImageList.Create(Self.components);
Self.btnPrior := System.Windows.Forms.Button.Create;
Self.btnNext := System.Windows.Forms.Button.Create;
Self.btnLast := System.Windows.Forms.Button.Create;
Self.btnDelete := System.Windows.Forms.Button.Create;
Self.TextBox1 := System.Windows.Forms.TextBox.Create;
Self.btnNew := System.Windows.Forms.Button.Create;
Self.btnSave := System.Windows.Forms.Button.Create;
Self.SuspendLayout;
//
// btnFirst
//
Self.btnFirst.ImageIndex := 0;
Self.btnFirst.ImageList := Self.Buttons;
Self.btnFirst.Location := System.Drawing.Point.Create(1, 1);
Self.btnFirst.
Name := '
btnFirst';
Self.btnFirst.Size := System.Drawing.Size.Create(40, 23);
Self.btnFirst.TabIndex := 0;
Include(Self.btnFirst.Click, Self.btnFirst_Click);
//
// Buttons
//
Self.Buttons.ColorDepth := System.Windows.Forms.ColorDepth.Depth16Bit;
Self.Buttons.ImageSize := System.Drawing.Size.Create(16, 16);
Self.Buttons.ImageStream := (System.Windows.Forms.ImageListStreamer(resources.GetObject('
B' +
'
uttons.ImageStream')));
Self.Buttons.TransparentColor := System.Drawing.Color.FromArgb((Byte(254)),
(Byte(0)), (Byte(254)));
//
// btnPrior
//
Self.btnPrior.ImageIndex := 1;
Self.btnPrior.ImageList := Self.Buttons;
Self.btnPrior.Location := System.Drawing.Point.Create(40, 1);
Self.btnPrior.
Name := '
btnPrior';
Self.btnPrior.Size := System.Drawing.Size.Create(40, 23);
Self.btnPrior.TabIndex := 1;
Include(Self.btnPrior.Click, Self.btnPrior_Click);
//
// btnNext
//
Self.btnNext.ImageIndex := 2;
Self.btnNext.ImageList := Self.Buttons;
Self.btnNext.Location := System.Drawing.Point.Create(152, 1);
Self.btnNext.
Name := '
btnNext';
Self.btnNext.Size := System.Drawing.Size.Create(40, 23);
Self.btnNext.TabIndex := 2;
Include(Self.btnNext.Click, Self.btnNext_Click);
//
// btnLast
//
Self.btnLast.ImageIndex := 3;
Self.btnLast.ImageList := Self.Buttons;
Self.btnLast.Location := System.Drawing.Point.Create(191, 1);
Self.btnLast.
Name := '
btnLast';
Self.btnLast.Size := System.Drawing.Size.Create(40, 23);
Self.btnLast.TabIndex := 3;
Include(Self.btnLast.Click, Self.btnLast_Click);
//
// btnDelete
//
Self.btnDelete.ImageIndex := 4;
Self.btnDelete.ImageList := Self.Buttons;
Self.btnDelete.Location := System.Drawing.Point.Create(230, 1);
Self.btnDelete.
Name := '
btnDelete';
Self.btnDelete.Size := System.Drawing.Size.Create(40, 23);
Self.btnDelete.TabIndex := 6;
Include(Self.btnDelete.Click, Self.btnDelete_Click);
//
// TextBox1
//
Self.TextBox1.Font := System.Drawing.Font.Create('
Microsoft Sans Serif', 10.25,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, (Byte(0)));
Self.TextBox1.Location := System.Drawing.Point.Create(78, 0);
Self.TextBox1.
Name := '
TextBox1';
Self.TextBox1.Size := System.Drawing.Size.Create(75, 23);
Self.TextBox1.TabIndex := 8;
Self.TextBox1.Text := '
TextBox1';
Self.TextBox1.TextAlign := System.Windows.Forms.HorizontalAlignment.Right;
Include(Self.TextBox1.KeyDown, Self.TextBox1_KeyDown);
Include(Self.TextBox1.KeyPress, Self.TextBox1_KeyPress);
Include(Self.TextBox1.TextChanged, Self.TextBox1_TextChanged);
Include(Self.TextBox1.Leave, Self.TextBox1_Leave);
Include(Self.TextBox1.Enter, Self.TextBox1_Enter);
//
// btnNew
//
Self.btnNew.ImageIndex := 5;
Self.btnNew.ImageList := Self.Buttons;
Self.btnNew.Location := System.Drawing.Point.Create(269, 1);
Self.btnNew.
Name := '
btnNew';
Self.btnNew.Size := System.Drawing.Size.Create(40, 23);
Self.btnNew.TabIndex := 9;
Include(Self.btnNew.Click, Self.btnNew_Click);
//
// btnSave
//
Self.btnSave.ImageIndex := 6;
Self.btnSave.ImageList := Self.Buttons;
Self.btnSave.Location := System.Drawing.Point.Create(308, 1);
Self.btnSave.
Name := '
btnSave';
Self.btnSave.Size := System.Drawing.Size.Create(40, 23);
Self.btnSave.TabIndex := 10;
Include(Self.btnSave.Click, Self.btnSave_Click);
//
// TNavigation
//
Self.Controls.Add(Self.btnSave);
Self.Controls.Add(Self.btnNew);
Self.Controls.Add(Self.TextBox1);
Self.Controls.Add(Self.btnDelete);
Self.Controls.Add(Self.btnLast);
Self.Controls.Add(Self.btnNext);
Self.Controls.Add(Self.btnPrior);
Self.Controls.Add(Self.btnFirst);
Self.
Name := '
TNavigation';
Self.Size := System.Drawing.Size.Create(349, 24);
Self.ResumeLayout(False);
end;
{$ENDREGION}
constructor TNavigation.Create;
begin
inherited Create;
//
// Erforderlich für die Unterstützung des Windows Forms-Designers
//
InitializeComponent;
changing := false;
//
//
end;
procedure TNavigation.btnLast_Click(sender: System.
Object; e: System.EventArgs);
begin
myBindingManagerBase.Position := myBindingManagerBase.Count - 1;
end;
procedure TNavigation.btnNext_Click(sender: System.
Object; e: System.EventArgs);
begin
myBindingManagerBase.Position := myBindingManagerBase.Position + 1;
end;
procedure TNavigation.btnPrior_Click(sender: System.
Object; e: System.EventArgs);
begin
myBindingManagerBase.Position := myBindingManagerBase.Position -1;
end;
procedure TNavigation.btnFirst_Click(sender: System.
Object; e: System.EventArgs);
begin
myBindingManagerBase.Position := 0;;
end;
procedure TNavigation.BindingBase(aDataSet : Dataset; aTable :
String);
begin
MyTable := aTable;
MyDataSet := aDataSet;
myBindingManagerBase := Self.BindingContext[aDataSet, aTable];
Include(myBindingManagerBase.PositionChanged, BindingManagerBase_PositionChanged);
Include(myBindingManagerBase.CurrentChanged, BindingManagerBase_CurrentChanged);
self.Position := 0;
end;
procedure TNavigation.TextBox1_KeyDown(sender: System.
Object; e: System.Windows.Forms.KeyEventArgs);
begin
try
convert.toint32(Textbox1.Text);
except
Textbox1.Text := '
';
end;
end;
procedure TNavigation.TextBox1_Leave(sender: System.
Object; e: System.EventArgs);
begin
changing := false;
end;
procedure TNavigation.TextBox1_TextChanged(sender: System.
Object; e: System.EventArgs);
var i, i1 : integer;
begin
if changing = true
then begin
if textbox1.text <> '
'
then begin
i := convert.ToInt32(Textbox1.Text);
if i > (myBindingManagerBase.Count)
then begin
textbox1.Text := MyBindingManagerbase.Count.ToString;
end else if i < 1
then begin
Textbox1.Text := '
1';
end;
end;
end;
end;
procedure TNavigation.TextBox1_KeyPress(sender: System.
Object; e: System.Windows.Forms.KeyPressEventArgs);
begin
if not( e.KeyChar
in ['
0'..'
9'])
then begin
if e.KeyChar = #13
then begin
finde_Datensatz(convert.ToInt32(Textbox1.Text)-1);
end;
e.Handled := true;
end;
end;
procedure TNavigation.TextBox1_Enter(sender: System.
Object; e: System.EventArgs);
begin
Textbox1.Text := '
';
changing := true;
end;
procedure TNavigation.btnSave_Click(sender: System.
Object; e: System.EventArgs);
begin
// Hier die Speicherprocedure
end;
procedure TNavigation.btnNew_Click(sender: System.
Object; e: System.EventArgs);
begin
MyDataSet.Tables[MyTable].Rows.Add(MyDataSet.Tables[MyTable].NewRow);
MyDataSet.AcceptChanges;
end;
procedure TNavigation.btnDelete_Click(sender: System.
Object; e: System.EventArgs);
begin
self.MyDataSet.Tables[MyTable].Rows.RemoveAt(myBindingManagerBase.Position);
end;
procedure TNavigation.finde_Datensatz(pos: integer);
begin
myBindingManagerBase.Position := pos;
end;
procedure TNavigation.BindingManagerBase_PositionChanged(sender: System.
Object; e: System.EventArgs);
begin
position := BindingManagerBase(sender).Position;
end;
procedure TNavigation.BindingManagerBase_CurrentChanged(sender: System.
Object; e: System.EventArgs);
begin
position := BindingManagerBase(sender).Position;
end;
procedure TNavigation.write_Position(pos : Integer);
var i, i1 : integer;
begin
ICurrentPosition := pos;
if (position = 0)
then begin
btnfirst.Enabled := false;
btnprior.Enabled := false;
btnnext.Enabled := true;
btnlast.Enabled := true;
end else if (position = (myBindingManagerBase.Count - 1))
then begin
btnfirst.Enabled := true;
btnprior.Enabled := true;
btnnext.Enabled := false;
btnlast.Enabled := false;
end else begin
btnfirst.Enabled := true;
btnprior.Enabled := true;
btnnext.Enabled := true;
btnlast.Enabled := true;
end;
if myBindingManagerBase <>
nil then begin
i := myBindingManagerBase.Count;
i1 := ICurrentposition+1;
textbox1.Text := i1.ToString + '
von ' + i.tostring;
end;
end;
procedure TNavigation.Dispose(Disposing: Boolean);
begin
if Disposing
then
begin
if Components <>
nil then
Components.Dispose();
end;
inherited Dispose(Disposing);
end;
end.