![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
А в чём вопрос? Код весь есть.
|
|
#3
|
||||
|
||||
|
Цитата:
![]() |
|
#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;Последний раз редактировалось AND_REY, 06.09.2011 в 22:11. |