На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> тень под окном
    а можно ли как-нибудь создать тень под окном, чтобы она затемняла то, что в неё попадает?
      unit Unit1;
      interface
      uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
      type
      TForm1 = class(TForm)
      Button1: TButton;
      procedure FormCreate(Sender: TObject);
      procedure FormDestroy(Sender: TObject);
      procedure FormPaint(Sender: TObject);
      procedure FormShow(Sender: TObject);
      procedure Button1Click(Sender: TObject);
      private
      { Private declarations }
      Desktop : TBitmap;
      procedure WMActivate( var M : TWMActivate ); message WM_ACTIVATE;
      public
      { Public declarations }
      end;
      var
      Form1: TForm1;
      implementation
      {$R *.DFM}
      function Shadow( RGB : TColor; Intensity : Integer ): TColor;
      const
      Masks : array[1..10] of Byte =
      (100,90,80,80,80,80,80,70,60,50);
      var
      R, G, B : Integer;
      begin
      R := GetRValue( RGB ) * Masks[Intensity] div 100;
      G := GetGValue( RGB ) * Masks[Intensity] div 100;
      B := GetBValue( RGB ) * Masks[Intensity] div 100;
      Result := ( R shl 16 ) or ( G shl 8 ) or B;
      end;
      procedure TForm1.WMActivate( var M : TWMActivate );
      begin
      inherited;
      if M.Active = WA_INACTIVE then Close;
      end;
      procedure TForm1.FormCreate(Sender: TObject);
      begin
      BorderStyle := bsNone;
      DeskTop := TBitmap.Create;
      DeskTop.Width := Width;
      DeskTop.Height := Height;
      end;
      procedure TForm1.FormDestroy(Sender: TObject);
      begin
      DeskTop.Free;
      end;
      procedure TForm1.FormPaint(Sender: TObject);
      begin
      Canvas.Draw( 0, 0, DeskTop );
      end;
      procedure TForm1.FormShow( Sender: TObject);
      var
      DeskDC : hDC;
      DeskCan : TCanvas;
      I, J : Integer;
      begin
      SetActiveWindow( Handle );
      DeskDC := GetDC( GetDeskTopWindow );
      DeskCan := TCanvas.Create;
      try
      DeskCan.Handle := DeskDC;
      with DeskTop.Canvas do begin
      CopyRect( Bounds( 0, 0, Width, Height ),
      DeskCan, Bounds( Left, Top, Width, Height ) );
      Brush.Color := Color;
      FillRect( Bounds( 0, 0, Width - 10, Height - 10) );
      Rectangle( 0, 0, Width - 10, Height - 10 );
      for I := 0 to Width do
      for J := 1 to 10 do
      if ( I > 8 ) and ( Width - I > J ) then
      Pixels[I,Height-J] := Shadow( Pixels[I,Height-J], J );
      for I := 0 to Height do
      for J := 1 to 10 do
      if ( I > 8 ) and ( Height - I >= J ) then
      Pixels[Width-J,I] := Shadow( Pixels[Width-J,I], J );
      end;
      finally
      DeskCan.Free;
      end;
      end;
      procedure TForm1.Button1Click(Sender: TObject);
      begin
      Close;
      end;
      end.
        Спасибо большое, Один Бог
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0193 ]   [ 16 queries used ]   [ Generated: 1.05.24, 18:11 GMT ]