Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
스트링그리드에 관하여.......
안녕하세요.
스트링그리드에서 정렬을 할려고 하는데 잘 되지 않아요.
정렬하는 메소드가 있나요 아니면 직접 코딩을 해야 하나ㅏ요?
도와주세요.
2
COMMENTS
모승열
•
1999.05.24 19:56
박용근 wrote:
> 안녕하세요.
> 스트링그리드에서 정렬을 할려고 하는데 잘 되지 않아요.
> 정렬하는 메소드가 있나요 아니면 직접 코딩을 해야 하나ㅏ요?
> 도와주세요.
>
만약 Sort가 아니구 Alignment라면요...
TStringGrid의 OnDrawCell Event를 이용해서 해결하면 됩니다.
procedure TForm1.StringGrid1DrawCell(.........생략......);
var
iLength : integer;
sTemp : string
begin
with StringGrid1.Canvas do begin
sTemp := StrignGrid1.Cells[Acol, ARow];
if Acol = 0 then // 가운데 정열
iLength := (Rect.Right - Rect.Left - TextWidth(sTemp) div
2 + Rect.Left
else if Acol = 1 // 왼쪽정열 (기본값이 왼쪽)
iLength := Rect.Left + 2
else // 오른쪽 정열
iLength := Rect.Right - TextWidth(sTemp) - 4;
FillRect(Rect);
TextRect(Rect, iLength, Rect.Top+4, sTemp);
end;//with
end;
0
0
삭제
수정
댓글
김우철
•
1999.05.24 11:21
정확히 어떤 내용인지 모르겠지만, 혹시 도움이 될까 해서 적습니다.
db에 있는 데이터라면 SQL의 Order By를 이용하면 되겠지만, 그런건 아닌것 같구요.스트링그리드에 뿌려줄 데이터가 배열형태로 되어 있으면 sorting algorithm을 이용하면 되지않을까 생각합니다.
삽입정렬, Quick Sort, Binary Sort, Bubble Sort등 여러가지가 있는데,
제가 만든 프로그램에서 사용한 삽입정렬 소스를 올려드리겠습니다.
procedure TfrmAdjust.Isort(var DayOfinv : array of DayOfInvRec ; n : integer);
var
i, j : integer;
Temp : real;
TempName : String;
begin
for j := 1 to (n-1) do begin
Temp := DayOfInv[j].value;
TempName := DayOfInv[j].Name;
i := j - 1;
while (i >= 1) and (DayOfInv[i].value > temp) do begin
DayOfInv[i+1].value := DayOfInv[i].value;
DayOfInv[i+1].Name := DayOfInv[i].Name;
i := i - 1;
end; // while
DayOfInv[i+1].value := Temp;
DayOfInv[i+1].Name := TempName;
end; // for
end; //procedure...
여기서 DayofInv는 레코드배열 형태로 선언된 변수이고, DayOfInv.value에 의해서
정렬하도록 되어있습니다.
이런식으로 정렬을 한다음에 StringGrid에 뿌려주면 될것같은데.....
도움이 되셨으면 좋겠네요....
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이상석
•
1999.05.24 19:17
2
COMMENTS
/
0
LIKES
Logon윈도우에서 실명 확인 후 ...
모승열
•
1999.05.24 20:11
메인윈도우의 name이 FrmMain, 자식윈도우 name이 FrmChild라면 . . . implementation uses uChild;//...
이상석
•
1999.05.24 22:04
모승열 wrote: > 메인윈도우의 name이 FrmMain, 자식윈도우 name이 FrmChild라면 > . > . > . > imple...
조용덕
•
1999.05.24 19:15
1
COMMENTS
/
0
LIKES
특정화일의 아이콘사용하기
이정욱
•
1999.05.24 22:04
아래를 참고하세요. 알맞게 고쳐서 사용하세요. procedure DrawIcon(Fs: String); var Icon ...
이미영
1999.05.24 18:10
0
COMMENTS
/
0
LIKES
윈도우에서 발생하는 모든 메세지를 ...
이미영
•
1999.05.24 18:07
3
COMMENTS
/
0
LIKES
현재 포커스가 있는 콘트롤에 ...
이정욱
•
1999.05.24 18:40
GetFocus를 사용해 보세요. GetFocus를 하면 현재 키보드입력상태에 있는 콘트롤의 핸들값을 반환합니다. ...
이미영
•
1999.05.24 22:08
Procedure MessageHandler(mm: Tmessage); var CHandle: HWND; Begin CHandle := GetFocus(); ...
이정욱
•
1999.05.24 22:22
아래를 참고하세요. 쩝.. 근데 저 안 멋져요.. ^^; procedure SendData(TargetWnd : HWnd; StrMsg: str...
최장민
•
1999.05.24 17:03
1
COMMENTS
/
0
LIKES
순차/무작위 미디파일 연주루틴좀....
이정욱
•
1999.05.24 18:57
TMediaPlayer를 보면 OnNotify 이벤트가 있습니다. 이곳에서 코딩을 해주시면 되는데... 예를들면.. pro...
하명훈
•
1999.05.24 15:29
1
COMMENTS
/
0
LIKES
속도가 너무 느려요...도와주세요.
이정욱
•
1999.05.24 18:43
데이타베이스는 어떤것을 사용하셨나요? 혹시 ODBC로 연결을 하셨는지요? 짐작이 가는것이라면 맨 처음 ...
이정현
•
1999.05.24 11:27
1
COMMENTS
/
0
LIKES
Memo컴포넌트에서 파라독스로....
이정욱
•
1999.05.24 18:45
AsMemo말고 AsString으로 해보세요. Query1.ParamByName('N3').AsString := Memo1.Text; //메모... 그리...
VMNT
•
1999.05.24 08:56
1
COMMENTS
/
0
LIKES
MDI폼에서 Window Menu만드는 법....
이정욱
•
1999.05.24 19:05
아마도 생성은 하셨지만 어느순간에 지워야 하는지를 여쭙는것 같습니다. 그렇다면 이렇게 해보세요. Chi...
영인
•
1999.05.24 06:10
1
COMMENTS
/
0
LIKES
(급질문)델파이중에....빠른 답변 좀..
신인재
•
1999.05.24 08:42
영인 wrote: > 집합형 변수중에서 궁금한게 있는데요...빨리 답을 좀 알아야 하는 상황이라서......어느 ...
박용근
•
1999.05.24 02:37
2
COMMENTS
/
0
LIKES
스트링그리드에 관하여.......
안녕하세요. 스트링그리드에서 정렬을 할려고 하는데 잘 되지 않아요. 정렬하는 메소드가 있나요 아니면 직접 코딩을 해야 하나ㅏ요? 도와주세요.
모승열
•
1999.05.24 19:56
박용근 wrote: > 안녕하세요. > 스트링그리드에서 정렬을 할려고 하는데 잘 되지 않아요. > 정렬하는 ...
김우철
•
1999.05.24 11:21
정확히 어떤 내용인지 모르겠지만, 혹시 도움이 될까 해서 적습니다. db에 있는 데이터라면 SQL의 Order B...
이호선
•
1999.05.23 23:32
2
COMMENTS
/
0
LIKES
시스템 폴더를 읽어 오려면..
이정욱
•
1999.05.24 01:08
이호선 wrote: > 안녕하세요.. > 시스템 디렉토리(예 : C:Windows 또는 C:WINDOWSSYTEM )을 얻어올수 있...
초심
•
1999.05.24 00:15
이호선 wrote: > 안녕하세요.. > 시스템 디렉토리(예 : C:Windows 또는 C:WINDOWSSYTEM )을 얻어올수 있...
조진희
•
1999.05.23 21:02
2
COMMENTS
/
0
LIKES
[급해요.. 도와주세요..]
구창민
•
1999.05.24 01:16
조진희 wrote: > 제가 델파이 헬펑에서 음력양력 로직을 받아서 작업을 하고 있어요.. > 근데 아무리 봐...
초보
•
1999.05.25 10:18
정말 감사합니다.. 훨씬 이해가 가는군요.. 근데 저희 초보들은 파라미터는 쿼리 할때 변수사용하려고 사...
초보
•
1999.05.23 08:32
2
COMMENTS
/
0
LIKES
프로젝트 이름을 바꾸려면..
초심
•
1999.05.24 00:40
초보 wrote: > 저희가 개발중인 프로그램의 프로젝트 이름을 바꾸려고 해요... > 어디를 바꾸면 되는지요...
초보
•
1999.05.24 08:05
고맙습니다.. 근데요... 한글은 안되나요.. 그래도...정말 정말 고마와요...
박성식
•
1999.05.23 07:01
3
COMMENTS
/
0
LIKES
스트링을 아스키문자로...
이정욱
•
1999.05.24 01:10
아스키 문자라는것이.. 아스키 코드를 말씀하시나요? 그렇다면... ord 를 사용하시면 됩니다. 단, Ord...
박성식
•
1999.05.27 23:09
이정욱 께서 말씀하시기를... > 아스키 문자라는것이.. 아스키 코드를 말씀하시나요? > 그렇다면... > ...
이정욱
•
1999.05.27 23:28
온라인 상에서 직접 작성하는것이라서 수정이 필요할 수 있습니다. function StrToAsc(Str : String) : ...
안명호
•
1999.05.23 06:03
1
COMMENTS
/
0
LIKES
대화 상자
이정욱
•
1999.05.24 01:12
SetForegroundWindow 를 사용하세요. 메세지 박스가 뜨기직전에 해주세요. SetForgroundWindow(Handle); ...
김도영
1999.05.23 05:49
0
COMMENTS
/
0
LIKES
TCPDUMP를 델파이로...
안명호
•
1999.05.23 00:13
1
COMMENTS
/
0
LIKES
드래그 드롭으로 파일 열기
구창민
•
1999.05.24 01:14
안명호 wrote: > 컨트롤 내에서가 아니라... > 프로그램 외부에서 예를 들어 탐색기에서 > 파일을 드래...
WhiteDragon
1999.05.22 21:09
0
COMMENTS
/
0
LIKES
인덱스 화일 생성-급합니다..
WhiteDragon
1999.05.22 21:01
0
COMMENTS
/
0
LIKES
도스용 dbf를 파라도스 db변환중 에러
이미영
1999.05.22 19:39
0
COMMENTS
/
0
LIKES
DLL을 강제로 종료시키는 방법 좀 알려줘요..
박용근
1999/05/24 02:37
Views
196
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하세요.
> 스트링그리드에서 정렬을 할려고 하는데 잘 되지 않아요.
> 정렬하는 메소드가 있나요 아니면 직접 코딩을 해야 하나ㅏ요?
> 도와주세요.
>
만약 Sort가 아니구 Alignment라면요...
TStringGrid의 OnDrawCell Event를 이용해서 해결하면 됩니다.
procedure TForm1.StringGrid1DrawCell(.........생략......);
var
iLength : integer;
sTemp : string
begin
with StringGrid1.Canvas do begin
sTemp := StrignGrid1.Cells[Acol, ARow];
if Acol = 0 then // 가운데 정열
iLength := (Rect.Right - Rect.Left - TextWidth(sTemp) div
2 + Rect.Left
else if Acol = 1 // 왼쪽정열 (기본값이 왼쪽)
iLength := Rect.Left + 2
else // 오른쪽 정열
iLength := Rect.Right - TextWidth(sTemp) - 4;
FillRect(Rect);
TextRect(Rect, iLength, Rect.Top+4, sTemp);
end;//with
end;