![]() |
|
#16
|
||||
|
||||
![]() Вопросы еще актуальны. Поможет любая информация.
|
#17
|
|||
|
|||
![]() Цитата:
Ну да, сорри, забыл одну проверку. Код:
procedure MoveItemsUp(AListBox : TListBox); var I : Integer; begin If AListBox.Items.Count > 1 Then For I := 1 To AListBox.Items.Count-1 Do If AListBox.Selected[i] Then // Вот эту забыл!!! If Not AListBox.Selected[I-1] Then AListBox.Exchange(I,I-1); end; |
#18
|
|||
|
|||
![]() Цитата:
Встречный вопрос. А как ты ее перетаскиваешь??? С помощью каких компонент? Или тебе в принципе нужно само перетаскивание? |
#19
|
||||
|
||||
![]() Открыто два окна. Моя программа и проводник. Хватаю папку в проводнике мышкой и бросаю на листбокс. При этом хочу получить адрес этой папки в глобальную строковую переменную своей программы.
|
#20
|
|||
|
|||
![]() Обработка сообщения WM_DROPFILES, кажется так. Сейчас гляну как у меня сделано, но у меня бросаются файлы, может тебе придется что-нить еще там подкрутить...
Код:
TForm1 = class(TForm) protected procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES; ... procedure TMainForm.WMDropFiles(var Message: TWMDropFiles); var I : Integer; FileCount : Integer; FileName : Array [0..255] of Char; NewIdx : Integer; TmpIdx : Integer; begin inherited; FileCount := DragQueryFile(Message.Drop, $FFFFFFFF, Nil, 0); // how many files are dropped NewIdx := -1; For I := 0 to FileCount - 1 Do // for all the file in the list Begin DragQueryFile(Message.Drop, I, FileName, 256); // get the FileName (max characters 255 + #0) If FileExists(FileName) And IsFormatSupported(FileName) Then Begin TmpIdx := FPictureList.Add(FileName); If NewIdx = -1 Then NewIdx := TmpIdx; End; End; DragFinish(Message.Drop); // Free resources If NewIdx > -1 Then Begin FPictureList.ItemIndex := NewIdx; ShowCurrentImage(True); UpdateUIActions; End; end; Взято из рабочего проекта, так что пример вполне работающий. Посмотри, может на папки тоже сработает. |
#21
|
||||
|
||||
![]() Спасибо. Может попробую разобраться.
|