Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > обнуление поля при выбранном чекбоксе


Автор: creative 16.2.2006, 13:23
Есть класса
TMyClass
FData: TBitmap;

и следующие процедуры:


Код
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  if Checkbox1.Checked then
    begin
     if Checbox2.checked then
     CurrentVulue:=true;
     DrawGrid1[ACol, ARow].MyProperty:=true;
    end;


procedure TMEClass.SetMyProperty(Value: boolean);
 begin
  FMyProperty := Value;
  case Value of
    true :
      begin
        if CurrentValue = false then
          begin
           FData:= Pic1;
          end;
          if CurrentValue = true then
          begin
          FData:= Pic2;
          end;
      end;



procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin

if (DrawGrid1[ACol, ARow].FRWData) <> nil then
  DrawGrid1.Canvas.StretchDraw(Rect, DrawGrid1[ACol, ARow].Data);


Иными словами - если чекбокс отмечен - в клетке должна рисоваться одна картинка, если нет - другая. Что получаем: чекбоск отмечен, все данные передаются, картинка в поле прописывается, но когда дело доходит до процедуры DrawCell - поле FData почему то сстановится равно nil, и естественно ничего не рисуется вообще.
причем - если сначсала чекбокс и не отмечать - нарисуется соотв. картика. Но только тронь его - перестает рисоваться в обоих случаях.

Автор: _hunter 16.2.2006, 13:46
потому как ( кода не вижу -- идут предположения ) какое-нить GetMyProperty работает неправильно ( возможно в типах параметров ошибся ) и возвращает непонятно что.

P.S.
код индийских праграмистав:
if ( a == true )
return true;
else if ( a == false )
return false;
smile

Автор: creative 16.2.2006, 14:35
проблема решилась

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)