프로그램/기타 2013. 3. 21. 10:13

섭씨 화씨 온도 변환

섭씨 Celsius ℃"

화씨 Fahrenheit "℉";

 

F = 9/5 C + 32 (F = Fahrenheit, C = Celsius)

 

1. 수식
섭씨를 화씨로 변환할 시
섭씨온도 X 1.8 +32


화씨를 섭씨로 변환할 시
(화씨온도 - 32) / 1.8

프로그램/C# 2013. 3. 19. 22:54

크로스 스레드 해결법

출처: http://ksh6438.blog.me/20168654516

네이버 와 여기 작성자 동일

 

C#으로 개발하면서 스레드를 사용해야 할 상황이 있는데

 

InvalidOperationException 크로스 스레드 작업이 잘못되었습니다.

 

컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스되었습니다.

 

스레드에서 폼에 있는 예를들면 textbox.txt = "ABC";로 수정하는경우 위와 같은 에러가 발생한다.

 

해당 에러를 무시해도 된다고 생각하면 CheckForIllegalCrossThreadCalls = false;

 

 구문을 삽입하면 해당에러는 무시된다.

 

하지만 컨트롤 상태를 조작하는 스레드가 2개 이상 존재하는 경우 경합, 교착 상태 등의

 

스레드 관련 버그가 발생할 수 있어서 delegate를 활용해 invoke처리해야 한다.

#region label2

delegate void DsetLabel(string data);




private void SetLabel2(string data)

{

            if (label2.InvokeRequired)

            {

                DsetLabel call = new DsetLabel(SetLabel2);

                this.Invoke(call, data);

            }

            else

                label2.Text = data;

}

#endregion

위와 같이 코드를 작성하고 SetLabel2("종료"); 와 같은 형식으로 스레드 내에서 호출하면 크로스 스레드 관련 에러가 발생하지 않는다.

'프로그램 > C#' 카테고리의 다른 글

C# 윈도우7 관리자 권한 얻기  (0) 2013.03.25
C# 리스트뷰 체크된 아이템 얻기  (0) 2013.03.25
C# 화면 캡쳐  (0) 2013.03.12
C# MDI 폼안에 폼 띵우기  (0) 2013.03.12
C# 폼 투명하게 하기  (0) 2013.03.12
프로그램/이클립스 2013. 3. 15. 01:33

안드로이드 logcat 로그캣 콘솔창으로 보기

1. Win + R / cmd
2. cmd /u
3. chcp 65001
4. 콘솔창의 속성에서 폰트,를 Lucida Console 로 변경해준다.
5. adb logcat


 

 

프로그램/Android 2013. 3. 15. 01:30

안드로이드 종료시 캐시 삭제

 @Override
    public void onDestroy() {
        super.onDestroy();
        clearApplicationCache(null);
    }

프로그램/Android 2013. 3. 15. 01:29

안드로이드 단축키

(4) 코드 어시스트 Ctrl + Space
for, while 자동완성
 
(8) 소스 코드 네비게이션
정의로 바로가기 : F3
다시 돌아오기 : Alt + <- , 다시 정의보기 : Alt + ->
Ctrl 누르고 있으면 각 요소가 하이퍼링크 모양으로 바뀜 : 이때 마우스 클릭시 이동
해당라인 이동 : Ctrl + L

 

(11) 소스비교
우클릭 > Compare with > Local History
Replace With > Local History
Restore from Local HIstory

 

(17)  소스편집
원하는 라인으로 이동 : Ctrl + L
한 라인 삭제 : Ctrl + D
주석처리 : Ctrl + Shift + /     --->   형태 : /*  */  형태(xml) : <!-- -->
                Ctrl + /    ----> 형태 : //


자동 들여쓰기 정리 : Ctrl + I
자동으로 임포트하기 : Ctrl + Shift + O
소스창 전체화면 전환 : Ctrl + M
 
ALT + SHIFT + Z = 블록설정 후 try-catch 문 덮어서 만들어주기

(22) 단축키호출
Ctrl + Shift + O : 소스에 필요한 패키지를 자동으로 Import 시키기
Ctrl + Shift + F : 소스코드 자동 정리
Ctrl + Shift + G : 특정 메써드나 필드를 Reference하고 있는 곳을 찾는다.
Ctrl + shift + B : 현재커서위치에 Break point설정/해제

Ctrl + I : 소스 깔끔 정리(인덴트 중심의 자동구문정리)
Ctrl + space : 어휘의 자동완성(Content Assistance)
Ctrl + Q : 마지막 편집위치로 가기
Ctrl + L : 특정줄번호로 가기
Ctrl + D : 한줄삭제
 
 

 

프로그램/Android 2013. 3. 15. 01:06

트랙백Trackback이 뭔가요?

트랙백 상대방의 글에 댓글을 등록하는 방법중 하나 입니다.

방법은 간단 합니다.

 

상대방의 글밑에 트랙백이나 역인글을 눌러 주소를 복사 합니다.

그리고 자신의 블로그에 글을쓰고 트랙백을 눌러 위에서 복사한 주소를 붙여 넣기 하면 상대방의 글밑에 자신의 글이 댓글로 달립니다.

 

 

이하 네이버 백과

트랙백

[ Trackback ]

  • 약어

    TB

다른 사람의 글을 읽고 그 글에 직접 댓글을 올리는 대신에 자신의 블로그에 글을 올리고 글의 일정 부분이 다른 사람의 댓글로 보이도록 트랙백 핑을 보내는 것. 작성 방법은 우선 댓글을 달고 싶은 타인의 글에서 트랙백 주소를 복사한 후 자신의 블로그의 제목 부분에 있는 트랙백(관련 글) 버튼을 클릭하여 열린 팝업 창에 주소를 붙여 넣고 보내기(submit) 버튼을 클릭한다. 트랙백 글은 자신의 사이트에 있기 때문에 내용을 길게 하거나 동영상을 넣고, 표현을 수정하는 등 마음대로 편집할 수 있고, 그 글과 관련되어 다른 여러 글들을 함께 소개할 수 있는 장점이 있다. 트랙백은 기본적으로 서로 다른 웹 사이트 간의 알림(notification)을 가능하게 해 주는 약속이므로 다양한 용도로 활용될 수 있다.

프로그램/Android 2013. 3. 14. 14:05

안드로이드 엑티비티, 엑티비티가 아닌곳에 클릭 리스너 넣기

 v = new View(context) {
   @Override
   protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    drawRect(canvas);
   }
  };


  v.setBackgroundColor(color.black);
  v.setOnTouchListener(touchListener);
  LayoutParams source = new LayoutParams(LayoutParams.FILL_PARENT,
    LayoutParams.FILL_PARENT);
  v.setX(0);
  v.setY(0);

 

 

,,,,,,,,,,,,,,,,,,,,,,,,,

 

OnTouchListener touchListener = new OnTouchListener() {
  public boolean onTouch(View v, MotionEvent event) {
   TouchMotion(event);
   return true;
  }
 };

프로그램/기타 2013. 3. 12. 22:20

코드 하이라이트(SyntaxHighlighter)

 .

 

Scripts, Styles 폴더 내의 파일들을 모두 업로드
티스토리 관리 페이지 - HTML/CSS 편집 - 파일 업로드 - 추가

 

아래의 코드를 </body> 앞에 붙여넣습니다.
(티스토리 관리 페이지 - HTML/CSS 편집 - skin.html)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<!-- ★★★ 코드 시작 부분 by Taking ★★★ -->
<link rel=stylesheet type="text⁄css" href=".⁄images⁄shCore.css">
<!-- 이 부분이 테마 수정 부분입니다 -->
<link rel=stylesheet type="text⁄css" href=".⁄images⁄shThemeDefault.css">
<!--
테마 종류 리스트
shThemeDefault
shThemeDjango
shThemeEclipse
shThemeEmacs
shThemeFadeToGrey
shThemeMDUItra
shThemeMidnight
shThemeRDark
-->
<script type="text⁄javascript" src=".⁄images⁄shCore.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shLegacy.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushAppleScript.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushAS3.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushBash.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushColdFusion.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushCpp.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushCSharp.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushCss.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushDelphi.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushDiff.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushErlang.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushGroovy.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushJava.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushJavaFX.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushJScript.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushPerl.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushPhp.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushPlain.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushPowerShell.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushPython.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushRuby.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushSass.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushScala.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushSql.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushVb.js"><⁄script>
<script type="text⁄javascript" src=".⁄images⁄shBrushXml.js"><⁄script>
<script type=text⁄javascript>
⁄* SyntaxHighlighter 콘픽 상세설정 부분 *⁄
SyntaxHighlighter.defaults['toolbar'] = false; ⁄⁄ 툴바 설정 (기본값 True)
SyntaxHighlighter.defaults['gutter'] = true; ⁄⁄ 라인 번호 설정 (기본값 True)
SyntaxHighlighter.defaults['tab-size'] = 4; ⁄⁄ 탭 사이즈 설정 (기본값 4)
SyntaxHighlighter.defaults['first-line'] = 1; ⁄⁄ 라인 시작 숫자 (기본값 1)
SyntaxHighlighter.defaults['auto-links'] = true; ⁄⁄ 링크 설정 (기본값 true)
SyntaxHighlighter.all();
<⁄script>
<!-- ★★★ 코드 끝 부분 by Taking ★★★ -->

예제)
<pre class="brush:c">

#include <stdio.h>
int main(void){
printf("hello world\n");
return 0;
}
</pre>

1
2
3
4
5
6
#include <stdio.h>
int main(void){
printf("hello world\n");
return 0;
}
</stdio.h>

다른 종류의 문법또한 brush aliases 를 바꾸시면 적용됩니다.




'SyntaxHighlighter'에서 지원하는 문법


http://my.taking.kr/26

프로그램/Android 2013. 3. 12. 15:33

안드로이드 다이얼로그 AlertDialog.Builder

  
AlertDialog.Builder mDialogBuilder = new AlertDialog.Builder(Activity_this);  
AlertDialog mDialoga = mDialogBuilder.create();

=============================

//호출 dialog(MainActivity.this , "main 호출\n");

//생성public static void dialog(Context Activity_this, String message) {    
if (mDialog == null) {   
mDialog = new AlertDialog.Builder(Activity_this);     
mDialog.setMessage(message);   
mDialog.setPositiveButton("ok", new OnClickListener() {    
@Override    
public void onClick(DialogInterface dialog, int which) {     
// TODO 자동 생성된 메소드 스텁     
strDialog = "";    
}
  });
    mDialog.setMessage(message);  
}  
mDialog.show(); 
}

==================================================


public static AlertDialog mDialog----
if (mDialog != null)
    mDialog.dismiss();
       AlertDialog.Builder mDialogBuilder = new AlertDialog.Builder(Activity_this);   
mDialogBuilder.setPositiveButton("ok", new OnClickListener() {
    @Override   
 public void onClick(DialogInterface dialog, int which) {   
  // TODO 자동 생성된 메소드 스텁   
  strDialog = "";
    }
   });
   mDialog = mDialogBuilder.create();   
//mDialog.setMessage(message);
      strDialog += message + "\n=========================\n";  
 mDialog.setMessage(strDialog);     mDialog.show();


프로그램/Android 2013. 3. 12. 13:22

안드로이드 에러 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

 

위 에러 발생이유는  다이얼로그 생성시 context를 getApplicationContext()로 넣어서 발생하는 문제이다.

해결 방법은 context에 activityName.this를 넣어서 사용하면 된다.