Форум: "Начинающим";
Текущий архив: 2014.02.16;
Скачать: [xml.tar.bz2];
Внизпроблемма с BorderStyle:= bsNone; Найти похожие ветки
← →
novai (2013-04-22 14:12) [0]почему если:
procedure TForm1.FormCreate(Sender: TObject);
begin
BorderStyle:= bsNone;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption:= IntToStr(ClientWidth) + "x" + IntToStr(ClientHeight);
end;
то я вижу, что ClientWidth=Width и ClientHeight=Height ?
Соответственно, сама форма чуть больше, чем должна быть...
Как сделать, ClientWidth и ClientHeight содержащими значения, что были выставлены в обжект инспекторе?
← →
Ega23 © (2013-04-22 14:19) [1]Положить туда фрейм, а привязку делать уже с него.
← →
novai (2013-04-22 14:21) [2]это как положит туда шаблон? но ведь скорее всего можно без этих танцев?
← →
novai (2013-04-22 14:23) [3]и что характерно, в инете решения данной проблемы не нашел, не сталкивались видимо?
← →
Ega23 © (2013-04-22 14:36) [4]С чем не сталкивались? Я что-то решительно не понимаю.
← →
Плохиш © (2013-04-22 14:57) [5]Он просто не понимает, что клиентная область зависит от размеров формы и наличия рамки, а не наоборот.
← →
novai (2013-04-22 14:59) [6]что-то можно сделать?
← →
Inovet © (2013-04-22 15:17) [7]> [6] novai (22.04.13 14:59)
> что-то можно сделать?
А так?
Height := Height - ClientHeight + СколькоТамНадоВысоты;
Width := Width - ClientWidth + СколькоТамНадоШирины;
← →
novai (2013-04-22 15:23) [8]дело в том, что ClientHeight подгоняется под Height и аналогично с шириной
← →
Inovet © (2013-04-22 15:40) [9]> [8] novai (22.04.13 15:23)
Ну и?
procedure TForm1.Button1Click(Sender: TObject);
begin
BorderStyle:= bsNone;
Width := Width - ClientWidth + 200;
Height := Height - ClientHeight + 100;
Label1.Caption := IntToStr(ClientWidth) + "x" + IntToStr(ClientHeight);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
BorderStyle:= bsSizeable;
Width := Width - ClientWidth + 200;
Height := Height - ClientHeight + 100;
Label1.Caption := IntToStr(ClientWidth) + "x" + IntToStr(ClientHeight);
end;
← →
Плохиш © (2013-04-22 15:52) [10]
> novai (22.04.13 15:23) [8]
> дело в том, что ClientHeight подгоняется под Height и аналогично
> с шириной
Ну так и выстави требуемые размеры формы. Иначе, нафига оно тебе это программирование?
← →
icWasya © (2013-04-22 15:54) [11]Ну а по простому?
procedure TForm1.FormCreate(Sender: TObject);
var
SavClientHeight,SavClientWidth:Integer;
begin
SavClientHeight := ClientHeight;
SavClientWidth := ClientWidth;
BorderStyle := bsNone;
ClientHeight := SavClientHeight;
ClientWidth := SavClientWidth;
end;
илиprocedure TForm1.FormCreate(Sender: TObject);
var
SavClientRect:TRect;
begin
SavClientRect := ClientRect;
BorderStyle := bsNone;
ClientRect := SavClientRect;
end;
← →
Inovet © (2013-04-22 16:02) [12]> [10] Плохиш © (22.04.13 15:52)
> [11] icWasya © (22.04.13 15:54)
Это слишком тривиально.
← →
Ega23 © (2013-04-22 16:11) [13]
> что-то можно сделать?
Что нужно-то? Есть Width. есть ClientWidth. Они не одно и то же. Значение ClientWidth не больше значения Width. Различия варьируются от значения BorderStyle (и, вроде как, от темы может зависеть).
← →
novai (2013-04-22 16:36) [14]странно, но 11 заработал как надо, хотя я подобное пробовал... хм
всем спасибо!
← →
Inovet © (2013-04-22 16:39) [15]> [13] Ega23 © (22.04.13 16:11)
> и, вроде как, от темы может зависеть
В каких-то версиях Вин, вроде как, можно было ширину даже из интерфайса настраивать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.02.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c