۱۶-مرداد-۱۳۸۸, ۱۷:۰۳:۱۹
صفحهها: 1 2
۱۷-مرداد-۱۳۸۸, ۱۰:۰۷:۱۷
این تابع میاد کنترل مورد نظر شما رو در dc یا همون device context کنترلی که هندلشو با getdc بدست اوردین در مختصات XوY نمایش میده
مثلا شما میخواهین وقتی رو button1 کلیک کردین این باتن در مختصات x=20 و y=30 به نمایش در بیاد
به جای handle میتونین handle مربوط به هر کنترلی رو قرار بدین تا تصویر button در محدوده داخلی اون کنترل به نمایش دربیاد
مثلا شما میخواهین وقتی رو button1 کلیک کردین این باتن در مختصات x=20 و y=30 به نمایش در بیاد
کد:
Button1.PaintTo(GetDC(Handle),20,30);
به جای handle میتونین handle مربوط به هر کنترلی رو قرار بدین تا تصویر button در محدوده داخلی اون کنترل به نمایش دربیاد
۱۷-مرداد-۱۳۸۸, ۱۲:۰۱:۴۴
خیلی ممنون دوست عزیز.
1- معادل این دستور در C# رو میدونین؟
2- من میخوام یه فریم از فریم های یک فایل فلش رو نشون بدم (gotofram) بعد با همین دستور () هندلشو بگیرم و با دوتا حلقه پردازشش کنم. می شه کمک کنین؟
1- معادل این دستور در C# رو میدونین؟
2- من میخوام یه فریم از فریم های یک فایل فلش رو نشون بدم (gotofram) بعد با همین دستور () هندلشو بگیرم و با دوتا حلقه پردازشش کنم. می شه کمک کنین؟
۱۷-مرداد-۱۳۸۸, ۱۳:۰۲:۲۷
معادل دستورشو تو #c نمیدونم
جرا حالا میخواهی این کارو انجام بدی؟
جرا حالا میخواهی این کارو انجام بدی؟
۱۷-مرداد-۱۳۸۸, ۱۳:۲۷:۳۹
دارم یه برنامه برا تابلوروانم مینویسم تا بتونه فلش رو نشون بده.
برا این کار باید فریم ها رو تک تک نشون بدم و بعد با دستور CanvasPixel مقدارش رو بخونم و با دوتا حلقه (برا مختصات x,y) کدهاشو در بیارم.
اگه شما راه بهتر و سریعتری میشناسن لطفاً راهنمایی کنین.
برا این کار باید فریم ها رو تک تک نشون بدم و بعد با دستور CanvasPixel مقدارش رو بخونم و با دوتا حلقه (برا مختصات x,y) کدهاشو در بیارم.
اگه شما راه بهتر و سریعتری میشناسن لطفاً راهنمایی کنین.
۱۸-مرداد-۱۳۸۸, ۱۳:۰۴:۰۸
فرض کنیم من با دستور ShockwaveFlash1.PaintTo(GetDC(Handle),0,0);q هندل یکی از فریم ها رو گرفتم و نشون دادم.
حالا چطور میشه با دستور CanvasPixel این فریمی که نشون داده شده رو پردازش کرد؟
حالا چطور میشه با دستور CanvasPixel این فریمی که نشون داده شده رو پردازش کرد؟
۱۸-مرداد-۱۳۸۸, ۱۵:۵۰:۴۷
کد زیر میتونه همه چی رو براتون روشن کنه
قسمت پردازش از 2 حلقه for تو در تو تشکیل شده که اولی درازا یا X و دومی پهنا یا Y رو پردازش می کنه تابع .Canvas.Pixels شما باید مقدار X و Y رو بهش پاس بدین که XوY مختصات پیکسل مورد نظر شماست و خروجی این تابع یک مقدار از نوع Tcolor یا همون رنگ هست
کد:
procedure TForm1.Button2Click(Sender: TObject);
var
bitmap:TBitmap;
i,j:Integer;
begin
// ijade yek ax bmp khali
bitmap:=TBitmap.Create;
try
bitmap.Width:=ShockwaveFlash1.Width;
bitmap.Height:=ShockwaveFlash1.Height;
// copy kardane dc flash dar bmp
bitmap.Canvas.CopyRect(bitmap.Canvas.ClipRect,Canvas,ShockwaveFlash1.BoundsRect);
//2 halghe for baraye pardazesh tool va arz
for i:=1 to bitmap.Width do
begin
for j:=1 to bitmap.Height do
begin
// mahale gharar dadane code pardazesh
if bitmap.Canvas.Pixels[i,j]=clred then
//do somthing
end;
end;
//bitmap.SaveToFile('c:\sam.bmp');
finally
//azad kardane hafee bitmap
bitmap.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ShockwaveFlash1.LoadMovie(0,OpenDialog1.FileName);
end;
قسمت پردازش از 2 حلقه for تو در تو تشکیل شده که اولی درازا یا X و دومی پهنا یا Y رو پردازش می کنه تابع .Canvas.Pixels شما باید مقدار X و Y رو بهش پاس بدین که XوY مختصات پیکسل مورد نظر شماست و خروجی این تابع یک مقدار از نوع Tcolor یا همون رنگ هست
۱۹-مرداد-۱۳۸۸, ۰۸:۵۶:۰۵
عالی بود، همونی بود که می خواستم.
فقط یه مشکل داره.
وقتی فرم رو minimize میکنم (در کل هنگامی که فایل فلش دیده نشه) نمیتونه عکس بگیره.
آیا میشه این مشکل رو حل کرد؟
فقط یه مشکل داره.
وقتی فرم رو minimize میکنم (در کل هنگامی که فایل فلش دیده نشه) نمیتونه عکس بگیره.
آیا میشه این مشکل رو حل کرد؟
۱۹-مرداد-۱۳۸۸, ۱۰:۴۹:۰۲
شما برای چی از minimize استفاده میکنین؟
ایا میخواهید موقع اجرای عملیات توسط برنامه فورم دیده نشه؟
اگه این طوره میتونین از خاصیت
و
استفاده کنید
البته برای کنترل مخفی و ظاهر شدن فورم برای برنامتون یه hotkey تعریف کنین تا بتونین بهش دسترسی داشته باشین
یا از کامپوننت F-IN-BOX که قابلیتهای فوقالعاده ای برای کار با فلش در اختیارتون میزاره استفاده کنین
ایا میخواهید موقع اجرای عملیات توسط برنامه فورم دیده نشه؟
اگه این طوره میتونین از خاصیت
کد:
form1.hide;
کد:
form1.show;
البته برای کنترل مخفی و ظاهر شدن فورم برای برنامتون یه hotkey تعریف کنین تا بتونین بهش دسترسی داشته باشین
یا از کامپوننت F-IN-BOX که قابلیتهای فوقالعاده ای برای کار با فلش در اختیارتون میزاره استفاده کنین
۱۹-مرداد-۱۳۸۸, ۱۳:۲۸:۱۱
ممنون.
جسارتاً میشه بیشتر توضیح بدید که چطور hotkey تعریف کنم. آخه من تازه کارم!!!
من قبلاً زیاد دنبال کامپوننت F-IN-BOX بودم اما متاسفانه رجیستر شدش رو پیدا نکردم.
اگه شما دارین بذارین، هزینش هم مهم نیست.
جسارتاً میشه بیشتر توضیح بدید که چطور hotkey تعریف کنم. آخه من تازه کارم!!!
من قبلاً زیاد دنبال کامپوننت F-IN-BOX بودم اما متاسفانه رجیستر شدش رو پیدا نکردم.
اگه شما دارین بذارین، هزینش هم مهم نیست.
۱۹-مرداد-۱۳۸۸, ۲۰:۰۱:۴۲
سلام دوست عزیز
اینجا رو یه نگاه بنداز:
راحت کار می کنه.
مشکل اینجاست که فرمی که داره روی اون PaintTo انجام میشه اگه زیر فرم دیگه ای بره یا minimize بشه یا ... دیگه نمیشه درست پیکسل هاشو خوند. یعنی برا این کار حتماً باید صفحه دیده بشه که این بده. آیا راهی هست که بدون اینکه این عملیات دیده بشه این کارا رو کرد. راستی اگه اینا رو کامپوننت کنم توی سرعت کار چقدر تأثیر گذاره؟
اگه راهی بنظرتون می رسه لطفا راهنمایی کنین.
اینجا رو یه نگاه بنداز:
کد php:
for k:=0 to ShockwaveFlash1.TotalFrames do
begin
ShockwaveFlash1.GotoFrame(k);
ShockwaveFlash1.PaintTo(GetDC(Handle),0,0);
for x:=0 to ShockwaveFlash1. width do
for y:=0 to ShockwaveFlash1.height do
begin
pixel:=Canvas.Pixels[x,y];
مشکل اینجاست که فرمی که داره روی اون PaintTo انجام میشه اگه زیر فرم دیگه ای بره یا minimize بشه یا ... دیگه نمیشه درست پیکسل هاشو خوند. یعنی برا این کار حتماً باید صفحه دیده بشه که این بده. آیا راهی هست که بدون اینکه این عملیات دیده بشه این کارا رو کرد. راستی اگه اینا رو کامپوننت کنم توی سرعت کار چقدر تأثیر گذاره؟
اگه راهی بنظرتون می رسه لطفا راهنمایی کنین.
صفحهها: 1 2