function btn_anim(Sender:TObject, i:integer):boolean; beign if i = 1 then begin TPanel((Sender as TImage).Parent).Color:=clWhite; end ELSE begin TPanel((Sender as TImage).Parent).Color:=clWhite; end; end;
как сделать так чтобы не приводить сендер к классу т имейдж, потому что он может быть и лейбл и панел, ну то есть чтобы он автоматически определял класс, класс TComponent не обладает свойством парент и TObject тоже помогите плиз #программирование
Через оператор is ты можешь проверить является ли Sender экземпляром указанного класса или его потомком. Sender is TImage - истина, если это Image и дальше перебираешь свои варианты
Через оператор is ты можешь проверить является ли Sender экземпляром указанного класса или его потомком. Sender is TImage - истина, если это Image и дальше перебираешь свои варианты
дык я то хочу как раз без этого чтобы код в одну строчку)
if Sender.ClassName = 'TImage' then begin TPanel((Sender as TImage).Parent).ParentBackground:=true; end; if Sender.ClassName = 'TPanel' then begin TPanel(Sender).ParentBackground:=true; end; if Sender.ClassName = 'TLabel' then begin TPanel((Sender as TLabel).Parent).ParentBackground:=true; end;
function btn_anim(Sender:TObject, i:integer):boolean;
beign
if i = 1 then
begin
TPanel((Sender as TImage).Parent).Color:=clWhite;
end ELSE
begin
TPanel((Sender as TImage).Parent).Color:=clWhite;
end;
end;
как сделать так чтобы не приводить сендер к классу т имейдж, потому что он может быть и лейбл и панел, ну то есть чтобы он автоматически определял класс, класс TComponent не обладает свойством парент и TObject тоже помогите плиз #программирование