Форум: "Начинающим";
Текущий архив: 2013.09.22;
Скачать: [xml.tar.bz2];
Внизиспользование Assert Найти похожие ветки
← →
LDV (2013-01-10 17:26) [0]есть класс:
TControlGroup = class
private
Fcb_SortBy: TComboBox;
Frb_Asc: TRadioButton;
Frb_Desc: TRadioButton;
public
constructor Create(const cb_SortBy: TComboBox; const rb_Asc,
rb_Desc: TRadioButton);
property cb_SortBy: TComboBox read Fcb_SortBy;
property cb_Asc: TRadioButton read Frb_Asc;
property cb_Desc: TRadioButton read Frb_Desc;
end;
в программе создается несколько объектов этого класа и кладутся в ObjectList. Есть такой код:
var
ControlGroup: TControlGroup;
begin
for I := 0 to ControlGroups.Count - 1 do
begin
ControlGroup := TControlGroup(FControlGroups[I]); // FControlGroups типа TObjectList
Assert(ControlGroup <> nil);
Assert(ControlGroup.cb_SortBy <> nil);
Assert(ControlGroup.rb_Asc <> nil);
Assert(ControlGroup.rbDesc <> nil);
// ...
end;
end;
Нужны ли здесь Assert"ы
← →
Ega23 © (2013-01-10 17:31) [1]
> Нужны ли здесь Assert"ы
Assert-ы нужны для debug-версии, для release - Assertions Off
← →
MBo © (2013-01-10 17:34) [2]Assert"ы нужны программисту при отладке.
В данном месте кода их польза сомнительна, т.к. наличие контролов нужно контролировать при создании объекта группы, а объекта группы - при добавлении в список
← →
O'ShinW © (2013-01-10 17:42) [3]оно и не проконтролируется
TCL = class
private
B: TButton;
public
constructor Create(AB: TButton);
property cb: TButton read B;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
CL: TCL;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
CL := TCL.Create(Button1);
FreeAndNil(Button1);
if CL.cb = nil then
ShowMessage("Не выскочит")
end;
constructor TCL.Create(AB: TButton);
begin
B := AB;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.09.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c