|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как создать новый edit?
Здравствуйте, подскажите пожалуйста как мне сделать массив 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. |