Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.07.2008, 21:50
AndrAlex AndrAlex вне форума
Прохожий
 
Регистрация: 09.07.2008
Сообщения: 7
Репутация: 10
По умолчанию Меняющиеся картинки

Всем привет!
Я программирую на lazarus - delphi только на линуксе да и инструментов поменьше...
ну и вот, нужно сделать так чтобы при нажатии на 3,4 чекбоксы менялась картинка - тимадж. Причем 3,4 чекбоксы зависят от 1,2... то есть нажал на 1 чекбокс, 3 выделился и изменил картинку... если нажал на 2 то опять же выделился 3 чекбокс и поменял картинку(картинки еств. везде разные).
Скриншот:
Изображения
Тип файла: jpg 123.jpg (53.6 Кбайт, 24 просмотров)
  #2  
Старый 14.07.2008, 22:49
newbiecoder newbiecoder вне форума
Прохожий
 
Регистрация: 14.07.2008
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от AndrAlex
Всем привет!
Я программирую на lazarus - delphi только на линуксе да и инструментов поменьше...
ну и вот, нужно сделать так чтобы при нажатии на 3,4 чекбоксы менялась картинка - тимадж. Причем 3,4 чекбоксы зависят от 1,2... то есть нажал на 1 чекбокс, 3 выделился и изменил картинку... если нажал на 2 то опять же выделился 3 чекбокс и поменял картинку(картинки еств. везде разные).
Скриншот:
типа:
Код:
if (checkbox1.checked:=True) and (checkbox2.checked:=True) then
image1.picture:=путь к картинке?
правильно тебя понял?

Последний раз редактировалось newbiecoder, 14.07.2008 в 23:01.
  #3  
Старый 14.07.2008, 23:48
AndrAlex AndrAlex вне форума
Прохожий
 
Регистрация: 09.07.2008
Сообщения: 7
Репутация: 10
По умолчанию

ну почти...
типа
Код:
if Radiobutton1.checked then
Edit1.text:='1.3'
Image1.picture:='/home/andralex/Картинки/ABSTRACT-CrunchyBranch_1680x1050.png';
if Radiobutton2.checked then
Edit1.text:='2.5';
Image1.picture:='/home/andralex/Картинки/ABSTRACT-Crunch_1280x1050.png';
вот...
а как правильно писать адрес и будит ли прога работать правильно на другом компе где этих картинок нет?
  #4  
Старый 15.07.2008, 02:10
newbiecoder newbiecoder вне форума
Прохожий
 
Регистрация: 14.07.2008
Сообщения: 11
Репутация: 10
По умолчанию

не так а вместо
Код:
Image1.picture:='/home/andralex/Картинки/ABSTRACT-Crunch_1280x1050.png';
пиши
Код:
Image1.Picture.LoadFromFile(имя_файла);
пнятненько? на другом компе соответственно будет ошибка!
Поетому советую использовать opendialog=)

Последний раз редактировалось newbiecoder, 15.07.2008 в 03:56.
  #5  
Старый 15.07.2008, 06:33
Andrevv Andrevv вне форума
Прохожий
 
Регистрация: 03.11.2007
Сообщения: 9
Репутация: 10
Восклицание

Цитата:
пнятненько? на другом компе соответственно будет ошибка!
Поетому советую использовать opendialog=)
Чтобы не возникало ошибки можно получить путь к исполняемому файлу, а от него найти картинки, но они в любом случае должны быть на другом компе.
  #6  
Старый 15.07.2008, 07:01
newbiecoder newbiecoder вне форума
Прохожий
 
Регистрация: 14.07.2008
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Andrevv
Чтобы не возникало ошибки можно получить путь к исполняемому файлу, а от него найти картинки, но они в любом случае должны быть на другом компе.
ага, можно и дальше и дальше в программу и поиск присобачить пусть весь комп обшарит, но опять же картинки должны быть именно с этим именем...
  #7  
Старый 15.07.2008, 09:22
Andrevv Andrevv вне форума
Прохожий
 
Регистрация: 03.11.2007
Сообщения: 9
Репутация: 10
Восклицание

Цитата:
ага, можно и дальше и дальше в программу и поиск присобачить пусть весь комп обшарит, но опять же картинки должны быть именно с этим именем...
Есть специальная функция которая возвращает строковую переменную со значением, например: Name='C:\Temp\'. Далее присваиваем:
Код:
Name:=Name+'Картинка.jpg';
Image1.Picture.LoadFromFile(Name);
и все
  #8  
Старый 15.07.2008, 09:44
k@Z@k k@Z@k вне форума
Новичок
 
Регистрация: 31.07.2007
Сообщения: 55
Репутация: 12
По умолчанию

если в программе используешь, одни и теже картинки, попробуй запихнуть их в ресурс.файл ресурсов лазаруса *.lrs
включается в программу как:
Код:
{$I file.lrs}
чтение из ресурса происходит так
Код:
LoadBitmapFromLazarusResource(ResourceName: String): TBitmap;
и вообще читай ресурсы для lazarus
  #9  
Старый 15.07.2008, 10:02
newbiecoder newbiecoder вне форума
Прохожий
 
Регистрация: 14.07.2008
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Andrevv
Есть специальная функция которая возвращает строковую переменную со значением, например: Name='C:\Temp\'. Далее присваиваем:
Код:
Name:=Name+'Картинка.jpg';
Image1.Picture.LoadFromFile(Name);
и все
а зачем лишняя переменная, вбиваешь сразу в
Код:
Image1.Picture.LoadFromFile(Name);
только путь в кавычках(')

Последний раз редактировалось newbiecoder, 15.07.2008 в 10:14.
  #10  
Старый 15.07.2008, 10:16
Andrevv Andrevv вне форума
Прохожий
 
Регистрация: 03.11.2007
Сообщения: 9
Репутация: 10
Восклицание

Цитата:
а зачем лишняя переменная, вбиваешь сразу в
Код:
Код:
Image1.Picture.LoadFromFile(Name);
Ну тогда уж
Код:
Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Картинка.jpg');
  #11  
Старый 15.07.2008, 10:30
newbiecoder newbiecoder вне форума
Прохожий
 
Регистрация: 14.07.2008
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Andrevv
Ну тогда уж
Код:
Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Картинка.jpg');
Может твой способ работает для других форматов, но с bmp и ico прекрасно работает Image1.Picture.LoadFromFile('D:\тратта\atata.bmp')
Но это vcl в Lcl незнаю, на моей убунте так и не нашел лазарус файлы фрипаскаля)

Последний раз редактировалось newbiecoder, 15.07.2008 в 10:33.
  #12  
Старый 15.07.2008, 11:26
Andrevv Andrevv вне форума
Прохожий
 
Регистрация: 03.11.2007
Сообщения: 9
Репутация: 10
Восклицание

Цитата:
Сообщение от newbiecoder
Может твой способ работает для других форматов, но с bmp и ico прекрасно работает Image1.Picture.LoadFromFile('D:\тратта\atata.bmp')
У меня то же самое, но используется когда заранее не известен полный путь к файлу
  #13  
Старый 15.07.2008, 16:47
AndrAlex AndrAlex вне форума
Прохожий
 
Регистрация: 09.07.2008
Сообщения: 7
Репутация: 10
По умолчанию

Товарищи!
Конечно вы облегчили мне задачу, но! Хотелось бы чтоб прога работала на всех компах... то есть картинки загрузить в свою прогу и потом их использовать...
  #14  
Старый 15.07.2008, 17:58
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

А почему нельзя сделать так?
Добавить на форму сколько нужно Image со всеми картинками, (Visible:=False) и потом написать так:
Код:
If CheckBox1.Checked = true then Image1.Picture.Graphic := Image2.Picture.Graphic;
Может это и не правильно, но я так обычно делаю ... Если что скажите как лучше
  #15  
Старый 15.07.2008, 21:56
newbiecoder newbiecoder вне форума
Прохожий
 
Регистрация: 14.07.2008
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Interface
А почему нельзя сделать так?
Добавить на форму сколько нужно Image со всеми картинками, (Visible:=False) и потом написать так:
Код:
If CheckBox1.Checked = true then Image1.Picture.Graphic := Image2.Picture.Graphic;
Может это и не правильно, но я так обычно делаю ... Если что скажите как лучше
нерационально однако)
можно создать отдельную папку и кинуть туда картинки которые тебе нужны её то без труда найдешь
Закрытая тема


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025