PDA

View Full Version : حرفه ای: نحوه استفاده از یک تابع



mohsen24000
چهارشنبه 17 اسفند 1390, 11:02 صبح
باسلام خدمت دوستان
پس از نصب یک اکتیوایکس؛ تابعی با مشخصات زیر وجود دارد:
convert(page:integer): IInterface
در راهنمای نحوه استفاده این تابع در VB هم به اینصورت از آن استفاده کرده:
pictureBox.Picture=convert(1); ... etc
حال بفرمایید چگونه میتوان از این تابع در دلفی استفاده کرد.
باتشکر

Felony
دوشنبه 22 اسفند 1390, 09:30 صبح
اگر میتونید dll رو قرار بدید ، نوع بازگشتی IInterface یک نوع پایه برای Interface های بر پایه Com هست ، تابع دقیقا قراره چی کار بکنه ؟

mohsen24000
دوشنبه 22 اسفند 1390, 10:35 صبح
تابع دقیقا قراره چی کار بکنه ؟
باتشکر از شما
تابع قراره یه تصویر bmp تولید کنه که در وی بی مستقیم به picture نسبت داده شده ولی در دلفی به صورت IInterface تعریف شده.
به اینصورت حل شد!:


var aPictureIntf : IPictureDisp;
begin
aPictureIntf:=IPictureDisp(convert(19));
SetOlePicture(image1.Picture,aPictureIntf );

mohsen24000
دوشنبه 22 اسفند 1390, 11:53 صبح
در این بین به این باگ هم برخوردم که می بایست در فایل AxCtrls.pas به صورت زیر اصلاح بشه تا تصویری که بدست میاد مشکلی نداشته باشه!


function HIMETRICtoDP(P: TPoint): TPoint;
//var
// DC: HDC;
begin
Result.X := (Screen.PixelsPerInch * P.X ) div 2540;
Result.Y := (Screen.PixelsPerInch * P.Y ) div 2540;
{
DC := GetDC(0);
SetMapMode(DC, MM_HIMETRIC);
Result := P;
Result.Y := -Result.Y;
LPTODP(DC, Result, 1);
ReleaseDC(0,DC);
}
end;

این باگ تا دلفی نسخه XE2 هم که دیدم ادامه پیدا کرده!!!