Abstract error
5 отговора
169 прегледа
Abstract error
Някой да има представа аджеба що е това Abstract error и има ли то почва у нас?
Имам един page control на който динамично (run time) му правя и махам Tab Sheet - ове, И когато махна някой понякога се появява това нещо - Abstract error.
Благодаря
ИГРАТА СВЪРШИ
Имам един page control на който динамично (run time) му правя и махам Tab Sheet - ове, И когато махна някой понякога се появява това нещо - Abstract error.
Благодаря
ИГРАТА СВЪРШИ
Re: Abstract error
Пример:
на TStrings метода Add използва метод Insert, които
в TStrings е деклариран така:
abstract означава, че ... го няма - не е реализиран, но в
наследниците го има :) например в TStringList.
Та при теб се е случило нещо такова.
procedure TForm1.Button1Click(Sender: TObject);
var
sl:TStrings;
begin
sl:=TStrings.Create;
sl.Add('use TStringList instead.');
end;
на TStrings метода Add използва метод Insert, които
в TStrings е деклариран така:
procedure Insert(Index: Integer; const S: string); virtual; abstract;
abstract означава, че ... го няма - не е реализиран, но в
наследниците го има :) например в TStringList.
Та при теб се е случило нещо такова.
Re: Abstract error
Благодаря. Усетих го това - един бутон го е хванала липсата... Използвам TFrame за да направя съдържанието на TabSheet-a. Та в този фрейм има един бутон, който като се натисне трябва да скрие страницата. Ама нещо съм оцапал. И сега се чудя как да си оправя бакиите.
ИГРАТА СВЪРШИ
ИГРАТА СВЪРШИ
Re: Abstract error
Емил искаше да каже, че абстрактна грешка се появява когато се опиташ да извикаш абстрактен метод. Т.е. метод без имплементация.
В Делфи можеш да правиш инстанции на абстрактни класове, така че внимавай. Ето пример:
-------------
Special killer double trouble triple extra nicotine monster!
В Делфи можеш да правиш инстанции на абстрактни класове, така че внимавай. Ето пример:
TAbstract = class
public procedure DoStuff; virtual; abstract;
end;
TConcrete = class(TAbstract)
public procedure DoStuff; override; // and implemented
end;
после
with TAbstract.Create do begin
try
DoStuff; // abstract error! трябва да ползваш TConcrete.DoStuff();
finally
Free;
end;
end;
-------------
Special killer double trouble triple extra nicotine monster!
Редактирано от z_free на
Re: Abstract error
Благодаря. Това ми е известно и си го използвам при нишките. Ама не гърми там, а на OnMouseUp на един бутон.
ИГРАТА СВЪРШИ
ИГРАТА СВЪРШИ
Re: Abstract error
debug :)
-------------
Special killer double trouble triple extra nicotine monster!
-------------
Special killer double trouble triple extra nicotine monster!