PDA

View Full Version : این پیغام چیست و چه کار باید کرد



spicirmkh
یک شنبه 13 شهریور 1384, 15:37 عصر
وقتی با کامپایلر دلفی 7 کار میکنم و زمانی بعد از نقطه ( . ) خصوصیات کامپونت می آید
مثل Lable.Caption

اما بعضی مواقع نمی اورد یا درون بعضی توابغ می اید و در بعضی نمی آید

و پیغام Unable to Invoke code completion due to error in source code

با تشکر

Naficy
یک شنبه 13 شهریور 1384, 17:26 عصر
دلفی برای بازکردن پنجره تکمیل کد، یکبار برنامه شما را کمپایل می کند. بنابراین اگر خطایی در خطوط بالایی کد شما وجود داشته باشه، چون نمی تونه برنامه رو کمپایل کنه، نمی تونه لیست رو نشون بده؛ پس این پیغام رو می ده.

spicirmkh
یک شنبه 13 شهریور 1384, 17:42 عصر
سلام

من هیچ پیغام خطائی در برنامه ندارم فقط چند تا Warning که توی خط برنامه ام از دستور TBookmark استفاده کرده ام

SavePlace: TBookmark;

شاید بخاطر این است چه کنم از دستش خلاص بشوم پیغام این است
unsafe type Tbookmark

چه کنم

vcldeveloper
دوشنبه 14 شهریور 1384, 02:34 صبح
دلفی برای بازکردن پنجره تکمیل کد، یکبار برنامه شما را کمپایل می کند.
فقط بخش هایی از برنامه، نه اینکه کل برنامه یکبار کامپایل میشه تا Code Insight نمایش داده بشه!


چه کنم از دستش خلاص بشوم پیغام این است
unsafe type Tbookmark
این پیغام فقط در محیط های manage شده مثل Net. براتون مشکل ایجاد می کنه و در یه برنامه Win32 معمولی مشکلی برای شما بوجود نمیاره. در این مورد خاص می تونید از TBookmarkStr استفاده کنید تا دیگه اون Warning رو نبینید:


var
SavePlace : TBookmarkStr;
begin
SavePlace := AdoTable1.Bookmark;
{Some code here}
AdoTable1.Bookmark := SavePlace;
end;

spicirmkh
دوشنبه 14 شهریور 1384, 09:55 صبح
سلام

ممنون آقای کشاورز

آیا برای آزاد کردن Bookmark از چه دستوری استفاده کرد من قبلا Datam.DBCompany.FreeBookmark(SavePlace);
استفاده می کردم حال چه بدهم ( کدی که توی این ایمیل از چپ به راست می نویسی چه )

من توی برنامه از فایل DLL استفاده می کنم یک جای برنامه به این صورت است
if LibHandle = HINSTANCE_ERROR then
raise EDLLLoadError.Create('Unable to Load DLL');
@SFCustomer := GetProcAddress(LibHandle, 'SFCustomer');
if not (@SFCustomer = nil) then
SFCustomer(datam.DBcompanyCompanyID.Value,datam.DB CustomerCustomerID.Value) ;
FreeLibrary(LibHandle);
finally
FreeLibrary(LibHandle);
end;


وقتی کامپایل می کنم این پیغام می دهد چه کنم

Unsafe code @ operator

با تشکر

Naficy
دوشنبه 14 شهریور 1384, 12:40 عصر
ببینید، این پیغام هنگام استفاده از اشاره گر ها ایجاد می شود. زیرا در دات نت چنین کدی را unsafe می گویند. اصلا چیز مهمی هم نیست.
ضمنا اگر سری به تنظیمات کمپایل بزنید احتمالا گزینه مربوط به غیرفعال کردن این نوع (فقط این نوع) هشدارها را می یابید.


آن خطایی که اول ذکر کردید، گاهی با یکبار زدن کلید کمپایل برطرف می شود. گاهی هم مشکل این است که مثلا سمت چپ یک انتساب متغیری را قرار داده اید که هنوز تعریف نکرده اید و...


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

vcldeveloper
سه شنبه 15 شهریور 1384, 01:51 صبح
آیا برای آزاد کردن Bookmark از چه دستوری استفاده کرد
TBookmarkStr یه بصورت خودکار آزاد میشه، نیازی نیست شما اونو آزاد کنید.

کدی که توی این ایمیل از چپ به راست می نویسی چه
کد رو در داخل تگ های [code] قرار بده، تگ دوم باید یک / داشته باشه.