عندي برنامج بعمل خلفيا أي ان الفورم الرئيسي مخفي كيف اظهر الفورم الرئيسي بضغط الازرار التالية مثلا Ctrl+Shift+Alt+a
ثم أعود وأخفيه مرة أخرى بضغط اسكيب مثلا؟؟
ولكم الشكر
عندي برنامج بعمل خلفيا أي ان الفورم الرئيسي مخفي كيف اظهر الفورم الرئيسي بضغط الازرار التالية مثلا Ctrl+Shift+Alt+a
ثم أعود وأخفيه مرة أخرى بضغط اسكيب مثلا؟؟
ولكم الشكر
اخي العزيز مسالة اخفاءه و إظهاره مش مشكلة
المشكلة في التقاط عدة ازرار مع بعض بالذات اربعة ازرار مع بعض !!!
والحل كالتالي
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If ((GetKeyState(VK_CONTROL) AND 128)=128) and
((GetKeyState(VK_SHIFT) AND 128)=128) and
((GetKeyState(VK_MENU) AND 128)=128) and
((GetKeyState(ord('A')) AND 128)=128)
then
ShowMessage('CTRL+Alt+Shift+A Pressed');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
KeyPreview:=true;
end;الكود مجرب
أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر
وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري
كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو
أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري
عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري
فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري
وهذه طريقة اخري لكن الفرق ليس جذريا
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
KeybState: TKeyboardState;
begin
GetKeyboardState(KeybState);
If ( (KeybState[VK_CONTROL] and 128)=128 ) and
( (KeybState[VK_F5] and 128)=128 ) and
( (KeybState[Ord('8')] and 128)=128 )
then
ShowMessage('CTRL+F5+8 Pressed');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
KeyPreview:=true;
end;أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر
وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري
كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو
أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري
عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري
فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري
شكرا جزيلا عزيزي
لكن ليتك جربت الكود !!
كيف يتحسس التطبيق أو بالاحرى الفورم للمفاتيح وهو مخفي أي ليس أكتيف؟؟؟؟
المشكلة عندي ليست بالمفاتيح وانما كيف يتحسس ؟؟؟؟؟
استفد من الوحدة KEYBOARD , وضمن timer ضع شفرة المعالجة , والتي تسمح لك باختبار الضغط حتى لو كان الفورم مصغرا أو غير مفعل
USES KEYBOARD;
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if IsKeyDown(VK_Escape) then
Application.Restore;
end;اقتباساستفد من الوحدة KEYBOARD
???? أين هي ؟؟لم يتعرف عليها؟؟
اشكر من حاول المساعدة من كل قلبي...
وجدت الجواب من أحد الاخوة جزاه الله عني خير الجزاء
ان اردنا أن يكون البرنامج مخفيا بداية نضع في :
project|view source
وقبل سطر application.run نكتب application.showmainform:= false
يجب محو سطر application.runفي كل الاحوال
وهذا الكود بالاسفل
نلاحظ عند ضغط alt+ctrl+shift+f10+f12 يظهر الفورم
ثم esc لاخفائه مرة اخرى
var
Form1: TForm1;
bcancel: bool;
implementation
{$R *.dfm}
procedure ProcessMessages;
var
myMessage: Msg;
begin
While (Not bCancel) do
begin
WaitMessage;
//'check if it's a HOTKEY-message
If PeekMessage(myMessage, Form1.Handle, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
Form1.Visible:= true;
//'let the operating system process other events
Application.ProcessMessages;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle,$BFFF,MOD_ALT or MOD_SHIFT or MOD_CONTROL,VK_F10 or VK_F12);
Form1.Show;
ProcessMessages;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
bcancel:= true;
UnregisterHotKey(Handle, $BFFF);
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
IF key= 27 then
Form1.Visible:= false;
end;
end.عزيزي عروة
لم ترد علي بشأن المكتبة السابقة؟؟؟
على كل انظر الكود :
procedure TForm1.Timer1Timer(Sender: TObject); VAR KS: TKeyboardState; begin GetKeyboardState(ks); if (ks[66]= 128) or (ks[66]= 129) then Form1.Visible:= true; end;
عندما الفورم مخفي لم يظهر لكن عندما استبدلت Form1.Visible:= true بـ أي تعليمة والفورم ظاهر نفذت التعليمة مما يعني أنه لا يتحسس للكيبورد ولو داخل التايمر
يا ريت تتأكد وتجرب
على كل بدي همتك بالتصال دون معرفة كلمة السر(سؤال سابق) ماشي!!!
سأحاول المساعدة عند توفر الوقت ,, .. ولكني للأسف (أو من الأفضل القول الحمد لله) وقعت على عدة عقود أعمال ويجب أن أنهيها جميعا , وهذا مايجعل تواجد على الإنترنت قليل ..
هذه هي المشكلة , عند تحسن العمل , بقل التوزاجد مع الأحباء
هذا الموضوع مغلق.