미분류

  • c# DataGridView 잔기술들 3

    행 옮기기 행을 옮길 때 DataGridViewRowCollection.InsertCopy를 쓰면 새 행이 만들어져 들어간다. 아래와 같이 인스턴스를 복사한 뒤 현재의 것을 없애야 한다. 데이터 소스 바인드하지 않고 이용하기 간단한 테이블을 만들 때에는 굳이 데이터 소스를 만들어서 연결할 필요가 없다. 칼럼 iterate하기 DataColumn을 쓰지 않고 DataGridViewColumn을 쓰는 것에 유의한다. DataColumn은 DataTable의 칼럼이다. 디자이너 오류 디자이너로 칼럼을 만들 수 있지만…

  • c# DataGridView 잔기술들 2

    행과 열 고정/해제하기 여러 행/열들의 하나를 고정하면 그 위/왼쪽의 것들까지 고정된다. 고정된 여러 행/열들 가운데 하나를 해제하면 그 아래/오른쪽의 것들까지 해제된다. 칼럼 헤더를 여러 줄로 출력하기 DataGridView.ColumnHeadersDefaultCellSytle.Layout.WrapMode는 작동하지 않는다. 버그 같다. ColumnHeader.Text가 길어서 Column.Width를 벗어나도 그냥 잘린다. ColumnHeader.Text 사이에 줄 바꿈 문자 ‘\n’을 넣으면 여러 줄로 출력된다. 마지막 행으로 스크롤하기 행이 추가되면 그 내용을 보기…

  • c# DataGridView 잔기술들 1

    멀티뜨레드로 셀 값 쓰기 메인 뜨레드에서 DataGridView를 만들고 메인 뜨레드 아닌 뜨레드들에서 DataGridView의 셀 값을 쓸 때에는 델리게이트를 이용하지 않아도 된다. 행을 추가할 때에는 델리게이트를 써야 한다. 아래의 코드는 실행되지 않는다.

  • c# 메떠드 아규먼트로 밸류/레퍼런스 타입을 쓸 때의 차이

    세 경우로 나눌 수 있다. 먼저 용어들을 정리한다. 호출을 하는 것은 caller이고 호출되는 것은 callee이다. 들어가는 값은 argument이고 인자라고도 한다. 받는 값은 parameter이고 매개변수라고도 한다. 한자어가 더 어렵게 느껴져서 그냥 영어를 쓴다. 패러미터를 수정해도 아규먼트가 변경되지 않는 경우 밸류 타입 아규먼트를 그냥 넘긴 경우다. 메떠드가 호출되면 아규먼트를 패러미터로 복사하여 이들 둘은 서로 다른 게 된다….

  • c# WndProc으로 윈도우즈 메시지 제어하기

    WndProc 메소드 WNDPROC은 win32 api에 들어 있는 콜백 함수이며 .네트의 Control.WndProc 메써드로 wrap되어 있다. 다른 환경에서 이용되는 메써드 등을 자신의 환경에서 이용할 수 있게 가공하는 걸 wrap한다고 한다. ‘포장한다’는 뜻이다. 콜백 함수란 이벤트 실행 함수를 말한다. callback은 ‘답신’을 뜻한다. 내가 아무개에게 전화를 했는데 그가 받으면 용건을 말하고 끊으면 된다. 그러나 전화를 했는데 그가 없고 다른…

  • 델파이 파이어댁 메모리 테이블 tFDMemTable

    메모리 테이블 데이터베이스 서버를 써야 할 정도로 데이터의 크기가 크지 않다면 메모리 테이블이 좋은 대안이다. 그러나 메모리 테이블을 이용하는 건 서버를 이용하는 거보다 편할 뿐 성능은 다른 문제다. 이름 그대로 데이터를 메모리에서만 이용하고 마는 경우는 드물고 메모리 테이블을 이용해도 파일로 저장하고 읽고를 하게 마련이다. 이 부분에서 메모리 테이블을 이용하는 것과 데이터베이스 서버를 이용하는 것에 원칙적인…

  • 경기 침체 덕에 드러난 esg라는 망상

    예상보다 빨리 드러난 민낯 세계 경제는 2022년이 되자마자 나빠지기 시작했다. 불황에는 무능과 비효율을 도태시키는 미덕이 있다. 이러한 옥석 가리기는 수익을 제대로 내지 못하는 회사를 망하게 하여 경제를 더 건강하게 만들기도 하는 동시에 허황된 관념의 맨살을 내보이게 하기도 한다. 우크라이나-러시아 전쟁으로 연료 가격이 오르면서 지금 환경을 외치는 사람은 거의 없다. 화석 연료도 없어서 못 쓴다. 여전히…

  • 델파이 cng를 이용한 암호화와 복호화

    윈도우즈를 설치하면 CryptoAPI와 CNGcryptography api: next generation라는 암호화/복호화cryptography 라이브러리를 이용할 수 있다. CryptoAPI는 오래 전에 나온 거로 crypt32.dll을 이용하면 되고 cng는 그 이름에서 알 수 있듯이 차세대 라이브러리로 마이크로소프트가 현재 밀고 있는 거다. bcrypt.dll과 ncrypt.dll을 이용하면 되며 이들 모두 windows/system32 폴더에 있다. cng의 bcrypt는 바이너리 암복호화에 이용되고 ncrypt는 서버와 클라이언트 사이의 메시지 암복호화에 이용된다. cng는 다양한…

  • 낙태를 둘러싼 논쟁들과 로 대 웨이드 판결의 의미

    미국의 법 체계 우리나라에서 법원이 판결을 하면 비슷한 쟁점을 다투는 하급심의 재판들을 사실적으로만 기속하지만 미국에서는 일반적으로 기속한다. 우리나라에서 법원의 판결은 원칙적으로 해당 사건에 대해서만 효력을 지닌다. 2심의 판결을 대법원이 부정하여 다시 2심으로 판단하라고 내려보내도 2심에서는 다시 대법원의 판결과 다른 원래의 판결을 고집할 수 있다. 그러나 이런 일은 논리적으로 가능할 뿐 사실적으로는 일어나지 않는다. 미국에서는 다르다….