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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2013, 06:04   #1
АлМазСофт
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 24
Злость Не могу загрузить картинку в ImageList

В designtime загружается, а в runtime XE3 никак не хочет, хотя делаю все, вроде бы, по науке
Код:
procedure TForm1.btn1Click(Sender: TObject);
var
  Bmp : TBitmap;
begin
  Bmp := TBitmap.Create;
  if form1.dlgOpenPic1.Execute then
  Begin
    try
      Bmp.LoadFromFile(dlgOpenPic1.FileName);
      Form1.il1.Clear;
      Form1.img1.Picture.Bitmap := Bmp; //Показ загруженной картинки. ОК!
      Form1.il1.Add(Bmp,nil);
      //Form1.il1.AddMasked(Bmp,clWhite);
    finally
      Bmp.Free;
    end;
  End;
end;
Уважаемые гуру.
Подскажите, пожалуйста, в чем может быть дело?

Последний раз редактировалось Stilet; 22.08.2013 в 08:13.
АлМазСофт вне форума Ответить с цитированием
Старый 22.08.2013, 07:15   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Лучше расскажите как вы определили что "в runtime XE3 никак не хочет"?
Потому как тестирование вашего кода показало его работоспособность.
Прик вне форума Ответить с цитированием
Старый 22.08.2013, 14:24   #3
АлМазСофт
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
Лучше расскажите как вы определили что "в runtime XE3 никак не хочет"?
Потому как тестирование вашего кода показало его работоспособность.
Выполнил, закрыл программу и в design time открыл imagelist.
А там картиночки нету
АлМазСофт вне форума Ответить с цитированием
Старый 22.08.2013, 14:42   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Если так, то их и быть не должно.
При загрузке в design-time массив картинкок сохраняются в dfm-файле формы.
При загрузке в run-time им негде сохраняться и после выхода из программы ImageList будет уже пуст.
Прик вне форума Ответить с цитированием
Старый 22.08.2013, 14:42   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от АлМазСофт Посмотреть сообщение
Выполнил, закрыл программу и в design time открыл imagelist.
А там картиночки нету
она и не появится там никогда, в дезайн тайме ваша программа не работает еще.
и приложение не меняет свои исходники чтоб чтото изменилось в дизайне.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.08.2013, 15:12   #6
АлМазСофт
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 24
По умолчанию

Я новичок в Дельфи, может, что не так делаю?
И еще: вчера поставил ОnPack expert, может, он как-то мешает?

Прик, Пепел, спасибо, я понял.
Получается, я каждый раз должен по новой картинки загружать?
А можно их как-то сохранить в dfm-файле формы?

Последний раз редактировалось Stilet; 22.08.2013 в 15:45.
АлМазСофт вне форума Ответить с цитированием
Старый 22.08.2013, 15:24   #7
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Двойной щелчок по компоненту ImageList на форме открывает редактор массива картинок.
С его помощью загружают картинки, которые сохраняются "навсегда" в программе.
Прик вне форума Ответить с цитированием
Старый 22.08.2013, 15:36   #8
АлМазСофт
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
Двойной щелчок по компоненту ImageList на форме открывает редактор массива картинок.
С его помощью загружают картинки, которые сохраняются "навсегда" в программе.
Это может сделать только программист в designtime.
У юзера нет проекта, есть только исполняемый файл.
А мне нужно, чтобы юзер мог загрузить свои картинки и пользоваться программой.

Этот редактор массива картинок программно открыть нельзя?

Последний раз редактировалось Stilet; 22.08.2013 в 15:45.
АлМазСофт вне форума Ответить с цитированием
Старый 22.08.2013, 15:41   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
А мне нужно, чтобы юзер мог загрузить свои картинки и пользоваться программой.
Значит выбранные картинки держать в каком-то виде в доступном юзеру каталоге. О котором прога должна знать и при запуске брать их
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.08.2013, 16:29   #10
АлМазСофт
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Значит выбранные картинки держать в каком-то виде в доступном юзеру каталоге. О котором прога должна знать и при запуске брать их
Конечно же, путь к файлу с картинками можно запомнить и при каждом запуске программы загружать одни и те же картинки в Imagelist. Но это лишние действия. Как то все это не кузяво. Хотелось бы это делать один раз.
И еще такой момент.
Я загружаю картинки в Imagelist из библиотеки пиктограмм. Если юзер хочет добавить пиктограмму, он должен это делать в 2 шага: сначала ее добавить в библиотеку пиктограмм (что не очень просто), а потом грузить
библиотеку в Imagelist при каждом запуске программы.
Лучше было бы просто добавить новую картинку в Imagelist.
АлМазСофт вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу загрузить картинку nextgen artemhp WordPress и другие CMS 0 11.12.2011 04:36
ImageList програмно загрузить и сохранить ArtGrek Компоненты Delphi 6 28.12.2010 14:44
загрузить из imagelist иконку окна Человек_Борща Общие вопросы Delphi 1 14.11.2010 14:06
Вставить картинку из ImageList в RichView Shouldercannon Общие вопросы Delphi 2 02.07.2010 20:55
Вставить картинку из ImageList в RichView Shouldercannon Помощь студентам 0 01.07.2010 22:34