김용유닷컴

블로그 이미지

희자매(가희나희)아빠

잡다한 지식, 엉뚱한 생각들, 내 맘대로 사진, 프로그램 개발 이야기 등등을 저장하기 위해 만들어 놓은 개인 블로그입니다. 문의나 요청은 늦게라도 받겠으나 악플이나 욕설은 정중히 사양하겠습니다.

'전체 글'에 해당되는 글 433건

제목 날짜
  • [팁]W8057이 보기 싫을때.. 2008.01.10
  • [펌]String과 char* 문자열을 동시에 사용할 수 있는 XString 클래스. 2008.01.08
  • 일상 2008.01.06~07 2008.01.08
  • 일상 2008.01.03 2008.01.03
  • [펌]VirtualTreeView 사용법 - 4 2008.01.03

[팁]W8057이 보기 싫을때..

1.소프트웨어 이야기/00.VCL(C++ Builder, Delphi) 2008. 1. 10. 08:57
C++ builder 2007로 넘어오면서 인자를 사용하지 않아서 생기는 경고(Warning)가 자주 발생하게 된다.
(뭐 이전 버전에도 있었지만...)

[BCC32 Warning] formMain.cpp(35): W8057 Parameter 'Sender' is never used

이럴때 이런 메시지를 보고 싶지 않으면.. 다음과 같이 pragma 지시자를 사용하거나..

#pragma warn -8057

메뉴의 Project->Option(Shift+Ctrl+F11)에서
C++ Compliler->Warnings에서

W8057 PArameter is never used


선택을 해지해 주면 된다..

다른 경고 메시지도 이와 같이 선택을 해지하면 보지 않게 된다...
  • 카카오스토리
  • 트위터
  • 페이스북

'1.소프트웨어 이야기 > 00.VCL(C++ Builder, Delphi)' 카테고리의 다른 글

조합키를 사용법  (0) 2008.01.10
[팁]W8057이 보기 싫을때..  (0) 2008.01.10
[펌]VirtualTreeView 사용법 - 4  (0) 2008.01.03
[펌]VirtualTreeView 사용법 - 3  (0) 2008.01.03
Posted by 희파파 희자매(가희나희)아빠

트랙백

※ 스팸 트랙백 차단중 ...{ ? }

[펌]String과 char* 문자열을 동시에 사용할 수 있는 XString 클래스.

1.소프트웨어 이야기/09.ETC 2008. 1. 8. 10:59
출처 : http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=729

 폼에 메모장 하나 올려 놓고 아래 코드 붙여넣기 해서 실행하면 됩니다.

//---------------------------------------------------------------------------
// Cross String wrapper class : XString
//
//  C++빌더의 훌륭한 스트링 클래스 String은 char* 가 요구되는 곳에
//    stirng.c_str() 와 같이 c_str() 메소드를 사용해야 합니다.
//  조금 귀잖습니다.
//  그래서 String 과 같으면서 c_str() 메소드를 사용할 필요가 없이
//  자동으로 형변환이 되어 들어가는 스트링 클래스를 만들어 봤습니다.
//  String 과 char* 의 장점을 동시에 쓸수 있게 하는 것입니다.
//  원래 String 클래스를 상속받아 여기에 기능을 수정하면 간단한데,
//  String 클래스는 상속이 안됩니다. 그래서 간단한 레퍼 클래스인
//  크로스스트링 클래스를 만들었는데, 기본 문자열 스트링과 거의 사용법이 같습니다.
//  래퍼클래스로 약간의 사용법상 차이 외는 모든 것이 같습니다.
//
// Written by 김태성 (jsdkts@korea.com)

class XString
{
private:
    String    str;

public:
    XString()
    {
    }
    XString(char* s)
    {
        str = s;
    }
    XString(String& s)
    {
        str = s;
    }
    // String 이 쓰이는 곳에 바로 강제 형변환없이 사용하게 한다.
    operator String()
    {
        return str;
    }
    // char* 가 쓰이는 곳에 바로 강제 형변환없이 사용하게 한다.
    operator char*()
    {
        return str.c_str();
    }
    // 스트링 클래스 메소드를 직접 사용할때.
    String* operator ->()
    {
        return &str;
    }
    // 이것은 형을 String형으로 명확하게 하는 * 연산자.
    String& operator *()
    {
        return str;
    }
};
//---------------------------------------------------------------------------
//  String을 ~ 연산자를 통해 char* 를 바로 얻는 기법으로 c_str() 메소드를 안쓰게 해줍니다.

inline char* __fastcall operator ~(const AnsiString& s)
{
    return s.c_str();
}
//---------------------------------------------------------------------------


// test

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    XString  s = "이것은 문자열테스트입니다.";
    char buf[100];
    strcpy(buf, s);

    Memo1->Lines->Add( s );
    Memo1->Lines->Add( buf );

    // 이렇게 메소드를 사용할 수 있습니다.
    s->printf("[ %s ]", buf);
    Memo1->Lines->Add( s );

    // 대입을 받는 측은 자동형 설정이 안되므로 * 연산자로 강제로 형을 지정해야 한다.
    *s = s + " 하하하. " + " 호호호.";
    Memo1->Lines->Add( s );

    // 이런식으로도 메소드를 사용할 수 있습니다.
    (*s).printf("다음줄입니다. %d  ", 100);
    Memo1->Lines->Add( s );

    // String과 XString과 상호치환도 그냥 됩니다.
    String ss = "HoHo 또 다른 면입니다.";
    s = ss;
    Memo1->Lines->Add( s );

    // 이렇게 String 처럼 사용하는데 지장이 없습니다.
    ss = "흐흐... " + s + " 후후";
    Memo1->Lines->Add( ss );

    strcpy(s + 5, "나나나나나");
    Memo1->Lines->Add( s );

    // 첨자는 0부터라는 점에 String이 1부터라는 것과 다릅니다.
    // 이는 순수 char* 문자열과 같다고 보시면 됩니다.
    s[0] = 'A'; // ==    (*s)[1] = 'A'; <- String식으로 하려면
    s[2] = 'B';
    Memo1->Lines->Add( s );
    char ch = s[1];
    Memo1->Lines->Add( ch );
}
//---------------------------------------------------------------------------

이전 저의 ~ 오퍼레이터를 사용하는 String의 char* 변환 기법을 쓰거나
이번에 소개한 XString을 문자열을 보다 간편하게 제어하기 위해 사용할 수 있습니다.

String, XString, ~ 연산자, char* 문자열 등
마음에 드는 것 골라 골라 쓸수도 있습니다.


그리 중요한 것 같지 않은데 ㅡ,.ㅡ;;;
심심해서 만들어본 클래스입니다.
휘리릭~~~~
  • 카카오스토리
  • 트위터
  • 페이스북

'1.소프트웨어 이야기 > 09.ETC' 카테고리의 다른 글

Windows XP update 관련오류(KB898461)  (0) 2008.01.29
[펌]String과 char* 문자열을 동시에 사용할 수 있는 XString 클래스.  (0) 2008.01.08
[펌]응용 프로그램을 위한 최상의 사용자 환경을 만드는 방법  (0) 2007.12.26
XP의 숨겨진 60가지 기능  (0) 2007.12.19
Posted by 희파파 희자매(가희나희)아빠
c_str, String, 연산자, 연산자오버로딩, 형변환

트랙백

※ 스팸 트랙백 차단중 ...{ ? }

일상 2008.01.06~07

3.막찍사(사진 이야기)/00.집과 주변에서 2008. 1. 8. 07:46

012


  • 카카오스토리
  • 트위터
  • 페이스북

'3.막찍사(사진 이야기) > 00.집과 주변에서' 카테고리의 다른 글

일상...2008.1.10  (0) 2008.01.11
일상 2008.01.06~07  (0) 2008.01.08
일상 2008.01.03  (0) 2008.01.03
가희.. 자전거를 사다.. 그리고 타다..  (0) 2007.12.25
Posted by 희파파 희자매(가희나희)아빠
D80, Magic talkers, 가희, 나희

트랙백

※ 스팸 트랙백 차단중 ...{ ? }

일상 2008.01.03

3.막찍사(사진 이야기)/00.집과 주변에서 2008. 1. 3. 23:50
가희머리를 이쁘게(?) 묶은날... 이제 좀 여자애 같나요?
01234567891011
  • 카카오스토리
  • 트위터
  • 페이스북

'3.막찍사(사진 이야기) > 00.집과 주변에서' 카테고리의 다른 글

일상 2008.01.06~07  (0) 2008.01.08
일상 2008.01.03  (0) 2008.01.03
가희.. 자전거를 사다.. 그리고 타다..  (0) 2007.12.25
나희....  (0) 2007.12.10
Posted by 희파파 희자매(가희나희)아빠
D80, 가희, 나희, 동생, 언니, 일상

트랙백

※ 스팸 트랙백 차단중 ...{ ? }

[펌]VirtualTreeView 사용법 - 4

1.소프트웨어 이야기/00.VCL(C++ Builder, Delphi) 2008. 1. 3. 15:37
[출처] http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tutorial&no=69
 
안녕하세요.

VirtualTreeView는  소스가 델파이로 되어 있으면,
델파이나 BCB에서 사용가능한 형태의 콤포넌트로 제공되고 있습니다.

소스가 델파이다 보니  BCB에서 사용할때는  정보가 좀 부족한 면이 있습니다.

그래서 이 강좌를 시작한 이유기도 하구요 ^^

저도 처음 이 콤포넌트의 막강한 기능을 접하고는  감동이었지요.
그런데,  inline 에디터의 예제가 델파이로 되어 있어서  구현하려니 참 나감하더군요ㅡ.ㅡ

그러던중. VirtualTreeView 홈페이지 ( http://www.soft-gems.net/ ) 에 갔더니

BCB로 만들어진 inline 에이터 예제와 소스 샘플이 있더군요.

http://www.soft-gems.net/VirtualTreeview/
이 위치의
" IVTEditLink demo for BCB 5 "
이 예제를 받아 보시면 됩니다.

그런데, 이 예제를 받아 보면  실행은 되는데,  제대로 다 만들어 놓은 것은 아니더군요.
버그도 좀 있구요.

아무튼 이것을 바탕으로  수정및 업데이트 된  inline 에디터에 대해서 다루어 보겠습니다.


1.  inline 에디터 유닛

EditorUnit.cpp 와  EditorUnit.h 란  인라인 에디터 소스는  위에서 설명한  소스를 가져다가 제가 업데이트한 것입니다.
업데이트의 주 내용은 
   
    * 범용적으로 사용가능하도록 소스의 의존성 제거
    * 다수의 버그 수정

등 입니다.

이 소스도 최종본이라고 하기는 뭐하구요.  각 필요에 따라서 수정을 더 해 나아갸 합니다.
저도 제 필요에 따라서 조금씩 업데이트 하기 때문에,  아지 모든 기능이 동작하는 것은 아닙니다 ^^

EditorUnit 의 소스는 첨부파일을 보시구요.

EditorUnit.h  파일에 보시면,


이런 형 정의가 있는데요. TPropertyTyp 은 inline 에디터에서 사용할 에디팅 형식 입니다. ptNone --> 에이터를 사용하지 않음. ptEdit --> TEdit 형태의 에디터를 제공. ptCombo --> 콤포박스 형태의 에디터 제공 ptDate --> 날짜 선택 (TDateTimePicker) 에디터 제공 TPropertyData 은 VTV에서 한 셀(Cell) 에 해당하는 데이타의 형입니다. Node 나 Row 의 데이타가 아닙니다. 주의 하세요. 이 정도만 아시고, EditorUnit.cpp 와 EditorUnit.h 를 inline 에디터를 사용할 프로젝트에 추가 하시면 됩니다. 2. 데이타 구조 선언 이번 예제는 3번째 강좌에서 보여 드렸던 phonebook 예제에서 생일 컬럼을 하나더 추가한 형태로 만들어 보겠습니다. 이름, 전화번호, 성별, 생일 을 가지고 있는 것으로 만들어 보겠습니다. #include "EditorUnit.h" 데이타 구조를 선언하시 곳에 위와 같이 include를 추가해 주시구요. typedef struct tagPhonebook { TPropertyData Colunms[4]; // 0 - 이름, 1 - 전화번호, 2- 성별 , 3 - 생일 } structPhonebook; 데이타 선언은 위와 같이 합니다. Column이 4개 라서 4개짜리 배열로 만들었습니다. 3. VTV 의 기본 Events 구현 기본 Events는 이전에도 계속 말씀 드렸지만, OnGetNodeDataSize OnGetText 이구요. 이미지를 출력할 것이라면 OnGetImageIndex 까지 구현해 주시면 됩니다. 이번예제는 이미지는 없습니다 ^^ OnGetNodeDataSize 는 변경되는 것이 없지요 OnGetText는 배열을 사용하면서 소스가 더 간단해졌습니다^^ 4. VTV의 속성 변경 VTV가 처음 폼에 올려 놓으면 Column 0 만을 선택할 수 있습니다. 그러므로, Column 0을 제외한 다른 Column을 편집하기 위해서는 선택 모드를 변경해 주어야 합니다. TreeOptions -> SelectionOptions -> toExtendedFocus : true 이 값을 true로 해 주어야 각 컬럼별로 선택할 수가 있습니다. 5. inline 에디터 관련 Events 구현 inline 에디터를 구현하기 위해서는 최소 2개의 Event를 구현해 주서야 하는데요. OnCreateEditor : 각 셀에서 에디팅이 시작할 때 에디터를 생성해주는 시간을 제공합니다. OnEditing : 각 셀의 에디팅을 허용할 것인지 말것인지 결정합니다. OnCreateEditor 이벤트를 구현할때, 에디터의 형식이 ptCombo 일때와 아닐경우가 다른데요. ptCombo는 콤보박스 형태의 에디팅이 되기 때문에, 콤보박스에 보여질 데이타를 전달해 주어야 합니다. 그래서, __fastcall TPropertyEditLink(TVirtualStringTree* Tree, TVirtualNode* Node, int Column, TPropertyData* Data, TStringList *combolist); 생성자를 위의 것으로 사용하고, 콤보박스에 보여질 항목을 TStringList로 만들어서 전달해 주어야 합니다. 그외의 경우는 아래의 생성자를 이용하면 됩니다. __fastcall TPropertyEditLink(TVirtualStringTree* Tree, TVirtualNode* Node, int Column, TPropertyData* Data); 아래에 OnCreateEditor 이벤트를 구현한 예제가 있는데요. Column 2 에서만 ptCombo로 생성한 예제 입니다. OnCreateEditor 이벤트를 구현해 줍니다. 이 이벤트에 들어 오면, 노드의 데이타를 가져와서 각 컬럼에 해당하는 값 (pPhonebook->Colunms[Column])으로 TPropertyEditLink 클래스를 생성해 주구요. (이 클래스가 EditorUnit.cpp 에 있는 것입니다) PropertyLink->QueryInterface(__uuidof(IVTEditLink), (void**)EditLink); 를 이용해서, EditLink 파라미터를 채워주면 됩니다. OnEditing 이벤트에서 에이터를 허용할 셀을 알려 주는데요. pPhonebook->Colunms[Column].PropertyTyp 이 ptNone 가 아닌 경우만 Allowed 를 true로 넣어 주는 것입니다. 자 이제 모든 필요 이벤트는 다 만들었구요. 7. 데이타 넣기 데이타를 넣는 버튼을 하나 만들어서 그 버튼이 눌렸을때, 데이타를 넣어 주면 됩니다. 위 예에서 보시면, Columns 0 ~ 2 까지는 ptEdit 란 형태로 넣었구요. Column 3 만 ptDate를 넣었습니다. 실행해 보신 후에 각 셀은 편집은 F2를 누르시거나 마우스로 클릭하고 잠시 기다리면 편집모드로 들어 갑니다. 실행해서 편집해 보세요.
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


오늘 여기까지 합니다 ^^

아무쪼록  이글이 도움이 되길 바랍니다.

phonebook2(2).zip
  • 카카오스토리
  • 트위터
  • 페이스북

'1.소프트웨어 이야기 > 00.VCL(C++ Builder, Delphi)' 카테고리의 다른 글

[팁]W8057이 보기 싫을때..  (0) 2008.01.10
[펌]VirtualTreeView 사용법 - 4  (0) 2008.01.03
[펌]VirtualTreeView 사용법 - 3  (0) 2008.01.03
[펌]VirtualTreeView 사용법 - 2  (3) 2008.01.03
Posted by 희파파 희자매(가희나희)아빠

트랙백

※ 스팸 트랙백 차단중 ...{ ? }
이전페이지 다음페이지
블로그 이미지

잡다한 지식, 엉뚱한 생각들, 내 맘대로 사진, 프로그램 개발 이야기 등등을 저장하기 위해 만들어 놓은 개인 블로그입니다. 문의나 요청은 늦게라도 받겠으나 악플이나 욕설은 정중히 사양하겠습니다.

by 희자매(가희나희)아빠

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • Windows10 God Mode 만들기
  • 시작프로그램을 레지스트리에서 직⋯
  • 비트, HEXA 연산하기
  • VCL(C++ Builder, Delphi) 기본 색⋯ (1)
  • OCX 사용자가 강제로 등록하기..
  • 더 보기
  • 혹시 define 해 놓은 자료는 없을⋯
    XM ㆍ 01.12
  • 덕분에 잘 사용하고 있습니다.. 앞⋯
    TEST ㆍ 01.12
  • 저들은 이제 안봐야죠
    깜짝 ㆍ 2018
  • Global이란 클래스를 안 만드셔서⋯
    가희나희아빠 희자매(가희나희)아빠 ㆍ 2018
  • 프로그래밍 초보자라서 왜그런지⋯
    작은쌀톨 ㆍ 2016

태그

  • C++ Builder
  • 가희
  • 주진우
  • OpenCV
  • 태양광
  • 프라모델
  • D80
  • Nikon
  • 아이튠즈
  • RAD STUDIO
  • halcon
  • MFC
  • DSLR
  • RAD
  • 나는 꼼수다
  • 금연
  • iOS5
  • 아카데미
  • LabView
  • 김어준
  • VCL
  • dll
  • 나꼼수
  • 아이폰
  • 이명박
  • 나희
  • K1A1
  • MVT
  • 아이폰4
  • 2MB

글 보관함


  • 2020/12
    (1)

  • 2019/12
    (1)

  • 2018/08
    (1)
«   2021/01   »
일 월 화 수 목 금 토
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

링크

카테고리

My Life (433)
0.일상다반사 (156)
00.사는 이야기 (56)
01.내 생각.. (28)
09.다른이 생각 (26)
10.취미활동 (15)
17.종이공작 (2)
11.갖고 싶어.. (8)
20.집꾸미기 (10)
70.돈 (2)
99.금연 메모 (6)
1.소프트웨어 이야기 (175)
00.VCL(C++ Builder, Delphi) (52)
01.MFC(Visual Studio) (22)
02.Vision(Image Processing) (19)
03.LabView&CVI (4)
04.Apple (18)
09.ETC (37)
10.번역 작업 (7)
devkyy.My Develope Program (14)
3.막찍사(사진 이야기) (61)
00.집과 주변에서 (20)
01.집이 아닌곳 (41)
07.개인사진 (0)
7.자료수집 (3)
00.Idea (0)
01.Thinking (1)
07.Money (1)
9.리뷰&이벤트 (38)
00.이벤트 참여 (5)
01.제품 리뷰 (33)

카운터

Total
404,455
Today
14
Yesterday
52
방명록 : 관리자 : 글쓰기
희자매(가희나희)아빠's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

김용유닷컴

잡다한 지식, 엉뚱한 생각들, 내 맘대로 사진, 프로그램 개발 이야기 등등을 저장하기 위해 만들어 놓은 개인 블로그입니다. 문의나 요청은 늦게라도 받겠으나 악플이나 욕설은 정중히 사양하겠습니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • My Life (433)
    • 0.일상다반사 (156)
      • 00.사는 이야기 (56)
      • 01.내 생각.. (28)
      • 09.다른이 생각 (26)
      • 10.취미활동 (15)
      • 17.종이공작 (2)
      • 11.갖고 싶어.. (8)
      • 20.집꾸미기 (10)
      • 70.돈 (2)
      • 99.금연 메모 (6)
    • 1.소프트웨어 이야기 (175)
      • 00.VCL(C++ Builder, Delphi) (52)
      • 01.MFC(Visual Studio) (22)
      • 02.Vision(Image Processing) (19)
      • 03.LabView&CVI (4)
      • 04.Apple (18)
      • 09.ETC (37)
      • 10.번역 작업 (7)
      • devkyy.My Develope Program (14)
    • 3.막찍사(사진 이야기) (61)
      • 00.집과 주변에서 (20)
      • 01.집이 아닌곳 (41)
      • 07.개인사진 (0)
    • 7.자료수집 (3)
      • 00.Idea (0)
      • 01.Thinking (1)
      • 07.Money (1)
    • 9.리뷰&이벤트 (38)
      • 00.이벤트 참여 (5)
      • 01.제품 리뷰 (33)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바