PDA

View Full Version : سوال: آیا میشه از TImage نسخه دلفی 8 در دلفی 6 استفاده کرد؟



mbshareat
دوشنبه 10 تیر 1398, 15:17 عصر
سلام
اصل اشکال رو اینجا (http://barnamenevis.org/showthread.php?556099-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-TGifImage) مطرح کردم.
بعد از کلی جستجو برای یافتن کامپوننت برای gif و جواب ندادن هیچ یک از اونها (graphiEx,GDI+,Graphic32 ,...)و نصب نسخه های مختلف دلفی(7و8وXE2)،راهی برای اصلاح ترسیم نادرست gif در دلفی خودم(6) پیدا نکردم.
دلفی 8، فایل gif رو درست ترسیم می کنه اما به قسمتهای مختلف کد نویسی برنامه ام ایراد می گیره.
نمی تونم برنامه رو از صفر بنویسم.از طرفی کدی که به ترسیم gif مربوط بشه هم در دلفی 8 پیدا نکردم.
تصورم اینه که دلفی این کار رو بر عهده ویندوز گذاشته.
من قبلا از GifImage استفاده می کردم که دیدم توی توضیحات در خود فایل به برخی اشکالات مثل کج و کولگی و آب رفتن اشاره کرده.
از دلفی 8 به بالا اسم یونیتها می تونند دوجزئی و سه جزئی بشند.مثل Borland.Vcl.ExtCtrls که در نسخه های پایینتر مشکل سازه.
به علاوه نحوه کد نویسی هم تغییر کرده.دیگه دارم فکر می کنم دلفی هم مثل دات نت هست و از نسخه های قدیمی حمایت نمی کنه.
از طرفی کلاسها از کلاسهای مختلف در یونیتهای مختلف استفاده می کنند که باعث گیج شدنم شد و نتونستم کدی که میخوام جدا کنم.پس کلا از استفاده از یونیت و کپی کد نا امید شدم.
اما نمایش تصویر gif هنوز جزء اصلی برنامه ام هست.
آیا میشه TImage دلفی 8 رو (به صورت dll یا کامپوننت الحاقی)برای دلفی 6 یا 7 استفاده کنم؟یا توابع Api یا راه دیگه ای برای این کار هست؟

mbshareat
دوشنبه 10 تیر 1398, 17:31 عصر
سلام
بالاخره بعد از کلی جستجو،شانسی مثال +GDI رو دیدم.بعد از دستکاری تونستم نتیجه بگیرم.هم فایل رو درست نشون میده هم سرعتش خوبه.

uses
GDIPAPI, GDIPOBJ;

procedure Gif2Bmp(FileName:String;var B:TBitmap);
var
graphics : TGPGraphics;
Image: TGPImage;
begin
B.Width:=2000;
B.height:=2000;
graphics := TGPGraphics.Create(B.canvas.Handle);
Image:= TGPImage.Create(FileName);
graphics.DrawImage(image, 0, 0);
B.Width:=image.GetWidth;
B.height:=image.GetHeight;
Image.Free;
graphics.Free;
end;
150415