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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.08.2013, 14:14
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Помогите изменить код смены иконки

Здравствуйте!
На форме есть Image1, по его нажатию (если картинки нет) открывается opendialog1, после выбора файла, в Image1 появляется иконка выбранного файла. Теперь, если еще раз нажать, этот файл запустится!
Вот собсно код:
Код:
  Form1: TForm1;
  S:string;
  H:HICON;
  iconindex:Word;

implementation
...... ... ....

if S='' then
  begin
  sOpenDialog1.Execute;
  S:=sOpenDialog1.FileName;
  IconIndex := 1;
  if S='' then
  begin
    ShowMessage('Ничего не выбрано');
  end
  else
  h := ExtractAssociatedIcon(hInstance,PChar(S), IconINdex);
  img1.Picture.Icon.Handle := H;
  img1.Picture.Graphic := img1.Picture.Icon;
  end
  else
ShellExecute (Form1.Handle, nil, PChar(S), nil, nil, SW_RESTORE)

Я хочу переделать его под кнопку Bitbtn, без компонентов Image1. Что бы в него загружалась та самая иконка. Помогите пожалуйста переделать.

Последний раз редактировалось Gareth, 20.08.2013 в 14:17.
Ответить с цитированием
  #2  
Старый 20.08.2013, 14:21
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Как-то так
Код:
var 
  Ico:TIcon;


  Ico:=TIcon.Create();

  Ico.Handle:=H;

  BitBtn1.Glyph:=Ico;

  Ico.Free;
Ответить с цитированием
  #3  
Старый 20.08.2013, 14:42
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от icWasya
Как-то так

Делаю так
Код:
begin

 if S='' then
 begin
   sOpenDialog1.Execute;
   S:=sOpenDialog1.FileName;
 if S='' then
 begin
 ShowMessage('Не выбрал');
 end
 else
  h := ExtractAssociatedIcon(hInstance,PChar(S), IconINdex);
   Ico:=TIcon.Create();
  Ico.Handle:=H;
 sBitBtn1.Glyph:=ico;
  Ico.Free;
 end
 else
ShellExecute (Form1.Handle, nil, PChar(S), nil, nil, SW_RESTORE)}
  end;
Ругается на Incompatible types: 'TBitmap' and 'TIcon' (15 строка)
Ответить с цитированием
  #4  
Старый 20.08.2013, 15:22
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Вообще glyph воспринимает только формат .bmp, а ты в него .ico засунуть пытаешься. Выбрасывай этот код и пиши по новой, будут уже конкретные вопросы обращайся.
__________________
Google в помощь
Ответить с цитированием
  #5  
Старый 20.08.2013, 16:09
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ildar-tsr
Вообще glyph воспринимает только формат .bmp, а ты в него .ico засунуть пытаешься. Выбрасывай этот код и пиши по новой, будут уже конкретные вопросы обращайся.
Окей, как мне сделать так, что бы при OnMouseDown на Image1, происходила анимация нажатия на кнопке? Что бы было видно как кнопка нажимается под Image1.
Ответить с цитированием
  #6  
Старый 20.08.2013, 16:24
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Извиняюсь, нашёл, сначала не работало, но потом подсказали groupindex.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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