|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
ты бы исходники проекта приложил (с базой), проще было бы
|
#17
|
|||
|
|||
Вот сам проект (в тестовом варианте)
http://depositfiles.com/files/q7j9sr00o |
#18
|
|||
|
|||
блин, не могу импортировать, у тя MSSQL 2000 чтоли?
импортируй используемые таблицы в SQL-text добавление: не, не надо, чота я протупил, щас сам базу создам с таблицей |
#19
|
|||
|
|||
тебе нужно событие ставить не в AfterScroll что бы появлялась картинка сразу после добавления, а в AfterPost (AfterScroll срабатывает когда перемещаешься по набору данных, а не после добавления данных). НО и событие AfterScroll оставить тоже (создай процедуру и воткни её в AfterScroll и AfterPost, что бы не плодить код лишний)
Добавление: и добавь ADOQuery1.Post; в конец процедуры, которая сохраняет данные в IMAGE поле (тогда картинка будет появляется сразу после нажатия кнопки добавления) Последний раз редактировалось Assistant, 07.03.2011 в 02:05. |
#20
|
|||
|
|||
Цитата:
А вообще там и импортировать нечего...обычная тестовая база StudyDB, которая состоит из одной таблицы temptable (а таблица в свою очередь состоит из трёх полей: id, name и photo) |
#21
|
|||
|
|||
база не нужна уже, я выше написал что нужно переделать (доделать)
|
#22
|
|||
|
|||
Цитата:
Цитата:
Последний раз редактировалось Kapitoshka438, 07.03.2011 в 07:38. |
#23
|
|||
|
|||
Всем большое спасибо за помощь! Вроде бы во всём разобрался!
Но есть еще один вопрос (немного не по теме)! Я сделал поиск по Гриду (в виде фильтра). И один из элементов, который я использую для этого - ComboBox (для выбора поля, по которому будет происходить фильтрация). Для заполнения комбобокса пишу такой код Код:
for i:=0 to ADOQuery1.FieldCount - 1 do Combobox1.Items.Add(ADOQuery1.Fields[i].fieldname); ComboBox1.text := ADOQuery1.Fields[0].fieldname; Заранее благодарен! Последний раз редактировалось jekahm, 07.03.2011 в 23:57. |
#24
|
|||
|
|||
Народ, ну кто-нибудь, отзовитесь!
|
#25
|
|||
|
|||
самый просто способ, при заполнении грида, сопостовлять "поле -> нормальное имя" через case и при взятии значения из combobox делать обратное сопостовление "нормальное имя->поле". типо такова:
Код:
var fields, names: TStringList; function TForm1.GetNameFromField(field: string); begin Result := names[fields.IndexOf(field)]; end; function TForm1.GetFieldFromName(name: string); begin Result := fields[names.IndexOf(name)]; end; procedure TForm1.FormCreate(Sender: TObject); begin fields := TStringList.Create; names := TStringList.Create; fields.Add('fio'); names.Add('Фамилия'); fields.Add('name'); names.Add('Название'); fields.Add('value'); names.Add('Значение'); for i:=0 to ADOQuery1.FieldCount - 1 do Combobox1.Items.Add(GetNameFromField(ADOQuery1.Fields[i].fieldname)); end; procedure TForm1.FilterClick(Sender: TObject); var fieldname: string; begin fieldname := GetFieldFromName(ComboBox1.Text); // тут применение фильтра по полю fieldname end; можно сделать и на массива (но так для понимая проще, как я написал). P.S.: за ошибки не ручаюсь, писалось "на лету" без Delphi, но смысел должен быть понятен Последний раз редактировалось Assistant, 10.03.2011 в 23:46. |