Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2007, 22:39   #11
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Цитата:
Сообщение от HAMMAN Посмотреть сообщение
В общем мы делали лабораторку по буксировке!.
А задание состоит в следующем:там короче из разбросанных букв нужно при помощи метода буксировки перетаскивать буквы сверху вниз, т.е. составить некоторое слово!.При помощи Кнопки "Составить слово" нужно чтобы этоже слово отобразилось на компоненте Label ниже!.Ну а Сброс это понятно!.
Исходник буксировки которую мы делали на паре!.
procedure Label1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Label2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Label3DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Label4DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Label5DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Label1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=Source is TLabel;
end;
procedure TForm1.Label2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=Source is TLabel ;
end;
procedure TForm1.Label3DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=Source is TLabel ;
end;
procedure TForm1.Label4DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=Source is TLabel ;
end;
procedure TForm1.Label5DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Label5.Color := (Source as TLabel). Color;
end;
end.
Если что не судите строго!.
То есть поле куда перетаскиваются буквы может быть панель.
1) Тогда трубуется булев массив " Flg :Array[0..32] of Boolean; ", в него нужно заносить значения True = на Панели, False = вне Панели.
Как на панель переносить надеюсь сам поймёш .
А также массив для позиции Лейблов " X :Array[0..32] of LongInt; ".
Его тспользуй не для всех Лейблов, а только для тех что на панели.
Вначале обнули его.
2) Затем проверяя массив Flg ищешь все твои буквы которые на панели(по индексу, обращаться по индексу можно через FindComponent('Имя компонента' + I)), далее считываешь их позиции по горизонтали " X[i]:=TLabel( FindComponent('Label'+IntToStr(I)) ).Left ".
3) Затем методом сортировки массива X определяешь последовательность лейблов на панели, а потом занести в выходное поле. Сортирока с наименьшего.
ВСЁ , особо сложного невидно.
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать... slim5 Помощь студентам 4 15.06.2008 21:47
помогите сделать задание NV31 Общие вопросы C/C++ 9 27.11.2006 21:40