Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
15-1457219940
Eraser
2016-03-06 02:19
2017.01.15
Требуется ядерщик


2-1424590192
aka
2015-02-22 10:29
2017.01.15
текстовый редактор с нуля


15-1448477619
K-1000
2015-11-25 21:53
2017.01.15
MapViewOfFile() ускоряет загрузку файлов?


15-1456754444
K-1000
2016-02-29 17:00
2017.01.15
Как объединить несколько матриц для SetWorldTransform()?


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