-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathunHledej.pas
115 lines (98 loc) · 3.46 KB
/
unHledej.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
unit unHledej;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
Buttons,db,LocalizedForms;
type
{ TfrmHledej }
TfrmHledej = class(TLocalizedForm)
LabeledEdit1: TLabeledEdit;
SpeedButtonPredchozi: TSpeedButton;
SpeedButtonDalsi: TSpeedButton;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
// musí být nastavena frmHledej.KeyPreview, jinak nechytá klávesové zkratky
procedure SpeedButtonDalsiClick(Sender: TObject);
procedure SpeedButtonPredchoziClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
frmHledej: TfrmHledej;
BookmarkPos :TBookMark;
implementation
{$R *.frm}
uses unit1; // chci pracovat s objekty z unit1 a nepotřebuju je v deklaraci
// jde o proměnnou kliknuto
{ TfrmHledej }
procedure TfrmHledej.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Application.ReleaseComponent(frmHledej);
end;
procedure TfrmHledej.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); // musí být nastavena frmHledej.KeyPreview
begin
if (Shift = [ssCtrl]) then
case key of
ord('P') : SpeedButtonPredchozi.Click;
ord('N') : SpeedButtonDalsi.Click;
ord('F') : frmHledej.Close;
end;
end;
procedure TfrmHledej.SpeedButtonDalsiClick(Sender: TObject);
var
i: Integer;
label
endOuterLoop;
begin
Form1.ZQuery1.DisableControls;
BookmarkPos := Form1.ZQuery1.Bookmark;
Form1.DBGrid1.SelectedRows.CurrentRowSelected:=False;// zrušit výběr
Form1.ZQuery1.Next;
while not(Form1.ZQuery1.Eof) do
begin
for i:=0 to Form1.Zquery1.FieldCount-1 do
if Pos((LabeledEdit1.Text), Form1.Zquery1.Fields[i].AsString )>0 then
begin
// vybrat výsledek, aby šlo ihned editovat a přidat do výběru
Form1.DBGrid1.SelectedRows.CurrentRowSelected:=True;
//Form1.DBGrid1.SelectedRows.Refresh;
goto endOuterLoop; // ukončit vnější cyklus
end;
Form1.ZQuery1.Next;
end;
Form1.ZQuery1.Bookmark := BookmarkPos; // při nenalezení skočit na původní pozici
Form1.DBGrid1.SelectedRows.CurrentRowSelected:=True; // a přidat do výběru
endOuterLoop:
Form1.ZQuery1.EnableControls;
end;
procedure TfrmHledej.SpeedButtonPredchoziClick(Sender: TObject);
var
i: Integer;
label
endOuterLoop;
begin
Form1.ZQuery1.DisableControls;
BookmarkPos := Form1.ZQuery1.Bookmark;
Form1.DBGrid1.SelectedRows.CurrentRowSelected:=False;// zrušit výběr
Form1.ZQuery1.Prior;
while not(Form1.ZQuery1.Bof) do
begin
for i:=0 to Form1.Zquery1.FieldCount-1 do
if Pos((LabeledEdit1.Text), Form1.Zquery1.Fields[i].AsString )>0 then
begin
// vybrat výsledek, aby šlo ihned editovat a přidat do výběru
Form1.DBGrid1.SelectedRows.CurrentRowSelected:=True;
goto endOuterLoop; // ukončit vnější cyklus
end;
Form1.ZQuery1.Prior;
end;
Form1.ZQuery1.Bookmark := BookmarkPos;
Form1.DBGrid1.SelectedRows.CurrentRowSelected:=True; // přidat do výběru
endOuterLoop:
Form1.ZQuery1.EnableControls;
end;
end.