Главная страница
    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.042 c
14-1101197756
blackman
2004-11-23 11:15
2004.12.12
Королевству 6 лет!


4-1098942649
Гость
2004-10-28 09:50
2004.12.12
Как сделать чтобы программа получала админские права при запуске


14-1101125952
WondeRu
2004-11-22 15:19
2004.12.12
Прехват функций COM-интерфейсов


14-1099344694
Erazser
2004-11-02 00:31
2004.12.12
VoIP и всё что с этим связано


3-1100435214
Алексей
2004-11-14 15:26
2004.12.12
красивый DBGrid





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