Q&A

  • 리스트뷰에서 검색해서 선택된 Row가 선택되도록 하였습니다. 근데...
항상 도움만 받고 있는데...염치없이 더 큰 도움을 바라고 글 올립니다.

제목데로 리스트 뷰에 있는 내용을 검색해서 선택된 Row가 선택되도록 했습니다.

근데 선택된 Row를 마우스로 클릭하면 다른데로 이동합니다. 전 그 Row를 선택하고 싶은데......

아마도 소스안에서 스크롤을 해서 보여줄때는 어떻게 되었는데......
실제로 선택하니...소스안에서 스크롤 한것이 소용이 없어져 버리는 것 같습니다.

여기까지 코딩한 것도 이 질답에서 겨우겨우 했는데..더 이상....한계가 온 것 같습니다.
상황을 똑같이 만들어서 올립니다. 한 번 보시고 도움 좀 부탁합니다.

주요부분 소스는 여기에 올립니다.
FESVMS : 검색하고자 하는 텍스트를 쓰는 텍스트창
LVVMS : 검색하고자 하는 리스트뷰
( 리스트뷰의 caption 에 있는 것을 검색한답니다. )

procedure TForm1.FESVMSChange(Sender: TObject);
var
  i : Integer;
  SNum : String;
  point : TPoint;
begin
  for i := 0 to LVVMS.Items.Count - 1 do begin
    SNum := TRIM( StringReplace( FESVMS.Text, '_', '' , [rfReplaceAll] ) );
    if StrLComp( PCHAR(LVVMS.Items[i].Caption), PCHAR(SNum), Length(SNum) ) = 0 then begin
       LVVMS.DropTarget := nil;
       LVVMS.Scroll(0, LVVMS.Items[i].GetPosition.Y-LVVMS.TopItem.GetPosition.y);
       LVVMS.DropTarget := LVVMS.Items[i];
       exit;
    end;
  end;
end;

그럼 잘 부탁합니다. 미리 감사말씀드립니다. ^^ 좋은 하루 되세요
1  COMMENTS
  • Profile
    홍성락 2002.08.29 03:08
    hsr///////////////////////////////////////////////////
    procedure TForm1.FESVMSExit(Sender: TObject);
    begin
        FESVMS.Text := '';
    end;

    위 Exit를 사용하셨군요, 다른걸 사용하셔도 되지만 이걸 사용하셧다면
    수정해보세요.
    Exit함수로 포커스가 넘어갈때 FESVMS.Text := '';이 실행되므로
    Change가 실행되거든요
    잠시 그 Change이벤트를 막아 보시면 조금만 고쳐도 될겁니다.
    procedure TForm1.FESVMSExit(Sender: TObject);
    begin
        FESVMS.OnChange := nil;
        FESVMS.Text := '';
        FESVMS.OnChange := FESVMSChange;
    end;
    • 이덕영
    • 2002.08.29 03:46
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.08.29 04:18
      1. Create 2. Show - Visible 3. ReSize 4. Activate - Visible 5. Paint - Visible 6. CloseQu...
    • 하얀까마귀
      2002.08.29 05:52
      안녕하세요 하얀까마귀 입니다. ^^ 빨리 답변하시다가 실수하신듯하네요.. 저도 그럴때가 왕왕있죠.. ...
    • 구창민
      2002.08.29 21:01
      수정했습니다. 날카로운 지적 캄사여~~ ㅋㅋ
    • 이덕영
      2002.08.29 18:46
      ...
    • KDDG_ZZOM
      2002.08.29 03:52
      크리에이트가 먼저 실행될것같네요...^^ 그냥 이벤트에다가 showmessage('아무거나'); 이케 해보시면 ...
    • KDDG_ZZOM
      2002.08.29 03:05
      쿼리문이 잘못된것같기도 하네요... 쿼리문을 어떻게 맹글었는지... 원소스를 올려보세요... 아니면&nbs...
    • 이덕영
      2002.08.29 03:44
      ..
    • 성삼선
    • 2002.08.29 02:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.29 03:08
      hsr/////////////////////////////////////////////////// procedure TForm1.FESVMSExit(Sender: TObject)...
    • 구창민
      2002.08.29 04:20
      말씀하신 포커스라는게 어떤 포커스를 말씀하시는 건지여? 컨트롤의 포커스 인가여? 아니면 데이타의 위...
    • 김상수
    • 2002.08.29 01:11
    • 9 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2002.08.29 03:07
    • 김상수
      2002.08.29 03:34
    • KDDG_ZZOM
      2002.08.29 03:49
    • 김상수
      2002.08.29 03:59
    • KDDG_ZZOM
      2002.08.29 04:12
    • 김상수
      2002.08.29 04:26
    • 곰다방~미스김
      2002.08.29 01:33
    • • • •
    • 정진훈
    • 2002.08.29 00:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.08.29 04:23
      아래 내용이 도움이 되실지 모르겠네여. LPT1 포트에 연결해서 출력하는 내용인데 연결하는 부분을 ...
    • 세균맨
    • 2002.08.28 23:41
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.08.29 04:25
      뭐라 드릴말씀이 없군여..^_^;; Access violation  <-- 이 단어로 검색한번 해 보세여. ...
    • 곰다방~미스김
      2002.08.29 01:36
      소스를 올리시는게 돔 될거같구염... 우선 아래의 메시지는 아직 생성되지않은 녀석을 호출하면 발생합니...
    • 짱아
    • 2002.08.28 23:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이상우
      2002.08.29 00:08
      제 짧은 소견으로는 DBGrid는 사용 못 하실겁니다 DBGrid 는 DB Connection과 관련하여 DataSource 가 필...
    • 짱아
      2002.08.29 00:44
      그렇다면 stringgrid를 써서 어떻게 하는지.. 좀 구체적으로 설명을 해주시면 안될까염.. 넘 막막하네염....
    • 김형수
      2002.08.29 02:45
      var     txt: textfile;     str : string;   &nbs...
    • 김철수
    • 2002.08.28 23:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김동묵
      2002.08.29 01:42
      Cursor Position을 다음과 같이 사용할 수 있습니다. procedure TForm1.Chart1MouseMove(Sender: TObjec...
    • 김종균
    • 2002.08.28 23:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.28 23:26
      hsr///////////////////////////////////////////////// 간단히 말씀드릴께요 Pascal은  proce...
    • 세균맨
      2002.08.28 23:22
      함수면 return 값이 있죠. 함수가 return하는  type을 말하는 것 같은데요. 즐코하시구요 ...
    • 이성현
    • 2002.08.28 23:06
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이병성
    • 2002.08.28 22:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Check
      2002.08.28 22:14
      안녕하세요, 여유로움입니다. 이벤트의 인수중 Sender를 이용하심 될거 같네여
    • ▲┫┃■┃콜론
      2002.08.28 22:48
      감사해요~ 죄송하지만... 사용하는 방법 점 부탁드릴께요~
    • 최용일
      2002.08.28 22:53
      안녕하세요. 최용일입니다. 모든 이벤트의 파라매터에는 Sender: TObject라는게 들어갑니다. 이 Send...
    • ▲┫┃■┃콜론
      2002.08.28 23:20
    • 나옹이
    • 2002.08.28 21:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.28 23:01
      hsr///////////////////////////////////////////////////// 아래처럼해보세요 str := DirectoryListBox1...
    • 최용일
      2002.08.28 23:00
      안녕하세요. 최용일입니다. ItemIndex속성을 이용하세요... // DirectoryListBox의 OnClick이벤트 p...
    • 홍성락
      2002.08.28 21:17
      hsr//////////////////////////////////////////////////// 아래것을 잘 정리해보세요, '하'는 우측으로 ...
    • 수서니
      2002.08.29 01:28
      with TDBGrid(Sender) do begin    if Field.FieldName = '종류' then begin   &nbs...
    • 홍성락
      2002.08.29 02:13
      컬럼 에디터를 사용하셨군요, 그러면 DrawDataCell 대신 DrawColumnCell 이벤트를 쓰세요. rect은 해당 ...
    • 머슴
      2002.08.28 21:08
      1. 쿼리에서 ... DB는 오라클인경우 decode문이나 Case문을 이용하면 됩니다. MS-SQL인 경우는 Case...
    • 최여옥
    • 2002.08.28 20:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.28 22:33
      hsr//////////////////////////////////////////////// ListView의 속성 OwnerDraw를 True하세요 아래는 ...
    • 홍성락
      2002.08.28 20:42
      hsr////////////////////////////////////////////////////////////////// 정확히 말씀해 주시면 의도하는...
    • ㄴ ㅏ ㅁ ㅑ
      2002.08.28 21:26
      위와같이 했더니 에러도 나지 않고 디버깅시도 잘 됩니다^^ 그런데... SpinEdit 의 key를 누를때는 ...
    • ㄴ ㅏ ㅁ ㅑ
      2002.08.28 23:06
      위의 식에다 ---------------------------------------------------- procedure TForm1.seBottomClick...
    • 장재형
    • 2002.08.28 20:12
    • 0 COMMENTS
    • /
    • 0 LIKES