반응형 전체 글510 JPEG/GIF/BMP/PNG/PCX등 이미지 관련 정보를 간단히 얻기 JPEG/GIF/BMP/PNG/PCX등의 이미지를 이미지 컴포넌트를 사용하지 않고 간단히 이미지 정보를 얻을 수 있음 다음과같은 정보를 얻을 수 있습니다 - 이미지 크기(width, heigjht) - 이미지 컬러수(Depth, 8, 24 ..) - 이미지 유형(BMP, JPEG, GIF...) - 파일크기 다음 유닛을 Uses 절에 추가후 사용 사용 예) ImageInfo := TDCImageInfo.Create; ImageInfo.ReadFile(AFileName); if ImageInfo.Depth=8 then begin ... end; ImageInfo.free; . Unit : DCImageInfo.pas {*************************************************.. 2023. 2. 14. TBitmap32는 Thread내에서 Memory Leak이 발생 해법 이 문제는 TBitmap32에 비트맵(TBitmap) 기반 Assign하는 동작이 스레드 내에서 안전하지 않기 때문으로 증상은 할당후 여타 작업을 수행 후에 TBitmap 객체를 해제 해도 메모리에서 제거되지 않는 문제임. 이 메모리 누수 현상은 유레카 로그에서도 메모리 릭으로 검출되지 않음. 해결책은 다음과 같습니다. GR32.pas 소스를 수정해야 함 procedure TCustomBitmap32.Assign(Source: TPersistent); 함수내에 서브 함수중 Bitmap을 이용한 Assign 부분을 수정 procedure AssignFromBitmap(TargetBitmap: TCustomBitmap32; SrcBmp: TBitmap); var TransparentColor: TColor3.. 2023. 2. 14. DrawText를 이용한 WrapedText의 높이 구하기 DrawText를 이용하여 고정된 Width를 갖는 TEXTBOX에 DRAW했을 경우에 해당 TEXTBOX의 높이를 알 수 있다. 아래 샘플코드는 DrawText를 이용하여 Wraped된 TEXT를 출력합니다. procedure TForm1.Button1Click(Sender: TObject); var r: Trect; s: String; begin R := Rect(0,0, 300, 100); s := 'WordWrapTextOut(TargetCanvas: TCanvas; var x, y: integer; S: string; maxwidth, lineheight: integer);'; DrawText(Canvas.Handle, PChar(s), length(s), R, DT_WORDBREAK or DT.. 2023. 2. 14. 듀얼 모니터 인식 및 사용하기 1. 개요 듀얼 모니터를 사용할 경우에 마스터, 서브 모니터를 인식하여 원하는 모니터에 윈도우 폼을 표시해 보도록 하자 2. 방법 - 듀얼 모니터 인식 방법 screen.MonitorCount : 모니터 갯수 리턴 - 두번째 모니터에 현재 폼을 전체 화면으로 만들기 form1.top := screen.monitors[1].top; form1.left := screen.monitors[1].left; form1.WindowStates = wsMaximized; 2023. 2. 14. 이전 1 ··· 116 117 118 119 120 121 122 ··· 128 다음 반응형