Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
1

Проблема с работой с несколькими формами

28.10.2011, 15:41. Просмотров 1278. Ответов 27

Главное окно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "MainForm.h"
#include "Playlist.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TForm2 *Form2;
//перемещение формы
bool dragging = false;
POINT MousePnt;
POINT point;
HWND hWnd;
RECT wndrect;
//Флаг для Play
bool fPlay = false;
//Флаг для Pause
bool fPause = false;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Application->CreateForm(__classid(TForm2), &Form2);
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BXClick(TObject *Sender)
{
    Form1->Close();
}
//---Форма закрывается------------------------------------------------------------------------
void __fastcall TForm1::BXMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BX->Picture->LoadFromFile("x3.png");
}
//---Нажатое состояние кнопки X------------------------------------------------------------------------
void __fastcall TForm1::BXMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
 
{
    Form1->BX->Picture->LoadFromFile("x2.png");
}
//---Курсор над кнопкой X------------------------------------------------------------------------
void __fastcall TForm1::BXMouseLeave(TObject *Sender)
{
    Form1->BX->Picture->LoadFromFile("x.png");
}
//---Обычное состояние кнопки Х------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    GetCursorPos(&MousePnt);
    dragging = true;
    SetCapture(hWnd);
}
//---Нажата ли мышь над формой------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
    if (dragging == true)//если нажата кнопка, то...
    {
        //получить текущую позицию курсора
        GetCursorPos(&point);
        //Откорректировать положение окна
        Form1->Left = TForm1::Left+(point.x - MousePnt.x);
        Form1->Top = TForm1::Top+(point.y - MousePnt.y);
        Form2->Left = Form1->Left;
        Form2->Top = Form1->Top + Form1->Height;
    //Установить новые размеры окна
        //SetWindowPos(hWnd,NULL,wndrect.left,wndrect.top,0,0,SWP_NOZORDER | SWP_NOSIZE);
        MousePnt = point;
    }
}
//---Движение окна------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    if (dragging == true)
    {
        dragging=false;
        ReleaseCapture();
        SendMessage(TForm1::Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
    }
}
//---Отпустить кнопку мыши (конец перемещения окна)------------------------------------------------------------------------
void __fastcall TForm1::BMinClick(TObject *Sender)
{
    Form1->WindowState = wsMinimized;
}
//---Окно сворачивается------------------------------------------------------------------------
void __fastcall TForm1::BMinMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BMin->Picture->LoadFromFile("_3.png");
}
//---Нажатое состояние кнопки BMin------------------------------------------------------------------------
void __fastcall TForm1::BMinMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
 
{
    Form1->BMin->Picture->LoadFromFile("_2.png");
}
//---Курсор над кнопкой BMin------------------------------------------------------------------------
 
void __fastcall TForm1::BMinMouseLeave(TObject *Sender)
{
    Form1->BMin->Picture->LoadFromFile("_.png");
}
//---Обычное состояние кнопки BMin------------------------------------------------------------------------
 
void __fastcall TForm1::BMinMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BMin->Picture->LoadFromFile("_.png");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BOClick(TObject *Sender)
{
    bool static flag = false;
    flag = !flag;
    if (flag)
    {
        Form1->FormStyle = fsStayOnTop;
        Form2->FormStyle = fsStayOnTop;
    }
    else
    {
        Form1->FormStyle = fsNormal;
        Form2->FormStyle = fsNormal;
    }
}
//---Поверх всех окон------------------------------------------------------------------------
void __fastcall TForm1::BOMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    bool static flag = false;
    flag = !flag;
    if (flag)
    {
        Form1->BO->Picture->LoadFromFile("o2.png");
    }
    else
    {
        Form1->BO->Picture->LoadFromFile("o.png");
    }
}
//---Состояние кнопки "поверх всех окон"------------------------------------------------------------------------
void __fastcall TForm1::BOMouseLeave(TObject *Sender)
{
    if(Form1->FormStyle == fsNormal)
        Form1->BO->Picture->LoadFromFile("o.png");
}
//---Обычное состояние кнопки "Поверх всех окон"------------------------------------------------------------------------
void __fastcall TForm1::BOMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
 
{
    Form1->BO->Picture->LoadFromFile("o2.png");
}
//---Курсор над кнопкой Поверх всех окон------------------------------------------------------------------------
void __fastcall TForm1::PLClick(TObject *Sender)
{
    bool static flag = false;
    flag = !flag;
    Form2->Left = Form1->Left;
    Form2->Top = Form1->Top + Form1->Height;
    Form2->Visible = flag;
}
//---Открыть/закрыть плейлист------------------------------------------------------------------------
void __fastcall TForm1::PLMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
 
{
    Form1->PL->Picture->LoadFromFile("PL2.png");
}
//---Курсор над кнопкой PL------------------------------------------------------------------------
void __fastcall TForm1::PLMouseLeave(TObject *Sender)
{
    if(!Form2->Visible)
    {
        Form1->PL->Picture->LoadFromFile("PL.png");
    }
}
//---Обычное состояние кнопки PL------------------------------------------------------------------------
void __fastcall TForm1::PLMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    if(Form2->Visible)
    {
        Form1->PL->Picture->LoadFromFile("PL2.png");
    }
    else
    {
        Form1->PL->Picture->LoadFromFile("PL.png");
    }
}
//---Нажатое состояние кнопки PL-----------------------------------------------------------------------//---Нажатое состояние кнопки "Back"------------------------------------------------------------------------//---Обычное состояние кнопки "Back"------------------------------------------------------------------------
void __fastcall TForm1::BBackMouseLeave(TObject *Sender)
{
    Form1->BBack->Picture->LoadFromFile("back.png");
}
//---Обычное соостояние кнопки "Back"------------------------------------------------------------------------
void __fastcall TForm1::BBackMouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
    Form1->BBack->Picture->LoadFromFile("back2.png");
}
//---Курсор над кнопкой "Back"------------------------------------------------------------------------
 
void __fastcall TForm1::BPauseMouseLeave(TObject *Sender)
{
    if(!fPause)
        Form1->BPause->Picture->LoadFromFile("pause.png");
}
//---Обычное состояние кнопки "Pause"------------------------------------------------------------------------
 
void __fastcall TForm1::BPauseMouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
    Form1->BPause->Picture->LoadFromFile("pause2.png");
}
//---Курсор над кнопкой "Pause"------------------------------------------------------------------------
 
void __fastcall TForm1::BPlayMouseLeave(TObject *Sender)
{
    if(!fPlay)
        Form1->BPlay->Picture->LoadFromFile("play.png");
}
//---Обычное состояние кнопки "Play"------------------------------------------------------------------------
 
void __fastcall TForm1::BPlayMouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
    Form1->BPlay->Picture->LoadFromFile("play2.png");
}
//---Курсор над кнопкой "Play"------------------------------------------------------------------------
 
void __fastcall TForm1::BStopMouseLeave(TObject *Sender)
{
    Form1->BStop->Picture->LoadFromFile("stop.png");
}
//---Обычное состояние кнопки "Stop"------------------------------------------------------------------------
 
void __fastcall TForm1::BStopMouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
    Form1->BStop->Picture->LoadFromFile("stop2.png");
}
//---Курсор над кнопкой "Stop"------------------------------------------------------------------------
 
void __fastcall TForm1::BFWDMouseLeave(TObject *Sender)
{
    Form1->BFWD->Picture->LoadFromFile("FWD.png");
}
//---Обычное состояние кнопки "FWD"------------------------------------------------------------------------
void __fastcall TForm1::BFWDMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
    Form1->BFWD->Picture->LoadFromFile("FWD2.png");
}
//---Курсор над кнопкой "FWD"------------------------------------------------------------------------
 
void __fastcall TForm1::BBackMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BPause->Picture->LoadFromFile("pause.png");
    fPause = false;
    fPlay = true;
    Form1->BPlay->Picture->LoadFromFile("play2.png");
    Form1->BBack->Top = Form1->BBack->Top + 2;
 
}
//---Кнопка Back нажата------------------------------------------------------------------------
 
void __fastcall TForm1::BBackMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BBack->Top = Form1->BBack->Top - 2;
}
//---Кнопка Back отпущена------------------------------------------------------------------------
 
void __fastcall TForm1::BPauseMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    fPlay = false;
    fPause = true;
    Form1->BPause->Picture->LoadFromFile("pause2.png");
    Form1->BPlay->Picture->LoadFromFile("play.png");
    Form1->BPause->Top = Form1->BPause->Top + 2;
}
//---Кнопка Pause нажата------------------------------------------------------------------------
 
void __fastcall TForm1::BPauseMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BPause->Top = Form1->BPause->Top - 2;
}
//---Кнопка Pause отпущена------------------------------------------------------------------------
 
void __fastcall TForm1::BPlayMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    fPlay = true;
    fPause = false;
    Form1->BPause->Picture->LoadFromFile("pause.png");
    Form1->BPlay->Picture->LoadFromFile("play2.png");
    Form1->BPlay->Top = Form1->BPlay->Top + 2;
}
//---Кнопка Play нажата------------------------------------------------------------------------
 
void __fastcall TForm1::BPlayMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BPlay->Top = Form1->BPlay->Top - 2;
}
//---Кнопка Play отпущена------------------------------------------------------------------------
 
void __fastcall TForm1::BStopMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    fPause = false;
    Form1->BPause->Picture->LoadFromFile("pause.png");
    Form1->BPlay->Picture->LoadFromFile("play.png");
    Form1->BStop->Top = Form1->BStop->Top + 2;
}
//---Кнопка Stop нажата------------------------------------------------------------------------
 
void __fastcall TForm1::BStopMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BStop->Top = Form1->BStop->Top - 2;
}
//---Кнопка Stop отпущена------------------------------------------------------------------------
 
void __fastcall TForm1::BFWDMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BPause->Picture->LoadFromFile("pause.png");
    fPause = false;
    fPlay = true;
    Form1->BPlay->Picture->LoadFromFile("play2.png");
    Form1->BFWD->Top = Form1->BFWD->Top + 2;
}
//---Кнопка FWD нажата------------------------------------------------------------------------
 
void __fastcall TForm1::BFWDMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form1->BFWD->Top = Form1->BFWD->Top - 2;
}
//---Кнопка FWD отпущена------------------------------------------------------------------------
 
 
void __fastcall TForm1::BPlayClick(TObject *Sender)
{
    Form1->MediaPlayer1->FileName = "hugh_laurie_-_buddy_boldens_blues.mp3";
    Form1->MediaPlayer1->Open();
    Form1->MediaPlayer1->Play();
}
//---Play file------------------------------------------------------------------------
Второе окно (плейлист плеера)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Playlist.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
void __fastcall TForm2::BPlusMouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
   Form2->BPlus->Picture->LoadFromFile("+_pl2.png");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::BPlusMouseLeave(TObject *Sender)
{
    Form2->BPlus->Picture->LoadFromFile("+_pl.png");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::BPlusMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    Form2->BPlus->Picture->LoadFromFile("+_pl3.png");
}
//---------------------------------------------------------------------------
Создаётся главная форма, при нажатии на кнопку "PL" открывается вторая форма.
При наведении на "кнопку" "BPlus" возникает ошибка:

Access violation at address 0040388C in module 'KKPlayer.exe'. Read of address 0000038C.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 15:41
Ответы с готовыми решениями:

Работа с несколькими формами
Допустим, у меня есть 2 формы.. в общем, 2 форма служит для автовыключения...

Ошибка с работой массива
Здравствуйте. Есть код (данные в массив берутся из файла Excel): TForm2...

Трудности с работой openoffice/
Привет Всем.В чера произошла одна проблема. У меня есть код, который заполняет...

Слежение/контроль за работой принтеров
а реально ли вообще написать програмульку, которая бы снимала данные с...

Работа с несколькими формами
Как обратиться к элементам управления одной формы из другой формы?

27
LK
Заблокирован
28.10.2011, 16:52 2
и что? ну, не может он найти или открыть этот ваш странный _.png...
0
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
28.10.2011, 16:57  [ТС] 3
LK, в MainForm находит же и отлично…
а во второй форме даже эти же картинки не находит…
0
LK
Заблокирован
28.10.2011, 17:17 4
в главном окне я ничего с "крестиком" не нашел (может, плохо искал) , попробуйте без крестика все это - +_*.png , для начала
0
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
28.10.2011, 18:21  [ТС] 5
не в картинке проблема… а с самой формой что-то…
допустим я сделаю на второй форме кнопку TButton * Button1;
и на событие OnClick повешу обработчик:
Form2->Button1->Visible = false;
кнопка должна исчезнуть…
но возникает эта же ошибка…
а если сделать то же самое для Form1, всё работает нормально…
0
LK
Заблокирован
28.10.2011, 18:31 6
а обращение ко второй форме из первой работет нормально, типа этого :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::BOClick(TObject *Sender)
{
        bool static flag = false;
        flag = !flag;
        if (flag)
        {
                Form1->FormStyle = fsStayOnTop;
                Form2->FormStyle = fsStayOnTop;
        }
        else
        {
                Form1->FormStyle = fsNormal;
                Form2->FormStyle = fsNormal;
        }
}
?
0
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
28.10.2011, 18:35  [ТС] 7
да… работает…
0
LK
Заблокирован
28.10.2011, 18:40 8
выложите проект для экспериментов
0
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
28.10.2011, 20:10  [ТС] 9
Вот экспериментируйте))
0
Вложения
Тип файла: rar KKPlayer (Builder).rar (7.82 Мб, 17 просмотров)
LK
Заблокирован
28.10.2011, 20:53 10
ага, есть такое дело, и вы посмотрите, куда у меня кнопочки сбежали, может, им какие якоря указать надо ?
ну и само название, простите великодушно - "кака плеер" - звучит не очень гламурно, но это сугубо мое личное имхо и мои собственные маразмы

по теме - поэкспериментирую попозжее
0
Миниатюры
Проблема с работой с несколькими формами  
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
28.10.2011, 21:26  [ТС] 11
Кнопочки сбежали, что-то новенькое... У названия свои причины, которые понятны узкому кругу лиц)
А что по поводу основной проблемы? Я имею в виду, покажите хоть направление, в каком мне двигаться...
0
LK
Заблокирован
28.10.2011, 21:37 12
не должно здесь
C++
1
2
3
4
5
void __fastcall TForm2::BPlusMouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
  Form2->BPlus->Picture->LoadFromFile("+_pl2.png");
}
быть проблемы
попробуйте заменить обработчик на MouseEnter и посмотрите
также неизвестно , как вы вставляли имя файла - вводили с клавиатуры, или копировали имя в проводнике, попробуйте пошаманить с этим именем - может, там какой символ не совпадает, ну, и не нравится мне это +- в именах файлов, и все, мне нравится гламурное btnPlistMouseEnter.png, например , но это, опять же, мое личное, понятое после получения многисленных довольно болезненых шишек в подобных ситуациях , да, каждый предпочитает учиться на своих шишках
1
DefineTrueFalse
870 / 447 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.10.2011, 21:40 13
Может я не в теме, но почему в основном юните объявлена "Form2"?
2
LK
Заблокирован
28.10.2011, 21:43 14
Цитата Сообщение от DefineTrueFalse Посмотреть сообщение
почему в основном юните объявлена "Form2"?
гм... точно ... хотя на проблемы с кнопкой во второй форме это как бы влиятьне должно ...
1
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
28.10.2011, 21:44  [ТС] 15
Чтоб при нажатии на кнопку на главном окне, открывалось и закрывалось второе окно. А также для функции перемещения окна.
0
DefineTrueFalse
870 / 447 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.10.2011, 21:48 16
Цитата Сообщение от Drony Посмотреть сообщение
Чтоб при нажатии на кнопку на главном окне, открывалось и закрывалось второе окно.
Тут 2 варианта, либо тебе нужно попробовать удалить эту строку и посмотреть, что получится, либо Builder явно что-то скрывает...
1
Drony
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 18
28.10.2011, 21:54  [ТС] 17
Цитата Сообщение от DefineTrueFalse Посмотреть сообщение
Тут 2 варианта, либо тебе нужно попробовать удалить эту строку и посмотреть, что получится, либо Builder явно что-то скрывает...
Ёу, а если убрать объявление и всё, что связано с Form2 тогда работает))
И имя файла нормальное =)

Тогда возникает новая проблема... Как корректировать положение второго окна в реальном времени?
если я буду перемещать главное окно, плейлист будет стоять на месте... а мне нужно как бы "прицепить" его..
0
DefineTrueFalse
870 / 447 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.10.2011, 22:01 18
А в чем проблема то? В движениях мыши над Image1 вроде все прописано было.
0
LK
Заблокирован
28.10.2011, 22:06 19
речь была о том, чтобы убрать TForm2 *Form2;
, достаточно #include "Playlist.h"
и вот это вызывает смутные сомнения:
C++
1
2
3
4
5
6
7
8
9
10
if (flag)
        {
                Form1->FormStyle = fsStayOnTop;
                Form2->FormStyle = fsStayOnTop;
        }
        else
        {
                Form1->FormStyle = fsNormal;
                Form2->FormStyle = fsNormal;
        }
ну, не могут две формы одновременно быть StayOnTop, может, как-нибудь так
C++
1
2
3
4
5
6
7
8
if (flag)
        {
                Form1->FormStyle = fsStayOnTop;
        }
        else
        {
                Form2->FormStyle = fsNormal;
        }
1
DefineTrueFalse
870 / 447 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.10.2011, 22:09 20
Должно быть что-то вроде этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//...
bool drag = false;
//...
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
   if (Button == mbLeft)
   {
      ReleaseCapture();
      Perform(WM_SYSCOMMAND,0xF012,0);
      drag = true;
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
   if (drag)
   {
      Form2->Left = Form1->Left;
      Form2->Top = Form1->Top + Form1->Height;
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
   drag = false;
}
//---------------------------------------------------------------------------
1
28.10.2011, 22:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 22:09

Работа с несколькими формами
Здравствуйте. У меня возникла следующая проблема. Я создал форму...

Работа с несколькими формами
Как сделать так, что-бы на кнопку открывалась например другая форма, в ней...

Действия с несколькими формами
Здравствуйте! Имеется две формы. Вторая форма отображается в НЕ модальном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru