الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد مساعدة الجميع خاصة لهده الفترة

مغلق
بدأه زكيري عبد العالي في 11 مايو 2002 · 7 رد · 831 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

يا اخوتي اريد المساعدة

هدا مثال عن السبلاش كان عندي لكنني رايت موضوع يشرح طريقة اخرى اسهل لهده العملية لكني فقدته

وعملت اخر لكن لم يعجبني فمن لده طريقة اسهل او احسن فلا يبخل علي و له الشكر

program Splasher;
uses Windows;{$R *.RES}{$R SPLASH.RES}
const
  SplashWidth = 320;
  SplashHeight = 200;
  ProgramCaption = 'Splash demo';
var
  DesktopDC, MemDC:hDC;
  Bitmap: hBitmap;
  WindowClass: TWndClass;
type
  TSplash = class(TObject)
    private
    procedure Paint;
    public
    FDefWndProc: Pointer;
    FHandle: THandle;
    constructor Create;
    property DefWndProc: Pointer read FDefWndProc write FDefWndProc;
  end;
var
  Splash: TSplash;

function SplashWndProc(Window: HWND; Message, wParam, lParam: Longint): Longint; stdcall;
begin
if Message = $F then Splash.Paint; { $F = wm_Paint message}
Result := Windows.DefWindowProc(Window, Message, wParam, lParam);
end;
constructor TSplash.Create;
begin
  WindowClass.lpfnWndProc := @SplashWndProc;
  WindowClass.hCursor := LoadCursor(0, IDC_Wait);
  WindowClass.hbrBackground := 0;
  WindowClass.hInstance := hInstance;
  WindowClass.lpszClassName := 'XS';
  Windows.RegisterClass(WindowClass);
  FHandle := CreateWindowEx(ws_ex_ToolWindow, 'XS', '', ws_Popup or ws_Visible,
  GetSystemMetrics(sm_CXFullScreen) div 2 - SplashWidth div 2,
  GetSystemMetrics(sm_CYFullScreen) div 2 - SplashHeight div 2,
  SplashWidth, SplashHeight, 0, 0, HInstance, nil);
  Paint;
end;
procedure TSplash.Paint;
begin
  DesktopDC := GetDC(FHandle);
  MemDC := CreateCompatibleDC(DeskTopDC);
  Bitmap := LoadBitmap(hInstance, 'SPLASH');
  SelectObject(MemDC, Bitmap);
  BitBlt(DesktopDC, 0, 0, SplashWidth, SplashHeight, MemDC, 0, 0, srcCopy);
  DeleteObject(Bitmap);
  DeleteObject(MemDC);
end;
Begin
  Splash := TSplash.Create;
  if WinExec('c:MSOfficeWinWordWinWord.exe splasher.dpr', SW_ShowNormal)   MessageBox(Splash.FHandle, 'File ''WinWord.exe'' not found.', ProgramCaption, mb_Ok or mb_IconStop);
  Splash.Free;
End.

معزرة قمت بالتعديل لإظهار الكود بصوره صحيحه رمضان

كما اريد كمبننت ل السكنر لادخال الصور .

******************

دائما معكم ودائما معي

#2

الحمدلله لم تعد هناك مشكلة

http://www.almico.com/delphi/files/etw211.zip

الوصلة التالية فيها سكانار لمن يهمه الامر

***************

ارجو التوفيق للموقع في برنامج كليك

***************

دائما معكم (gift)

#3

اهلاً وسهلاً بك اخي pati

بالنسبة لموضوع السبلاش فهي في الحقيقة سهلة جداً

وهي كالآتي :

1- انشي Form جديد وسمه مثلاً سبلاش SplashForm

2- قم بالدخول الى كود ال Project ( Project>ViewSourec )

3- قم بحذف كلمة Application.CreateForm(TSplashForm, SplashForm);

4- قم بكتابة الكود التالي بعد كلمة Application.Initialize;

SplashForm := TSplashForm.Create(Application);
  SplashForm.Show;
  SplashForm.Update;

5- قبل كلمة Application.Run; اكتب الكود التالي :

SplashForm.Hide;
SplashForm.Free;

طبعاً سيصبح الكود لل Project بهذا الشكل

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {SplashForm};

{$R *.res}

begin
  Application.Initialize;
  SplashForm := TSplashForm.Create(Application);
  SplashForm.Show;
  SplashForm.Update;
  Application.CreateForm(TForm1, Form1);
  SplashForm.Hide;
  SplashForm.Free;
  Application.Run;
end.

وتقبل اطيب تحياتي اخوك SUM

#4

السلام عليكم

اخي سيم اشكرك على الرد

لكن هنا ك مشكلة السبلاش او فورم 2 تضهر وتختفي كالبرق

لم اعرف ماالعمل هل اضيف تيمر timer اريد ان تثبت الصورة بعض الثواني .

انتضر الرد

***************

دائما معكم :o :o

#5

اهلاً وسهلاً بك اخي زكيري عبد العالي

والف مبروووك الأشراف على هذا المنتدى

على العموم لأظهار السبلاش لفترة محددة فيمكنك استخدام ال Sleep بعد كلمة SplashForm.Update;

اليك شكل الكود بعد اضافة كلمة Sleep

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {SplashForm};

{$R *.res}

begin
  Application.Initialize;
  SplashForm := TSplashForm.Create(Application);
  SplashForm.Show;
  SplashForm.Update;
  Sleep(1000);
  Application.CreateForm(TForm1, Form1);
  SplashForm.Hide;
  SplashForm.Free;
  Application.Run;
end.

طبعاً الرقم 1000 يمثل مدة الظهور

وتقبل اطيب تحياتي اخوك SUM

#6

السلام عليكم

اشكرك مرة اخرى اخي واستاذي سيم

والله يبارك فيك ...لكن ياريت اصل اى مستواك الله يبارك

"كي لا احسدك " ;)

حقيقة معلوماتي محدودة لكني احب التطلع و البحث والاكتشاف واعدكم بالعمل ولنتحد من اجل طلب العلم (gift) (gift)

الله يقدرني واساعدك على هدا العمل "الاشراف " الذي تجد فيه إن شاء الله اجرا كبيرا

(f) (f) (f) (f) (f) (f) (f) (f)

دائما معكم باتي

ربما ساتغيب ليس عن المنتدى لكن عن المشارك لايام معدود ة

حتى اكمل عملى والله المستعان

#7

حلو كتير هال الحكي .. بس شو السبلاش فورم بالظبط !!!!!

ياريت حد يحطنا بصورة الموضوع ..

#8

عزيزي الدكتور

السبلاش هو الفورم الذي يظهر في معظم البرامج عند بداية تشغيلها

و يكون عبارة عن شاشة ترحيب أو ماشابه

كما في برنامج فوتوشوب ووو

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…