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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2012, 21:42   #1
LISTAT
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 50
По умолчанию Синхронная прокрутка в SynEdit

Доброго времени суток! Подскажите, кто знает как сделать синхронную прокрутку двух SynEdit. Примеров куча для Memo,но для SynEdit не работает. Заранее спасибо!
LISTAT вне форума Ответить с цитированием
Старый 25.06.2012, 22:47   #2
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Код:
procedure TForm1.SynEdit1Scroll(Sender: TObject; ScrollBar: TScrollBarKind);
begin
   SynEdit2.TopLine := SynEdit1.TopLine;
end;
Оно?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 25.06.2012, 22:55   #3
volvo877
Форумчанин
 
Аватар для volvo877
 
Регистрация: 01.06.2009
Сообщений: 108
По умолчанию

Код:
// Подготавливаем SynEdit-ы к синхронной прокрутке
procedure TForm1.FormCreate(Sender: TObject);
begin
   SynEdit1.OnStatusChange := SynEditStatusChange;
   SynEdit1.Tag := 1;
   SynEdit2.OnStatusChange := SynEditStatusChange;
   SynEdit2.Tag := 2;
end;

// Это - приватный метод класса формы, который и будет прокручивать
// один SynEdit при прокрутке пользователем другого:
procedure TForm1.SynEditStatusChange(Sender: TObject;
                 Changes: TSynStatusChanges);
var Syn : TSynEdit;
begin
   if TSynStatusChange.scTopLine in Changes then
   // Как изменилось состояние? Изменился ли индекс верхней строки?
   begin
      Syn := Sender as TSynEdit;
      case Syn.Tag of
         1 : SynEdit2.TopLine := Syn.TopLine; // Тогда другому компоненту выставить такой же индекс
         2 : SynEdit1.TopLine := Syn.TopLine;
      end;
   end;
end;
И всего делов

Хм... Вот, блин, в Дельфийской версии есть оказывается OnScroll. Почему в Лазарусе нету, интересно...
volvo877 вне форума Ответить с цитированием
Старый 26.06.2012, 10:57   #4
LISTAT
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 50
По умолчанию

Всем большое спасибо. Все работает!!!
LISTAT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синхронная работа TrackBar для регулировки изображения kotkkn Мультимедиа в Delphi 0 09.12.2011 21:22
Синхронная работа с картинками и текстом в дельфи. Человек Панда Помощь студентам 1 28.10.2011 08:21
Delphi и InterBase. Синхронная передача данных Sunde БД в Delphi 1 17.04.2011 20:16
о SynEdit... sweet_amber Компоненты Delphi 0 20.03.2010 14:22
Синхронная прокрутка двух Memo Dimmitt Компоненты Delphi 1 21.10.2007 17:57