Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2009, 15:28   #21
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

то есть мне убрать свой код перемотки колесиком?
или просто добавить вашу?
Rebel123 вне форума Ответить с цитированием
Старый 15.07.2009, 15:35   #22
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
то есть мне убрать свой код перемотки колесиком?
Скорее заменить, если ты использовал мой способ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2009, 15:43   #23
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

А вот все! работает! добавил в свой код кусочек вашей. Big Thanks Stilet.

Вот тут неувязочка:
Код:
with Form4 do ListBox2.TopIndex:=ListBox1.TopIndex;
то есть при перемотки ListBox1 он будет перематывать другую, а если на ListBox2 то, тогда он не перематывает.
Пыталься сделать так:
Код:
with Form4 do ListBox2.TopIndex:=ListBox1.TopIndex;
with Form4 do ListBox1.TopIndex:=ListBox2.TopIndex;
не работает

и вот так пробывал:
Код:
with Form4 do ListBox2.TopIndex:=ListBox1.TopIndex or with Form4 do ListBox1.TopIndex:=ListBox2.TopIndex;
тоже не работает.
Я новичок, соответсвенно неполучилось! может подскажите Stilet?

Последний раз редактировалось Rebel123; 15.07.2009 в 15:46.
Rebel123 вне форума Ответить с цитированием
Старый 15.07.2009, 16:14   #24
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чеж не подскажу. Подскажу:
Код:
procedure TlistBox.wp(var w: TWMVScroll);
begin
inherited;
if self=Form1.ListBox1 then
 with form1 do ListBox2.TopIndex:=ListBox1.TopIndex;
if self=Form1.ListBox2 then
 with form1 do ListBox1.TopIndex:=ListBox2.TopIndex;
end;
Делов то...

При этом ролер мышки соответственно не потеряет актуальности и для второго.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2009, 16:50   #25
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Вооо спасибо!!! все работает просто отлично!

Тут вот если заметили у моей проги касяк на ListBox'e именно в том что перевод слов очент длинные и соответсвенно они не влезают в ListBox2.
Теперь хотел бы сделать СкроллБары чтоб они в бок мотали!!! реально ли это сделать, заставив его работать от ListBox'ов или же надо будет отдельный компоненты ScrollBar???
Rebel123 вне форума Ответить с цитированием
Старый 15.07.2009, 17:06   #26
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
заставив его работать от ListBox'ов или же надо будет отдельный компоненты ScrollBar???
Хм... Рекомендую поместить Листбокс в ScrollBox и один раз пройтись по нему в цикле вычислив максимальную ширину:
Код:
var i:integer;
begin
 for i:=0 to 100 do begin

 if ListBox1.Width<ListBox1.Canvas.TextWidth(ListBox1.Items[i])
 then
  ListBox1.Width:=ListBox1.Canvas.TextWidth(ListBox1.Items[i]);
  end;

end;
Задай Листбоксу координаты 0,0 и высотой в высоту СкроллБокса и прокрутка Скролбокса сама заработает на вычисленную ширину Листбокса
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2009, 18:27   #27
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Rebel123 Посмотреть сообщение
...у моей проги касяк на ListBox'e именно в том что перевод слов очент длинные и соответсвенно они не влезают в ListBox2.
Теперь хотел бы сделать СкроллБары чтоб они в бок мотали...
Горизонтальные скроллы... Фу-у-у...
А что, если просто разместить, допустим, под ListBox2 многострочный лэйбл и в нем отображать этот перевод?
mihali4 вне форума Ответить с цитированием
Старый 15.07.2009, 21:54   #28
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Stilet
Хм... Рекомендую поместить Листбокс в ScrollBox и один раз пройтись по нему в цикле вычислив максимальную ширину:
То есть, мне надо будет поместить ScrollBox и на него разместить мои ListBox'ы, затем сделать так чтоб ListBox'ы стояли поверх ScrollBox'a и на клике вписать ваш код? я так понял?

Цитата:
Сообщение от mihali4
А что, если просто разместить, допустим, под ListBox2 многострочный лэйбл и в нем отображать этот перевод?
Многострочный Лейбл??? ну я даже себе представить не могу как оно работать будет!

Последний раз редактировалось Rebel123; 15.07.2009 в 21:57.
Rebel123 вне форума Ответить с цитированием
Старый 15.07.2009, 22:10   #29
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Rebel123 Посмотреть сообщение
Многострочный Лейбл??? ну я даже себе представить не могу как оно работать будет!
Это обычный лэйбл, у которого свойство WordWrap=True...
То есть строка, длина которой больше длины лэйбла, будет разбиваться на куски, длина которых не больше длины лэйбла.
Повторяя предыдущий пример:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
Listbox1.perform(lb_selectstring,-1,longint(pchar(Edit1.text)));
ListBox2.ItemIndex:=ListBox1.ItemIndex;
Label1.Caption:=ListBox2.Items[ListBox2.ItemIndex];
end;

Последний раз редактировалось mihali4; 15.07.2009 в 22:13.
mihali4 вне форума Ответить с цитированием
Старый 16.07.2009, 11:45   #30
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Цитата:
Сообщение от mihali4
Это обычный лэйбл, у которого свойство WordWrap=True...
То есть строка, длина которой больше длины лэйбла, будет разбиваться на куски, длина которых не больше длины лэйбла.
Повторяя предыдущий пример:
То есть, будет присутсвовать Лейбл и когда я наведу мышкой по длинной строке он его отобразит оставшийся кусок на лейбле? а причем тут Edit1Change??
Rebel123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SpeedButton mustang007 Общие вопросы Delphi 5 14.05.2009 19:44
drag&drop в listbox-e blackstersl Общие вопросы Delphi 2 03.05.2009 17:11
PopUpMenu из SpeedButton Altera Общие вопросы Delphi 4 15.07.2008 04:14
SpeedButton.Glyph mutabor Компоненты Delphi 6 03.05.2008 16:51
ListBox & *.Bmp Saro Мультимедиа в Delphi 1 24.04.2007 02:06