DiBR
обычная кошмарная
домашняя страничка
Ежекакполучится околокомпьютерное обозрение
 
  <<<  предыдущий Tech! archive #779 следующий  >>>  
   Последний выпуск       Архив       Ссылки       Полезности       humor.filtered       Фотки       О сайте   
          Это - достаточно беспорядочный архив сообщений конференций сети fidonet, которые на момент их прочтения мной показались полезными или интересными. Многие устарели, многие узкоспецифичны и малоинтересны, но может оказаться и что-то новое...
         
- __techs (2:5015/42) ----------------------------------------------- __techs -
Msg  : 779 of 1000                         Scn
From : Costik Aganichev                    2:5020/603.36   13 Jan 99  18:01:08
To   : All                                                 14 Jan 99  09:50:48
Subj : Дайджест по конференции RU.DELPHI [1 of 2]
-------------------------------------------------------------------------------
@AREA:RU.CBUILDER
═════════════════════════════════════════════════════════════════════════════
* Forwarded by Costik Aganichev (2:5020/603.36)
* Area : RU.DELPHI
* From : Nick Slepchenko, 2:5064/6.10 (11 Jan 99 11:30)
* To   : All
* Subj : Дайджест по конференции RU.DELPHI [1 of 2]
═════════════════════════════════════════════════════════════════════════════
/│/ Приветствую тебя, _All_ !
/╘══════════════════-═════-════-═══-══--/ /--/ /-/ /···/

   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █        Дайджест по конференции RU.DELPHI (редакция от 09-01-99)      █
   █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█

╒══════════════════════════════════════════════════════════════════════════╕
│                                                                          │
│    Я не претендую на авторские права тех людей, чьи материалы включены   │
│ в этот дайджест. Здесь не yказаны их копирайты, но так полyчилось по     │
│ двyм причинам:                                                           │
│ 1. Я составлял этот дайджест лично для себя и не                         │
│    предпологал его выставлять на всеобщее обозрение.                     │
│ 2. Этот файл достаточно объемен и копирайты я не включал                 │
│    сюда для того, чтобы не yвеличивать объем файла (делал-то для себя).  │
│                                                                          │
│    Так что претензий по авторским правам не принимаю. Я лишь имею права  │
│ на эти материалы как составитель. Т.е. я просто объединил весь понравив- │
│ шийся мне материал. Если есть какие-то вопросы/пожелания/дополнения, про-│
│ шy написать мне в нетмайле. Если никто не против такой формы дайджеста,  │
│ то я могy постить его при каждом дополнении/изменении. (Мнения насчет    │
│ постить/не постить тоже в нетмайл).                                      │
│                                                                          │
│                             С уважением...       -═╬┤ик═-·[FAQ TeAm]·═-  │
│                                                                          │
│                                                                          │
│ По всем вопросам: 2:5064/6.10@fidonet.org                                │
╘══════════════════════════════════════════════════════════════════════════╛

-+----------------------------------------------------------------------------

>      Каким  образом  можно  узнать  какая нажата кнопка на клавиатуре
> (мыши)  вне  зависимости  от  того, какое  приложение в данный момент
> активно?

 GetAsyncKeyState. И для клавиатуpы, и для мыши.
-+----------------------------------------------------------------------------

> Как мне получить путь к запущенной программе из нее самой?

 Application.EXEName;
-+----------------------------------------------------------------------------

> Как в Delphi определить, где установлена Windows?

 GetWindowsDirectory

 Пример:

 var  Windir  : String;
      WindirP : PChar;
 ................................................
      WinDirP := StrAlloc(255);
      Res := GetWindowsDirectory(WinDirP, 255);
      if Res > 0 then WinDir := StrPas(WinDirP);
 ................................................
-+----------------------------------------------------------------------------

> Каким образом можно убрать приложение из Task Bar?

 ShowWindow(Application.Handle,SW_HIDE);
-+----------------------------------------------------------------------------

> Каким образом можно убрать приложение из Task List?

 Пример:
 unit hideprg;
 interface
 procedure TryToHide;
 implementation
 procedure RegisterServiceProcess; external 'kernel32.dll' name
                                            'RegisterServiceProcess';
 procedure TryToHide;assembler;
 asm
   push 1
   push 0
   call RegisterServiceProcess;
 end;
-+----------------------------------------------------------------------------

> Каким образом можно спрятать приложение от показа при нажатии Alt+Tab?

 Пример (работает только в Win'95):

 var  WnHnd   : Integer;
 ........................................................
 WnHnd := GetWindowLong(Application.Handle, GWL_EXSTYLE);
 WnHnd := WnHnd or WS_EX_TOOLWINDOW;
 SetWindowLong(Application.Handle, GWL_EXSTYLE, WnHnd);
 ........................................................

-+----------------------------------------------------------------------------

> Как можно сделать форму прозрачной?

 Для этого необходимо пеpеопpеделить обpаботчик события OnCreate:

 procedure TForm1.FormCreate(Sender: TObject);
 begin
    Brush.Style:=bsClear;
 end;
-+----------------------------------------------------------------------------

> Как сделать произвольную (непрямоугольную) форму?

Win32 (Windows'95 or Windows NT 4.0 or above).
Достаточно создать регион нужной формы и вызвать SetWindowRgn -
HRGN rgn := CreateEllipticRgn( 10,10,100,100 );
SetWindowRgn( hMyWnd,rgn );     // Вот и будет круглое окно
При этом регион этот теперь используется Windows и будет уничтожен при
закрытии окна.

 Вот, например:
 ........................................................
 procedure TForm1.FormCreate(Sender: TObject);
 const W=36*pi/180;
 var   R,R1,R2: HRgn; X,Y,i:integer;
    function S(a:integer;R:integer):integer;
    begin
      Result:=round(R*sin(W*a));
    end;
    function C(a:integer;R:integer):integer;
    begin
      Result:=round(R*cos(W*a));
    end;
    function GetStarReg(X,Y,R:integer):HRGN;
    var  P : array [0..4] of TPoint;
    begin
       P[0] := Point(X, Y-R);
       P[1] := Point(X-S(4,R), Y-C(4,R));
       P[2] := Point(X-S(8,R), Y-C(8,R));
       P[3] := Point(X-S(2,R), Y-C(2,R));
       P[4] := Point(X-S(6,R), Y-C(6,R));
       Result := CreatePolygonRgn(P, 5, WINDING);
    end;
 begin
    X:=Width div 2;
    Y:=Height div 2;
    R:=GetStarReg(X,Y,100);
    i:=1;
    repeat
      R1:=GetStarReg(X-S(i,120),Y-C(i,110),40);
      CombineRgn(R,R,R1,RGN_OR);
      inc(i,2);
    until i>9;
    R1:=GetStarReg(X,Y,30);
    CombineRgn(R,R,R1,RGN_DIFF);
    R1:=CreateEllipticRgn(3,3,Width-6,Height-6);
    R2:=CreateEllipticRgn(20,10,Width-20,Height-10);
    CombineRgn(R1,R1,R2,RGN_DIFF);
    CombineRgn(R,R,R1,RGN_OR);
    SetWindowRgn(Handle, R, True);
 end;
 ........................................................

-+----------------------------------------------------------------------------

> Как создать файлы с уникальными именами?

 Здесь удобнее всего использовать имя, состоящее из даты и времени, напри-
 мер: 2310566160798 для 23:10:56 16-07-98. Если перевести это число в 32-чную
 систему счисления, получим искомые восемь символов имени файла.
-+----------------------------------------------------------------------------

> Как программно переключать раскладку клавиатуры?

 LoadKeyboardLayout('00000409', KLF_ACTIVATE); // английский
 LoadKeyboardLayout('00000419', KLF_ACTIVATE); // русский
-+----------------------------------------------------------------------------

> Как сделать невидимой главную форму?

Hаписать  Application.ShowMainForm:=false в файле пpоекта.
-+----------------------------------------------------------------------------

*┌--------------------------------* *----* *---* *--* *-* *···*
*│* С уважением...       -═╬┤ик═-·[_FAQ_ TeAm]·═-

-+- Почтальон печкин с галчонком весом 3.00.Beta3+
+ Origin: The truth is out there... (C) X-Files (FidoNet 2:5064/6.10)
═════════════════════════════════════════════════════════════════════════════

Hello All!


                                                               Costik

... Далее действуем по правилу великого чешского ученого Буравчика
--- GoldED/W32 3.00.Beta5+
* Origin: Sardukar Unit, Zelenograd, Russia (2:5020/603.36)






<<<

архив dibr

>>>'