Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 2
Всего онлайн: 2
Зарегистрировано юзеров: 6619
Комментариев на сайте: 650
Новый юзер: Dysonetn



Последние комментарии
c
dealrattKi прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Это действительно радует меня. --- Бесподобное сообщение скачать fifa, скачать фифа а также [url=http://15fifa.ru/novosti-fifa-15]fifa 15 последние новости[/url] скачать фифа
intatryadebra прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Revival RO is best free ro populair ragnarok online private server founded in 2017 2018. Revival pvp big free Ragnarok server is an online exciting free MMORPG called ragnarok online, it a fun server for MMORPG gamers in ASIA. This is a top 10 ragnarok online private server thats high on the list and top ranking with massive players online. We have many players from Asia like Malaysia, Indonesia, Philippines, Thailand, Singapore, China, Hong Kong All these players are here to play free private ragnarok online server and battle players all around the world. They want to collect the best items and gear to be strongest in War of Emperium, War of Emperium are guild wars in this free RO Server. You can play this game on android phone or tablet or pc client. Enjoy And have fun. ragnarok online server http://bit.ly/2tKyawS

Урок 40 - Панель быстрого запуска (часть 2/2)

   В этом уроке мы доработаем панель быстрого запуска и добавим функцию Drag-and-drop.

   Первым мы сделаем перетаскивание файлов. Кинем на форму компонент Image и объявим функцию после ключевого слова private в описании класса Form1:

	...
	
private
    { Private declarations }
    procedure WmDropFiles( var Msg: TWMDropFiles); message WM_DropFiles;

	...
   Она будет срабатывать когда из системы придет сообщение о перетаскивании какого-нибудь файла на форму программы. Нажимаем комбинацию клавиш Ctrl-Shift-C и появляется шаблон этой функции, заполняем его, но перед этим нужно еще создать глобальные переменные:
   CFileName: array[0..MAX_PATH] of Char; // Переменная с именем перетаскиваемого файла
   F: string; //Это для удобства
 
procedure TForm1.WmDropFiles(var Msg: TWMDropFiles);
var
  icon: hicon; //Иконка файла 
  iconindex: word;
begin
  try
    if DragQueryFile(Msg.Drop,0, CfileName, Max_Path)> 0 then //Если перетащили файл
    begin
      F:=CfileName; // Конвертируем Array of Char -> String
      Label1.Caption:=ExtractFileName(F); // Получаем имя файла из его полного пути
      Msg.Result:=0;
    end;
  finally
    DragFinish(Msg.Drop); //Говорим что приняли файл
  end;

  iconindex:=1; 
  //получаем картинку из файла
  Image1.Picture.Icon.Handle:= ExtractAssociatedIcon(HInstance, Pchar(F), iconIndex); 
  DrawIcon(Canvas.Handle,10,10,icon); //Рисуем картинку
end;
   Еще надо добавит в uses модуль ShellApi и в обработчик OnCreate добавит строчку:
	DragAcceptFiles(handle, true); // Включаем режим Drag-and-drop
end;
   Тогда все будет работать. Проверяем:

Drag-and-drop


Drag-and-drop


Drag-and-drop
:)


   Осталось только сделать запуск приложения по клику и убрать огранку формы. Кликаем 2 раза на Image и пишем код:
	ShellExecute(Form1.Handle, nil, Pchar(F), nil, nil, SW_RESTORE); //Запускаем программу (путь = F)
   У Form1 свойство BorderStyle на bsNone, убираем огранку, свойство AlphaBlend True и AlphaBlendValue например 150. А также сделаем нашу форму по верх всех окон, свойство FormStyle на fsStayOnTop.

   Вот что получилось:

Показана
Жмем первый раз
Спрятана
Жмем второй раз


Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 17 Мая 2013
Просмотров: 10743

Урок 39 - Панель быстрого запуска (часть 1/2)

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: Programer [Новичок] Дата: 2013-05-23
Александр у вас лицензионная версия Delphi ?




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2013-05-23
А сам как думаешь?




аватар Добавил: jinded [Новичок] Дата: 2013-05-26
Admin скажите, если у вас место где можно спрашивать по программе delphy 7, я бы тут спросил но это не совсем по уроку )




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2013-05-26
Skype: mafik2121_rus




аватар Добавил(а): alexdudchenko [Новичок] Дата: 2013-05-29
Здравствуйте, не подскажите пожалуйста а как добавить несколько ярлыков в компонент Panel :?. Спасибо)




аватар Добавил: Klesh [Программист] Дата: 2013-05-29
Вместо переменной CFileName сделать массив размером 2 ([0..1]) и при перетаскивании смотреть, если 1 элемент массива свободен ( = ' ), то записать в первую ячейку путь и загрузить картинку в первый Image, если нет то во вторую и во второй Image. И добавить второй Image, в обработчике OnClick открывать программу из второй ячейки.




аватар Добавил(а): igrok [Новичок] Дата: 2013-10-30
Делаю всё точно так же, даже windows такой же стоит), но при перетаскивании ничего не происходит. Перепроверил 3 раза.




аватар Добавил(а): ventura69 [Новичок] Дата: 2015-03-17
А можно поподробнее о массиве на n компонентов? Пробовал создать массив с 6-го урока, но запутался... С института не дружу с массивами и матрицами, как это ни печально.




аватар Добавил(а): ventura69 [Новичок] Дата: 2015-03-17
Все, до чего дотумкал: procedure TForm1.WmDropFiles(var Msg: TWMDropFiles); var icon: hicon; iconindex: word; begin try if DragQueryFile(Msg.Drop,0, mas (i), Max_Path)> 0 then begin var mas: array[1..2] of string; i:integer; begin mas[i]:=CfileName; for i:=1 to 2 do Msg.Result:=0; end; finally DragFinish(Msg.Drop); end; iconindex:=1; for i := 1 to 2 do ... и на этом все. Дальше мысль умерла...




аватар Добавил(а): ventura69 [Новичок] Дата: 2016-09-22
Печально, что хорошая идея захирела: ни поддержки, ни помощи, ни развития нет... Я ведь азы кодинга с этого сайта брал. Вот, взгрустнулось, выбрал время и накидал небольшую панельку за час. Можно сказать: на коленке. Выкладываю для любознательных. Писал не ХЕ7. Код не оптимизировал (пусть будет дз для желающих ). https://yadi.sk/d/YAag_sDDvWujt это ссылочка на я-диск с архивом. В архиве и готовый проект есть, и исходники. Ковыряйте, кому интересно.