Главная страница
    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.068 c
1-1101352153
Fktrc
2004-11-25 06:09
2004.12.12
Потокобезопасный класс


6-1096812572
denkop
2004-10-03 18:09
2004.12.12
UDP и широковещательные пакеты


6-1096286797
andrey__
2004-09-27 16:06
2004.12.12
модем. связь между 2-мя компами (её автоматизация)


3-1100514222
alsov1
2004-11-15 13:23
2004.12.12
Проблема с возвращением параметра в TADOStoredProc


14-1101007383
Александр1
2004-11-21 06:23
2004.12.12
Глюк windows 2003





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