다음은 코드입니다.Delphi 2K9에서 런타임시 구성 요소 비활성화 및 활성화. 이상한 문제
procedure DisableContrlOL(const cArray : array of string; ReEnable : boolean = False);
// can be called from VKP/RAW/Generation clicks
var
AComponent: TComponent;
CompListDis, CompListEna : TStringList;
begin
CompListDis := TStringList.Create;
CompListEna := TStringList.Create;
for i := Low(cArray) to High(cArray) do begin
AComponent := FindComponent(cArray[i]);
if Assigned(AComponent) then
if (AComponent is TControl) then begin
if TControl(AComponent).Enabled then
CompListEna.Add(TControl(AComponent).Name)
else
CompListDis.Add(TControl(AComponent).Name);
ShowMessage(TControl(AComponent).Name);
if ReEnable then begin // if reenabling needed, then all whi
if not TControl(AComponent).Enabled then
TControl(AComponent).Enabled := True;
end else if (TControl(AComponent).Enabled) then
TControl(AComponent).Enabled := False;
end;
end;
end;
더 이상 설명이 필요 없다고 생각합니다. ShowMessage는 각 구성 요소의 이름을 올바르게 표시하지만 StringLists에는 아무 것도 추가되지 않습니다. 왜?
업데이트 : 질문이 꽤 거칠어 짐에 따라 나는 약간의 도움이되는 대답을 확인했습니다.
나는이 코드 라인이 상용 프로젝트의 일부이고, 취미와 심장의 문제이기 때문에 매우 명확하지는 않지만 매우 제한적이라는 것을 이해합니다. 주요 문제는 이미 6h 전에 발견되었지만 Rob은이 모든 질문을 확장하기를 원했습니다. D 아니오, 불쾌감은 없습니다, 친구, 괜찮습니다. 기꺼이 도움이되는 게시물을 기쁘게받습니다. 다시 한번 감사드립니다.
귀하의 문제는 '런타임'과 관련이 있다고 생각합니다. 아마도 당신이 덜 신비한 사건으로 제한한다면 그것은 효과가있을 것입니다. :-) – robsoft
@robsoft : 고쳐졌습니다. –
HX : 아직 답변을 얻지 못했습니다 ** ** **. 나는 약간의 상향 투표를 할 것이지만, 나는 당신이하지 않은 것을 분명히하고 싶기 때문에 뒤로 물러 설 것이다. 당신의 질문에 대답하는 사람들이 왜이 무례하다고 생각할 수 있는지 이해하십니까? 당신은 어떻게 유권자에게 투표 할 수 있는지 알고 있습니까? – Argalatyr