ВУЗ:
Составители:
Рубрика:
Ɋɢɫ. 3.4.3. Windows-ɨɤɧɨ ɨɛɳɟɝɨ ɩɪɢɦɟɪɚ
1.3. ɂɧɬɟɪɮɟɣɫ Drag & Drop
ȼ ɩɪɢɥɨɠɟɧɢɢ ɨɫɭɳɟɫɬɜɢɦ ɜɨɡɦɨɠɧɨɫɬɶ ɩɟɪɟɧɨɫɚ ɫɨɞɟɪɠɢɦɨɝɨ ɪɟ-
ɞɚɤɬɨɪɚ Edit1 ɜ ɪɟɞɚɤɬɨɪ Edit2. ɋɞɟɥɚɟɦ ɬɚɤ, ɱɬɨɛɵ ɩɚɧɟɥɶ Panel1 ɦɨɠɧɨ
ɛɵɥɨ ɩɟɪɟɦɟɳɚɬɶ ɩɨ ɮɨɪɦɟ.
1. ɂɫɬɨɱɧɢɤɚɦɢ ɜ ɦɟɯɚɧɢɡɦɟ Drag & Drop ɛɭɞɭɬ ɤɨɦɩɨɧɟɧɬɵ Panel1
ɢ Edit1. ɍɫɬɚɧɨɜɢɬɟ ɞɥɹ ɤɨɦɩɨɧɟɧɬɨɜ Panel1 ɢ Edit1 ɫɜɨɣɫɬɜɨ DragMode
ɪɚɜɧɵɦ dmAutomatic. Ɂɧɚɱɟɧɢɟ dmAutomatic ɨɛɟɫɩɟɱɢɜɚɟɬ ɚɜɬɨɦɚɬɢɱɟ-
ɫɤɭɸ ɪɟɚɤɰɢɸ ɤɨɦɩɨɧɟɧɬɚ ɧɚ ɧɚɠɚɬɢɟ ɥɟɜɨɣ ɤɥɚɜɢɲɢ ɦɵɲɢ ɢ ɧɚɱɚɥɨ ɩɟ-
ɪɟɬɚɫɤɢɜɚɧɢɹ. Ɉ ɜɤɥɸɱɟɧɢɢ ɦɟɯɚɧɢɡɦɚ ɫɢɝɧɚɥɢɡɢɪɭɟɬ ɭɤɚɡɚɬɟɥɶ ɦɵɲɢ, –
ɨɧ ɢɡɦɟɧɹɟɬɫɹ ɧɚ ɤɭɪɫɨɪ, ɨɩɪɟɞɟɥɟɧɧɵɣ ɜ ɫɜɨɣɫɬɜɟ DragCursor.
2. ɉɪɢɟɦɧɢɤɨɦ ɦɨɠɟɬ ɫɬɚɬɶ ɥɸɛɨɣ ɤɨɦɩɨɧɟɧɬ, ɜ ɤɨɬɨɪɨɦ ɫɨɡɞɚɧ ɦɟ-
ɬɨɞ–ɨɛɪɚɛɨɬɱɢɤ DragOver. ɋɨɡɞɚɣɬɟ ɨɛɪɚɛɨɬɱɢɤɢ ɫɨɛɵɬɢɣ:
– Ⱦɥɹ Edit2:
procedure TForm1.Edit2DragOver(Sender, Source: TObject; X, Y:
Integer;
State: TDragState; var Accept: Boolean);
Begin
//ȿɫɥɢ ɢɫɬɨɱɧɢɤ ɩɟɪɟɧɨɫɚ ɨɞɧɨɫɬɪɨɱɧɵɣ ɪɟɞɚɤɬɨɪ, ɬɨ Edit2
//ɫɬɚɧɨɜɢɬɫɹ ɩɪɢɟɦɧɢɤɨɦ.
If Source.ClassName = 'TEdit'
Then
Accept := True
Else
Accept := False;
end;
– Ⱦɥɹ ɮɨɪɦɵ:
procedure
TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
//ȿɫɥɢ ɢɫɬɨɱɧɢɤ ɩɟɪɟɧɨɫɚ ɩɚɧɟɥɶ, ɬɨ ɮɨɪɦɚ ɫɬɚɧɨɜɢɬɫɹ ɩɪɢɟɦɧɢɤɨɦ.
if Source.ClassName ='TPanel'
then
Accept := True
else
58
Ɋɢɫ. 3.4.3. Windows-ɨɤɧɨ ɨɛɳɟɝɨ ɩɪɢɦɟɪɚ
1.3. ɂɧɬɟɪɮɟɣɫ Drag & Drop
ȼ ɩɪɢɥɨɠɟɧɢɢ ɨɫɭɳɟɫɬɜɢɦ ɜɨɡɦɨɠɧɨɫɬɶ ɩɟɪɟɧɨɫɚ ɫɨɞɟɪɠɢɦɨɝɨ ɪɟ-
ɞɚɤɬɨɪɚ Edit1 ɜ ɪɟɞɚɤɬɨɪ Edit2. ɋɞɟɥɚɟɦ ɬɚɤ, ɱɬɨɛɵ ɩɚɧɟɥɶ Panel1 ɦɨɠɧɨ
ɛɵɥɨ ɩɟɪɟɦɟɳɚɬɶ ɩɨ ɮɨɪɦɟ.
1. ɂɫɬɨɱɧɢɤɚɦɢ ɜ ɦɟɯɚɧɢɡɦɟ Drag & Drop ɛɭɞɭɬ ɤɨɦɩɨɧɟɧɬɵ Panel1
ɢ Edit1. ɍɫɬɚɧɨɜɢɬɟ ɞɥɹ ɤɨɦɩɨɧɟɧɬɨɜ Panel1 ɢ Edit1 ɫɜɨɣɫɬɜɨ DragMode
ɪɚɜɧɵɦ dmAutomatic. Ɂɧɚɱɟɧɢɟ dmAutomatic ɨɛɟɫɩɟɱɢɜɚɟɬ ɚɜɬɨɦɚɬɢɱɟ-
ɫɤɭɸ ɪɟɚɤɰɢɸ ɤɨɦɩɨɧɟɧɬɚ ɧɚ ɧɚɠɚɬɢɟ ɥɟɜɨɣ ɤɥɚɜɢɲɢ ɦɵɲɢ ɢ ɧɚɱɚɥɨ ɩɟ-
ɪɟɬɚɫɤɢɜɚɧɢɹ. Ɉ ɜɤɥɸɱɟɧɢɢ ɦɟɯɚɧɢɡɦɚ ɫɢɝɧɚɥɢɡɢɪɭɟɬ ɭɤɚɡɚɬɟɥɶ ɦɵɲɢ, –
ɨɧ ɢɡɦɟɧɹɟɬɫɹ ɧɚ ɤɭɪɫɨɪ, ɨɩɪɟɞɟɥɟɧɧɵɣ ɜ ɫɜɨɣɫɬɜɟ DragCursor.
2. ɉɪɢɟɦɧɢɤɨɦ ɦɨɠɟɬ ɫɬɚɬɶ ɥɸɛɨɣ ɤɨɦɩɨɧɟɧɬ, ɜ ɤɨɬɨɪɨɦ ɫɨɡɞɚɧ ɦɟ-
ɬɨɞ–ɨɛɪɚɛɨɬɱɢɤ DragOver. ɋɨɡɞɚɣɬɟ ɨɛɪɚɛɨɬɱɢɤɢ ɫɨɛɵɬɢɣ:
– Ⱦɥɹ Edit2:
procedure TForm1.Edit2DragOver(Sender, Source: TObject; X, Y:
Integer;
State: TDragState; var Accept: Boolean);
Begin
//ȿɫɥɢ ɢɫɬɨɱɧɢɤ ɩɟɪɟɧɨɫɚ ɨɞɧɨɫɬɪɨɱɧɵɣ ɪɟɞɚɤɬɨɪ, ɬɨ Edit2
//ɫɬɚɧɨɜɢɬɫɹ ɩɪɢɟɦɧɢɤɨɦ.
If Source.ClassName = 'TEdit'
Then
Accept := True
Else
Accept := False;
end;
– Ⱦɥɹ ɮɨɪɦɵ:
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
//ȿɫɥɢ ɢɫɬɨɱɧɢɤ ɩɟɪɟɧɨɫɚ ɩɚɧɟɥɶ, ɬɨ ɮɨɪɦɚ ɫɬɚɧɨɜɢɬɫɹ ɩɪɢɟɦɧɢɤɨɦ.
if Source.ClassName ='TPanel'
then
Accept := True
else
58
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »
