هل يوجد مكون يقوم بإضافة ستايل لبرنامج ؟
#15
ALmuhhnad كتب :هذا عرض فلاشي سريع يعرض المشكلة
هكذا أفضل .. لقد اتضحت لي الفكرة Smile

أولا سأتطرق الى السبب :
سبب حدوث المشكلة هو مقبض غير صحيح عند تنفيذ تصغير للنافذة أي الخطأ بالدالة HandleNeeded
في الحالة العادية .. أقصد بدون استخدام ال Vcl Style لن تواجه هذه المشكلة لأن النظام هو من يتحكم بالنافذة .. أما اذا استخدمت ال Vcl Style فستحدث المشكلة بسبب عدم وجود Parent ان صح التعبير

في الحقيقة حل المشكلة أتعبني قليلا .. :
الحل هو استخدام Application وهمية لتنفيذ ظهور الفورم .. أوكي

مثال :
PHP كود :
library dsdll;


uses
  ShareMem
,
  
Winapi.Windows, Winapi.Messages,
  
System.SysUtils, System.Variants,
   
System.Classes, Vcl.Graphics,
  
Vcl.Controls, Vcl.Forms,Vcl.Dialogs,
  
Vcl.Themes,Vcl.Styles,
  
Unit1 in 'Unit1.pas' {Form1};

{
$R *.res}
{
$R Auric.res}//Include Your Style

var
dwTemp : DWORD;
hThread :THandle;
procedure CreateDlg();
begin

  Application
.Initialize;
  
Application.MainFormOnTaskbar := True;
  
TStyleManager.TrySetStyle('Auric');//Set Style
  
Application.CreateForm(TForm1, form1);//Create Form1
  
Application.Run;//Run
  
FreeAndNil(Form1);//Destroy

end;
  
procedure DllMain(reason: Integer);
begin
if reason =DLL_PROCESS_ATTACH then

 hThread
:= CreateThread(nil,0,@CreateDlg,nil,0,dwTemp)
else if 
reason =DLL_PROCESS_DETACH then
begin
   TerminateThread
(hThread,0);// Kill Thread
   
ExitProcess(0);//Exit
end;
end;
begin

DllProc 
:= DllMain;
DllMain(DLL_PROCESS_ATTACH);

end. 

إقتباس :إذا كان فعلا لا تظهر لديك المشكلة ... ربما لإختلاف النظام ... !؟ .. رغم اني اضنك تملك نفس نظامي Smile
أستعمل Win7 Smile
الرد


الردود في هذا الموضوع
هل يوجد مكون يقوم بإضافة ستايل لبرنامج ؟ - بواسطة SMP3 - 16-03-2013, 03:20 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم