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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2009, 11:54   #1
guffer
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 58
По умолчанию кнопка на рабочем столе

Как сделать кнопку на рабочем столе?
guffer вне форума Ответить с цитированием
Старый 08.07.2009, 12:08   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Окно + BorderStyle = bsNone; + AutoSize = True; на ней кнопка.

edit:
именно что не проще.
p.s. извращением занимаитесь

Последний раз редактировалось BOBAH13; 08.07.2009 в 12:33.
BOBAH13 вне форума Ответить с цитированием
Старый 08.07.2009, 12:12   #3
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

А не проще ли кнопке родителем сделать рабочий стол?
Levsha100 вне форума Ответить с цитированием
Старый 08.07.2009, 12:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например так:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public    b:TButton;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 MessageBox(GetForegroundWindow,'qq','',0);
end;

procedure TForm1.FormCreate(Sender: TObject);
 function GetDesktopListViewHandle: THandle;

var

S: String;
begin

Result := FindWindow('ProgMan', nil);
Result := GetWindow(Result, GW_CHILD);
Result := GetWindow(Result, GW_CHILD);
SetLength(S, 40);
GetClassName(Result, PChar(S), 39);
if PChar(S) <> 'SysListView32' then Result := 0;
end;
//**************************************************************************

begin
   b:=TButton.Create(self);
   b.Parent:=self;
   b.Left:=100;b.Top:=100;
   b.Width:=100;
   b.Height:=100;
   b.OnClick:=Button1Click;
   windows.SetParent(b.Handle,GetDesktopListViewHandle);
   b.Show;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
b.free;
end;

end.
Но код естесственно требует доработки. Скажи зачем тебе это может есть другой способ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать иконку на рабочем столе Михаил Юрьевич Win Api 6 15.04.2009 12:55
Вращение 5-угольника на рабочем столе Ratte Помощь студентам 7 21.04.2008 18:41
Значки на рабочем столе Xardas Свободное общение 4 01.03.2008 20:21
SpeedButton на рабочем столе ERASERROR Общие вопросы Delphi 10 22.01.2008 16:58
html на рабочем столе >AdepT< Win Api 4 28.02.2007 20:06