![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ItemIndex
Bobby Digital © (2004-11-28 13:12:00)какое событие которое возникает при выделении элемента в Listbox
OneFragLeft (2004-11-28 15:58:00) [1]Ну и слава Borlandу Великому и Ужасному.
Bobby Digital (2004-11-28 15:53:00) [2]да работает сасибо ...
OneFragLeft (2004-11-28 15:14:00) [3]Так, что пока не меняется текущий индекс нифига ни происходит.
OneFragLeft (2004-11-28 15:13:00) [4]Габотает?
Просто тут волшебное слово надо было:
if i<>indxthen
begin
ListBox1.Items.Strings[i]:=Buff;
ListBox1.Items.Strings[Indx]:=B;
end;
Bobby Digital (2004-11-28 15:12:00) [5]хе ;)
OneFragLeft (2004-11-28 14:58:00) [6]Возможно не очень красиво, но работает.
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 13:54:00) [7]нет эт тоже не то :( - там вообщем идея такая ты зажимаешь кнопку на элементе Листбокса и менять строки местами перетягиванием, вот ... сама процедура работает отлично с помощью MouseDown MouseUP, но хочется чтоб строки менятить местами не по событию MouseDown, а по выделению каждого нового элемета ...
а MouseMove я и сам пробывал ... вороде получается но настолько быстро, "дерганно" и тд. вообщем MouseMove не походит, но все равно спасибо за совет ;)
OneFragLeft (2004-11-28 13:39:00) [8]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:31:00) [9]нет не это ... вот, например, ты зажимаешь кнопку мыши и возишь по Listbox, и при переходе на каждую новую строку при зажатой кнопе мыши выполнялось действие
OneFragLeft (2004-11-28 13:25:00) [10]MouseDown.
А у ListBox есть св-во ItemIndex.
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
showmessage(inttostr( ListBox1.ItemIndex));
end;
Это надо было?