PDA

View Full Version : Right Click



lena abbaszadeh
شنبه 01 خرداد 1389, 13:18 عصر
سلام
من یه پروژه دارم که تو اون کاربر باید بتونه جزئیات یه نقشه رو وارد کنه
میخوام برنامه طوری باشه که کاربر وقتی رو فرم right click میکنه یه منو باز شه و تو اون منو بتونه مثلا گزبنه insert detailرو انتخاب کنه
لطفا راهنماییم کنین:خجالت:
مرسی

Felony
شنبه 01 خرداد 1389, 13:25 عصر
از پالت Standard یک popUpMenu روی فرم قرار بدید و آیتم های مورد نیازتون رو در اون اضافه کنید و خصیصه popUpMenu فرمتون رو از طریق بازرش اشیاء ( Obejct Inspector ) با نام popUpMenu مقدار دهی کنید .

lena abbaszadeh
شنبه 01 خرداد 1389, 14:36 عصر
از پالت Standard یک popUpMenu روی فرم قرار بدید و آیتم های مورد نیازتون رو در اون اضافه کنید و خصیصه popUpMenu فرمتون رو از طریق بازرش اشیاء ( Obejct Inspector ) با نام popUpMenu مقدار دهی کنید .
hmmmmmmmmm
فکر کنم سوالمو بد گفتم
فرم من میشه یه نقشه ، یه عکس از یه نقشه اوتوکد
کاربر باید بتونه مثلا جزئیات یه ساختمان تو این نقشه رو ثبت کنه
برای این کار با موس باید بتونه بره رو نقشه اون ساختمان ،right click کنه و بعد یه منوی چند گزینهای براش باز شه و بع انتخاب کنه
دقیقا مثل desktopتووwindows
کهrightclick میکنی و بعی مثلا properties رو انتخا ب می کنی....

Felony
شنبه 01 خرداد 1389, 15:30 عصر
ای بابا پس من چی گفتم ، شما اصلا تست کردی ؟
یه نمونه براتون نوشتم ، فایل ضمیمه رو ببینید .

حسین شهریاری
شنبه 01 خرداد 1389, 17:56 عصر
این منو قراره چیا مقدار دهی کنه؟
سایر عکس را؟......؟

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

حمیدرضاصادقیان
یک شنبه 02 خرداد 1389, 00:16 صبح
سلام.ظاهرا اینطور که من متوجه شدم ایشون میخواد تجزیه و تحلیل نقشه رو انجام بده که مثلا روی هر ساختمان که کلیک کرد یک منوی خاص باز بشه نه اینکه روی هر جای نقشه کلیک کرد..
اگر اینطور باشه شما باید با استفاده از ImageEn تصویر رو پردازش کنید و در موقعیت های خاصی که مدنظرتون هست وقتی کاربر راست کلیک کرد منوی فوق باز بشه و مواردی که میخواهید رو انتخاب کنید.

lena abbaszadeh
یک شنبه 02 خرداد 1389, 13:21 عصر
آقای تاجیک sampleای که شما گذاشتید برام اصلا اجرا نمیشه
آقای صادقیان من دقیقا این کارو می خوام بکنم

حمیدرضاصادقیان
یک شنبه 02 خرداد 1389, 14:32 عصر
پس با این اوصاف وارد بحث Image processing میشوید. بهتره از ابزار ImageEn استفاده کنید.
اگر هم نتونستید پیدا کنید بهم Pm بدید بهتون بدم.
موفق باشید

tdkhakpur
یک شنبه 02 خرداد 1389, 19:29 عصر
یک popupmenu داخل فرمتان قرار بدی و unit خودتان را با کدهای زیر تغییر بدید.


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure PopupMenuItemsClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.PopupMenuItemsClick(Sender: TObject);
begin
with Sender as TMenuItem do
begin
case Tag of
0: ShowMessage('Copy item clicked');
1: ShowMessage('Cut item clicked');
2: ShowMessage('Paste item clicked');
end;
end;
end;
procedure AddItem(caption:string; index:integer);
var
NewItem: TMenuItem;
begin
NewItem := TMenuItem.Create(Form1.PopupMenu1);
Form1.PopupMenu1.Items.Add(NewItem);
NewItem.Caption := caption;
NewItem.Tag := index;
NewItem.OnClick := Form1.PopupMenuItemsClick;
// NewItem.free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AddItem('Copy', 0);
AddItem('Cut', 1);
AddItem('Paste', 2);
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
PopupMenu1.Popup(Left+X, Top+Y);
end;
end.

lena abbaszadeh
چهارشنبه 05 خرداد 1389, 13:58 عصر
[quote=tdkhakpur;989682]یک popupmenu داخل فرمتان قرار بدی و unit خودتان را با کدهای زیر تغییر بدید.
[code]
unit Unit1;
interface
]
مرسی از راهنماییتون
چند تا سوال
اولا این کد ارور داره و اجرا نمیشه
دوما تابع formmouseupچی کار میکنه؟

tdkhakpur
چهارشنبه 05 خرداد 1389, 16:00 عصر
اولا این کد ارور داره و اجرا نمیشه

کد چندانی با عظمتی هم ارسال نکردیم که ارور داشته باشد (دو سه خط ناقبل)!!

دوما تابع formmouseupچی کار میکنه؟
خب وقتی right click میکنید این تابع موقع برداشتن انگشت از روی ماوس عمل میکند.

مصطفی ساتکی
چهارشنبه 05 خرداد 1389, 17:29 عصر
فرم من میشه یه نقشه ، یه عکس از یه نقشه اوتوکد
کاربر باید بتونه مثلا جزئیات یه ساختمان تو این نقشه رو ثبت کنه
برای این کار با موس باید بتونه بره رو نقشه اون ساختمان ،right click کنه و بعد یه منوی چند گزینهای براش باز شه و بع انتخاب کنه
دقیقا مثل desktopتووwindows
کهrightclick میکنی و بعی مثلا properties رو انتخا ب می کنیشما سوال تون دقیق مطرح نمی کنید مشکلتون کار کردن با PopupMenu یا پردازش نقشه.
اگر نقشه CAD رو دارید و شما میخاید جزئیات هر قسمت رو وارد کنید چرا اونو به تصویر تبدیل می کنید نقشه CADِ باشه به پردازش هم نیاز نداره.

گر اینطور باشه شما باید با استفاده از ImageEn تصویر رو پردازش کنیداگر نقشه تصویر باشه که بایستی به CAD تبدیل شه ImageEn به درد ایشون نمیخوره چون اساس کار تبدیل تحلیل نقشه تبدیل Hough که ImageEn نداره.ولی از OpenCV یا کتابخانه های دیگر هم می تونید استفاده کنید فقط کافی یه سرچ بزنید.
اگر نقشتون تصویری از یه نقشه CAD باشه اون وقت بایستی در ابتدا نقشه رو آنالیز بشه یا به اصلاح به CAD تبدیل بشه که بایستی مراحل زیر رو طی کنید.
برای اینکار میتونید از تبدیل Hough بعنوان فایندر خطوط استفاده کنید. Object ثابت پیش بینی شدتون FFT بگیرید و داخل یه DB ذخیره کنید البته با ابعاد مشخص.
سپس تو فاز تشخیص می تونید از کلیه Object های پیدا شده یه Convolve با DB داشته باشید که از این طریق Object هاتون شناسایی میشه .Object های معرفی نشده رو هم سیستم به صورت خودکار FFT شونو به DB اضافه می کنه.
جزئیاتون بیشتر باشه مسلماً جواب بهتری رو دریافت می کنید.عنوان تاپیک رو هم درست انتخاب نکردید

hmsdz67
سه شنبه 11 خرداد 1389, 18:22 عصر
سلام به همه دوستان من يه سوال دارم
ميخواستم بدونم چطوري ميشه با راست كليك روي فرم هم زمان دوتا منو ظاهر كرد يكي زير موس يكي بالاي موس تغريبا شبيه آفيس 2010
با استفتده از دستور PopupMenu

lena abbaszadeh
سه شنبه 18 خرداد 1389, 14:25 عصر
برای اینکار میتونید از تبدیل Hough بعنوان فایندر خطوط استفاده کنید. Object ثابت پیش بینی شدتون FFT بگیرید و داخل یه DB ذخیره کنید البته با ابعاد مشخص.
سپس تو فاز تشخیص می تونید از کلیه Object های پیدا شده یه Convolve با DB داشته باشید که از این طریق Object هاتون شناسایی میشه .Object های معرفی نشده رو هم سیستم به صورت خودکار FFT شونو به DB اضافه می کنه.
میشه یکم بیشتر توضیح بدین؟؟؟؟