![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте, подскажите пожалуйста как мне сделать массив edit так чтобы я мог их программно перемещать по форме?
|
|
#2
|
||||
|
||||
|
программно создать Edit
Код:
with tedit.Create(self) do
begin
parent:=self;
name:= 'name_of_your_Edit';
left:= 1;
top:= 1;
Height:=20;
Width:= 65;
Text:='Text_Of_Your_Edit';
end;Код:
edit1.left:=x; edit1.top:=y; ---------------- опиши что ты хочешь в массив загнать? сами edit'ы или значения от них ---------------- если параметры то делаешь трех мерный интегеровский массив, первый пункт - номер едита(записывай в имя), второй и третий - это позиции left и top твоего edita |
|
#3
|
|||
|
|||
|
Это понятно, я хочу сделать массив edit с одинаковыми процедурами- если при перемещении элемент попадает в определенный квадрат то они выстраиваются в нём(я хочу реализовать метод расстановки чисел) подскажите как сделать модуль в котором будет описан этот edit, а именно работа с координатами
|
|
#4
|
||||
|
||||
|
То что вы хотите называется Drag&Drop. Как это реализовать ищите в примерах на форуме.
|
|
#5
|
||||
|
||||
|
Не легче ли поместить на Panel?
|
|
#6
|
|||
|
|||
|
Можно по подробнее на счет panel?
|
|
#7
|
||||
|
||||
|
А куда подробнее? создаешь TPanel - со стандартой палитры компонентов, кидаешь на нее TEdit-ы, оттуда же.
Можешь например такой код написать для всех edit.onMouseDown; Код:
if button = mbLeft then begin ReleaseCapture; SendMessage(panel1.handle, WM_SYSCOMMAND, $f012, 0); end; |
|
#8
|
|||
|
|||
|
Это все у меня давно уже работает, моя проблема заключается в том что я не хочу 25 раз пропитывать одну и туже процедуру, кто нибудь может подсказать как это сделать?
|
|
#9
|
||||
|
||||
|
Ну тебе-же написали присвой edit.onMouseDown значение твоего обработчика событий. Вот пример из моей программы:
Код:
TForm18 = class(TForm)
...
procedure CardMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
procedure AddCards(Colour: TCardColour; Bitmap: TBitmap; Pos: Integer);
...
end;
...
procedure TForm18.AddCards(Colour: TCardColour; Bitmap: TBitmap; Pos: Integer);
var
Y,X: Byte;
begin
for Y := 0 to 2
do for X := 0 to 4
do begin
...
CardPack[High(CardPack)] := TCard.Create(Value,Colour);
CardPack[High(CardPack)].Picture.Parent := Self;
...
CardPack[High(CardPack)].Picture.OnMouseDown := CardMouseDown;
CardPack[High(CardPack)].Picture.OnMouseMove := CardMouseMove;
end;
end;Последний раз редактировалось Страдалецъ, 25.06.2009 в 08:02. |