Это - достаточно беспорядочный архив сообщений конференций сети 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)