|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
не работает OnEnter/OnExit в PageControl.TabSheet
не актуально
Приветствую всех! Что-то я не понял маленько... Начал переписывать уже готовый и работающий код, а указанные в заголовке события для TabSheet работать не хотят, точнее работают, если нажать кнопку размещённую в TabSheet, а просто при входе отказываются... Код:
procedure TForm1.FormShow(Sender: TObject); begin Form1.PageControl1.ActivePageIndex:=0; Form1.ADOConnection1.Connected:=False; Form1.ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=PostgreSQL30;Initial Catalog=uzti_db'; Form1.ADOConnection1.LoginPrompt:=False; Form1.ADOConnection1.Connected:=True; Form1.ADOMultiQuery.Close; Form1.ADOMultiQuery.Connection:=Form1.ADOConnection1; Form1.ADOMultiQuery.SQL.Clear; Form1.ADOMultiQuery.SQL.Text:='SELECT product_mix.sname, product_mix.edizm FROM product_mix INNER JOIN sklad ON product_mix.id=sklad.id ORDER BY sklad.id'; Form1.ADOMultiQuery.Open; For i:=1 to 25 do Begin lb1:=(FindComponent('Label'+IntToStr(i)) as TLabel); lb2:=(FindComponent('Label'+IntToStr(i+50)) as TLabel); lb1.Caption:=Form1.ADOMultiQuery.Fields[0].AsString+'............................................'; lb2.Caption:=Form1.ADOMultiQuery.Fields[1].AsString; if i<>25 then Form1.ADOMultiQuery.MoveBy(1); End; end; procedure TForm1.TabSheet5Enter(Sender: TObject); begin //работает только после нажатия button1 Form1.ADOMultiQuery.Close; Form1.ADOMultiQuery.SQL.Clear; Form1.ADOMultiQuery.SQL.Text:='SELECT sklad.ostatok, sklad.dateizm FROM product_mix INNER JOIN sklad ON product_mix.id=sklad.id ORDER BY sklad.id'; Form1.ADOMultiQuery.Open; For i:=1 to 25 do Begin lb1:=(FindComponent('Label'+IntToStr(i+25)) as TLabel); lb2:=(FindComponent('Label'+IntToStr(i+75)) as TLabel); lb1.Caption:=Form1.ADOMultiQuery.Fields[0].AsString; lb2.Caption:=Form1.ADOMultiQuery.Fields[1].AsString; if i<>25 then Form1.ADOMultiQuery.MoveBy(1); end; end; procedure TForm1.Button1Click(Sender: TObject); begin Form1.ADOMultiQuery.Close; Form1.ADOMultiQuery.SQL.Clear; Form1.ADOMultiQuery.SQL.Text:='SELECT sklad.ostatok, sklad.dateizm FROM product_mix INNER JOIN sklad ON product_mix.id=sklad.id ORDER BY sklad.id'; Form1.ADOMultiQuery.Open; For i:=1 to 25 do Begin lb1:=(FindComponent('Label'+IntToStr(i+25)) as TLabel); lb2:=(FindComponent('Label'+IntToStr(i+75)) as TLabel); lb1.Caption:=Form1.ADOMultiQuery.Fields[0].AsString; lb2.Caption:=Form1.ADOMultiQuery.Fields[1].AsString; if i<>25 then Form1.ADOMultiQuery.MoveBy(1); end; end; procedure TForm1.TabSheet5Exit(Sender: TObject); begin //работает только после нажатия button1 showmessage('куку'); end; procedure TForm1.PageControl1Enter(Sender: TObject); begin //работает нормально showmessage('куку25'); end; end. Последний раз редактировалось kadnikov, 19.08.2010 в 10:50. |