Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.22;
Скачать: CL | DM;

Вниз

использование 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
2-1357841185
Разведка
2013-01-10 22:06
2013.09.22
как определить контрол вызвавший popupmenu


2-1357713143
Crusader
2013-01-09 10:32
2013.09.22
очистка StringList


15-1365717745
картман
2013-04-12 02:02
2013.09.22
словарь 2


11-1248204990
Ruzzz
2009-07-21 23:36
2013.09.22
Использование AppletTerminated, цель этой переменной?


10-1185369660
Magedon
2007-07-25 17:21
2013.09.22
Access и экспорт