![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() ОКНО БЕЗ ЗАГОЛОВКА
Код:
procedure TForm1.FormCreate(Sender: TObject); begin BorderStyle := bsSizeable; //alNone; - растягиваемое / нерастягиваемое окно; SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION or WS_BORDER); Height := Height - GetSystemMetrics(SM_CYCAPTION); Refresh; end; ТАСКАЕМ ОКНО ЗА LABEL Код:
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const sc_dragmove = $f012; begin releasecapture; Form1.Perform(wm_syscommand, sc_dragmove, 0); end; РАЗВОРАЧИВАЕМ И ВОССТАНАВЛИВАЕМ ОКНО БЕЗ ЗАГОЛОВКА Код:
public { Public declarations } WinPrp: array [1..4] of Integer; procedure TForm1.SpeedButton1Click(Sender: TObject); begin If Form1.Align <> alClient Then begin WinPrp[1] := Form1.Left; WinPrp[2] := Form1.Top; WinPrp[3] := Form1.Width; WinPrp[4] := Form1.Height; Form1.Align := alClient; end Else begin Form1.Align := alNone; Form1.Left := WinPrp[1]; Form1.Top := WinPrp[2]; Form1.Width := WinPrp[3]; Form1.Height := WinPrp[4]; end; end; СВЕРНУТЬ В ТАСКБАР ОКНО БЕЗ КНОПКИ Код:
procedure TForm1.SpeedButton2Click(Sender: TObject); begin ShowWindow(Application.Handle, SW_SHOW); // показываем форму окна; Application.MainForm.Show; // забираем фокус в окно; ShowWindow(Application.Handle, WM_SETFOCUS); // забираем фокус на таскбар; ShowWindow(Application.Handle, BM_SETSTATE); // кликаем; ShowWindow(Application.Handle, WM_KILLFOCUS); // отдаём фокус системе; end; СНОСИМ КНОПКУ В ТАСКБАРЕ ПО НЕЧЁТНЫМ КЛИКАМ И СВАРАЧИВАЕМ В ТРЕЙ ПО ЧЁТНЫМ Код:
Application.MainFormOnTaskbar := False; //в проекты :: посмотреть исходник; procedure TForm1.SpeedButton3Click(Sender: TObject); begin If Tag <> 1 Then begin ShowWindow(Application.Handle, SW_HIDE); Tag := 1; end Else begin TrayIcon1.Visible := True; Application.MainForm.Hide; Tag := 0; end; end; ВЫНИМАЕМ ОКНО ИЗ ТРЕЯ ПО ДАБЛКЛИКУ И ПОКАЗЫВАЕМ ЕГО КНОПКУ В ТАСКБАРЕ Код:
Application.MainFormOnTaskbar := False; //в проекты :: посмотреть исходник; procedure TForm1.TrayIcon1DblClick(Sender: TObject); begin TrayIcon1.Visible := False; //True; Application.MainForm.Show; ShowWindow(Application.Handle, SW_SHOW); //кнопка в таскбаре; end; ОКНО ПОВЕРХ ВСЕХ ОКНОН С НИЗКИМ ПРИОРИТЕТОМ Код:
procedure TForm1.SpeedButton4Click(Sender: TObject); begin If FormStyle <> fsStayOnTop Then begin FormStyle := fsStayOnTop; end Else begin FormStyle := fsNormal; end; end; Последний раз редактировалось x2088, 06.09.2011 в 18:37. |
#2
|
||||
|
||||
![]() А в чём вопрос? Код весь есть.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
![]() Цитата:
![]() — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#4
|
||||
|
||||
![]() Вот ещё примерчик к этой теме, правда медленно работает:
Рисует форму по картинке в Image, прозрачным цветом считается цвет верхней левой точки. Код:
procedure TForm1.FormCreate(Sender: TObject); Var R, TR, x, y: Integer; C: TColor; begin Image1.Left:= 0; Image1.Top:= 0; C:= Image1.Picture.Bitmap.Canvas.Pixels[0, 0]; R:= CreateRectRgn(0, 0, Image1.Picture.Graphic.Width, Image1.Picture.Graphic.Height); For x:= 0 To Image1.Picture.Graphic.Width Do For y:= 0 To Image1.Picture.Graphic.Height Do if Image1.Picture.Bitmap.Canvas.Pixels[x-1, y-1] = C Then begin TR:= CreateRectRgn(x-1, y-1, x, y); CombineRgn(R, R, TR, RGN_DIFF); DeleteObject(TR); end; Form1.BorderStyle:= BsNone; SetWindowRgn(Form1.Handle, R, True); end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; Form1.Perform(WM_SYSCOMMAND, $F012, 0); end; If end Then begin; Последний раз редактировалось AND_REY, 06.09.2011 в 22:11. |