Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
14-1100918516
fayzut
2004-11-20 05:41
2004.12.12
Delphi 7


3-1099950070
HydraMarat
2004-11-09 00:41
2004.12.12
Уникальный PK и "авто-FK"


1-1101856765
newage
2004-12-01 02:19
2004.12.12
производный класс свои проперти


14-1101190317
Rand
2004-11-23 09:11
2004.12.12
Оригинальные кнопочки!


14-1101127318
Erik1
2004-11-22 15:41
2004.12.12
Как найти какой unit добавляет QR4RunD5 и VirtualTreesD5?