Q&A

  • 오름차순, 내림차순 정렬(탐색기 처럼)
제가 알고픈 건요

윈도우 탐색기에서 헤더 부분을 클릭하면 그 헤더에 관한 내용을 중심으로 소트가

내림차순 또는 오름차순으로 잖아요?

이게 델파이에서 구현이 됩니까?

만약에 된다면 방법을 알고싶습니다.

이건 절대로 오른쪽, 중앙, 왼쪽정렬이 절대 아니라 오름차순, 내림차순 sort예요 글고

아무 헤더나 클릭했을때 클릭된 헤더를 중심으로 소트되야 되거든요

ListView나 스트링 그리드 둘중 아무거나 하나만 되믄 됩니다.

제 생각에는 스트링 그리드보다는 리스트뷰가 용이할꺼 같은데...

위에 질문은 db를 사용하지 안는 경우입니다.

1  COMMENTS
  • Profile
    김경식 2000.06.30 23:59
    제가 모아놓은 팁에 있어서 올립니다. 이 글을 적어주신 분의 성함을 몰라서 죄송시럽네요. ^^; 마음으로 감사를...



    ListView 의 컬럼별로 Sort (내림차순 포함)

    // 아래 예제를 참고하세요

    // 예제에서는 칼럼이 3개로 설정되어 있습니다



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

    Dialogs, ComCtrls;



    type

    TForm1 = class(TForm)

    ListView1: TListView;

    procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);

    procedure FormCreate(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;

    // ListView의 Reverse sort를 결정하는 boolean 배열

    ReverseOrder: array[0..2] of boolean; // 컬럼이 3개일경우(0..2)



    implementation

    {$R *.DFM}



    // ListView 를 컬럼별로 sort하는 standalone 함수입니다

    function ListViewSortProc(Item1, Item2: TListItem; ColumnNo: Integer): Integer; stdcall;

    var

    S1, S2: string;

    i: integer;

    begin

    if ColumnNo = 0 then

    begin

    S1 := Item1.Caption;

    S2 := Item2.Caption;

    end

    else

    begin

    S1 := Item1.SubItems[ColumnNo - 1];

    S2 := Item2.SubItems[ColumnNo - 1];

    end;



    i := CompareText(S1, S2); // C의 strcmp() 함수와 동일한 기능



    if Unit1.ReverseOrder[ColumnNo] then // Reverse이면 역순으로 sort

    i := - i;

    Result := i;

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    var

    i: Integer;

    begin

    {ListView 의 Reverse sort 여부 지정}

    for i := Low(ReverseOrder) to High(ReverseOrder) do

    ReverseOrder[i] := False; // False: 오름차순, True: 내림차순

    end;



    procedure TForm1.ListView1ColumnClick(Sender: TObject;

    Column: TListColumn);

    begin

    ListView1.CustomSort(@ListViewSortProc, Column.index);

    // Reverse sort는 컴럼을 한번 클릭했을때는 오름차순이지만

    // 또 한번 누르면 내림차순으로 sort 됩니다

    // 오름, 내림차순은 아래의 ReverseOrder 에서 결정됩니다

    ReverseOrder[Column.Index] := not ReverseOrder[Column.Index];

    end;



    end.





    영호 wrote:

    > 제가 알고픈 건요

    > 윈도우 탐색기에서 헤더 부분을 클릭하면 그 헤더에 관한 내용을 중심으로 소트가

    > 내림차순 또는 오름차순으로 잖아요?

    > 이게 델파이에서 구현이 됩니까?

    > 만약에 된다면 방법을 알고싶습니다.

    > 이건 절대로 오른쪽, 중앙, 왼쪽정렬이 절대 아니라 오름차순, 내림차순 sort예요 글고

    > 아무 헤더나 클릭했을때 클릭된 헤더를 중심으로 소트되야 되거든요

    > ListView나 스트링 그리드 둘중 아무거나 하나만 되믄 됩니다.

    > 제 생각에는 스트링 그리드보다는 리스트뷰가 용이할꺼 같은데...

    > 위에 질문은 db를 사용하지 안는 경우입니다.

    • 꾸리
    • 2000.06.30 23:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.07.01 01:02
      꾸리 wrote: > 델파이에서 엑셀화일로 받는 것처럼.. 이거는 무신 이야기인지 전혀 모르것군요... 헤...
    • 성호종
      2000.06.30 23:13
      타락천사 wrote: values 입니다... ^^ > 안녕하세여.. 타락임다...ㅠㅠ > > 음냐뤼.. 물어볼 사람...
    • 타락천사
      2000.06.30 23:21
      안녕하세여.. 타락임다..^^ 히궁.. 쪽팔려라... 쩌비.. 자기 실수는 발견하기 힘들져...ㅠㅠ 답변...
    • 영호
    • 2000.06.30 23:11
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 김경식
      2000.06.30 23:59
      제가 모아놓은 팁에 있어서 올립니다. 이 글을 적어주신 분의 성함을 몰라서 죄송시럽네요. ^^; 마음으로...
    • 성더기
    • 2000.06.30 22:53
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 심동훈
      2000.06.30 23:38
      안녕하세요? 심동훈입니다. Application.MessageBox 를 사용해보세요. 도움말에 보시면 자세히 나와있...
    • 성더기
      2000.07.01 01:43
      심동훈 wrote: > 안녕하세요? > 심동훈입니다. > > Application.MessageBox 를 사용해보세요. > 도움...
    • somoon
    • 2000.06.30 22:57
    • 5 COMMENTS
    • /
    • 0 LIKES
    • somoon
      2000.07.01 00:07
      감사합니다. 박철우님, 그런데요. 역시 똑 같은 에러가 나는군요. 전체 코드를 올리오니, 이 불쌍한 ...
    • 성호종
      2000.06.30 22:59
      somoon wrote: procedure TForm1.Button1Click(Sender: TObject); begin with Query1 do begin c...
    • 조상
      2000.06.30 23:58
      안녕하세요. Query 컴포넌트를 Form에 추가 안하셨군요.. Query 컴포넌트는 'Data Acess' 컴포넌트파레트...
    • 박철우
      2000.06.30 23:50
      성호종 wrote: > somoon wrote: > procedure TForm1.Button1Click(Sender: TObject); > begin > wit...
    • somoon
      2000.06.30 23:30
      감사합니다. 님의 코드를 실행하니 다음과 같은 에러가 납니다. 한번더 살펴 봐 주십시오. 저의 코드는 ...
    • pomi
    • 2000.06.30 22:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박철우
      2000.07.01 00:00
      강인모 wrote: > 수고하십니다. > 물어볼 질문을 요약하면, > Query(Query1) --> Datasource(SellDBS)...
    • 델초
    • 2000.06.30 21:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.06.30 21:40
      델초 wrote: > 안녕하세요!!! > 저는 델파이로 윈도우 바탕화면용 캐릭터 프로그램을 만들려고 하는 초...
    • 준희
    • 2000.06.30 21:11
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 김희중
      2000.07.01 20:57
      제가 보기에는 DB그리드가 아니라 스트링그리드를 사용하신 것 같은데 맞는지요? 혹시 그렇다면 그 부분에...
    • 성호종
      2000.06.30 23:12
      준희 wrote: source에 있는 select 문장은 join 이 없고 between을 적절히 쓰셨기
    • 준희
      2000.06.30 23:25
      아래의 Source대로 하면 조회하는데 프로그램을 실행시키면 무지무지무지 오래 걸리는 것 같거던요? 다운된...
    • 갱수
      2000.07.01 00:13
      준희 wrote: > 아래의 Source대로 하면 조회하는데 프로그램을 실행시키면 무지무지무지 오래 걸리는 것 ...
    • 성호종
      2000.07.01 01:14
      갱수 wrote: stored procedure 는 좀더 복잡하고 연산된 결과를 얻기위하여 DB 가 제공하는 language 입니...
    • 김주현
    • 2000.06.30 21:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.06.30 23:15
      김주현 wrote: field의 type속성이 빠졌네요.. table[8].asdate 가 아닐까 싶네요... ^^ > procedure ...
    • queen
    • 2000.06.30 21:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • cell
      2000.06.30 21:27
      queen wrote: > ora-00933:sql명렴어가 올바르게 종료되지 않았습니다. > sql을 제대로 입력하지 않...
    • 2000.06.30 23:33
      홍기원 wrote: > > > 1. 오라클 테이블 필드 정의 내역 : 시간필드을 단독으로 콘트롤 해야 되...
    • 최용일
      2000.06.30 20:49
      안녕하세요. 최용일입니다. Exit함수가 있습니다. ^^ 항상 즐코하세요. 이병웅 wrote: > 고수님 ...
    • 초보
    • 2000.06.30 20:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.06.30 20:23
      안녕하세요. 최용일입니다. 델파이뿐만아니라 다른 모든 컴파일러에도 그러한 옵션은 없습니다. 컴파일...
    • 김만성
    • 2000.06.30 19:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • cell
      2000.06.30 19:50
      김만성 wrote: > Project Project2.exe raised exception class EDBEnginError with message 'General SQL...
    • 성호종
      2000.06.30 23:04
      초초보 wrote: edit에 OnChange Event 에서 Grid에 Open되어있는 table 또는 Query를 first; repeat ...
    • 최용일
      2000.06.30 20:29
      안녕하세요. 최용일입니다. 간단하게 만드실려면 TMemo나 TRichEdit를 이용하시면 됩니다. 델파이 소스...
    • 이미나
      2000.06.30 21:20
      질문 1에 대한 답을 다른 델피언께서 올리셨더군요. 좀더 간단하고 속도빠른 방법이 있어서 갈켜드립니다....
    • 임형호
      2000.06.30 19:50
      사발우성 wrote: > > 하요 절정고수님들... 어제 질문을 잘못한듯 하네엽.. > > 다시 질문함당.....
    • ddd
      2000.07.07 05:44
      임형호 wrote: > 사발우성 wrote: > > > > 하요 절정고수님들... 어제 질문을 잘못한듯 하네엽.. > ...