![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
обнуление поля при выбранном чекбоксе
Creative © (2006-02-16 13:23:00)Есть класса
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, и естественно ничего не рисуется вообще.
причем - если сначсала чекбокс и не отмечать - нарисуется соотв. картика. Но только тронь его - перестает рисоваться в обоих случаях.
umbra (2006-02-16 14:53:00) [1]как, если не секрет?
Creative (2006-02-16 14:35:00) [2]проблема решилась
Creative (2006-02-16 13:35:00) [3]нет,это попытка очистить код от посторонних предметов. :-)
У TMyClass есть поле FData: TBitmap (прошу прощения за опечатку, именно о нем идет речь) и оно должно рисоваться на канве DrawGrid`а при клике на ячейку.
umbra (2006-02-16 13:30:00) [4]это что, куски кода из разных проектов? как-то в целое не складывается. какие-то неясные свойства,
FRWData, например. Какое отношениеTMyClassимеет кDrawGrid?