Q&A

  • listview의 값을 선택하여 뿌려줄때 에러는....
아래와 같은 코딩을 하였는데,첫벤째 row를 선택하면 잘 되는데,그다음

바로 다음 row를 선
1  COMMENTS
  • Profile
    yosule 2001.11.24 02:03
    > 그리고 에러step을 밟아보니, 두번째에는 두번이나 읽던데,도대체 어떻게 된거죠..

    > 제가 아직 초보라 이해해 주시고 말씀 좀 해 주세요... 고마워요...



    예,,맞습니다. 선택됨과 선택 해지됨을 알기 위해서 "OnSelectItem" 이벤트는

    두번 발생합니다. 여러 방법이 있겠지만 당장에 해결 할 수 있는 방법은

    "OnClick" 이벤트에 하고자 하는 내용을 넣으면 됩니다.



    procedure TForm1.ListView2ListView1Click(Sender: TObject);

    var

    str :string;

    begin

    str := 'select Totalprice,sunapprice,Misuprice from chargeM ' +

    ' where chaptNo = :chaptNo';



    with ADOdataset1 do

    begin

    close;

    commandtext := str;

    parameters.parambyname('chaptNo').value := ListView2.Selected.caption;

    open;

    begin

    edit21.text := fieldbynaem('Misuprice').value;

    edit22.text := fieldbyname('Totalprice').value;

    edit23.text := fieldbyname('Sunapprice').value;

    end;

    end;

    end;



    엇! 그런데 위와 같이하고 ListView의 데이터가 있는 Row가 아닌

    빈 곳에 클릭을 했는데 에러가 난다면...아래와 같이 해주세요.



    procedure TForm1.ListView2ListView1Click(Sender: TObject);

    var

    str :string;

    begin

    if ListView2.Selected <> nil then

    begin

    str := 'select Totalprice,sunapprice,Misuprice from chargeM ' +

    ' where chaptNo = :chaptNo';



    with ADOdataset1 do

    begin

    close;

    commandtext := str;

    parameters.parambyname('chaptNo').value := ListView2.Selected.caption;

    open;

    begin

    edit21.text := fieldbynaem('Misuprice').value;

    edit22.text := fieldbyname('Totalprice').value;

    edit23.text := fieldbyname('Sunapprice').value;

    end;

    end;

    end;

    end;



    빈 Row를 클릭했을때 마우스 클릭이니깐 이벤트가 발생하겠죠.

    그런데 ListView2.Selected.Caption 이라는 줄에서 에러가 발생합니다.

    선택된 내용이 없기 때문입니다. 그래서



    if ListView2.Selected <> nil then...



    이라는 내용을 넣었습니다. 그래서 제가 권해드리는 방법의

    정확한 내용은 두번째 코딩 내용이 되겠습니다..



    그럼...열심히 하세요!