Форум: "Основная";
Текущий архив: 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.048 c