24-04-2011, 07:40 PM
الصفحات : 1 2
25-04-2011, 08:50 AM
وجدت كود ولكن لا يجدي نفعا
ماهو الحل علمنا اني استعمل مكون sdbgrid و الذي يحتوي على الحدث
كيف استفيد من هذا الحدث (دهبت الى help ولم اجد عنه شيئا) ؟
PHP كود :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
DBGrid1: TDBGrid;
procedure FormCreate(Sender: TObject);
procedure DBGridMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
TWheelDBGrid = class(TDBGrid)
public
property OnMouseWheel;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
TWheelDBGrid(DBGrid1).OnMouseWheel := DBGridMouseWheel;
end;
function GetNumScrollLines: Integer;
begin
SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, @Result, 0);
end;
procedure TForm1.DBGridMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
Direction: Shortint;
begin
Direction := 1;
if WheelDelta = 0 then
Exit
else if WheelDelta > 0 then
Direction := -1;
with TDBGrid(Sender) do
begin
if Assigned(DataSource) and Assigned(DataSource.DataSet) then
DataSource.DataSet.MoveBy(Direction * GetNumScrollLines);
Invalidate;
end;
end;
end.
ماهو الحل علمنا اني استعمل مكون sdbgrid و الذي يحتوي على الحدث
PHP كود :
procedure TStockFrm.sDBGrid1MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
end;
كيف استفيد من هذا الحدث (دهبت الى help ولم اجد عنه شيئا) ؟
25-04-2011, 04:16 PM
إقتباس :ماهو الحل علمنا اني استعمل مكون sdbgrid و الذي يحتوي على الحدثأي إصدار، وأي نسخة دلفي تستخدم؟ لأجرب عندي...
إن أمكن، إفتح مشروع جديد وضع ما يجب فيه، ثم أرفقه لنعمل عليه كمثال
25-04-2011, 08:42 PM
السلام عليكم
قمت بتتبع الحدث MouseWheel الخاص بالـ DBGrid فوجدت أنه يتم تنفيذ الكود الموجود في الحدث قبل تحريك السجل Next / Prior)
ربما لأنه حدث ONMouseWheel و ليس AFTERMouseWheel ؟ ـ
لتحقيق غرضك إستعمل الحدث AfterScroll للـ DataSet المستعمل
مثالبالتوفيق
قمت بتتبع الحدث MouseWheel الخاص بالـ DBGrid فوجدت أنه يتم تنفيذ الكود الموجود في الحدث قبل تحريك السجل Next / Prior)
ربما لأنه حدث ONMouseWheel و ليس AFTERMouseWheel ؟ ـ
لتحقيق غرضك إستعمل الحدث AfterScroll للـ DataSet المستعمل
مثال
كود :
procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet);
begin
...
end;25-04-2011, 09:37 PM
الله اكبر
بارك الله فيك وفي والديك
نجحت الفكرة حلت المشكلة
سلامي وحبي لك أستادي عبد الجليل
بارك الله فيك وفي والديك
نجحت الفكرة حلت المشكلة
سلامي وحبي لك أستادي عبد الجليل
الصفحات : 1 2