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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.04.2009, 21:32   #11
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от Selestis Посмотреть сообщение
x:=form1.left;
y:=form1.top;
Я так с самого начала пробовал. Не работает.
Shouldercannon вне форума
Старый 21.04.2009, 23:01   #12
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию

Shouldercannon

как вариант: на форму кидаем таймер, ставим интервал где-то 25 (смотря как часто надо обновлять данные), в его обработчике пишем
Цитата:
x:=form1.left;
y:=form1.top;
если с этими данными надо работать в программе, то переменные желательно сделать глобальными, а если просто выводить, то это можно сделать в той же процедуре таймера.
JamS007 вне форума
Старый 22.04.2009, 10:51   #13
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Вы меня наверно совсем не слышите.
Код:
x:=form1.left;
y:=form1.top;
не работает!!!
выдает ошибку на строке
Код:
x:=form1.left;
[Error] Unit1.pas(44): Incompatible types: 'String' and 'Integer'
Shouldercannon вне форума
Старый 22.04.2009, 11:14   #14
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Ну значит Х обьявлен строковой переменной
пыщь
JTG вне форума
Старый 22.04.2009, 11:50   #15
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Подскажите как будет правильно.
Shouldercannon вне форума
Старый 22.04.2009, 11:54   #16
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Да, JTG абсолютно прав, В сообщении же написано Несовпадене типов String и Integer.
Значит тут два пути:
1.Объявить x,y: integer;
либо
2. если x,y: string;
x:=inttostr(Form1.left);
y:=inttostr(Form1.top);

И можешь вставить данный код в исходник, который до этого скинул.
Или, например, в Resize формы вставить или как уже говорилось через таймер. Так что вариантов много.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 22.04.2009, 15:05   #17
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Получилось только почему-то значение y постоянно 352 как ни крути в чем ошибка.
Вложения
Тип файла: rar тест 4.rar (5.4 Кб, 11 просмотров)
Shouldercannon вне форума
Старый 22.04.2009, 15:19   #18
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Где значение 352? Скачал исходник откомпилировал и форма запустилась. При перемещении значения 2-х label изменялись правильно при перемещении формы...
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 22.04.2009, 15:39   #19
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Ну это да. Допустим я потаскал форму и закрыл ее со значениями x=0, y=0, после чего я снова запускаю exe и вижу, что y не 0, а 352. Проблема возникает после запуска exe и считывания координат формы.

Последний раз редактировалось Shouldercannon; 22.04.2009 в 17:41.
Shouldercannon вне форума
Старый 22.04.2009, 17:04   #20
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Если сделать так, то все будет работать нормально:

Код:
var
  Form1: TForm1;
  x, y: string;
  zapusk: boolean;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var F: TINIFile;
begin
{Чтение}
F:=TINIFile.Create((ExtractFilePath(Application.ExeName))+'config.ini');
x:=F.ReadString('Position', 'x', '0');
y:=F.ReadString('Position', 'y', '0');
F.Free;
zapusk:=true;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var F: TINIFile;
begin
{Запись}
F:=TINIFile.Create(ExtractFilePath(ParamStr(0))+'config.ini');
F.WriteString('Position', 'x', x);
F.WriteString('Position', 'y', y);
F.Free;
end;

procedure TForm1.OnMove(var Msg: TWMMove);
begin
if zapusk=true then
begin
Form1.SetFocus;
Form1.Left:=StrToInt(x);
Form1.Top:=StrToInt(y);

Label1.Caption:=x;
Label2.Caption:=y;
//showmessage(y);
zapusk:=false;
end else
begin
x:=IntToStr(Form1.Left);
y:=IntToStr(Form1.Top);

Label1.Caption:=x;
Label2.Caption:=y;
end;

end;
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перемещение формы Черничный Общие вопросы Delphi 11 10.12.2009 11:06
Перемещение TImage Романнн Общие вопросы Delphi 1 27.10.2008 18:38
Перемещение формы за компонент Zeraim Общие вопросы Delphi 2 20.05.2008 09:26
Delphi, перемещение формы. north Помощь студентам 3 23.01.2008 22:34
Перемещение рисунков внутри формы Marsik Помощь студентам 10 01.11.2007 09:48