Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
1

Из timagelist в image

26.02.2015, 14:24. Показов 5174. Ответов 54
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Неободимо из imagelist поместеть картинку в image, причем выбор картинки происходит из toolbutton,
Пытался сделать так:
Delphi
1
ImageList1.GetBitmap(0,A1x1.Picture.Bitmap);
но тут заноситься только картина на определенном индексе, как сделать чтобы можно было заносить картинку любого индекса ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2015, 14:24
Ответы с готовыми решениями:

Надо что бы при нажатии на какой либо Image с картинкой, картинка перекидывалась в пусто Image, а Image на который нажали исчезал.
Имеется 4 Image в 3 из них находятся картинки, а 4 пустой. Надо что бы при нажатии на какой либо...

TImage and TImageList
Как поместить картинку в TImage из TImageList??Заранее спасибо. Добавлено через 47 минут...

TImageList index
Как мне с помощью ImageList1 при нажатии на какую-нибудь кнопку сделать так что-бы с ImageIndex...

Аналог TImageList
Есть ли аналог TImageList Написанный на таких функциях ? Почему не TImageList ? сейчас моя...

54
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 08:17 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от @lex999 Посмотреть сообщение
нажимаю на кнопку на toolbar'e, затем на image
И появляется изображение, которого до этого вообще не было ?

А потом еще раз "нажимаешь .. затем" и изображение остается прежним ?
0
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 08:40  [ТС] 22
появляется изображение которое я выбрал, но поменять его на другое не получается.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 08:57 23
Цитата Сообщение от @lex999 Посмотреть сообщение
изображение которое я выбрал
И опять нихрена не понятно)

Ладно, спрошу по рабоче-крестьянски:

вот ты запустил свое приложение, появилась форма, никакие кнопки нигде ты еще не давил - изображение в Image уже есть ?
0
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 09:13  [ТС] 24
нет

p.s сорри за мой французский)
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 09:26 25
Сделай так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.A1x1Click(Sender: TObject);
begin
  ShowMessage('Жмакнул на A1x1: N = ' + IntToStr(N));
  ImageList1.GetBitmap(n,A1x1.Picture.Bitmap);
  A1x1.Repaint;
end;
 
procedure TForm1.LogButton1Click(Sender: TObject);
begin
  n:=1;
  ShowMessage('Жмакнул на LogButton1: N = ' + IntToStr(N));
end;
 
procedure TForm1.LogButton2Click(Sender: TObject);
begin
  n:=2;
  ShowMessage('Жмакнул на LogButton2: N = ' + IntToStr(N));
end;
Рассказывай подробно при каких действиях и что при этом видишь ..
1
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 09:56  [ТС] 26
Спасибо огромное, совсем забыл про repaint))

Добавлено через 9 минут
еще один вопрос, если можно, вы не знаете ,как можно сделать так, чтобы границы image были видны, т.е чтобы была своеобразная сетка ?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 10:02 27
И сколько же этих Image ты нашлепал на форму ?
0
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 10:13  [ТС] 28
210, или можно как то по другом сделать границы, т.е на image с границами скинуть все эти другие image
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 10:22 29
Цитата Сообщение от @lex999 Посмотреть сообщение
210
Очуметь..

А по-хорошему-то не нужен вообще ни один - все это расчудесно делается средствами всего одного-единственного компонента TDrawGrid.
0
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 10:30  [ТС] 30
а вы не могли бы подсказать, как ужать код, т.е чтобы для каждой кнопки и image не прописывать один и тот же код ?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 10:44 31
для каждой кнопки укажи, например, в св-ве Tag значение соответствующего индекса в имиджлисте
назначь всем кнопкам единый метод-обработчик события клика

в этом едином для всех кнопок методе-обработчике:
Delphi
1
N := TComponent(Sender).Tag;
Тоже самое касается коспонентов Image, коих у тебя 210 - назначь им единый метод обработчик клика, в котором:

Delphi
1
2
3
4
5
with TImage(Sender) do
begin
  ImageList1.GetBitmap(n, Picture.Bitmap);
  Repaint;
end;
0
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 11:19  [ТС] 32
т.е для кнопок создать одну процедуру и ссылаться на нее, и для image тоже одну процедуру и ссылаться на нее ?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 11:21 33
именно так
1
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 11:33  [ТС] 34
и чтобы тегу присвоить индекс в imagelist что-то вроде этого:
Delphi
1
2
TToolButton(sender).Tag:=ImageList1.Tag;
N := TToolButton(Sender).Tag
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 11:42 35
нет.
значение Кнопка.Tag должно заполняться в момент создания самой Кнопки (в дизайнтайм или в рантайм - не суть как важно)

В момент же клика Кнопки при едином на все кнопки обработчике клика значение св-ва Tag конкретно кликнутой кнопки как раз и может быть получено строчкой
N := TToolButton(Sender).Tag

А ImageList1.Tag тут вообще ни с какого боку ни припека)
1
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 12:04  [ТС] 36
все сделал вот так вроде работает
Delphi
1
N := TToolButton(Sender).ImageIndex;

относительно image:
Добавлено через 10 минут
Delphi
1
2
ImageList1.GetBitmap(n, Picture.Bitmap);
  Repaint;
в этом случае пишет ошибку

[Error] Unit1.pas(330): Undeclared identifier: 'Picture'

как я понимаю проблему в том что к pictures нужнен конкретный image, как можно это испраить ?)
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 12:11 37
Цитата Сообщение от @lex999 Посмотреть сообщение
Undeclared identifier: 'Picture'

А эту строку

with TImage(Sender) do

у тебя мыши съели ?)
0
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 12:13  [ТС] 38
все, не увидел:
Delphi
1
 with TImage(Sender) do
, спасибо огромное
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
27.02.2015, 12:24 39
Все же подумай пока не поздно, нафих тебе две сотни Image, когда (и нужно) можно обойтись всего одним TDrawGrid)
0
4 / 4 / 0
Регистрация: 26.06.2013
Сообщений: 110
27.02.2015, 12:42  [ТС] 40
просто с отдельным компонентом, мне кажется, удобнее работать, или c drawgrid все таки лучше ?
0
27.02.2015, 12:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2015, 12:42
Помогаю со студенческими работами здесь

Работа с ImageList1 и TImageList
При нажатии на кнопку вывожу в Label текст, и через TImage картинку, но после компиляции нужно...

TImageList размер рисунков
Тема эта очень древняя и идет из дельфи. Тем не менее не могу решить. У меня есть несколько рис. с...

Компоненты TImage TImageList
Как в билдере используя компоненты TImage TImageList сделать небольшую анимацию? Чтоб при нажатии...

Плохое качество рисунков в TImageList
Собственно я недоволен компонентом TImageList . Точнее его ограничениями на размеры хранимых в нем...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru