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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2014, 22:00   #21
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ппц, тут и думать нечего...
Если в современном Делфи для скроллинга еще не присобачили Эмбаркадеровцы соответствующее событие, то дедовский способ живее старика Ленина.
Короче: ТыдыщщщЪЪЪ. Или точнее Тада-а-а-ам
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses    windows,
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  { TScrollBar }

  TScrollBar=class(StdCtrls.TScrollBar)
    private
      procedure OnRoller(var m:TWMMouseWheel); message WM_MOUSEWHEEL;
  end;

  TForm1 = class(TForm)
    ScrollBar1: TScrollBar;
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TScrollBar }

procedure TScrollBar.OnRoller(var m: TWMMouseWheel);
begin
  Position:=Position+m.WheelDelta div Max;
end;

end.
И не надо никаких ВиндовФромПонтов()...
Цитата:
И не приведи Бог...
НУ и на кой черт он тебе нужен? Выкинь этот хлам и сделай нормательно с нуля.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.11.2014, 22:25   #22
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

оно и есть
http://docs.embarcadero.com/products...ScrollBox.html

Цитата:
Благодарю за уважительное обращение, но давай на "ты", мне подчиненных на работе хватает, которые выкают, а разница в возрасте даже если и в два раза, то я тут как неофициальное лицо, так что буду наравне со студентами, тем более знаний по делфи у меня не так много, как щас требуется.
Ответ на вопрос: нет, не заходит в той области, что я указал.
не удивительно, оно и не должно заходить, тут либо событие вешать, либо тот хак что Stilet написал.
насчет вы/ты каждый делает выбор сам.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.11.2014, 22:28   #23
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
тут либо событие вешать
Событие событие!! Если Делфя поддерживает однозначно событие. Мой метод накрайняк.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.11.2014, 22:57   #24
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Цитата:
не удивительно, оно и не должно заходить, тут либо событие вешать, либо тот хак что Stilet написал.
Спасибо. Буду пробовать, надеюсь, никаких багов попутных не вылезет.
Цитата:
НУ и на кой черт он тебе нужен? Выкинь этот хлам и сделай нормательно с нуля.
На самом деле, я бы с радостью. Но "с нуля" нет штатных ресурсов. Этим сначала три человека полгода занимались, потом один почти год. Еще бы с большей делегировал бы это кому-то или отдал на аутсорс, но тут еще дело принципа. Занятого в этой ереси уволил лично я, и весь офис знает, что сам и взялся довести до ума этот проект, и не буду устраивать лотерею, кому достанется тот бесперспективный и мертвый бардак, что оставил уволенный.
Да, я уже не так быстро все понимаю, как только что пришедшие на работу студенты (практики, иногда, у них совсем немного, но схватывают все просто на лету), но я, как руководитель, иногда должен показывать пример. И не только сотрудникам, но и себе самому. Я не считаю себя заложником ситуации или собственных слов и особого давления не испытываю, но иногда мне самому не понятны принципы, которыми руководствовался человек, который писал код. Да, я начинаю злиться, могу матюкнуться в монитор на написанный еретизм, но в итоге все равно разбираюсь.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
оно и есть
Есть, но поверх картинки, которая находится в скроллбоксе, оно пробиться не может. Подозреваю, что и OnRoller не смогет.

Цитата:
не удивительно, оно и не должно заходить
А это почему?

Последний раз редактировалось Stilet; 26.11.2014 в 07:46.
exyl вне форума Ответить с цитированием
Старый 26.11.2014, 02:03   #25
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от exyl Посмотреть сообщение
Есть, но поверх картинки, которая находится в скроллбоксе, оно пробиться не может. Подозреваю, что и OnRoller не смогет.


А это почему?
так поверх картинки или поверх скролбокса? определитесь.

потому что сообщение получает скролбокс, а не форма, вот и все.
событие же у скролбокса сработает.

события OnMouseWheel*
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.11.2014, 02:24   #26
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
так поверх картинки или поверх скролбокса? определитесь.

потому что сообщение получает скролбокс, а не форма, вот и все.
событие же у скролбокса сработает.

события OnMouseWheel*
Ну тут все, как в сказке, только в очень плохой )) Есть форма, на форме панелька, на панельке скроллбокс, в скроллбоксе имедж. Надо отлавливать скролл над картинкой, которая в скроллбоксе. Внутри процедуры идет работа с картинкой (зуммирование ближе/дальше). При этом панелька (которая со скроллбоксом, в котором имедж) может быть как видимой, так и нет (у невидимой, естественно, не надо обрабатывать никакие события).
Я уж извиняюсь, что сразу все не рассказал, думал, из кода будет понятно. Ведь не просто так это сделано именно таким образом. Другой вопрос, можно ли пофиксить баг с невосприимчивостью области экрана к скроллу и, если, да, то как организовать все это как можно грамотнее с точки зрения среды программирования.
exyl вне форума Ответить с цитированием
Старый 26.11.2014, 02:25   #27
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от exyl Посмотреть сообщение
Спасибо. Буду пробовать, надеюсь, никаких багов попутных не вылезет.

На самом деле, я бы с радостью. Но "с нуля" нет штатных ресурсов. Этим сначала три человека полгода занимались, потом один почти год. Еще бы с большей делегировал бы это кому-то или отдал на аутсорс, но тут еще дело принципа. Занятого в этой ереси уволил лично я, и весь офис знает, что сам и взялся довести до ума этот проект, и не буду устраивать лотерею, кому достанется тот бесперспективный и мертвый бардак, что оставил уволенный.
Да, я уже не так быстро все понимаю, как только что пришедшие на работу студенты (практики, иногда, у них совсем немного, но схватывают все просто на лету), но я, как руководитель, иногда должен показывать пример. И не только сотрудникам, но и себе самому. Я не считаю себя заложником ситуации или собственных слов и особого давления не испытываю, но иногда мне самому не понятны принципы, которыми руководствовался человек, который писал код. Да, я начинаю злиться, могу матюкнуться в монитор на написанный еретизм, но в итоге все равно разбираюсь.
Ты (если ты действительно такой "старый") всё-таки подумай о том чтобы найти/нанять какого-то специалиста. Если конечно этот проект того требует. Я бы нанял. А старше меня тут вряд ли кто есть.
Ты потратил уже полторы суток чтобы разобраться с мелочью и, имхо, не разобрался. И при этом был на форуме почти постоянно.
northener вне форума Ответить с цитированием
Старый 26.11.2014, 02:59   #28
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Ты (если ты действительно такой "старый") всё-таки подумай о том чтобы найти/нанять какого-то специалиста. Если конечно этот проект того требует. Я бы нанял. А старше меня тут вряд ли кто есть.
Ты потратил уже полторы суток чтобы разобраться с мелочью и, имхо, не разобрался. И при этом был на форуме почти постоянно.
Проект еле живой, ситуация там с заказчиком 50/50. Деньги давно переведены на наши счета, а у клиента сейчас серьезные проблемы и я так думаю, что ему пока не до всего этого, однако отчитаться будет нужно ближе к августу (это уже пересмотренный контракт). Делать там осталось месяца два при занятости по два часа в день, естественно это очень приблизительно, поэтому до августа все будет готово даже черепашьим шагом. Я уже больше трех месяцев разбираюсь понемногу в проекте, многое переделал и подряжать кого-то со стороны уже не логично. Но самое главное - контракт с заказчиком, где имеются пункты о недопустимости разработки продукта или его части третьим лицом.
И почему сразу "старый"? Мне 38 лет, но я хорошо сохранился ))

Проект компилируется и вполне работает с этим багом, поэтому да, это мелочь. Мне с ходу разобраться не удалось, поэтому закинул темку на форум, может кто с таким сталкивался или что путное посоветует. На форуме постоянно не был, но у меня в браузере открыта вкладка с темой, и если вижу новую информацию, то стараюсь отписаться на вопросы, ведь тут мне помогают совершенно безвозмездно, тратя свое личное время люди, которые мне на самом деле ничего не должны. Поэтому я стараюсь уделить внимание, хотя да, бываю занят.
exyl вне форума Ответить с цитированием
Старый 26.11.2014, 07:51   #29
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Есть, но поверх картинки, которая находится в скроллбоксе, оно пробиться не может. Подозреваю, что и OnRoller не смогет.
Должен смочь. У автора была проверка на WindowFromPoint(), а значит что картинка не является окном, и поверх отсеять сообщения или событие не сможет.
Цитата:
Занятого в этой ереси уволил лично я
Вот теперь и кусай локти. Ненавижу таких начайников, которые сначала делают а потом думают "Ах как плохо, уволили, а что теперь?". А теперь все! Амба!
А учитывая что ты уволил сотрудника в разгар разработки оплаченного проекта нет тебе прощения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.11.2014, 17:29   #30
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вот теперь и кусай локти. Ненавижу таких начайников, которые сначала делают а потом думают "Ах как плохо, уволили, а что теперь?". А теперь все! Амба!
А учитывая что ты уволил сотрудника в разгар разработки оплаченного проекта нет тебе прощения.
Локти не кусаю, уволил после дедлайна. Это уже после пересмотра контракта время есть. Начайник из меня такой, что коллеги сами подходили и спрашивали не взять ли им этот "висяк" (у нас так называют проекты, которые повисли в воздухе и не вызывают радостного возбуждения у начальства). И уж поверь, что должность обязывает сначала взвесить "за" и "против", а потом уже озвучивать что-либо. Сотрудника ты этого не знал (так же, как и тот факт, что он ничего не делал почти 6 недель перед увольнением, исправно получая деньги от фирмы, и при этом на рабочем месте занимался фрилансом), поэтому сделал неверные выводы о положении вещей. Так что за его безделье расплачиваюсь я. Но, извините, я не привык, что мне могут вот так врать сотрудники. И я не думал, что у взрослого человека нужно контролировать каждый шаг.

Stilet, procedure OnRoller не отрабатывает в том же углу экрана, что и уже имеющаяся. При этом размер и положение этой "слепой" области остаются неизменными (она размером точно с главную форму при старте, положение 0,0 относительно экрана). И не меняется при перетаскивании или ресайзе главного окна.
exyl вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при запуске формы ввода на MAC OS Hoochara Microsoft Office Excel 4 14.07.2012 15:52
Проблема при запуске формы в Delphi Dissembler7 Помощь студентам 1 19.04.2012 08:00
Ошибка при запуске динамической формы Orchestroman Общие вопросы Delphi 4 24.03.2012 23:51
Изменение разрешения при запуске формы artemavd Общие вопросы Delphi 2 16.07.2009 18:48
Координаты формы при различном разрешении экрана Fataller Помощь студентам 13 28.03.2009 10:51