PDA

View Full Version : با تایپ شدن یه حرف، پنجره یا یه چیزی باز بشه که بتونم...



mms_4004
شنبه 05 مرداد 1387, 15:46 عصر
سلام
می خوام مثلاً توی یک edit یک کلمه رو تایپ کنم می خوام وقتی یه حرف رو تایپ کردم یه پنجره باز بشه که مثلاً بتونم انتخابم رو انجام بدم برام مهم اینه که از چی استفاده کنم؟؟؟

از فرم؟ یا از چیزی مثله اون و چگونه ؟؟؟

اشکال فرم اینه که زمانی که فرم نمایش داده می شه دیگه نمی تونم توی ادیت بقیه حرف رو تایپ کنم اگر هم تایپ کنم فرم می ره زیر فرم جاریم که توش ادیت هست؟؟؟

mms_4004
شنبه 05 مرداد 1387, 15:52 عصر
یه فکری به نظرم رسید آیا می شه خاصیت فرمم رو طوری قرار بدم که همیشه On Top باشه و کوچیکش کنم اما با چه دستوری می شه همیشه ادیتم فعال باشه و بتونم ادامه ی کلماتم رو تایپ کنم؟؟؟؟؟؟

لطفاً اگه نظره دیگه یا ایده ی دیگه ای دارید بدید متشکر.

Hsimple11
شنبه 05 مرداد 1387, 17:12 عصر
می خوام مثلاً توی یک edit یک کلمه رو تایپ کنم می خوام وقتی یه حرف رو تایپ کردم یه پنجره باز بشه که مثلاً بتونم انتخابم رو انجام بدم برام مهم اینه که از چی استفاده کنم؟؟؟

منظورتون از انتخاب ادامه کلمه است؟ اگر بله میتوانید از یک ComboBox استفاده کنید و خاصیت Style اون رو CsSimple قرار دهید.


یه فکری به نظرم رسید آیا می شه خاصیت فرمم رو طوری قرار بدم که همیشه On Top باشه و کوچیکش کنم اما با چه دستوری می شه همیشه ادیتم فعال باشه و بتونم ادامه ی کلماتم رو تایپ کنم؟؟؟؟؟؟

بله خاصیت FormStyle فرم را بر روی FsStayOnTop قرار دهید.

در ضمن برای اینگونه فرمها بهتر است از فرمهای MDI استفاده کنید. مثال MDI در دایرکتوری DEMOS همراه دلفی هست. برای اینکار خاصیت FormStyle فرم اصلی را برابر FsMDIForm و فرمهای دیگر را FsMDIChild قرار دهید.

mms_4004
شنبه 05 مرداد 1387, 19:27 عصر
ببخشید احتمالاً من بد گفتم سوالم رو


منظورم از این سوال اینه که من می خوام یک شماره سفارش رو مثلاً جستجو کنم و میخوام زمانی که دارم این شماره رو می نویسم اولین شماره ای که مثلاً من تایپ کردم 1 بعد یه فرم باز می شه برام که تمام سفارشاتی رو نشون می ده که با 1 شروع می شه همین طور تا آخر بعد 2 رو تایپ می کنم که توی ادیتم تا الان 12 تایپ شده و به من توی این فرمی که باز شده سفارشاتی رو به من نشون می ده که با 12 شروع شده . منظورم اینه یا مثلاً اسم سفارش می خوام بدونم که چطوری می شه یه فرم روی فرم دیگم باز باشه ولی ادیت فرم زیرینم هم فعال باشه تا بتونم 12345 من توی رخداد OnKeyDown کدهام رو نوشتم تا توی هر زدن کلید فرمی که باز شده برام بروز بشه تا اگه مثلاً اگر 4 تا شماره وارد کردم مثل 1234 سفارشاتی رو به من نشون بده که با 1234 شروع شده یا مثلاً واسه نام تمام اسامی رو نشون بده که من با محمد یا هر اسم دیگه تایپ کردم.

متشکر.:لبخندساده::لبخندساده :

mms_4004
شنبه 05 مرداد 1387, 19:31 عصر
منظورتون از انتخاب ادامه کلمه است؟ اگر بله میتوانید از یک ComboBox استفاده کنید و خاصیت Style اون رو CsSimple قرار دهید.


نه نمی خوام از ComboBox هم استفاده کنم چون می خوام تمام اطلاعات رو برای کاربرم نمایش بدم نمی خوام که فقط تک بعدی باشه مثلاً گاهی وقتا User ام نام طرف یادش هست اما فامیلش نیست یا مثلاً چند عدد از شماره سفارش یادش هست، یا مثلاً می خواد تمام اطلاعات کسانی که 1000000 بدهی دارن رو ببینیم و ....


متشکر.

SYNDROME
شنبه 05 مرداد 1387, 19:32 عصر
مثلماً باید از یک Box برای ورود اطلاعات استفاده کنید.
می توانید همانطور که دوستمان گفت از Combo کمک بگیرید و در زمان ورود به فرم Combo را با مقادیر مورد نظر پر کنید.
می توانید یک Edit قرار دهید و کاربر در آن تایپ کند و یک کلید Shortcut تعریف کنید که هر وقت کاربر بر روی Edit است و کلید مورد نظر را می زند لیستی در یک صفحه جدید نمایش داده شود که شروع آنها با مقدار وارد شده در Edit برابر باشد.
برای ساخت Shortcut می توانید از ActionList استفاده کنید.
موفق باشید

mms_4004
شنبه 05 مرداد 1387, 19:36 عصر
مثلماً باید از یک Box برای ورود اطلاعات استفاده کنید.
می توانید همانطور که دوستمان گفت از Combo کمک بگیرید و در زمان ورود به فرم Combo را با مقادیر مورد نظر پر کنید.
می توانید یک Edit قرار دهید و کاربر در آن تایپ کند و یک کلید Shortcut تعریف کنید که هر وقت کاربر بر روی Edit است و کلید مورد نظر را می زند لیستی در یک صفحه جدید نمایش داده شود که شروع آنها با مقدار وارد شده در Edit برابر باشد.
برای ساخت Shortcut می توانید از ActionList استفاده کنید.
موفق باشید

منظورتون از Shortcut چیه؟؟ من که اسمی از Shortcut نبردم؟؟!!!

متشکر از نظرتون اما من خودم از ادیت استفاده کردم و یک فرم، می خواستم کدی که ادیتم اکتیو بمونه بدونم و اینکه آیا روش دیگه ای هست برای این کار. از ComboBox نمی خوام بدلیلی که گفته شد استفاده کنم.

من خودم از Focused استفاده کردم اما فایده ای نداشت.

SYNDROME
شنبه 05 مرداد 1387, 19:52 عصر
منظورتون از Shortcut چیه؟؟ من که اسمی از Shortcut نبردم؟؟!!!

منظورم همان کلیدهای میانبر است.(Ctrl+S)
برای اینکه کاربر هر وقت نیاز داشت مثلا با زدن کلید F1 لیست را ببنید و انتخاب کند.
می توانید از یک Button هم کم بگیرید.


من خودم از Focused استفاده کردم اما فایده ای نداشت.
اگر Edit1.Focused برابر True بود یعنی کرسر بر روی این کنترل قرار دارد.
دقت کنید با Button نمی تواند این را چک کنید چون در زمانی که Button را کلیک کنید کنترل از Edit خارج می شود.
کلمه ActionList را در سایت جستجو کنید.
موفق باشید

mms_4004
شنبه 05 مرداد 1387, 20:21 عصر
متشکر اینم ایده خوبیه اما من می خوام براساس چند حرف جستجو انجام بشه و بعد براساس چیزی که تایپ کردم اطلاعاتی شبیه اون فیلد برام توی یه فرم نمایش داده بشه . مشکل من اینه که می خوام بدونم روشی غیر از نمایش دادن فرم هم هست؟؟؟ البته می شه زمانی که فرم رو نمایش دادم دوباره روی ادیتم فوکوس کنم

در هر صورت متشکر.

Hsimple11
یک شنبه 06 مرداد 1387, 00:05 صبح
همانطور که گفتم از فرمهای MDI استفاده کنید.

در ضمن اگر فرم نتایج فقط برای نمایش است میتوانید آن را StayOnTop قرار داده ولی فرم زیرین را Active کنید. البته راه حل اول منطقی تر است.

موفق باشید...

SYNDROME
یک شنبه 06 مرداد 1387, 06:57 صبح
متشکر اینم ایده خوبیه اما من می خوام براساس چند حرف جستجو انجام بشه و بعد براساس چیزی که تایپ کردم اطلاعاتی شبیه اون فیلد برام توی یه فرم نمایش داده بشه . مشکل من اینه که می خوام بدونم روشی غیر از نمایش دادن فرم هم هست؟؟؟ البته می شه زمانی که فرم رو نمایش دادم دوباره روی ادیتم فوکوس کنم

در هر صورت متشکر.
خوب دوست عزیز در Onshow فرمی که دارد باز می شود می توانید یک دستور Like بنویسی که فقط اطلاعات شبیه به آن را نمایش دهد.


select *
From Tbl_Test
Where Name Like '%1

با دستوری که در بالا می بینی فقط رکوردهایی نمایش داده می شود که مقدار اول آنها برابر 1باشد.
مانند 1و12و123و1234
موفق باشید

Hsimple11
یک شنبه 06 مرداد 1387, 11:24 صبح
فکر کنم دوستمان با فعال بودن فرمها مشکل دارد.

اصغر (پآچ)
یک شنبه 06 مرداد 1387, 17:03 عصر
سلام دوست من

با اجازه اساتید ببین من یه راه حل خیلی ابتدایی پیشنهاد میکنم اونم استفاده از یه DBGrid که می تونی Visiable اون رو False قرار بدی و اون رو به یه AdoQuery متصل کنی و در رویداد OnChange مربوط به Edit بنویسی اگه متنی داخل Edit تایپ شده بود بیاد جستجو رو انجام بده و نتایجش رو توی DBGrid نشون بده وVisiable مربوط به DBGrid رو True کن، بعد در رویداد OnCellClick مربوط به DBGrid هم بیایی بگی مقدار اون سلول رو توی Edit قرار بده و Visiable مربوط به DBGrid رو هم False کنه این فکر کنم خیلی ساده باشه

موفق و موید باشی

mms_4004
یک شنبه 06 مرداد 1387, 18:07 عصر
خوب دوست عزیز در Onshow فرمی که دارد باز می شود می توانید یک دستور Like بنویسی که فقط اطلاعات شبیه به آن را نمایش دهد.


select *
From Tbl_Test
Where Name Like '%1
با دستوری که در بالا می بینی فقط رکوردهایی نمایش داده می شود که مقدار اول آنها برابر 1باشد.
مانند 1و12و123و1234
موفق باشید

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

بازهم تشکر از شما.

mms_4004
یک شنبه 06 مرداد 1387, 18:10 عصر
سلام دوست من

با اجازه اساتید ببین من یه راه حل خیلی ابتدایی پیشنهاد میکنم اونم استفاده از یه DBGrid که می تونی Visiable اون رو False قرار بدی و اون رو به یه AdoQuery متصل کنی و در رویداد OnChange مربوط به Edit بنویسی اگه متنی داخل Edit تایپ شده بود بیاد جستجو رو انجام بده و نتایجش رو توی DBGrid نشون بده وVisiable مربوط به DBGrid رو True کن، بعد در رویداد OnCellClick مربوط به DBGrid هم بیایی بگی مقدار اون سلول رو توی Edit قرار بده و Visiable مربوط به DBGrid رو هم False کنه این فکر کنم خیلی ساده باشه

موفق و موید باشی

با تشکر از شما و نظری که دادید، من هم همین کارو انجام دادم. من اومدم از یه فرم استفاده کردم و بهش می گم زمانی که یک حرف جدید به ادیت اضافه شد جستجو رو انجام بده اگر پیدا کرد این فرم برام نمایش داده می شه و کاربر می تونه اسمهایی شبیه اون رو انتحاب کنه.

باز هم تشکر.

SYNDROME
یک شنبه 06 مرداد 1387, 20:18 عصر
متشکر از نظری که دادید من هم هم این کار رو انجام دادم اما موضوع جستجو نیست بلکه نمایش فرمه که زیبا و جالب باشه و کاربر پسند باشه .
گفتم شاید ابزاری غیر از فرم معمولی وجود داشته باشه مثلاً فرم مخصوص همین کار.

بازهم تشکر از شما.
می توانی از همین فرم معمولی یک فرمی زیبا ایجاد کنی.
از Toolbar و Iconهای زیبا استفاده کن.
BorderStyle فرم را None کن.
از Borderwidth مربوط به کامپونتها استفاده کن.
می توانی از Panel هم استفاده کنی.
با کمی خلاقیت چیز جالبی می توانی ایجاد کنی.
موفق باشید

mms_4004
یک شنبه 06 مرداد 1387, 22:22 عصر
می توانی از همین فرم معمولی یک فرمی زیبا ایجاد کنی.
از Toolbar و Iconهای زیبا استفاده کن.
BorderStyle فرم را None کن.
از Borderwidth مربوط به کامپونتها استفاده کن.
می توانی از Panel هم استفاده کنی.
با کمی خلاقیت چیز جالبی می توانی ایجاد کنی.
موفق باشید

آهان، این Panel چیه چه جوری می شه ازش استفاده کرد؟؟

یه نکته جالب، من یه فرم اصلی دارم، بعد یه فرم دیگه به صورت Showmodal باز می کنم که این ادیت روی اون قرار داره، حالا زمانی که فرم 3 وم رو که همون نتیجه است که قراره باز بشه خاصیت FormStylesh رو هم onstaytop می کنم اما این فرم سوم روی فرم دومی که به صورت showmodal باز شده قرار نمی گیره.........

مشکل از کجاست؟؟ و چه جوری می شه حلش کرد؟؟؟

SYNDROME
دوشنبه 07 مرداد 1387, 06:43 صبح
آهان، این Panel چیه چه جوری می شه ازش استفاده کرد؟؟

در قسمت Standard یک نگاه بیندازید.


یه نکته جالب، من یه فرم اصلی دارم، بعد یه فرم دیگه به صورت Showmodal باز می کنم که این ادیت روی اون قرار داره، حالا زمانی که فرم 3 وم رو که همون نتیجه است که قراره باز بشه خاصیت FormStylesh رو هم onstaytop می کنم اما این فرم سوم روی فرم دومی که به صورت showmodal باز شده قرار نمی گیره.........

اگر بر روی فرم قرار نمی گیرد پس کجا قرار می گیرد؟
می رود پش فرم 2 و یا نه می خواهید در مرکز فرم دوم باز شود؟
موفق باشید

mms_4004
دوشنبه 07 مرداد 1387, 10:11 صبح
قرار نمی گیره دیگه می تونید امتحان کنید، من حتی دوباره 3 تا فرم ساختم و مثله فرم های پروژم اون حالت رو قرار دادم اما باز هم فرم سوم که خاصیتش OnstayTop روی فرم دومم نمی مونه با کلیک کردن روی فرم دومم، فرم سومم می ره زیره فرم دومم.

SUNMOON
دوشنبه 07 مرداد 1387, 11:26 صبح
چون فرم دوم رو به صورت showmodal باز مي كنيد فرم سوم مي ره زيرش از show استفاده كنيد. و براي اينكه فرم دوم نره زير فرم اصلي هم مي تونيد او روهم stayontop بكنيد.

mms_4004
دوشنبه 07 مرداد 1387, 22:46 عصر
چون فرم دوم رو به صورت showmodal باز مي كنيد فرم سوم مي ره زيرش از show استفاده كنيد. و براي اينكه فرم دوم نره زير فرم اصلي هم مي تونيد او روهم stayontop بكنيد.

با تشکر از کمک شما.:لبخندساده::لبخندساده::ل بخندساده: