Q&A

  • 아래한글과 MSWORD의 클래스 명을 어떻게....
제목 되로 아래한글과 MSWORD의 클래스 이름을 알아내는 방법을 알고 싶습니다.



감기 조심하세요...



전 지금 맛이 가서...ㅠㅠ



수고 하시고요....

3  COMMENTS
  • Profile
    황익순 1999.06.11 02:28
    제발 답변좀 해주세요...



    스트링그리드에서 지원하는건 연속적인 데이타에 대해서만 다중선택(Multi Selection)이 가능 하더군요...



    불행이도 저는 불연속적인 데이타에 대해서 다중선택해야 됩니다... 흑흑흑..



    도와주세요...



    고수님들 방법좀 가르쳐주세요... 부탁합니다...

  • Profile
    안치봉 1999.03.12 03:43
    한 wrote:

    > 제목 되로 아래한글과 MSWORD의 클래스 이름을 알아내는 방법을 알고 싶습니다.

    >

    > 감기 조심하세요...

    >

    > 전 지금 맛이 가서...ㅠㅠ

    >

    > 수고 하시고요....



    그건 비주얼(?) 씨에 포함된 SPY.EXE 같은 종류의 프로그램을 사용하면 얻어낼수가 있습니다.



    아니면 GetClassName API 를 사용해서 직접 구현 하셔도 됩니다.



    자세한건 Windows API 를 참고하십시오.

  • Profile
    구창민 1999.06.11 20:54
    황익순 께서 말씀하시기를...

    > 제발 답변좀 해주세요...

    >

    > 스트링그리드에서 지원하는건 연속적인 데이타에 대해서만 다중선택(Multi Selection)이 가능 하더군요...

    >

    > 불행이도 저는 불연속적인 데이타에 대해서 다중선택해야 됩니다... 흑흑흑..

    >

    > 도와주세요...

    >

    > 고수님들 방법좀 가르쳐주세요... 부탁합니다...



    황익순님 안녕하세요?

    아래 내용은 영대님의 스트링 그리드 멀티셀렉트 팁입니다.

    응용하시면 충분히 해결하실수 있으실 겁니다.

    즐거운 프로그래밍 되세요~ ^^



    // <사용방법> 아래 코딩을 하신후에 StringGrid의 어떤 프로퍼티도 변경할 필요가 없습니다

    // Button1 을 클릭하시면 StringGrid의 특정영역이 선택되고 그 내용을 클립보드로

    // 복사한 다음 다시 Memo 에 붙여넣기가 됩니다



    unit Unit1;



    interface



    uses

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

    StdCtrls, Buttons, Grids, clipbrd;



    type

    TForm1 = class(TForm)

    StringGrid1: TStringGrid;

    Memo1: TMemo;

    Button1: TButton;

    procedure FormActivate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    procedure CopyStreamToClipboard(S: TStream; fmt: Word);

    var

    hMem: THandle;

    pMem: Pointer;

    begin

    {stream의 위치를 맨 앞으로 이동시킨다}

    S.Position := 0;



    {stream의 크기만큼 전역 힙(heap)에 메모리 블록을 할당한후 원도우 핸들을 얻는다}

    hMem := GlobalAlloc(GHND or GMEM_DDESHARE, S.Size);

    if hMem <> 0 then

    begin

    {전역 힙의 할당된 메모리 블록을 고정(lock)시킨다}

    pMem := GlobalLock(hMem);

    if pMem <> nil then

    begin

    {할당받은 메모리 블럭에 stream의 내용을 복사한다}

    S.Read(pMem^, S.Size);

    {위의 S.Read()에 의해 증가된 포인터를 다시 맨 앞으로 이동시킨다}

    S.Position := 0;

    {전역 힙에서 메모리 블록의 잠금 해제}

    GlobalUnlock(hMem);



    {클립보드를 열러서 주어진 포맷(여기서는 CF_TEXT)과 원도우 핸들로 지정된

    데이타를 클립보드에 준다}

    Clipboard.Open;

    try

    Clipboard.SetAsHandle(fmt, hMem);

    finally

    Clipboard.Close;

    end;

    end

    else

    begin

    {메모리 lock의 실패로 memory block 예외를 발생시킨다}

    GlobalFree(hMem);

    OutOfMemoryError;

    end;

    end

    else

    begin

    {메모리 할당의 실패로 memory block 예외를 발생시킨다}

    OutOfMemoryError;

    end;

    end;



    procedure CopySelectedGridToClipboard(theGrid: TStringGrid);

    var

    m: TMemoryStream;

    i, j: Integer;

    S: String;

    begin

    m := TMemoryStream.Create;

    try

    with theGrid do

    for i := theGrid.Selection.Top to theGrid.Selection.Bottom do

    for j := theGrid.Selection.Left to theGrid.Selection.Right do

    begin

    S := Cells[j, i];

    // 맨 마지막 선택된 Column이면 CR/LF 를 추가하여 행구분

    if j = theGrid.Selection.Right then

    AppendStr(S, #13#10)

    else

    AppendStr(S, #9); // 각 Column을 Tab 문자로 구분

    m.WriteBuffer(S[1], Length(S));

    end;

    S[1] := #0; // 문자열 stream의 끝 표시

    m.WriteBuffer(S[1], 1);

    CopyStreamToClipboard(m, CF_TEXT); // stream의 내용을 클립보드로 복사

    finally

    m.Free;

    end;

    end;



    procedure TForm1.FormActivate(Sender: TObject);

    var

    i, j: Integer;

    begin

    // Column의 title을 만든다

    for i := 1 to StringGrid1.ColCount - 1 do

    StringGrid1.Cells[i, 0] := Char(Ord('A')+i-1);



    // Row의 title을 만든다

    for i := 1 to StringGrid1.RowCount - 1 do

    StringGrid1.Cells[0, i] := IntToStr(i);;



    // 임의의 자료를 만들어서 각 cell에 입력합니다

    for i := 1 to StringGrid1.ColCount - 1 do

    for j := 1 to StringGrid1.RowCount - 1 do

    StringGrid1.Cells[i, j] := Format('%.0n', [i * j * 10000.0]);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    i: integer;

    SelectedRectangle: TGridRect;

    CoordTopLeft, CoordBottomRight: TGridCoord;

    begin

    // 선택하고자 하는 직사각형 영역을 설정한다

    CoordTopLeft.X:= 2; // 두번째 컬럼부터 선택

    CoordTopLeft.Y:= 1; // 첫번째 행부터 선택

    CoordBottomRight.X:= StringGrid1.RowCount - 2; // 마지막 컬럼의 전컬럼

    CoordBottomRight.Y:= StringGrid1.ColCount - 2; // 마지막 행의 전행



    // 직사각형 영역을 TGridRect 에 할당한다

    with StringGrid1 do

    begin

    SelectedRectangle.TopLeft := CoordTopLeft;

    SelectedRectangle.BottomRight := CoordBottomRight;

    end;

    StringGrid1.Selection:= SelectedRectangle;



    // StringGrid의 선택된 영역을 클립보드로 북사

    CopySelectedGridToClipboard(StringGrid1);



    // 클립보드의 내용을 메모로 붙여넣기(테스트용)

    Memo1.Clear;

    Memo1.PasteFromClipboard;

    end;



    end.





    • 이호선
      1999.06.11 04:48
      안녕하세요 저는 Access DB를 사용하여 프로그램을 합니다. 그런데 setup 화일을 만들려하는데 ODBC에 등...
    • 안치봉
      1999.03.12 03:47
      이대선 wrote: > 후킹 콤퍼넌트 진짜 잘 만드셨고 요긴하게 잘 쓰고 있습니다. > > 현재 ...
    • 한상훈
    • 1999.06.11 04:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.06.11 21:00
      한상훈 께서 말씀하시기를... > data를 검색하는데 where 절의 조건을 edit.text에 입력한 값들을 > and...
    • 1999.03.12 03:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.12 03:43
      한 wrote: > 제목 되로 아래한글과 MSWORD의 클래스 이름을 알아내는 방법을 알고 싶습니다. > > 감기 ...
    • 1999.03.12 03:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 황익순
      1999.06.11 02:28
      제발 답변좀 해주세요... 스트링그리드에서 지원하는건 연속적인 데이타에 대해서만 다중선택(Multi Sel...
    • 안치봉
      1999.03.12 03:43
      한 wrote: > 제목 되로 아래한글과 MSWORD의 클래스 이름을 알아내는 방법을 알고 싶습니다. > > 감기 ...
    • 구창민
      1999.06.11 20:54
      황익순 께서 말씀하시기를... > 제발 답변좀 해주세요... > > 스트링그리드에서 지원하는건 연속적인 ...
    • 이상석
    • 1999.06.11 02:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공대규
      1999.06.11 02:50
      델파이로 프로그래밍하다 보면 맨날 만나는 에러 메시지입니다. 한마디로 메모리 접근시 문제가 생기면 대...
    • 이창석
    • 1999.03.08 00:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.10 03:12
      이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
    • 이창석
      1999.03.12 00:33
      안치봉 wrote: > 이창석 wrote: > > 반갑습니다. > > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. ...
    • 신인재
      1999.03.12 04:33
      > procedure TForm1.Button1Click(Sender: TObject); > var > i,y:integer; > begin > if opendialo...
    • 박성훈
    • 1999.06.11 02:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 백승환
      1999.06.11 06:18
      박성훈 께서 말씀하시기를... > 식당주문관련 프로그램을 만들고 있는데요. > > 판매테이블:판매코드, ...
    • 안치봉
      1999.03.12 03:47
      이대선 wrote: > 후킹 콤퍼넌트 진짜 잘 만드셨고 요긴하게 잘 쓰고 있습니다. > > 현재 ...
    • 박성훈
    • 1999.06.11 01:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 백승환
      1999.06.11 06:24
      박성훈 께서 말씀하시기를... > 레이블을 클릭하면 dbgrid에 한줄만 선택되도록 하고 싶은데요. > rowsel...
    • [재질문]dbgrid에서
      1999.06.13 21:32
      백승환 께서 말씀하시기를... > 박성훈 께서 말씀하시기를... > > 레이블을 클릭하면 dbgrid에 한줄만 선...
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 백승환
      1999.06.11 08:28
      최선기 께서 말씀하시기를... > 안녕하세요.. 델파이를 배우고 있는 회사원입니다. > 제가 물어볼 것은 ...
    • 박성훈
      1999.06.11 01:36
      최선기 께서 말씀하시기를... > 안녕하세요.. 델파이를 배우고 있는 회사원입니다. > 제가 물어볼 것은 ...
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 수빈
    • 1999.06.10 22:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공대규
      1999.06.11 02:26
      cayp.inf 파일의 내용을 한 번 올려 주실래요? 제가 한 번 볼께요... 수빈 께서 말씀하시기를... > Ac...
    • 이창석
    • 1999.03.08 00:11
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 왕초
      1999.06.10 22:30
      DLL를 디버깅하려고 합니다.. DLL 프로젝트를 어플리케이션에서 포함하여 breakpoint를 걸어서 하려고 ...
    • 안치봉
      1999.03.10 03:12
      이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
    • 글쎄요
      1999.06.10 23:34
      왕초 께서 말씀하시기를... > DLL를 디버깅하려고 합니다.. > DLL 프로젝트를 어플리케이션에서 포함하여...
    • 이창석
      1999.03.12 00:33
      안치봉 wrote: > 이창석 wrote: > > 반갑습니다. > > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. ...
    • 신인재
      1999.03.12 04:33
      > procedure TForm1.Button1Click(Sender: TObject); > var > i,y:integer; > begin > if opendialo...
    • chobo
    • 1999.06.10 21:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 기련이
    • 1999.03.05 01:12
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.05 23:06
      기련이 wrote: > 저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. > body의 내용이 정상적으로 나...
    • 기련이
      1999.03.06 02:33
      도와주셔서 정말 감사합니다. 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, 메일서버는 MS EXCHANGE서...
    • 안치봉
      1999.03.06 04:46
      기련이 wrote: > 도와주셔서 정말 감사합니다. > > 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, > ...
    • 기련이
      1999.03.10 02:30
      덕분에 문제를 해결하였습니다. Var InStr, OutStr: TStringStream; Begin InStr := TStringStr...
    • franco97
    • 1999.06.10 20:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.06.10 20:45
      franco97 께서 말씀하시기를... > RichEdit에서 입력을 하다가 Ctrl+Enter를 입력하면 아래칸으로 이동을 ...
    • powermac
    • 1999.06.10 19:31
    • 0 COMMENTS
    • /
    • 0 LIKES