Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2012, 20:03   #1
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию image по названию в edit.text

Здравствуйте уважаемые пользователи форума.
Столкнулся с такой проблемой.
Делаю программу в ней есть edit и image
задача такова

Если в edit.text пишется 10 то в image.picture показывает картинку 10.jpg

Код:
if sEdit10.Text=sEdit10.Text then
begin
id1.picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
end
else
id1.picture.loadfromfile('base/id/NoItem.jpg');
Если sedit10.text:=50 а у меня нету 50.jpg тогда вылетит ошибка..
А нужно чтоб если не найдено то сработал следующий код.
Цитата:
id1.picture.loadfromfile('base/id/NoItem.jpg');
Он идет у меня после else......

Дальше, подскажите пожалуйста как можно переделать синтексическую ошибку таким образом строчку
с
Цитата:
id1.picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
на
Цитата:
id'+id.text'.picture.loadfromfile(' base/id/'+sedit10.Text+'.jpg')
(опишу проще, если в edit1.text пишьтеся 1, тогда загружать картинку будет под номером id1.picture, если в edit пишется 23 тогда будет загружаться в id23.picture
Jleksern вне форума Ответить с цитированием
Старый 13.08.2012, 20:05   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

читаем про try except.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.08.2012, 20:54   #3
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Код:
if sEdit10.Text=sEdit10.Text then  ==> проблема тут. надо if sEdit10.Text= 10 then
begin
id1.picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
end
else
id1.picture.loadfromfile('base/id/NoItem.jpg');
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 13.08.2012, 21:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if FileExists('base/id/'+sedit10.Text+'.jpg') then begin
 id1.picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
end else
 id1.picture.loadfromfile('base/id/NoItem.jpg');
И никаких трай эксцептов
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.08.2012, 21:06   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
И никаких трай эксцептов
Ну не совсем так просто, даже если FileExists, то не факт, что прочитаем
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.08.2012, 21:27   #6
Lishka
Заблокирован
 
Регистрация: 13.08.2012
Сообщений: 7
По умолчанию

(десять символов)

Извините, парни, прокатило.
Lishka вне форума Ответить с цитированием
Старый 13.08.2012, 21:48   #7
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
if FileExists('base/id/'+sedit10.Text+'.jpg') then begin
 id1.picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
end else
 id1.picture.loadfromfile('base/id/NoItem.jpg');
И никаких трай эксцептов
ВО!

То что доктор прописал!
Блин игрался и игрался бы ещё! Так бы и не додумался до такого варианта!

Теперь второй вопрос.
У меня к примеру 50 компонентов image я их назвал по ранжиру от id1, id2, id3...id50 и тд.,
картинки меняются в зависимости от того что указано в EDIT1.
Каким образом можно переделать так чтоб то что указано было в Edit1 заменяла название компонента.
к примеру есть код
Код:
id1.picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
после id заменялось на то что пишется в edit ?

Раньше я думал до того как попробовать что будет уместно так
id'+id.text+'.picture.loadfromfile(' base/id/'+sedit10.Text+'.jpg')
но увы....
Jleksern вне форума Ответить с цитированием
Старый 13.08.2012, 21:53   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var c:TImage;
begin
 c:=FindComponent('id'+id.text);
 if c is TImage then TImage(c).picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
end;
Цитата:
не факт, что прочитаем
Согласен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.08.2012, 22:03   #9
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
var c:TImage;
begin
 c:=FindComponent('id'+id.text);
 if c is TImage then TImage(c).picture.loadfromfile('base/id/'+sedit10.Text+'.jpg')
end;
Согласен.
Цитата:
[Error] Unit1.pas(200): Incompatible types: 'TImage' and 'TComponent'
ругается на строку
Цитата:
c:=FindComponent('id'+id.text);
Jleksern вне форума Ответить с цитированием
Старый 13.08.2012, 22:16   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А подправить var c: TComponent;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
image поверх edit celovec Помощь студентам 3 06.11.2011 21:03
Поиско в edit.text celovec Общие вопросы Delphi 8 14.10.2011 11:14
Edit.Text Cassius Общие вопросы Delphi 9 24.03.2011 21:58