نمایش نتایج 1 تا 9 از 9

نام تاپیک: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

  1. #1
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    سلام بر دوستان<br>امیدوارم سالم و سر حال باشید<br>من در برنامه خودم که کار متنی انجام میده از کلیدهای ترکیبی زیادی استفاده می کنم مثلا Alt+Down . وقتی کلید Alt رو فشار میدیم منوی نواز عنوان پنجره فعال میشه. البته باید کلید پایین رو فشار بدیم که این منو نمایش داده بشه.<br>محیط متنی که دارم یک لیست باکس هست که تبدیل به ویرایشگر شده.فرض کنید چنین کدی داریم:
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    if Key=vk_Down then
    ShowMessage('Key Down !');
    end;

    وقتی کلید جهت پایین رو میزنیم یک پیغام میده. اما اگر کلید Alt رو قبلش زده باشیم، وقتی که کلید جهت پایین رو بزنیم، منوی نوار عنوان پنجره باز میشه.من میخوام کلا این منو رو در برنامه نبینم.Form.KeyPreview رو True کردم و این کد رو نوشتم اما فایده نداشت:
    procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    If (Shift=[ssAlt]) and (Key=0) then
    Shift:=[];
    end;

    اگر بخوام گزینه های BorderIcons رو غیر فعال کنم هم وار عنوان بدون دکمه بستن و مینیمایز میشه.<br>برای رفع بوق زدن چنین کدی دارم اما دیگه بیشتر بلد نیستم:
    procedure TFileBrowserForm.WMMenuChar(var MessageRec: TWMMenuChar);
    begin
    inherited;
    MessageRec.Result := MakeLong(0, 1);
    end;

    اگر دوستان نظری دارند بگند. میشه گفت برام مهمه.

  2. #2
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    به یه جاهای عجیبی رسیدم!
    میشه این کد رو استفاه کرد که آیتمهای منوی سیستم پنجره رو حذف کرد اما دکمه های سمت راست عنوان پنجره هم از کار میفته و منو هم حذف نمیشه و فقط خالی میشه:
    procedure TForm1.DeleteSystemMenu;var
    SystemMenu: HMenu;
    begin
    SystemMenu := GetSystemMenu(Handle, False);
    DeleteMenu(SystemMenu, SC_Minimize, MF_BYCOMMAND);
    DeleteMenu(SystemMenu, SC_Move, MF_BYCOMMAND);
    DeleteMenu(SystemMenu, SC_Maximize, MF_BYCOMMAND);
    DeleteMenu(SystemMenu, SC_Size, MF_BYCOMMAND);
    DeleteMenu(SystemMenu, SC_Close, MF_BYCOMMAND);
    DeleteMenu(SystemMenu, SC_Restore, MF_BYCOMMAND);
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    DeleteSystemMenu;
    end;

    اما این کد هم میشه لستفاده کرد که عددش رو از ShowMessage به دست آوردم و نمیدونم آیا ثابت هست یا نه و ظاهرا کار رو انجام میده:

    Procedure WMSyscommand(Var msg: TWmSysCommand); message WM_SYSCOMMAND;
    ..
    Procedure TForm1.WMSyscommand(Var msg: TWmSysCommand);
    Begin
    If Ord(msg.cmdtype)=61696 then//Alt Pressed!
    Exit;
    inherited;
    End;

    اگر کسی اطلاعات بیشتری داره لطفا بهم بگه(این عدد در برنامه ام کار می کنه اما نمی دونم آیا همیشه همینه؟).
    دیگه داشتم به ترسیم بیت مپ روی نوار عنوان فکر می کردم!

  3. #3

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    سلام. من در این مواقع نوار بالا رو خودم بعنوان یک پنل در مسترفرم می سازم و فرم رو نان می کنم.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  4. #4
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    روش جالبیه که کد نویسی و افزودن ایمیج هم برای تغییر مکان و مینیمایز و بستن میخواد ولی قلابی بون نوار عنوان از تیز بودن گوشه ها و بدون لبه بودن فرم معلوم میشه.مستر فرم چیه؟ منظورتون پنجره اصلی برنامه هست یا پنجره ای که چند پنجره داخلی داره؟

  5. #5

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    مستر فرم یعنی یه فرم پایه می سازی همه کاراشو می کنی، بقیه فرم ها رو از اون ارث بری میکنی و دیفالت همه فرمهات شکل اونی هستن که درست کرده بودی. همون کارها رو هم می کنن.
    من برای یکی از پروژه هام که 200 300 تا فرم داشت همین کارو کردم، 3 مدل فرم پایه ساختم که مثلا مدیریت شورت کات ها، لیست منوها، مدیریت راست کلیک ها، باز شدن بصورت ماکزیمایز، وسط چین بودن اشیا، ست کردن خصوصیات روی اشیا برای همه فرم ها و این چیزا رو انداخته بودم توشون، بقیه فرم ها رو فقط می ساختم و دیفالت همه شون همون طوری بودن. مثل ساخت کامپوننت هست. ولی در سطح فرم.
    یک بار باهاش کار کنی دیگه به خودت میگی چرا از اول اینطوری نمی رفتم جلو
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  6. #6
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    ممنونم. ما هنوز اونقدر با کلاس نشدیم. من در برنامه هام از روشهایی که برنامه نویسی استفاده نمی کنه استفاده می کنم ولی اگر فقط قلم پیشفرض تاهوما میشد با اندازه خاص خوب بود.
    یه برنامه دارم که برای برنامه های کوچیک ازش کپی میگیرم و تغییر میدم. شامل لیبک و تیک و دکمه هست و توابع و پروسیجر های خاص داره. نمی دونم ربطی به مستر فرم داره یا نه؟(اون توابع و پروسیجرها از ظاهر فرم برام مهمتره):
    Untitled.jpg
    البته کپی کردم برنامه و تغییر نامش هم خیلی سخت نیست.

  7. #7

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    بله می شود
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  8. #8

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    نقل قول نوشته شده توسط mbshareat مشاهده تاپیک
    سلام بر دوستان<br>امیدوارم سالم و سر حال باشید<br>من در برنامه خودم که کار متنی انجام میده از کلیدهای ترکیبی زیادی استفاده می کنم مثلا Alt+Down . وقتی کلید Alt رو فشار میدیم منوی نواز عنوان پنجره فعال میشه. البته باید کلید پایین رو فشار بدیم که این منو نمایش داده بشه.<br>محیط متنی که دارم یک لیست باکس هست که تبدیل به ویرایشگر شده.فرض کنید چنین کدی داریم:
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    if Key=vk_Down then
    ShowMessage('Key Down !');
    end;

    وقتی کلید جهت پایین رو میزنیم یک پیغام میده. اما اگر کلید Alt رو قبلش زده باشیم، وقتی که کلید جهت پایین رو بزنیم، منوی نوار عنوان پنجره باز میشه.من میخوام کلا این منو رو در برنامه نبینم.Form.KeyPreview رو True کردم و این کد رو نوشتم اما فایده نداشت:
    procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    If (Shift=[ssAlt]) and (Key=0) then
    Shift:=[];
    end;

    اگر بخوام گزینه های BorderIcons رو غیر فعال کنم هم وار عنوان بدون دکمه بستن و مینیمایز میشه.<br>برای رفع بوق زدن چنین کدی دارم اما دیگه بیشتر بلد نیستم:
    procedure TFileBrowserForm.WMMenuChar(var MessageRec: TWMMenuChar);
    begin
    inherited;
    MessageRec.Result := MakeLong(0, 1);
    end;

    اگر دوستان نظری دارند بگند. میشه گفت برام مهمه.
    با کد زیر میتونی منو رو غیرفعال کنی:

    SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_SYSMENU);


    با این کد هم می تونی مواردی رو که میخوای دوباره ایجاد کنی:

    SetWindowPos(Form.Handle, 0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_NOACTIVATE or SWP_NOREDRAW);

  9. #9
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    990

    نقل قول: چطور مانع فعال شدن منوی مرتبط با BorderIcons هنگام فشار Alt بشیم؟

    من نمیخوام دکمه ها از سمت راست بالا حذف بشند

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: چهارشنبه 11 خرداد 1401, 19:00 عصر
  2. سوال: تغییر رنگ پس زمینه زیر منوی بوت استرپ هنگام بردن موس روی آن
    نوشته شده توسط manit44 در بخش طراحی وب (Web Design)
    پاسخ: 8
    آخرین پست: یک شنبه 26 دی 1395, 17:32 عصر
  3. پاسخ: 3
    آخرین پست: سه شنبه 22 بهمن 1392, 11:11 صبح
  4. سوال: خواصیت BorderIcons ؟
    نوشته شده توسط ah.amir در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: چهارشنبه 23 فروردین 1391, 20:02 عصر
  5. سوال: تغيير مكان bordericons در فرم
    نوشته شده توسط mojtabadj در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 4
    آخرین پست: چهارشنبه 26 تیر 1387, 22:49 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •