السلام عليكم
بما أن فهم المشكلة = نصف الحل... اذاً
type
TDateArray=array [1 .. 100] of TDate;
.............
procedure FillDateArray(StrtDate, EndDate: TDate; BkDay: integer;
var DDateArry: TDateArray; var Cntr: integer);
var
XDateVal: TDate;
I: integer;
begin
XDateVal := StrtDate;
Cntr := 1;
for I := 1 to DaysBetween(StrtDate, EndDate) + 1 do
begin
if DayOfWeek(XDateVal) = BkDay then
begin
DDateArry[Cntr] := XDateVal;
Cntr := Cntr + 1;
end;
XDateVal := IncDay(XDateVal, 1);
end;
end;
......................
1 -
FillDateArray(DM.QMultiII.FieldByName('FrmDate').Value,
DM.QMultiII.FieldByName('ToDate').Value, DM.QMultiII.FieldByName
('BookDay').Value, TmpDateArray, XCnt);
2-
FillDateArray(BookR.FrmDate, BookR.ToDate, BookR.BookDay,XArr, XC);
FillDateArray(DM.TBookMFrmDate.Value, DM.TBookMToDate.Value,
DM.TBookMBookDay.Value, xarr, XC);لدي الاجراء بالاعلى مكتوب في Unite ويتم استدعائه من داخل اليونت في اجراء آخر ولا مشكلة , يعمل جيدا
ولكن عند استدعائه من Unit اخرى لا يعمل ويعطي الرسالة التالية :
Types of actual and formal parameters must be identical
لم استطع فهم المشكلة !! هل من مساعدة في فهم المشكلة؟؟؟
ملاحظة :
- DDateArry و xarr من النوع TDateArray .
- الاستدعاء الاول يعمل بشكل جيد والاستدعاء الثاني لا يعمل ويتوقف المؤشر عن اسم المصفوفة ويعطي رسالة الخطأ المشار اليها.
- بالنسبة لكون الاستدعاء الثاني من وحدة اخرى فالاجراء معرف في interface .
على فكرة: هذا المعرف ايضا لي : C_vita
تحياتي ...
