Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как дополните [D7]


Zif ©   (2004-08-09 23:41:00) 

У меня возникла такая проблема: при нажитии на кнопку "Выборка" открывается форма "Выбор" и таких кнопок у меня более 30. Вопрос: как Форме "Выбор" при нажатии на кнопки типа "Выборка" присваивать нужные значения.
к примеру:

procedure TFormMain.ButtonViborkaClick(Sender: TObject);
begin
 FormVibor.ShowModal;
 FormVibor.Caption:='Выбор категирии такой-то'
 FormVibor.DBEdit.DataSourse:='название'
 FormVibor.DBEdit.DataField:='название'
 FormVibor.DBLookupListBox.ListSourse:='название'
 FormVibor.DBLookupListBox.ListField:='название'
 FormVibor.DBLookupListBox.KeyField:='название'
end;


также надо изменить нажатие на кнопку "ОК" и "Отмена"
procedure TFormVibor.ButtonOKClick(Sender: TObject);
begin
 DataModule.ADOTableвыбранный.Post
 Close;
end;


Zif   (2004-08-10 23:44:00) [1]

большое СПАСИБО, буду разбираться. то что нужно


GuAV   (2004-08-10 23:04:00) [2]

var
A: array[1.."более 30"] of // индексы по тэгам
  record
    myCaption, myName: string;
    table: tadotable;
  end = (тута чему они все равны, а table-nil)
procedure TFormMain.ButtonViborkaClick(Sender: TObject);
begin
with A[TComponent(sender).tag] do
begin
FormVibor.Caption:=myCaption
FormVibor.DBEdit.DataSourse:=myName
FormVibor.DBEdit.DataField:=myName
FormVibor.DBLookupListBox.ListSourse:=myName
FormVibor.DBLookupListBox.ListField:=myName
FormVibor.DBLookupListBox.KeyField:=myName
FormVibor.ShowModal;
end;
end;


Zif   (2004-08-10 22:32:00) [3]

можно с моим примером? не совсем понятно. и в A: array[1..7] ofпочему именно от 1 до 7?
я начинающий


GuAV   (2004-08-10 21:54:00) [4]

c кейсом заморочаешься. лучше массив из записей

const
 A: array[1..7] of
   record
     A, B: string;
   end = (тута чему он равен)

showmodal после

> case sender.tag of 7

ТАКОЕ точно не прокатит :)


Zif   (2004-08-10 21:32:00) [5]

Button1.Tag как понимаю в инспекторе объектов надо изменить.
а что писать в коде? можно прямо с этим кодом, примерно так:
procedure TFormMain.ButtonViborkaClick(Sender: TObject);
begin
case sender.tag of 7
FormVibor.ShowModal;
FormVibor.Caption:='Выбор категирии такой-то'
FormVibor.DBEdit.DataSourse:='название'
FormVibor.DBEdit.DataField:='название'
FormVibor.DBLookupListBox.ListSourse:='название'
FormVibor.DBLookupListBox.ListField:='название'
FormVibor.DBLookupListBox.KeyField:='название'
end;

ShowModal где вставлять??? до или после case sender.tag of 7 ???


Den303   (2004-08-10 14:10:00) [6]

В свойстве Button1.Tag каждой кнопке присвой уникальный индекс, а при нажатии в case sender.tag of ...выставляй нужные значения


Zif   (2004-08-10 11:34:00) [7]

тогда выдает ошибку


Ega23   (2004-08-10 11:16:00) [8]

procedure TFormMain.ButtonViborkaClick(Sender: TObject);
begin
FormVibor.ShowModal;
FormVibor.Caption:='Выбор категирии такой-то'
FormVibor.DBEdit.DataSourse:='название'
FormVibor.DBEdit.DataField:='название'
FormVibor.DBLookupListBox.ListSourse:='название'
FormVibor.DBLookupListBox.ListField:='название'
FormVibor.DBLookupListBox.KeyField:='название'
end;


ShowModal после присвоений делай.


Zif   (2004-08-10 11:13:00) [9]

Не совсем понятно что мне нужно сделать. можно это показать в виде кода с моими параметрами, т.к. в примере k-sergey нет ни одного моего параметра или я не так все понял. и если можно поподробнее.
Заранее напомню: у меня более 100 кнопок (просто в первый раз я не считал), причем они в будующем будут меняться (скины, дизайн проги) поэтому надо код писать скорее всего при нажатии ButtonClick, а не в форме "Выбор".


GuAV   (2004-08-10 00:09:00) [10]

Имхо, создать класс/запись, где описаны 'Выбор категирии такой-то', 'название', ADOTableвыбранный.
потом связать с кнопками
а. через массив в тэге индекс
б. через указатель в тэге
в. через ТБукетЛист
г. еще как-то


k-sergey   (2004-08-09 23:59:00) [11]

может тебе что то подобное нужно просто:

TImage(FindComponent('Image'+inttostr(x))).Free;

procedure Tform1.onclickImag(Sender:TObject);
If Sender Is TImage Then
  begin
   s:=TImage(Sender).Name;
  end;

у всех image onClick:=onclickImag;


Наверх

Титульная страница Поиск, карта сайта Написать письмо