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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

голосую: убить. (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Form.BorderStyle=bsToolWindow высота заголовка формы
    #39625960
Фотография ТатьянаKos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp, спасибо за подсказку! Все так как надо работает! Говорила же, что есть простое решение. Еще раз спасибо
...
Рейтинг: 0 / 0
Form.BorderStyle=bsToolWindow высота заголовка формы
    #39625999
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Татьяна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
Form.BorderStyle=bsToolWindow высота заголовка формы
    #39626007
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iПри минимизации изменение размера сперва возвращало окно в состояние Normal,
а потом уже изменяло и перемещало. Хотя минимизированное окно можно мышкой перетащить куда
угодно.
Значит, можно и программно.

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

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

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

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

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

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


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