일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GIT
- pyhcarm
- python 3.7
- 백준
- dbadvgrid
- Django
- c#
- github
- MSSQL
- anaconda3
- queryset
- PyCharm
- advColumnGrid
- 중복제거
- rank
- blog
- COMMIT
- declare
- python3
- 델파이
- delphi 10.3
- Delphi
- TMS
- get_object_or_404
- templates
- pythonanywhere
- Push
- Visual Studio
- HTML
- hackerrank
- Today
- Total
목록Delphi (13)
DevHyun
[Delphi에서의 thread] 1) thread의 begin ~ end 블록 사이에서 UI를 조작(변경, 수정, 삭제등)할때는 Syncronize를 이용한다. 2) 다른 thread와 동시에 같은 자원(변수, 클래스등)을 공유(동시에 읽거나 쓰는 행위, 포인터를 참조하는 행위)하지 않는다. 3) thread와 유사한 형식인 델파이 기본 타이머의 경우 윈도우 이벤트 방식으로 구현되므로 정확도가 떨어지고(윈도우컨디션에 따라 100~500ms 이하 작동 불규칙) 메인UI(메인쓰레드)가 멈추지 않고 작업 불가능 하다 [Suspend와 Resume] -> Thread를 잠시 멈추고 다시 시작함 -> TThread는 Thread 강제종료 기능을 제공하고 있지 않음 -> Suspend가 호출되는 순간 Thread..
외부업체와 연동 할때 외부업체 프로그램이 실행되어 있는지 확인 후 그 프로그램으로 sendmessage를 전송할때 활용했던 방법. procedure Process32List(Slist: TStringList; Flg:Boolean=True); var Process32: TProcessEntry32; Process32_: LPPROCESSENTRY32; SHandle: THandle; // the handle of the Windows object Next: BOOL; begin Process32.dwSize := SizeOf(TProcessEntry32); SHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); if Flg then begin if Pr..
그리드 내 검색이라기 보다는 db그리드와 연결된 query 컴포넌트에서 내가 원하는 값에다가 커서를 둔다는 개념으로 이해를 하였음! 'Query Component Name'.Locate('Column Item Name', 'Query Component Name'.FieldByName('Field Name').AsString, [loCaseInsensitive]); - 검색 방법 [loCaseInsensitive] - Key fields and key values are matched without regard to case. [loPartialKey] - Key values can include only part of the matching key field value; for example, 'HAM'..
procedure Tform1.button1Click(Sender: TObject); var str1: string; tPos : TPoint; tp : integer; begin str1 := ''; tPos.X := 0; tPos.Y := 1; tp := 'AdvColumnGrid Name'.Find(tPos, str1 , [fnMatchStart]).Y; if tp > 0 then 'AdvColumnGrid Name'.Row := tp; end; - 검색 방법은 여러가지가 있는듯? { fnMatchCase, fnMatchFull, fnMatchRegular,fnDirectionLeftRight, fnMatchStart, fnFindInCurrentRow, fnFindInCurrentCol,fnInc..
advcolumngrid property 셋팅을 아래와 같이 진행 procedure TForm1.AdvColumnGrid1GetFormat(Sender: TObject; ACol: Integer; var AStyle: TSortStyle; var aPrefix, aSuffix: string); begin if ACol in [ 2,3,4] then // col number( 2번 3번 4번 컬럼만 금액순으로 정렬) AStyle := ssFinancial; // 금액순으로 정렬 end;
*작업환경 - Delphi 10.3 - MSSQL - FastReport 6.0 *사용 컴포넌트 - frxReport - frxDBDataset - AdoQuery - AdoTable - DataSource - AdoConnection : 위 컴포넌트들을 동적으로 생성해도 상관없음! 예시 ) 개발팀 팀원별 2020년 잔여 연차 리스트 뽑아보자! 1. 필요한 데이터 확인 - 잔여 연차 소모 독려를 위하여 개발팀 팀원들의 2020년 잔여 연차리스트가 필요 : 사원별 잔여 연차 리스트 테이블, 사원 정보 테이블(편의상 정규화 X) - 각 사원들은 고유한 사번이 존재 [사원 정보] - Master 사번 직책 이름 1234 팀장 김팀장 5678 과장 송과장 91011 대리 박대리 [사원별 잔여 연차 리스트] - ..
예를들어 C:\TEMP 폴더가 있으면 C:\TEMP 폴더에 log.txt 파일을 생성하여 '로그 로그 로그'를 작성하기 만약 i/o Error가 난다면 입력할수있는 글자수가 초과되었을 수도 있음! procedure TForm1.Button1Click(Sender: TObejct); var dir : string; // 경로 txt : TextFile; // 텍스트파일 begin //if Not DirectoryExists('경로') then if Not DirectoryExists('C:\TEMP') then begin //CreateDir('경로'); CreateDir('C:\TEMP'); end; //dir := '텍스트 파일 명을 포함한 경로'; dir := 'C:\TEMP\log.txt'; // ..
예를들어 C:\TEMP\TEMP.ZIP 파일을 D:\TEST\로 이동하고 싶을 때, (잘라내기, 원본파일 삭제) C:\TEMP\TEMP.ZIP 파일을 삭제하고 싶을 때, C:\TEMP\TEMP.ZIP파일을 D:\TEMP\로 복사하고 싶을 때(복사, 원본파일 유지)는 아래와 같이 사용! Procecure TForm1.Button1Click(Sender: TObject); begin //MoveFile(PChar('원본 파일의 경로'), PChar('이동하고자하는 파일의 경로')); MoveFile(PChar('C:\TEMP\TEMP.ZIP'), PChar('D:\TEST\TEMP.ZIP')); //DeleteFile(PChar('삭제하고자하는 파일의 경로')); DeleteFile(PChar('C:\TEM..
예를들어 C:\TEMP Directory가 있으면 제거, 없으면 생성하는 작업을 한다면? Procecure TForm1.Button1Click(Sender: TObject); begin //if DirectoryExists('확인하고자 하는 경로') then if DirectoryExists('C:\TEMP') then begin //RemoveDirectory('경로'); RemoveDirectory('C:\TEMP'); end else begin //CreateDir('경로'); CreateDir('C:\TEMP'); end; end;
* Delphi XE2 버전 이후 버전에서만 System.Zip 사용 가능! 이전 버전에서는 상용 컴포넌트(유료)를 사용해야 함 예를들어 C:\TEMP 폴더를 C:\TEMP.zip으로 압축하고 싶을때는 다음과 같이 사용! 파일 자체로만 압축은 안되는듯? 조금 번거롭지만 폴더만 압축가능한 것 같다. uses ... , System.Zip procedure TForm1.Button1Click(Sender: TObject); begin //TZipFile.ZipDirectoryContents('생성할 압축파일 명을 포함한 경로', '압축 대상 폴더 경로'); TZipFile.zipDirectoryContents('C:\TEMP.zip','C:\TEMP'); end;