Q&A

  • Access Violation Error 문제좀 해결해주세요 !
코딩은 아래와 같습니다.

procedure TfMachine.Edit1Enter(Sender: TObject);

var

I : Integer;

begin

for I := 0 to ComponentCount - 1 do begin

If TShape(Components[i]).Tag = (Sender as TEdit).Tag Then

TShape(Components[i]).Brush.Color := clRed

else

TShape(Components[i]).Brush.Color:= clYellow;

end;

end;



제가 하려는 것은 각 Edit 앞에 Shape로 원형을 만들어 두고

서로 같은 Tag값을 준후 특정Edit에 Enter시 해당 Edit앞에 있는 Shape의 색깔을 변경해주려 합니다.



한폼의 edit의 text를 모두 clear할때 아래와 같이 한적이 있어 좀 응용을 한 것인데

Access에러가 자꾸 나네요.

for i := 0 to componentcount - 1 do begin

if components[i] is TEdit then begin

TEdit(Components[i]).Clear;

end

end;



위의 코딩에 잘못된것이 있는지 알려주세요.







2  COMMENTS
  • Profile
    델놈 2001.03.31 02:14
    cell wrote:

    > 코딩은 아래와 같습니다.

    > procedure TfMachine.Edit1Enter(Sender: TObject);

    > var

    > I : Integer;

    > begin

    > for I := 0 to ComponentCount - 1 do begin

    > If TShape(Components[i]).Tag = (Sender as TEdit).Tag Then

    > TShape(Components[i]).Brush.Color := clRed

    > else

    > TShape(Components[i]).Brush.Color:= clYellow;

    > end;

    > end;

    >

    > 제가 하려는 것은 각 Edit 앞에 Shape로 원형을 만들어 두고

    > 서로 같은 Tag값을 준후 특정Edit에 Enter시 해당 Edit앞에 있는 Shape의 색깔을 변경해주려 합니다.

    >

    > 한폼의 edit의 text를 모두 clear할때 아래와 같이 한적이 있어 좀 응용을 한 것인데

    > Access에러가 자꾸 나네요.

    > for i := 0 to componentcount - 1 do begin

    > if components[i] is TEdit then begin

    > TEdit(Components[i]).Clear;

    > end

    > end;

    >

    > 위의 코딩에 잘못된것이 있는지 알려주세요.

    >

    >

    >



    procedure TfMachine.Edit1Enter(Sender: TObject);

    var

    I : Integer;

    begin

    for I := 0 to ComponentCount - 1 do begin

    if not(Components[i] is TShape) then continue; <---요기가 빠졌네요.

    If TShape(Components[i]).Tag = (Sender as TEdit).Tag Then

    TShape(Components[i]).Brush.Color := clRed

    else

    TShape(Components[i]).Brush.Color:= clYellow;

    end;

    end;



    그럼, 즐코

  • Profile
    cell 2001.03.31 03:45