Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2013, 23:20   #1
Temaaas
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 4
Восклицание как избавиться от констант в лазарусе

Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure Panel1Click(Sender: TObject);
    procedure Panel2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }
                var
                  x1,x2,y1,y2:integer;
procedure TForm1.Panel1Click(Sender: TObject);
begin

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Panel2.Left:=X;
  Panel2.Top:=Y;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  y2:=Panel2.Top;
  y1:=Panel1.Top+Panel1.Height;
  x1:=Panel2.Left+Panel2.Width;
  x2:=Panel2.Left;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.Panel2Click(Sender: TObject);
begin
  x1:=Panel2.left;
  y1:=panel2.Top;
  if y1>296 then
  panel2.Left:=712;
  panel2.Top:=642;
  if y1<296 then
  panel2.left:=568;
  panel2.Top:=640;
end;

end.
вот есть программа как в ней избавиться от констант)ну в общем надо через свойства толи формулу прописывать толи по другому но чтобы не было этих заданных координат..помогите пожалуйста)

Последний раз редактировалось Stilet; 20.01.2013 в 23:24.
Temaaas вне форума Ответить с цитированием
Старый 20.01.2013, 23:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что вместо них?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2013, 23:35   #3
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

убери их с общего Var и описуй только в тег процедурах где они тебе надо
VinDiz вне форума Ответить с цитированием
Старый 20.01.2013, 23:39   #4
Temaaas
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 4
По умолчанию

мне препод сказал что в случае в том если мы откроем программу в меньшем окне у нас должна вторая панель падать не в конкретные заданные координаты а в заданную область как то так
Temaaas вне форума Ответить с цитированием
Старый 20.01.2013, 23:42   #5
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

ты имеешь ввиду привязать размер панели к самой форме? То - есть если уменьшается окно то уменьшается форма?
VinDiz вне форума Ответить с цитированием
Старый 20.01.2013, 23:43   #6
Temaaas
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 4
По умолчанию

дааа что то типо того)можете помочь очень надо вообще(мне даже толком не объяснить но я думаю вы понимаете))
Temaaas вне форума Ответить с цитированием
Старый 20.01.2013, 23:43   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а в заданную область как то так
Так это достигается не константами а установкой свойства Anchor, после настройки в дизайне размещения панелей. Тогда какой бы размер окно не получало ее панели будут подстраиваться изменяя размеры пропорционально окну. Либо же устанавливаются свойства Align для выравнивания. Координатами же рулить в этом случае - грабли. По крайней мере тебе придется описывать OnResize для этого случая, уж если хочется покамасутрится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2013, 23:47   #8
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

Литература тебе в помощь......сам читаю и то не все понимаю
VinDiz вне форума Ответить с цитированием
Старый 20.01.2013, 23:51   #9
Temaaas
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 4
По умолчанию

мне нужно чтобы Panel2 при клике не в эти координаты перемещалась а в ту область значений за panel1 в зависимости от условия либо за нее либо перед ней )это в общем типо волейбола)
Temaaas вне форума Ответить с цитированием
Старый 21.01.2013, 00:41   #10
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

Тебе надо правильно формулировать условие! Потому что тебя очень тяжело понять! Например твое последние сообщение непонятно!
VinDiz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно задать строковый массив констант(символьный тип коснтант). Leshii Visual C++ 2 15.10.2012 23:49
Как избавиться от #Н/Д? kachorro Microsoft Office Excel 10 26.04.2012 06:38
>40 ESTABLISHED, как избавиться? pavel25 Работа с сетью в Delphi 0 29.10.2010 21:39
Как избавиться от (Error 91) r0tten Microsoft Office Excel 6 26.01.2010 06:47
как избавиться от закладки ЧИЖ Общие вопросы Delphi 3 24.06.2007 00:05