![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как дополните [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;