как форму прикрепить к главной ???

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

как форму прикрепить к главной ???

Сообщение amateur » 12.09.2007 13:39:08

Привет...
Может я не прав, но вот такой код:

Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
begin
  Form2.Left := 0;
  Form2.Top := Form1.Height;
end;


выдает ошибку:

*stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",thread-id="1",frame={addr="0x00471e97",func="TCONTROL__SETLEFT",
args=[{name="VALUE",value="0"},{name="this",value="0x0"}],
file="control.inc",line="2905"}


в чем проблема?

Lazarus-0.9.23-fpc-2.2.1-20070910-win32.exe

не прав. надо правельно форматировать сообщение =)
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Сообщение Browny » 14.09.2007 16:50:18

Не подтверждаю.
Для Lazarus 0.9.23, Win32, svn 11933, snapshot 04.09.2007 такого не происходит.
Проверь Position и FormStyle, сообщи. Сообщи, какие выставлены координаты для основной формы, а также ширину и высоту той и другой формы. Нет ли у форм статуса модальности? Попробую проверить ещё раз.
Аватара пользователя
Browny
новенький
 
Сообщения: 37
Зарегистрирован: 31.08.2007 10:42:55

Сообщение amateur » 18.09.2007 09:40:48

Использовал этот код (форма создавалась, но вылетала ошибка)
With TForm2.Create(self) do begin;
Show;
end;

А при этом коде ошибки нет.

Form2 := TForm2.Create(self);
Form2.Show;
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Сообщение alexs » 18.09.2007 09:53:24

после begin точка с запятой не ставится
amateur писал(а):With TForm2.Create(self) do begin;
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение amateur » 18.09.2007 11:55:27

:) ссори, но суть от этого не меняется. (2 код работает, 1 нет)
Код писался правильно. А это, просто машинальная ошибка...
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Сообщение alexs » 18.09.2007 16:41:23

Код: Выделить всё
procedure AlignWorkForm(AForm: TForm);
var
b:integer;
begin
  if Assigned(AForm) then
  begin
    B:=30;
    AForm.Left:=0;
    AForm.Width:=Screen.Width;
    AForm.Top:=Application.MainForm.Top + Application.MainForm.Height + B;
    AForm.Height:=Screen.Height - AForm.Top - B;
  end;
end;

Вот одна из функци по расположению окна из моего проекта
переменная B обсуловленна тем - не знаю как в linux-e определить ширину рамки окна (это зависит от текущей темы)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Brainenjii » 18.09.2007 20:56:36

а в винде знаете ?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение alexs » 18.09.2007 21:08:08

она универсальная
тут нет платформозависимого кода
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Brainenjii » 18.09.2007 21:16:15

Не, хотя бы только в винде как узать высоту CaptionBar'a и бордюра...
З.Ы. а то там в XP с темами одно умолчательное значение, без - другое...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение alexs » 18.09.2007 22:04:01

надо смотреть вин-апи функции
если разберёшся - тебе от меня будет большой спасиб
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение amateur » 25.09.2007 12:31:41

uses Windows;

GetSystemMetrics(SM_CYCAPTION)

WindowStateChange - здеся идет перерасчет размера окна. Работает, и оочень красиво получается.

Это работает в винде. В лине не знаю, проверить нет возможности...
Мне интересно: как в лине...
Еще хочу заголовок убрать у формы, токо как тогда форму передвигать???
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Сообщение Attid » 25.09.2007 13:27:18

Еще хочу заголовок убрать у формы, токо как тогда форму передвигать???

ручками в нете примеры есть, тут на форуме я где-то контролы двигал принцип тот же.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru