Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

ItemIndex   Найти похожие ветки 

 
Bobby Digital ©   (2004-11-28 13:12) [0]

какое событие которое возникает при выделении элемента в Listbox


 
OneFragLeft ©   (2004-11-28 13:25) [1]

MouseDown.

А у ListBox есть св-во ItemIndex.


procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
showmessage(inttostr(ListBox1.ItemIndex));
end;


Это надо было?


 
Bobby Digital ©   (2004-11-28 13:31) [2]

нет не это ... вот, например, ты зажимаешь кнопку мыши и возишь по Listbox, и при переходе на каждую новую строку при зажатой кнопе мыши выполнялось действие


 
OneFragLeft ©   (2004-11-28 13:39) [3]

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if  mouse.DragImmediate then
 form1.Caption:=(inttostr(ListBox1.ItemIndex));
end;
Вот так.


 
Bobby Digital ©   (2004-11-28 13:54) [4]

нет эт тоже не то :( - там вообщем идея такая ты зажимаешь кнопку на элементе Листбокса и менять строки местами перетягиванием, вот ... сама процедура работает отлично с помощью MouseDown MouseUP, но хочется чтоб строки менятить местами не по событию  MouseDown, а по выделению каждого нового элемета ...
а MouseMove я и сам пробывал ... вороде получается но настолько быстро, "дерганно" и тд. вообщем MouseMove не походит, но все равно спасибо за совет ;)


 
OneFragLeft ©   (2004-11-28 14:58) [5]

Возможно не очень красиво, но работает.

var
 Form1: TForm1;
 Buff: String;
 Indx:Integer;
implementation

{$R *.dfm}

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 Buff:=ListBox1.Items.Strings[ListBox1.ItemIndex];
 Indx:=ListBox1.ItemIndex;
end;

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var B:String;I:Integer;
begin
if shift=[ssLeft] then
begin
 B:=ListBox1.Items.Strings[ListBox1.ItemIndex];
 I:=ListBox1.ItemIndex;
 if i<>indx then
 begin
  ListBox1.Items.Strings[i]:=Buff;
  ListBox1.Items.Strings[Indx]:=B;
 end;
 Buff:=b;
 Indx:=i;
end;
end;


Не судите строго:)


 
Bobby Digital ©   (2004-11-28 15:12) [6]

хе ;)


 
OneFragLeft ©   (2004-11-28 15:13) [7]

Габотает?
Просто тут волшебное слово надо было:
if i<>indx then
begin
 ListBox1.Items.Strings[i]:=Buff;
 ListBox1.Items.Strings[Indx]:=B;
end;


 
OneFragLeft ©   (2004-11-28 15:14) [8]

Так, что пока не меняется текущий индекс нифига ни происходит.


 
Bobby Digital ©   (2004-11-28 15:53) [9]

да работает сасибо ...


 
OneFragLeft ©   (2004-11-28 15:58) [10]

Ну и слава Borlandу Великому и Ужасному.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
4-1098878484
maxistent
2004-10-27 16:01
2004.12.12
??? CreateFileMapping ???


1-1101783419
Змей
2004-11-30 05:56
2004.12.12
файл в каталоге с *.exe


14-1100936489
gn
2004-11-20 10:41
2004.12.12
Microsoft категорически отвергает обвинения в пиратстве


1-1101799104
Progh
2004-11-30 10:18
2004.12.12
Сохранения TListView в виде HTML


1-1101885452
vlasovv
2004-12-01 10:17
2004.12.12
gif анимация в дельфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский