![]() |
|
|
|
|
#1
|
|||
|
|||
|
помогите, пожалуйста, в чем ошибка?
Код:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DBCtrls;
type
TForm3 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ComboBox1: TComboBox;
Edit1: TEdit;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
form3.Close;
Form1.Enabled:=true;
Form1.Button1.Enabled:=true;
form1.Button2.Enabled:=true;
form1.Button3.Enabled:=true;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
If not Form1.DBGrid1.DataSource.DataSet.Locate(Form3.ComboBox1.Text,([Form3.Edit1.Text]),[]);
Then ShowMessage('Поиск не дал результатов :(');
end;
end.lmikle: Пользуемся тегами. Последний раз редактировалось lmikle, 08.03.2016 в 05:53. |
|
#2
|
|||
|
|||
|
Ошбка - в прокладке.
Ты бы хоть описал что не так работает. На первый взгляд все правильно. Возможно, надо доп флаги указать, что бы искало по части текста и без учета регистров. |
|
#3
|
|||
|
|||
|
При проверке выдает ошибку
[Ошибка] Unit3.pas(44): Ordinal type required я пробовал прописывать тип, не дало результатов |
|
#4
|
||||
|
||||
|
Код:
DataSet.Locate(Form3.ComboBox1.Text,([Form3.Edit1.Text]),[]); Видимо было в исходном примере: VarArrayOf([Form3.Edit1.Text]) |
|
#5
|
|||
|
|||
|
нет,у меня dbgrib на форме 1, а окно поиска на форме 3, где есть эдит и комбобокс. задача такова, что в каком из столбцов дбгрида поиск текста в эдите зависит от комбобокса.
а с vararrayof пробовал, не получается, выдает ошибку [Ошибка] Unit3.pas(44): 'THEN' expected but ';' found [Ошибка] Unit3.pas(50): Statement expected but end of file found [Фатальная ошибка] Project1.dpr(7): Could not compile used unit 'Unit3.pas' |
|
#6
|
||||
|
||||
|
В Locate можно передавать несколько значений для поиска и тогда нужно эти значения завернуть в VarArrayOf(). Либо одно значение и тогда это просто строка:
Код:
DataSet.Locate(Form3.ComboBox1.Text,Form3.Edit1.Text,[]); ПС: А ваши ошибки вообще к синтаксису локейта не имеют никакого отношения. |