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

نام تاپیک: شخصی سازی فرم های سیستمی اکسس

  1. #1

    شخصی سازی فرم های سیستمی اکسس

    سلام خدمت دوستان
    اساتید فرم های سیستمی اکسس رو چجوری میشه شخصی سازی کزد؟ مثلا کپشن رو عوض کرد و ...

    Untitled.png

  2. #2
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,081

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    نقل قول نوشته شده توسط Masoud.eh مشاهده تاپیک
    سلام خدمت دوستان
    اساتید فرم های سیستمی اکسس رو چجوری میشه شخصی سازی کزد؟ مثلا کپشن رو عوض کرد و ...
    سلام
    به احتمال زیاد از طریق توابع (API ) FindWindow و SendMessage بشه تغییر داد
    یک نمونه برنامه ساده رو در اینجا قرار بده امتحان کنم ببینم شدنیه یا نه

  3. #3
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,081

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    نمونه ضمیمه رو بررسی کن!
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,081

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    در نمونه جدیدتر علاوه بر کپشن پنجره کپشن کمند باتن close و عنوان ستون هم به فارسی تغییر پیدا کرد

    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long


    Private Sub Form_Timer()
    Dim find As Long
    find = FindWindow(vbNullString, "Unhide Columns")
    If find Then
    Dim C As String
    C = "ãÎÝí ˜ÑÏä ÓÊæä åÇ"
    SetWindowText find, C
    C = "ÓÊæä:"
    SetWindowText FindWindowEx(find, 0, vbNullString, "Co&lumn:"), C
    C = "ÈÓÊä"
    SetWindowText FindWindowEx(find, 0, vbNullString, "&Close"), C
    End If
    Me.TimerInterval = 0
    End Sub

    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    جناب بهرامی عزیز
    واقعا دست مریزاد و خسته نباشی دارین!
    ساعت پست های شما نشون دهنده پشتکار و همچنین اهمیتی هست که به پرسشها میدین.
    =======

    فقط یک سئوال:
    بدون timer راهی نیست که باز بودن یک پنجره (مثل همین Unhide Columns) رو تشخیص داد؟
    ایونتی؟

  6. #6
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,081

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    ساعت پست های شما نشون دهنده پشتکار و همچنین اهمیتی هست که به پرسشها میدین.
    سلام استاد!
    تو این دوران بازنشستگی سیستم خواب و بیداریمون حسابی بهم ریخته



    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    فقط یک سئوال:
    بدون timer راهی نیست که باز بودن یک پنجره (مثل همین Unhide Columns) رو تشخیص داد؟
    ایونتی؟
    راه دیگه ای به ذهن نرسید
    بجای استفاده از تایمر خواستم از یک حلقه در تابع زیر استفاده کنم ولی جواب نداد:

    Public Sub eTimer(InterVal As Integer)
    Dim Start
    Start = Timer
    Do While Timer < Start + InterVal
    DoEvents
    Loop
    End Sub

    Private Sub CmdOpenUnhideColumns()
    Me.subform.SetFocus
    DoCmd.RunCommand acCmdUnhideColumns

    eTimer 1

    Dim find As Long
    find = FindWindow(vbNullString, "Unhide Columns")
    If find > 0 Then MsgBox "Unhide Columns is open"
    End Sub


  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    سلام !
    تو این دوران بازنشستگی سیستم خواب و بیداریمون حسابی بهم ریخته

    راه دیگه ای به ذهن نرسید
    بجای استفاده از تایمر خواستم از یک حلقه در تابع زیر استفاده کنم ولی جواب نداد:
    سلام دوباره
    من با اجازتون برنامه رو یک نگاهی کردم،
    چند مورد هست که باید یک نمونه درست کنم و روی اون توضیح بدم.

  8. #8
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,081

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام دوباره
    من با اجازتون برنامه رو یک نگاهی کردم،
    چند مورد هست که باید یک نمونه درست کنم و روی اون توضیح بدم.
    با عرض سلام متقابل
    خواهش میکنم
    البته در پست قبل فراموش کردم به یک نکته اشاره کنم و اون اینکه بنده شخصاً اگر در برنامه هام نیاز به فراخوانی و اجرای چنین پنجره ای داشته باشم سعی می کنم اون پنجره با اشیاء مربوطه رو در یک فرم اکسس پیاده سازی و اجرا کنم

  9. #9
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: شخصی سازی فرم های سیستمی اکسس

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    شخصاً اگر در برنامه هام نیاز به فراخوانی و اجرای چنین پنجره ای داشته باشم سعی می کنم اون پنجره با اشیاء مربوطه رو در یک فرم اکسس پیاده سازی و اجرا کنم
    خب روش منطقی و درست همین هست.

    پرسش مطرح شده در تاپیک گرچه نشون دهنده رفتن در مسیر نادرست هست،
    ولی نتایج خوبی میشه ازش گرفت.

    پیش از هر چیز:
    - اگر کاربر ما تا این اندازه شوت و پرت هست که حتی از درک معنی کلمه های ساده انگلیسی هم عاجزه،
    و لازمه همه چیز فارسی باشه - بهتره office language interface pack روی سیستمش نصب بشه.
    البته تجربه نشون داده که مشکل اصلی این تیپ کاربر همیشه جای دیگه ای هست!

    - بدون نصب lip ، لازمه همه toolbarها و منوها و context menu ها و ... disable و جایگزین های جدید طراحی بشن
    که اینجوری دیگه اصلا اکسس گزینه درستی نیست.

    - در این مسئله خاص و با فرض محدود بودن خواسته به فقط همین یک مورد (پنجره unhide columns)،
    چون context menu ها event باز و بسته شدن ندارن،
    استفاده از تایمر برای چک باز شدن ویندو مورد نظر اجتناب ناپذیره (کدهای پست شماره 4)،
    ولی بهتر هست به جای اجرای دائمی تایمر، فقط در صورت باز شدن context menu اون رو راه اندازی کرد:
    sub form_mouseup
    if button=acrightbutton then
    timerinterval=200
    endif
    end sub


    sub form_timer
    dim hwnd as longptr
    hwnd= findwindow("#32770" , "unhide columns")
    if hwnd > 0 then
    timerinterval= 0
    setwindowtext hwnd , "نمایش/پنهان کردن ستونها"
    setwindowtext ...
    setwindowtext ...
    endif
    end sub


    - اما اگر چند دیالوگ باید چک بشه (مثلا column width و unhide columns)
    دیگه روش رو باید تغییر داد.
    باید یک مجموعه (حالا array یا دیکشنری یا ...) از همه ویندو های کلاس 32770# بسازیم
    که parent اونها همین نسخه access هست،
    و بعد یکی یکی caption اون ها رو بخونیم و بر اساس اون عمل کنیم.

    در نهایت هم کار تمیزی از آب در نمیاد ولی بعنوان یک چالش خوب هست.

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

  1. تنظیمات caching برای بهینه سازی سرور اختصاصی و سرور مجازی
    نوشته شده توسط avestakarami در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: چهارشنبه 22 شهریور 1396, 14:24 عصر
  2. ساخت فرم مرخصی با اکسس
    نوشته شده توسط rizehnews در بخش خدمات شیرپوینت برای برنامه های آفیس (MOSS)
    پاسخ: 1
    آخرین پست: یک شنبه 29 آذر 1394, 22:40 عصر
  3. شخصی سازی سیستم اهراز هویت لاراول
    نوشته شده توسط tuytoosh در بخش Laravel Framework
    پاسخ: 4
    آخرین پست: پنج شنبه 17 اردیبهشت 1394, 09:55 صبح
  4. حرفه ای: ادیت و شخصی سازی اسکریپت بازی تراوین 4
    نوشته شده توسط caspianmehdi در بخش PHP
    پاسخ: 0
    آخرین پست: پنج شنبه 05 دی 1392, 23:17 عصر

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

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