Как передать форму в качестве параметра функции [решено]

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Как передать форму в качестве параметра функции

Сообщение dunin » 03.03.2011 12:17:11

Nik писал(а):2dunin
...
Выборка из базы примерно так и делается, но мне мало указать таблицу, надо ещё указать, в контролы какой формы вписывать результаты выборки.

Ну как-то так... Пойдет? Не?
Код: Выделить всё
procedure TAddDohForm.LoadBillsList(TabelName: string; FormName: string);
   var i: unteger;
begin
  for i:= 0 to Application.ComponentCount-1 do begin
    if Application.Component[i].Class = tForm then begin
      if  tForm(Application.Component[i]).Name = FormName then begin
        SQLQuery.SQL.Clear;
        SQLQuery.SQL.Add('select * from '+TabelName);
   ...

зы. Писал сразу в браузере. возможны ошибки/опечатки.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Как передать форму в качестве параметра функции

Сообщение Nik » 03.03.2011 13:22:25

У меня в итоге проще получилось:

Код: Выделить всё
procedure LoadCategoryList(xTable: string; xForm: TForm);
...
begin
(xForm.FindComponent('CatBox') as TComboBox).Clear;

main_table:=SQL_db.GetTable('SELECT * FROM '+xTable+' WHERE (id!=0) and (parent=-1)');

for i:=0 to main_table.Count-1 do
  begin
   (xForm.FindComponent('CatBox') as TComboBox).AddItem(main_table.FieldAsString('name'), TObject(main_table.FieldAsInteger('id')));
   ...
  end;
...
end;
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Как передать форму в качестве параметра функции

Сообщение daesher » 03.03.2011 21:41:50

Если формы совершенно идентичные по описанию, можно попробовать фокус TAddDohForm(xForm) - проверки никакой, если описания соответствуют, то должно прокатить и для другой формы.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Как передать форму в качестве параметра функции

Сообщение Nik » 03.03.2011 22:35:53

daesher писал(а):Если формы совершенно идентичные по описанию, можно попробовать фокус TAddDohForm(xForm) - проверки никакой, если описания соответствуют, то должно прокатить и для другой формы.

Формы не идентичные. У них просто есть некоторое число идентичных (по именам и функциям) полей.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

Рейтинг@Mail.ru
cron