ALpMontana
КЯaL´da TaNıMaM КuяaL´da
Dbgrid içerisinde mousun scroll tuşunu kullanmak için şunları yapmanız gerekir..
Öncelikle formunuza applicationevents bileşenini alınız.
Daha sonra bu bileşenin onmessage olayına aşağıdaki kodları yazınız..
Bu kodu kullandığınızda dbgridde mousun scroll tuşunu kullandıkça sanki klavyeden işlem yapmış gibi keydown olayı gerçekleşir.Böylece mousun scroll tuşu ile aşağı yukarı hareket edersiniz..Dbgrid'in keydown'ına yazdığınız koda göre dbgridde üzerinde bulunduğunuz kısım ile ilgili bilgilere ,resimlere ulaşabilirsiniz..
Yanlız dbgrid'in keydownda şöyle bir problem yaşıyorum..
Aşağıdaki kodda dbgriddeki bilgileri editlere ve memoya aktarıp resimlerini databaseden çekiyorum.
Yanlız aşağı yukarı hareket ettikçe seçilen ile ilgili bilgi değilde bir önceki veya bir sonraki bilgi ekrana geliyor.Klavyenin ok tuşları ile aşağı hareket ederken seçili olan bilgiden bir önceki,aşağıdan yukarı hareket ederken bir sonraki bilgi geliyor.Bu konuda yardıma ihtiyacım var.
Aynı kodları onkeyup kullanıyorum bir problem yaşamıyorum.
KolAy Gelsin İiFORumLAR.:hhman:
Öncelikle formunuza applicationevents bileşenini alınız.
Daha sonra bu bileşenin onmessage olayına aşağıdaki kodları yazınız..
Kod:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
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;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
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;
Bu kodu kullandığınızda dbgridde mousun scroll tuşunu kullandıkça sanki klavyeden işlem yapmış gibi keydown olayı gerçekleşir.Böylece mousun scroll tuşu ile aşağı yukarı hareket edersiniz..Dbgrid'in keydown'ına yazdığınız koda göre dbgridde üzerinde bulunduğunuz kısım ile ilgili bilgilere ,resimlere ulaşabilirsiniz..
Yanlız dbgrid'in keydownda şöyle bir problem yaşıyorum..
Aşağıdaki kodda dbgriddeki bilgileri editlere ve memoya aktarıp resimlerini databaseden çekiyorum.
Yanlız aşağı yukarı hareket ettikçe seçilen ile ilgili bilgi değilde bir önceki veya bir sonraki bilgi ekrana geliyor.Klavyenin ok tuşları ile aşağı hareket ederken seçili olan bilgiden bir önceki,aşağıdan yukarı hareket ederken bir sonraki bilgi geliyor.Bu konuda yardıma ihtiyacım var.
Kod:
procedure TForm1.DBGrid3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
memo1.Clear;
xpedit4.Text:=dbgrid3.DataSource.DataSet.fieldbyname('ntno').AsString;
xpedit5.Text:=dbgrid3.DataSource.DataSet.fieldbyname('orgno').AsString;
xpedit6.Text:=dbgrid3.DataSource.DataSet.fieldbyname('description').AsString;
memo1.lines.strings[0]:=dbgrid3.DataSource.DataSet.fieldbyname('catalognotes').AsString;
picture:=dbgrid3.fields[3].AsString+'.jpg';
edit4.text:=picture;
deencrypt();
// maskedit1.EditMask:='';
if FileSearch(edit4.Text,way)<>'' then
begin
image1.Stretch:=false;
image1.Center:=true;
image1.Picture.LoadFromFile(way+edit4.text);
end;
end;
procedure TForm1.DBGrid3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
memo1.Clear;
xpedit4.Text:=dbgrid3.DataSource.DataSet.fieldbyname('ntno').AsString;
xpedit5.Text:=dbgrid3.DataSource.DataSet.fieldbyname('orgno').AsString;
xpedit6.Text:=dbgrid3.DataSource.DataSet.fieldbyname('description').AsString;
memo1.lines.strings[0]:=dbgrid3.DataSource.DataSet.fieldbyname('catalognotes').AsString;
picture:=dbgrid3.fields[3].AsString+'.jpg';
edit4.text:=picture;
deencrypt();
// maskedit1.EditMask:='';
if FileSearch(edit4.Text,way)<>'' then
begin
image1.Stretch:=false;
image1.Center:=true;
image1.Picture.LoadFromFile(way+edit4.text);
end;
end;
Aynı kodları onkeyup kullanıyorum bir problem yaşamıyorum.
KolAy Gelsin İiFORumLAR.:hhman: