Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Form.BorderStyle=bsToolWindow высота заголовка формы / 25 сообщений из 26, страница 1 из 2
04.04.2018, 19:40
    #39625708
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Form.BorderStyle=bsToolWindow нужно при нажатии на Caption формы сворачивать ее до заголовка и разворачивать при повторном нажатии, но даже если в инспекторе установить Height = 0 высота выставляется 34, а на самом-то деле меньше...Программно, что бы не назначить меньше 34 все-равно видно кусок формыю Нужны реальные советы.
...
Рейтинг: 0 / 0
04.04.2018, 20:55
    #39625730
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Запомнить положение окна, свернуть (не в трей) - окно переместится к кнопке "Пуск" - переместить на прежнее место.
Свернутое окно полностью скрывает клиентскую область.
...
Рейтинг: 0 / 0
04.04.2018, 21:34
    #39625749
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
d7i, как это все сделать-то?
...
Рейтинг: 0 / 0
04.04.2018, 21:54
    #39625753
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKos, я Дельфи совсем не знаю, только Си...
Запомнить позицию окна я думаю будет несложно ведь?
Свернуть окно (что-то типа WindowState, не знаю как в Дельфи называется) тоже не трудно.
Только следите за параметрами, там есть свертывание в трей, а есть на десктоп.
Ну, а переместить окно (типа WindowMove) по-моему тоже не сложно.

Я Вам код не напишу, я не знаю Дельфи. Я Вам посоветовал алгоритм только.
...
Рейтинг: 0 / 0
04.04.2018, 21:58
    #39625755
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
d7i, спасибо, попробую. Только это как-то через ... противоестественно как-то. Правильное решение должно быть простым или очень простым.
...
Рейтинг: 0 / 0
04.04.2018, 22:05
    #39625758
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKosПравильное решение должно быть простым или очень простым.

Я уже говорил, что увольнение текущих рукожопов не обсуждается? Найдите человека,
способного разобраться откуда всплывает ограничение в 34 пикселя и устранить его.
Исходники VCL вам в помощь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.04.2018, 22:09
    #39625763
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Dimitry Sibiryakov, а Вы сразу таким умным родились? Самоучка? Или все-же помощники и учителя были? Если человек спрашивает, а Вы знаете ответ, то почему не помочь??
...
Рейтинг: 0 / 0
04.04.2018, 23:04
    #39625774
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKos,
Я попробовал сам - ерунда получается...
Вот простое уменьшение высоты окна до 0

1 картинка - обычное окно
2 картинка - инструментальное

Меньше сделать простыми методами не удастся. Придется рисовать (обрезать) вручную. Морока одним словом.
...
Рейтинг: 0 / 0
04.04.2018, 23:18
    #39625777
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Вдононку.
Забыл написать, что размер окна я уменьшал через RECT:

RECT ro;
ro=GetRECT();
ro.h=0;
SetRECT(ro);

Похожие методы (типа WindowReplacement) дали абсолютно такой же результат.
...
Рейтинг: 0 / 0
04.04.2018, 23:30
    #39625786
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKosDimitry Sibiryakov, а Вы сразу таким умным родились?
Я сразу родился умный, повезло же !!!
...
Рейтинг: 0 / 0
05.04.2018, 00:38
    #39625798
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKosВы сразу таким умным родились? Самоучка?

Нет, не родился. Да, самоучка. Приходилось исходники читать. Форумов чтобы клянчить
готовый код под рукой не было.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.04.2018, 00:49
    #39625800
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
d7iПохожие методы (типа WindowReplacement) дали абсолютно такой же результат.

А это точно минимизированное окно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.04.2018, 07:37
    #39625844
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Dimitry Sibiryakov
Нет, не родился. Да, самоучка. Приходилось исходники читать. Форумов чтобы клянчить
готовый код под рукой не было.

Начнем с того, что ни одного слова про код у меня не было. Мне нужен совет людей, которые сталкивались с аналогичной проблемой. А, что касается форумов, то я много лет онлайн общалась с действительно умными людьми в фидо (пока оно не умерло естественной смертью), была там такая ru.Delphi эхо -конференция (прототип нынешних форумов), где не пытались обидеть, а помогали.
...
Рейтинг: 0 / 0
05.04.2018, 07:57
    #39625850
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Dimitry Sibiryakovd7iПохожие методы (типа WindowReplacement) дали абсолютно такой же результат.

А это точно минимизированное окно?


Да нет, это окна в состоянии Normal.
При минимизации изменение размера сперва возвращало окно в состояние Normal,
а потом уже изменяло и перемещало. Хотя минимизированное окно можно мышкой перетащить куда угодно.
Значит, можно и программно. Просто мне неинтересно было с этим возиться... тем более, что минимизированное
окно снизу грубо обрезано, смотрится коряво.

Я вообще подобных задач не понимаю - зачем это?
Можно конечно, используя Windows-функцию AnimateWindows (User32.dll) сделать окно
полупрозрачным, растворить, свернуть в точку или маленький квадратик. Использовать при этом звук -
хоть грохот, хоть шипение и т.д. и т.п.
Всё можно сделать. Только зачем?
Поприкалываться?

Я, к примеру, чисто для прикола, использую растворение окна при закрытии и проявление при открытии.
Но опционально. Любой пользователь может выключить эту функцию. Потому что (из опыта) со временем (а то и сразу)
такие приколы многих начинают раздражать.
...
Рейтинг: 0 / 0
05.04.2018, 08:43
    #39625861
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKosForm.BorderStyle=bsToolWindow нужно при нажатии на Caption формы сворачивать ее до заголовка и разворачивать при повторном нажатии, но даже если в инспекторе установить Height = 0 высота выставляется 34, а на самом-то деле меньше...Программно, что бы не назначить меньше 34 все-равно видно кусок формыю Нужны реальные советы.
Скрин, что происходит, и что нужно получить. С описания ничерта не понятно
...
Рейтинг: 0 / 0
05.04.2018, 09:14
    #39625881
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Скрин, что происходит, и что нужно получить. С описания ничерта не понятно[/quot]
При изменении размеров формы получаю такую картинку (рис1), а надо, чтобы было как на втором рисунке (без красной рамочки)
...
Рейтинг: 0 / 0
05.04.2018, 09:37
    #39625894
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKos,

Можно пойти другим путем. Для формы установить Border=bsNone, положить TPanel на нее (для эмуляции заголовка). И ловить Click по панели для минимизации и перетаскивания.
...
Рейтинг: 0 / 0
05.04.2018, 09:41
    #39625897
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
DarkMaster, я уже так сделала, но это как-то не спортивно. Опять же заморочки с перетаскиванием окна по экрану
...
Рейтинг: 0 / 0
05.04.2018, 09:53
    #39625907
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKos,

SetWindowsRgn () при минимизации и восстановлении окна?..
...
Рейтинг: 0 / 0
05.04.2018, 10:16
    #39625921
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ПТ-шный разводняк.

голосую: убить. (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.04.2018, 11:06
    #39625960
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
alekcvp, спасибо за подсказку! Все так как надо работает! Говорила же, что есть простое решение. Еще раз спасибо
...
Рейтинг: 0 / 0
05.04.2018, 11:45
    #39625999
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
ТатьянаKosalekcvp, спасибо за подсказку! Все так как надо работает! Говорила же, что есть простое решение. Еще раз спасибо
Вот ещё проще решение:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
unit rgMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TToolBoxForm = class(TForm)
    tmRestore: TTimer;
    procedure FormClick(Sender: TObject);
    procedure tmRestoreTimer(Sender: TObject);
  private
    FOldHeight: Integer;
    procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
  public
    { Public declarations }
  end;

var
  ToolBoxForm: TToolBoxForm;

implementation

uses Types;

{$R *.dfm}

procedure TToolBoxForm.FormClick(Sender: TObject);
var
  Rect: TRect;
begin
  FOldHeight := ClientHeight;
  ClientHeight := 0;
  tmRestore.Enabled := True;
end;

procedure TToolBoxForm.tmRestoreTimer(Sender: TObject);
begin
  tmRestore.Enabled := False;
  ClientHeight := FOldHeight;
end;

procedure TToolBoxForm.WMWindowPosChanging(
  var Message: TWMWindowPosChanging);
begin
  if Message.WindowPos.flags and SWP_NOSIZE = 0 then
   Message.Result := 0
  else DefaultHandler(Message);
end;

end.

...
Рейтинг: 0 / 0
05.04.2018, 11:55
    #39626007
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
d7iПри минимизации изменение размера сперва возвращало окно в состояние Normal,
а потом уже изменяло и перемещало. Хотя минимизированное окно можно мышкой перетащить куда
угодно.
Значит, можно и программно.

Зачем перетаскивать? Разве SetWindowPlacement не задаёт явно координаты в которые окно
должно сворачиваться?..

ТатьянаKosОпять же заморочки с перетаскиванием окна по экрану

Для них есть простое решение с WM_NCHITTEST.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.04.2018, 12:17
    #39626031
ТатьянаKos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
[spoiler Вот ещё проще решение:]

Еще раз спасибо огромное! Вот это уже совсем красивое решение
...
Рейтинг: 0 / 0
05.04.2018, 12:22
    #39626036
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Form.BorderStyle=bsToolWindow высота заголовка формы
Dimitry Sibiryakovd7iПри минимизации изменение размера сперва возвращало окно в состояние Normal,
а потом уже изменяло и перемещало. Хотя минимизированное окно можно мышкой перетащить куда
угодно.
Значит, можно и программно.

Зачем перетаскивать? Разве SetWindowPlacement не задаёт явно координаты в которые окно
должно сворачиваться?..

Безусловно. Просто было уже поздно и мне надоело возиться с этим.
Попробовал только изменение высоты - не помогло.
А до задания в структуре сворачивания и координат руки не дошли...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Form.BorderStyle=bsToolWindow высота заголовка формы / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]