ببخشید من کجاش باید بگم 1 رو سلام بده ؟
میشه یه نفر نمونه ام ام بی و دلفی رو بده ؟؟ اینطور برام بهتر جا میفته
نمیخواهید جواب بدید برای بالا بردن پست هاتون اینقدر اسپم نزنید خواهشا
splinter cell گفت:با سلام به دوست و استاد ارجمند Free Man عزیز
امروز وقتی پیدا شد و بکمک اون نمونه مثالی که برای ایجاد پلاگین با فرم گذاشته بودین یک پلاگین با شیی Combobox برای خودم درست کردم و الان هم دارم امکاناتش رو بیشتر میکنم(البته به جهت مشق و تمرین پلاگین نویسی). در حین انجام کار در بیلدر دیدم در فرمان insert اگر مقدار ایندکس رو بیشتر از تعداد کل آیتمهای کمبوباکس قرار بدم (ComboBox1.Items.Count) و دستور رو اجرا کنم برنامه کرش میکنه و بسته میشه. این مورد رو با پلاگین شما UO هم امتحان کردم و همین عمل اتفاق می افتاد. خواستم به اطلاعتون برسونم که اگر خواستید در نسخه های بعدی این باگ رو برطرف کنید.(البته اگر بشه اسمش رو باگ گذاشت؟)
من توی پلاگین خودم برای رفعش از این کد استفاده کردم. لطفاً یه نگاه بندازید و راه بهتر و حرفه ای تر اون رو بیان کنید.
با سپاس
کد:procedure insertToComb; cdecl; var TotalItems,userIndexItem : integer; begin TotalItems:=MainForm.ComboBox1.Items.Count ; userIndexItem:=NumInput; if userIndexItem <= TotalItems then MainForm.ComboBox1.Items.Insert(NumInput,TextInput) else MessageBox(0,'please input a less index','ItemIndex is Too Big',0); end;
try
begin
..
..
..
TextOutput:='Done';
end
except
TextOutput:='Error';
end;
procedure insertToComb; cdecl;
begin
if NumInput <= MainForm.ComboBox1.Items.Count then
MainForm.ComboBox1.Items.Insert(NumInput,TextInput)
else
MessageBox(0,'please input a less index','ItemIndex is Too Big',0);
end;
MainForm.ComboBox1.Font.Size:=NumInput;
h := CreateRectRgn(0,0,MainForm.ComboBox1.Width ,MainForm.ComboBox1.Height);
SetWindowRgn(MainForm.Handle ,h,true);
procedure RunScript(Script: string; EnableSyntaxChecker: boolean=false);
begin
if EnableSyntaxChecker=false then
SendMessage(hMMBWindow, WM_RUNSCRIPT, 0, LPARAM(Script));
if EnableSyntaxChecker=true then
SendMessage(hMMBWindow, WM_RUNSCRIPT, 1, LPARAM(Script));
end;
RunScript('RunScript("Event")');
RunScript('RunScript("Event")');