Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.06.2009, 06:58
Mcmaloj Mcmaloj вне форума
Прохожий
 
Регистрация: 17.06.2009
Сообщения: 4
Репутация: 10
По умолчанию Как создать новый edit?

Здравствуйте, подскажите пожалуйста как мне сделать массив edit так чтобы я мог их программно перемещать по форме?
Ответить с цитированием
  #2  
Старый 17.06.2009, 08:50
Аватар для march
march march вне форума
Начинающий
 
Регистрация: 04.05.2009
Сообщения: 110
Репутация: 18
По умолчанию

программно создать 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  
Старый 22.06.2009, 07:49
Mcmaloj Mcmaloj вне форума
Прохожий
 
Регистрация: 17.06.2009
Сообщения: 4
Репутация: 10
По умолчанию

Это понятно, я хочу сделать массив edit с одинаковыми процедурами- если при перемещении элемент попадает в определенный квадрат то они выстраиваются в нём(я хочу реализовать метод расстановки чисел) подскажите как сделать модуль в котором будет описан этот edit, а именно работа с координатами
Ответить с цитированием
  #4  
Старый 22.06.2009, 12:11
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

То что вы хотите называется Drag&Drop. Как это реализовать ищите в примерах на форуме.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 22.06.2009, 18:28
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

Не легче ли поместить на Panel?
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием
  #6  
Старый 23.06.2009, 07:07
Mcmaloj Mcmaloj вне форума
Прохожий
 
Регистрация: 17.06.2009
Сообщения: 4
Репутация: 10
По умолчанию

Можно по подробнее на счет panel?
Ответить с цитированием
  #7  
Старый 23.06.2009, 07:21
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

А куда подробнее? создаешь TPanel - со стандартой палитры компонентов, кидаешь на нее TEdit-ы, оттуда же.
Можешь например такой код написать для всех edit.onMouseDown;

Код:
if button = mbLeft then
begin
  ReleaseCapture;
  SendMessage(panel1.handle, WM_SYSCOMMAND, $f012, 0);
end;
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием
  #8  
Старый 25.06.2009, 07:13
Mcmaloj Mcmaloj вне форума
Прохожий
 
Регистрация: 17.06.2009
Сообщения: 4
Репутация: 10
По умолчанию

Это все у меня давно уже работает, моя проблема заключается в том что я не хочу 25 раз пропитывать одну и туже процедуру, кто нибудь может подсказать как это сделать?
Ответить с цитированием
  #9  
Старый 25.06.2009, 07:59
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну тебе-же написали присвой 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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter