Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Вниз

Определить тип активного компонента   Найти похожие ветки 

 
Zheksonz   (2015-05-06 16:18) [0]

Добрый день!
Положение активной записи в DBGrid регулируется только в рамках видимых полей DBGrid. Чтобы это исправить был использован "костыль":

procedure TBaseForm.AppMessage(var Msg: TMsg; var Handled: Boolean);
 var I : SmallInt;
begin
 if Msg.message= WM_MOUSEWHEEL then begin

    Msg.message:=WM_KEYDOWN;
    Msg.lParam:=0;
    i:=HiWord(Msg.wParam);
    if i>0 then Msg.wParam:=VK_UP else Msg.wParam:=VK_DOWN;
    Handled:=false;
  end;
end;


Но возникла другая проблема, что при использовании скролинга не на компонентах типа DBGrid пропадают контролы TButton и TCheckBox. Если в в процедуре AppMessage делать проверку на то, какой контрол активен, то можно предотвратить пропадание контролов. Подскажите плз. как это сделать.


 
Ega23 ©   (2015-05-06 22:08) [1]

Может не стоит городить костыль с ЧПУ, душевой кабиной и атомной пушкой, а сделать сразу правильно?
Какую конкретно задачу надо решить?


 
Zheksonz   (2015-05-07 00:35) [2]


> Ega23 ©   (06.05.15 22:08) [1]


Скролинг DBGrid_е работает только в рамках видимых полей... процедура которую я в первом сообщении выложил как бы решает эту проблему... Понятное дело, ключевое слово "как бы", т.к. она имитирует нажатие клавиш вниз и вверх, по нажатию на которые и без скролинга (а соответственно и без этой процедуры) пропадают вышеназванные контролы...

Раньше такую каку я не встречал((


 
Ega23 ©   (2015-05-07 00:51) [3]


> Скролинг DBGrid_е работает только в рамках видимых полей


Сейчас вот ещё раз: скроллинг колесом? И в "рамках видимых полей" - это в смысле видимых строк?

Я с DBGrid уже лет 10 дела не имел, но:
1. А какой DataSet используется?
2. Разве у DBGrid нет событий OnMouseWheel?


 
Германн ©   (2015-05-07 01:15) [4]


> Скролинг DBGrid_е работает только в рамках видимых полей.
> ..

А про другие поля TDBGrid ничего не знал, не знает и ничего никогда знать не будет.
Так что может обратишь ещё раз внимание на
> Ega23 ©   (06.05.15 22:08) [1]
>
> Может не стоит городить костыль с ЧПУ, душевой кабиной и
> атомной пушкой, а сделать сразу правильно?
> Какую конкретно задачу надо решить?


 
Денис Комаров ©   (2015-05-07 08:14) [5]

+100
Выкинуть TDBGrid


 
Zheksonz   (2015-05-07 10:54) [6]

Отличная идея, выкинуть TDBGrid и воспользоваться новым компонентом, в котором есть OnMouseWheel! Какой компонент посоветуете?


 
кгшзх ©   (2015-05-07 11:07) [7]

а что, активконтрол или грид ин фокус уже не катит?


 
Ega23 ©   (2015-05-07 11:17) [8]


> Какой компонент посоветуете?


TVirtualStringTree


 
Германн ©   (2015-05-08 00:53) [9]


> Zheksonz   (07.05.15 10:54) [6]
>
> Отличная идея, выкинуть TDBGrid и воспользоваться новым
> компонентом, в котором есть OnMouseWheel! Какой компонент
> посоветуете?

Так ты же потом скажешь "дайте код" как с другими компонентом работать в твоем случае.

<offtop>
P.S. И почему мне всегда вспоминается 3+2 в топиках автора?
:)
</offtop>


 
Zheksonz   (2015-05-08 08:46) [10]


> P.S. И почему мне всегда вспоминается 3+2 в топиках автора?


Потому же, почему на форуме стало так безлюдно и тоскливо... ведь даже изредка "залетающие" сюда случайные гости быстро понимают, что это не форум помощи начинающим и не особо способным, а место самоутверждения видимо недооценённых в жизни людей ; )

П.С. Уже даже в ветке для начинающих новичкам дискомфортно, благодаря сформировавшейся здесь атмосфере. Благо не только такие как вы сюда заходят, есть ещё и те, кто действительно способен помочь, а не самоутвердиться.


 
sniknik ©   (2015-05-08 09:46) [11]

> в котором есть OnMouseWheel!
в DBGrid-е он есть... просто не отнаследован, "спрятан" от желающих странного, странными же реализациями.
и он для твоей "задачи" нафиг не нужен, есть же маусап/маусдавн. или не можешь скачанный из инета код адаптировать под доступные события?


 
sniknik ©   (2015-05-08 10:06) [12]

хотя, ип/дауна там тоже нет... подзабыл.
тогда вот аналог твоего кода

 ...
 private
   procedure MouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
   procedure MouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
 public
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

type
 TMyDBGrid = class(TDBGrid);

procedure TForm1.MouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
 TMyDBGrid(Sender).Perform(WM_KEYDOWN, VK_UP, 0);
end;

procedure TForm1.MouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
 TMyDBGrid(Sender).Perform(WM_KEYDOWN, VK_DOWN, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TMyDBGrid(DBGrid1).OnMouseWheelUp  := MouseWheelUp;
  TMyDBGrid(DBGrid1).OnMouseWheelDown:= MouseWheelDown;
end;


 
sniknik ©   (2015-05-08 10:08) [13]

Handled:= true;
забыл, с ним будет полный аналог.


 
Игорь Шевченко ©   (2015-05-08 10:33) [14]

Zheksonz   (08.05.15 08:46) [10]


> это не форум помощи начинающим и не особо способным, а место
> самоутверждения видимо недооценённых в жизни людей ; )


http://segfault.kiev.ua/smart-questions-ru.html



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.052 c
15-1452933004
Юрий
2016-01-16 11:30
2017.01.15
С днем рождения ! 16 января 2016 суббота


15-1448473849
RusSun
2015-11-25 20:50
2017.01.15
Хулиганы добавили offtop сообщения в KOL конференции


3-1311770178
SQLEXPRESS
2011-07-27 16:36
2017.01.15
Ни кто не не желает в SQL размяться? Время исполнения


2-1432209907
Pavelnk
2015-05-21 15:05
2017.01.15
Запись в ini файл


2-1422093481
Некто
2015-01-24 12:58
2017.01.15
Почему выводится неправильное число (указатели)?





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