مرحبا يا أحلى صديق والله
رايح أجرب وأردلك جواب
الحقيقة انا ممتن الك كتير
ودمتم
مرحبا يا أحلى صديق والله
رايح أجرب وأردلك جواب
الحقيقة انا ممتن الك كتير
ودمتم
مرحبا ياشباب
أخوي win32 أنا حتى استطيع الأستفادة من الكود الي وضعته في شرحك في المرفق السابق
لازم بس توضح شوي عن كيفية وضع الشيفرة
مثلا
انت كاتب
كيف تقوم باستخراج ملف الـ OCX من برنامجك اثناء التشغيل.
اولاُ يجب ان نعرف اذا ما كان ملف الـ OCX موجود لدى المستخدم و نستطيع ذلك بالكود التالي:
وواضع هذه الشيفرة
uses comobj
begin
Application.Initialize;
try
Application.CreateForm(TForm1, Form1);
except
On EOleSysError Do
begin
//Register OCX File because not found.
end;
end;
Application.Run;
end.
بس ممكن تشرحلي عن كيفية وضعها لأنو أنا حاولت في كود الproject بس يظهر دلفي رسالة عدم التعرف على ole
Error] Project1.dpr(16): Undeclared identifier: 'EOleSysError'
وعلى فكرة اذا في أي عناصر يجب وضعها علو تخبرنا
ومنشان الشيفرات الأخرة في المرفق لـسه ما وصلتها !!!!!!!!!!!1
الواحد ما يتعلم الإ اذا سأل مو هيـــــــــــــــك شباب
عفوا على الأطالة
أخوكم
السلام عليكم
تمام عليك يا دلفي ... وصلت المرحلة الأخيرة ... بالنسبة للكود المرفق اكثرة
انا ماخذة من المنتديات ...والسؤال موغلط ابد يا دلفي
المهم جرب الطريقة هذي لأستخراج وتسجيل الـ OCX :
var
SystemDir : array[0..MAX_PATH] of Char;
SWFDir, AppDir: String;
Fres: TResourceStream;
Ffile: TFileStream;
begin // هنا لتحديد موقع مجلد الفلاش
GetSystemDirectory(@SystemDir,MAX_PATH);
SWFDir := SystemDir+'\macromed\flash\';
GetDir(0,AppDir); // Get current directory
//وهنا للتشييك اذا كان موجود او يقوم بإنشائة لك
if fileexists(SWFDir+'swflash.ocx')=false then begin
//create directories if needed and extract file from resource.
{$i-} //compiler directive to suppress i/o error messages
MkDir(SystemDir+'\macromed');
MKDir(SystemDir+'\macromed\flash');
// Resources وهنا لأستخراجة من الـ
{$i+}
Fres := TResourceStream.Create(0,'flash',RT_RCDATA);
Ffile := TFileStream.Create(SWFDir+'swflash.ocx',fmCreate);
Ffile.CopyFrom(Fres,Fres.Size);
Fres.Free;
Ffile.Free;
//وهنا لتسجيلة لك
winexec(PChar('regsvr32 /s '+SWFDir+'swflash.ocx'),SW_HIDE);
end;والأفضل ان تضعها في حدث اون كرييت لبرنامجك
وتقريبآ هذا كل شي بخصوص الفلاش .
السلام عليكم
بمناسبة ادراج ملف فلاش ، لدي سؤال عليه
لدي ملف موجود داخل مجلد اسمه flash أريد ان ادرج هذا الملف بدون اكتب في الموفي يو ار ال كاملا يعني مثل flash // بحيث يعمل اذا كان الملف موجود في c او d او اي قرس
نفس الش حاليا انا عما سئل الشباب
مرحبا ياشباب
أخوي win32
ساويت كل شيء بخصوص ربط لأنشاء الـ Resources
بعد خطوة اذهب الى الدوس Dos Window و اكتب : Brcc32 c:\flash.rc.txt
اظهر الدوس رسالة
C:\>brcc32 c:\flash1.rc.txt
Borland Resource Compiler Version 5.40
Copyright © 1990, 1999 Inprise Corporation. All rights reserved.
Error Could not open input file c:\flash1.rc.txt
لاحظ أنها رسالة خطأ..........
بس في السي تم انشاء ملف غير متعرف الوندوز عليه اسمه flash1 وامتداده ASP
فهل ذلك يعني انو العملية تمت بنجاح ولا شو .............!!!
وبالمناسبة لو صار الي قلتو انو مشي الحال أنت كاتب أنا رايح احسن استخدم الـ Resources
في برنامجي
يعني أنو انا رايح انقل الملف الي تم أنشاءه في ال c واحطه في ملف البرنامج!!!
وبعدين لو أنا نقلت برنامجي الى جهاز أخر ما فيو مشغل الفلاش أي فلاش في برنامجي رايح يشتغل صح :(
؟؟
اانا بانتظارك أخوي العزيز
إن شاء الله ما كون طولت عليك
أخوكم
السلام عليكم
الأخ ابو محمد : مر علي الطريقة التى تطلبها لأكن للأسف لا اتذكرها الأن
لكن سأحاول ان ابحث لك عن حل .
ديلفي تيم : فكرتك تعديت الخطوة هذي .. !
ما كتبت في الدوس " Brcc32 c:\flash.rc.txt " سليم ويجب عليك
التأكد من ملف الربط الموجود في السي .. و الـ OCX ... حاول اكثر من مرة
وتأكد بأن لا تغلط لو بحرف واحد وسنتجح معاك .. وامتداد الملف الناتج يكون RES .
واذا انتهيت من عمل الريسورس خذة وضعة مع ملفات مشروعك ولا تنسى ان
تعرف برنامجك علية :
implementation
{$R *.dfm}
{$R flash.res}وبعدها سيعمل ان شاء الله حتى لو لم يكن في الجهاز مشغل فلاش .
تم تعديل هذه المشاركة بواسطة win32 في 25 ديسمبر 2003 في 04:57
السلام عليكم
بالنسبة لاظهار رسالة عند اغلاق الفورم يمكنك استخدام
OnCloseQuery على مستوى الفورم
واظهار الرسالة اللي بدك تظهرها قبل ما يتم اغلاق الفورم
وعلشان تمنع الفورم من الاغلاق يوجد
Parameter اسمه CanClose
ياخذ القيمة True لوحده وانت ممكن تغيرها الى False
عندها لن يغلق الفورم.
انا لم اشاهد كل الردود عن هذا الموضوع
لذلك سامحوني اذا كان يوجد رد مشابه
أبو قصي
مرحبا ياشباب
اول شي ابو قصي لا يوجد رد مثل ردك
شكـــــــــــــرا
وأخو win32 رايح أحاول مرة ثانية برغم من أني نفذ تعليماتك بالحرف الواحد
no problem
السلام عليكم
delphi team لقد اتبعت خطوات الاخ win32 ونجحت معي والملف الناتج امتداه res
اتوقع ان الخطأ لديك انك لا تعمل على نفس المجلد الذي يحتوي على الملف flash.rc.txt ومللف swflash.ocx .
win32 اتمنى ان تجد حلا لسؤالي السابق
عفوا على لسؤال أخوي أبو محمد
أي مجلد تقصد
يعني انا لازم اوضع الملف النصي ومشغل الفلاش في مجلد :)
الرجاء التوضيح
أخوكم
السلام عليكم
لا بد ان يكون الملفين في نفس المجلد
وعند كتابة هذا الامر
C:\>brcc32 c\:yourfolder\flash1.rc.txt
yourfolder تغييره الى نفس المجلد الذي تستخدمه وايضا c:\ يكون نفس الفهرس الذي تستخدمه
السلام عليكم ياشباب
أول شي أحب أشكر الأخ win32 الي في الحقيقة تعب معي في تعليمي كيفية وضع الفلاش في الدلفي
طبعا الشكرا أيضا للأخوة الأخرين الذين بادروا بالمشاركة
أنا أخوي win32 خلصت خطوة انشاء نلف الريسورس وشي الحال كان الخطأ في السواقات لا أكثرو لا أقل
بعدها قمت بالتعريف كم حضرتك ذكرت
implementation
{$R *.dfm}
{$R flash.res}
var
SystemDir : array[0..MAX_PATH] of Char;
SWFDir, AppDir: String;
Fres: TResourceStream;
Ffile: TFileStream;
begin // هنا لتحديد موقع مجلد الفلاش
GetSystemDirectory(@SystemDir,MAX_PATH);
SWFDir := SystemDir+'\macromed\flash\';
GetDir(0,AppDir); // Get current directory
//وهنا للتشييك اذا كان موجود او يقوم بإنشائة لك
if fileexists(SWFDir+'swflash.ocx')=false then begin
//create directories if needed and extract file from resource.
{$i-} //compiler directive to suppress i/o error messages
MkDir(SystemDir+'\macromed');
MKDir(SystemDir+'\macromed\flash');
// Resources وهنا لأستخراجة من الـ
{$i+}
Fres := TResourceStream.Create(0,'flash',RT_RCDATA);
Ffile := TFileStream.Create(SWFDir+'swflash.ocx',fmCreate);
Ffile.CopyFrom(Fres,Fres.Size);
Fres.Free;
Ffile.Free;
//وهنا لتسجيلة لك
winexec(PChar('regsvr32 /s '+SWFDir+'swflash.ocx'),SW_HIDE);
end;
=====================================================================
بعد ذلك قمت بوضعهذه الشيفرة الي ذكرتها سابقا في الفورم oncreateform لــــكن ليس بالفورم الذي يوجد به الفلاش !!!
بعدين قمت بتنفيذ البرنامج....طبعا مشي الحال ........... بس أنا عندي على جهازي في نظامين أكس بي و ملينيوم
كل شغلي على الأكس بي
و من أجل تجربة كل ما سبق شغلت البرنامج من الميلينيوم بس للأسف ما أشتغل الفلاش ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
هل السبب لأني ما وضعت الشيفرة الفورم الذي يوجد به الفلاش ؟؟؟؟ انا لا أعتقد ذلك !!
الرجاء الرد أخوي العزيز انا بانتظارك
عفوا على الأطالة
أخوكم
حقيقةّ يا دلفي .. لا اعلم ما السبب احتمال في الكود شي ما يمشي مع الملينوم
حاول تتأكد .. هل انشئ لك البرنامج مجلد macromed\flash في السيستم وهل وضع
فية مشغل الفلاش ..ان وجدتهم فالمشكلة بسيطة .. احتمال في تسجيل الـ OCX
ربما الكود لا يعمل مع الملينوم .. وعذرآ لا يوجد عندي ملينوم حتى اعرف السبب .
الأخ ابو محمد ... من امس وانا احاول ادور لك حل ...لكن لم اتوصل الية للأسف .. لكن
لماذا لا تجرب ان تضع الملف مع برنامجك في نفس المجلد و استخدم الكود التالي :
var AppDir: String; begin GetDir(0,AppDir); ShockwaveFlash1.Movie:=AppDir+'/yourfile.swf'; end;
اعتقد يجب ان تغير ShockwaveFlash1 الى swflash1
وفي الموفي يو ار ال ... في خصائص الفلاش ... لا تكتب شي
وهذة الطريقة تنفع يا ابو محمد اذا حاب ان تضع برنامجك على سيدي
ولا يهم اي كان اسم القرص الموجود علية البرنامج ... مع العلم انها ليست
الطريقة المثالية ولكن تنفع في حالتك .
والله ياخ win32 الملف موجود قبل وبعد العملية
اذا يوجود الملف قبل العملية ... فمعناتة يوجد في نضامك مشغل فلاش
مع العلم انك تقول ... لا يوجد فية مشغل
حاول يا دلفي بكذا طريقة ... لعلك تسطيع حل ما انت فية ... حاول تغيير الملف الذي
تريد عرضة ... احيانآ يتعطل الملف وعند عرضة ... يضهر ابيض
المهم ان تحاول الى ان تصل الى نتيجة مرضية ... و بالتوفيق .
عفوا يا شباب أنا مشغول هل اليومين بالأمتحانات
لا تواخذوني
سوف أتابع العملية بعد الأمتحانات و بشوف أذا هنالك اي مشكلة :) يمكن تواجهني كالعادة
الله ما يحرمني منكم
أخوكم
هذا الموضوع مغلق.