Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52

Изменение Image

09.04.2014, 22:55. Показов 1372. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста!
На форме есть таблица, 3 edit, 1 combobox, кнопка Изменить, кнопка Изменить фото, компонент Image.
При выборе записи в таблице, в компонентах отображаются значения ее полей, а также для каждой записи свое фото:
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.dbgrdh1CellClick(Column: TColumnEh);
begin
Form1.edt4.Text:=Unit2.DataModule2.qry_sotr.Fields[1].AsString;
Form1.edt5.Text:=Unit2.DataModule2.qry_sotr.Fields[2].AsString;
Form1.edt6.Text:=Unit2.DataModule2.qry_sotr.Fields[3].AsString;
Form1.cbb2.Text:=Unit2.DataModule2.qry_sotr.Fields[5].AsString;
Form1.edt8.Text:=Unit2.DataModule2.qry_sotr.Fields[6].AsString;
if Unit2.DataModule2.qry_sotr.FieldByName('Foto').AsString<>'' then
img1.picture.LoadFromFile(Unit2.DataModule2.qry_sotr.FieldByName('Foto').AsString)
else img1.picture:=nil;
end;
При нажатии на кнопку изменить фото:
Delphi
1
2
3
4
5
6
7
procedure TForm1.btn2Click(Sender: TObject);
var F:string;
begin
  dlgOpenPic1.Execute;
  F := dlgOpenPic1.FileName;
  edt8.text:=F;
end;
Кнопка Изменить, сохраняет измененные данные в БД.
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.btnUPD_Click(Sender: TObject);
begin
Unit2.DataModule2.qry_sotr.Edit;
Unit2.DataModule2.qry_sotr.FieldByName('Name').AsString:=edt4.Text;
Unit2.DataModule2.qry_sotr.FieldByName('Address').AsString:=edt5.Text;
Unit2.DataModule2.qry_sotr.FieldByName('Phone').AsString:=edt6.Text;
Unit2.DataModule2.qry_sotr.FieldByName('Kod_dolgn').AsInteger:=Integer(cbb2.Items.Objects[cbb2.ItemIndex]);
Unit2.DataModule2.qry_sotr.FieldByName('Foto').AsString:=edt8.Text;
end;
При нажатии на кнопку Изменить выскакивает ошибка: "list index out of bounds (-1)" Но запись изменяется, т. е. первые 4 поля меняются(если их поменять), а фото не изменяется, либо не добавляется, если его там не было.
В чем может быть проблема? И как убрать эту ошибку?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2014, 22:55
Ответы с готовыми решениями:

Drag and Drop с Image. Растягивает окно при перемещении Image
Растягивает окно формы при перемещении Image. Как избавится от такого недуга )

Изменение Image
Здравствуйте. Есть изображение (pictureBox1) с Image (411.png). Необходимо сделать чтоб при первом нажатии на pictureBox1, Image становился...

Image изменение масштаба
Когда изменятся масштаб, image не изменяет размеров и фон сзади остается, помогите, пожалуйста, сделать нормальное масштабирование. ...

8
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
09.04.2014, 23:41
Цитата Сообщение от Яна44 Посмотреть сообщение
выскакивает ошибка: "list index out of bounds (-1)"
Имхо, не выбран ни один элемент в комбобоксе cbb2.
0
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
09.04.2014, 23:58  [ТС]
Да проблема действительно в нем. Он заполняется у меня так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.FormShow(Sender: TObject);
begin
with Unit2.DataModule2.qry  do
 begin
   Close;
   SQL.Clear;
   SQL.Add('select Name,Kod_dolgn from Dolgnost');
   Open;
   cbb2.Items.Clear;
   First;
   while not EOF do
    begin
        cbb2.Items.AddObject(FieldByName('Name').AsString,TObject(FieldByName('Kod_dolgn').AsInteger));
        Next;
    end;
 end;
end;
Заметила если меняешь значение в combobox то ошибка не возникает, но на других записях бывает даже если не меняешь, он автоматом меняет на то, которое до этого выбирала.Вообщем работает не правильно. Помогите пожалуйста исправить.
Изображение по прежнему не изменяется. Наверно оно с этой ошибкой не связано.
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
10.04.2014, 01:14
Строчку
Delphi
1
Form1.cbb2.Text:=Unit2.DataModule2.qry_sotr.Fields[5].AsString;
заменить на
Delphi
1
cbb2.Items.ItemIndex:=cbb2.Items.IndexOf(Unit2.DataModule2.qry_sotr.FieldByName('Name').AsString);
Цитата Сообщение от Яна44 Посмотреть сообщение
Изображение по прежнему не изменяется.
Имхо в процедуру TForm1.btnUPD_Click последней строчкой надо добавить
Delphi
1
Unit2.DataModule2.qry_sotr.Post;
P.S. И на будущее. Не надо в методе класса TForm1 употреблять переменную Form1. Компилятор и так правильно поймет что вы имеете в виду. А если не поймет, то так и скажет.
0
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
10.04.2014, 15:57  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
заменить на
Код Delphi
1
cbb2.Items.ItemIndex:=cbb2.Items.IndexOf (Unit2.DataModule2.qry_sotr.FieldByName( 'Name').AsString);
пишет ошибку "undeclared identifier:ItemIndex"

Добавлено через 35 минут
С фото разобралась, изменяю так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.btnUPD_Click(Sender: TObject);
begin
  with Unit2.DataModule2.qry  do
    begin
     Close;
     SQL.Clear;
     SQL.Add('update Sotrudnik set Name=:Name, Address=:Address, Phone=:Phone, Foto=:Foto where Kod_sotr=:Kod_sotr');
     Parameters.ParamByName('Kod_sotr').Value:= dbcbbKod_sotr.text;
     Parameters.ParamByName('Name').Value:= edt4.text;
     Parameters.ParamByName('Address').Value:= edt5.text;
     Parameters.ParamByName('Phone').Value:= edt6.text;
     Parameters.ParamByName('Foto').Value:= edt8.text ;
     ExecSQL;
     Unit2.DataModule2.qry_sotr.Active:=False;
     Unit2.DataModule2.qry_sotr.Active:=true;
    end;
end;
Если добавить Post как сказал northener, то в поле фото заносится не полный адрес к фото, а его первая часть почему то (где то половина).

С combobox по-прежнему проблемы

Добавлено через 6 часов 54 минуты
Цитата Сообщение от Яна44 Посмотреть сообщение
Цитата Сообщение от northener Посмотреть сообщение
заменить на
Delphi
1
cbb2.Items.ItemIndex:=cbb2.Items.IndexOf(Unit2.DataModule2.q ry_sotr.FieldByName('Name').AsString);
пишет ошибку "undeclared identifier:ItemIndex"
Неужели никто не поможет?
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
10.04.2014, 16:07
Delphi
1
cbb2.ItemIndex:=cbb2.Items.IndexOf(Unit2.DataModule2.q ry_sotr.FieldByName('Name').AsString);
Добавлено через 2 минуты
Цитата Сообщение от Яна44 Посмотреть сообщение
в поле фото заносится не полный адрес к фото, а его первая часть почему то (где то половина).
Тип поля фото какой?
0
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
10.04.2014, 16:21  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
Цитата Сообщение от Яна44 Посмотреть сообщение
в поле фото заносится не полный адрес к фото, а его первая часть почему то (где то половина).
Тип поля фото какой?
nvarchar(100) адрес точно меньше 100 символов

Добавлено через 8 минут
Цитата Сообщение от northener Посмотреть сообщение
Delphi
1
cbb2.ItemIndex:=cbb2.Items.IndexOf(Unit2.DataModule2.q ry_sotr.FieldByName('Name').AsString);
Спасибо большое теперь все работает!
Подскажите пожалуйста еще как сделать , чтобы при добавлении записи или изменении, курсор (выделенная строка) оставался на той же строке, которую мы добавили, либо изменили. А то он перескакивает на первую запись таблицы, что не очень удобно!
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
10.04.2014, 16:26
Цитата Сообщение от Яна44 Посмотреть сообщение
nvarchar(100)
А какой тип у параметра Parameters.ParamByName('Foto')?
0
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
10.04.2014, 16:30  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
А какой тип у параметра Parameters.ParamByName('Foto')?
Я не знаю, а где можно посмотреть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2014, 16:30
Помогаю со студенческими работами здесь

изменение background-image
Прошу помощи, имеется блок с background-image, хочу сделать смену фона с помощью animate opacity с изменением пути к фоновой картинке, при...

Добавление и изменение Image
Здравствуйте! Мне нужно чтобы gameobject_1 (цилиндр) влиял на изменение изображения, который находится в canvas...

Изменение картинки в Image
Добрый день.Я делаю игру &quot;скачки&quot;.Такая проблема:я хочу сделать чтобы можно было выбрать цвет лошади. Я пробовал так:procedure...

Изменение размеров Image
Как можно изменить размеры Image ? Подскажите, пожалуйста

Изменение размеров Image
Image привязан якорями (Anchors) к форме. Однако, если поменять размер формы, то размер канваса не меняется. Чтобы изменить размер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru