Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Form2 перемещается вместе с Form1, Слипшиеся формы вместе перемещаются 
:(
    Опции темы
hedge_hog
Дата 17.5.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Здравствуйте, помоготе пожалуйста. Мне надо, чтобы Form2, при перетаскивании Form1, перемещалась вместе с Form1, как бы прилипившись к правой стороне Form1. Пример всем известный Winamp в котором плей-лист и эквалайзер двигаются вместе с главным окном программы. Помогите решить эту задачу, очень очень срочно надо.

Это сообщение отредактировал(а) hedge_hog - 17.5.2007, 16:02
PM MAIL   Вверх
Rodman
Дата 17.5.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Посмотри DRKB - по словам "Липкие окна"!!!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
hedge_hog
Дата 17.5.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Rodman, DRKB а где его взять, и если там по-английски капец. Совсем крыша едет вместо отправить уже F9 нажимаю.
PM MAIL   Вверх
Bose
Дата 17.5.2007, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



http://www.drkb.ru/

И гдн-то тут на форуме была онлайн версия... Чё-то я её сейчас потерял smile 

А вообще hedge_hog, не стесняйся пользоваться поиском.  smile 
PM MAIL WWW Skype   Вверх
hedge_hog
Дата 18.5.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



У меня есть справочник Delphi World 6 там нашел статью про "липкие окошки" пол дня как не пытался её изменить, не подходит она для моей задачи. Умоляю помогите сделать так, чтоб при перемещении одной формы другая форма перемещалась вместе с ней прицепивщись к правому краю первой. Горю срочно надо.
PM MAIL   Вверх
Sunvas
Дата 18.5.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Вот примерно то, что тебе надо:
Код

  private
procedure WMWINDOWPOSCHANGING (Var Msg: TWMWINDOWPOSCHANGING); message WM_WINDOWPOSCHANGING;
procedure Tform1.WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
begin
{...}
form2.Top:=msg.WindowPos.y;
form2.Left:=msg.WindowPos.x+form1.Width;
end;


Это сообщение отредактировал(а) Sunvas - 18.5.2007, 21:43


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
hedge_hog
Дата 18.5.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Sunvas, Посадил то что ты написал в соответствующие места (ведь это не всё подряд надо писать). Delphi 7 выдал ошибку и указал на окно с названием Progect1 там выделил синим цветом следующую строку    
Код

Application.CreateForm(TForm2, Form2);
 

Я щас расплачусь :{

Это сообщение отредактировал(а) hedge_hog - 18.5.2007, 14:52
PM MAIL   Вверх
hedge_hog
Дата 18.5.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Sunvas, 

Ошибка такая

Project Project 1.exe raised exception class EAccessViolation with message 'Access violation at address 0044DC65 in module 'Projectl.exe'. Read of address 000001A6'. Process stopped. Use Step or Run to continue.

Help me, please!!!!!!!!!!!!!!!!!
PM MAIL   Вверх
Sunvas
Дата 18.5.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(hedge_hog @  18.5.2007,  15:41 Найти цитируемый пост)
Ошибка такая

Зри в стороную try except finnaly. Или поставь флаг на проверку созданности формы. Просто обращение к форм2 идет до того, как она создана.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
hedge_hog
Дата 18.5.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Sunvas,
try except finnaly - хорошая идея, я разок с ними связывался, но так давно, что и не вспомнить.
Извини, что отвлекаю всякими пустяками, но я с этими операторами мало работал, наверное, ещё и перехват сообщения об ошибке надо делать, а я не бум бум в этом. Черкни, пожалуйста, код.
 smile 

Кто-нибудь помогите.
PM MAIL   Вверх
hedge_hog
Дата 18.5.2007, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



После многократного нажимания на F9 и ОК'еи всплывающих сообщений об ошибках, прога начинает работать как положено, т.е. все формы перемещаются за главной. Надеюсь хоть ангел суда случайно залетит и ответит на мои мольбы, даст пример как можно использованить в моей проге try except finnaly. 
PM MAIL   Вверх
hedge_hog
Дата 19.5.2007, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Sunvas, Сори, не думал, что ты напишешь лично, всё работает, жаль в дельфи ошибки аш три вылазят, ну я с этим смерюсь. Огромное человеческое СпасиБо, и японское аригато годьзаимашьта.
PM MAIL   Вверх
hedge_hog
Дата 19.5.2007, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Sunvas, 


Такая фигня получилась, заметил не сразу. Мне надо, чтобы форма два появлялась кк только я ввожу в Edit1 текст. Всё было замечательно она выводилась там, где надо, но после добавления процедуры    procedure WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);  оно стало появлятся строго в одном месте, абсолютно ненужном где-то вверху (почему не понятно). При этом его оттуда не переместишь (хватаешь за заголовок, как только кнопку мыши отпускаешь, оно возвращается на место, где первоначально появилось). Оно (второе окно) перемещается только с первым как и задумывалось справа, а само не хочет, как гвоздем прибили. Выручай, надежда только на тебя, больше никто и не захочет лесть в эти дебри.  smile  Последний раз больше доставать не буду.

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
    procedure WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
    message WM_WINDOWPOSCHANGING;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
begin

 try
    Form2.Left:=msg.WindowPos.x+Form1.Width;
    Form2.Top:=msg.WindowPos.y-Form2.Height+Form1.Height;
  except;
   end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
Form2.Show;
end;
end.



Может дело в ошибке, которая появляется в компиляции в Дельфи, но при запуске exe'шника всё проходит гладко?

Это сообщение отредактировал(а) hedge_hog - 19.5.2007, 09:58
PM MAIL   Вверх
hedge_hog
Дата 19.5.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Забейте, я такой вариант применил по совету из архива статей Delphi World6

Код

 {...}
  private
    { Private declarations }
       procedure OnMove(var Msg: TWMMove); message WM_MOVE;
 {...}
procedure TForm1.OnMove(var Msg: TWMMove);
begin
 try
    Form2.Left:=Form1.Left+Form1.Width;
    Form2.Top:=Form1.Top-Form2.Height+Form1.Height;
  except;
   end;
end;


Exe'шник работает будь здоров, но при компиляции из Дельфи ошибки всё же вылазят. Ну хоть форма2 не улетает при показе неведомо в какие края, как при использовании
Код

{...}
  private
    { Private declarations }
    procedure WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
    message WM_WINDOWPOSCHANGING;
 {...}
procedure TForm1.WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
begin
//Код необходимый чтобы форма со списком слов была постоянно справа
//-------------------------------------
 try
    Form2.Left:=msg.WindowPos.x+Form1.Width;
    Form2.Top:=msg.WindowPos.y-Form2.Height+Form1.Height;
  except;
   end;
   inherited;
//-------------------------------------     
end;
. 
Не отказался бы от другого варианта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0632 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.