Главная страница
    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.048 c
1-1101582815
Herkules-A
2004-11-27 22:13
2004.12.12
NMSMTP1.PostMessage.Body.Text переход на следущую строку


14-1101177219
Думкин
2004-11-23 05:33
2004.12.12
С днем рождения! 23 ноября


14-1100041467
GanibalLector
2004-11-10 02:04
2004.12.12
Даешь встречу в Харькове ???


14-1101177109
Rand
2004-11-23 05:31
2004.12.12
Сколько платят?


14-1101183994
VMcL
2004-11-23 07:26
2004.12.12
Tech. support





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский