일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- rank
- MSSQL
- delphi 10.3
- HTML
- COMMIT
- templates
- Django
- 델파이
- Visual Studio
- github
- queryset
- blog
- 중복제거
- python3
- GIT
- get_object_or_404
- declare
- anaconda3
- Push
- Delphi
- PyCharm
- c#
- pyhcarm
- pythonanywhere
- dbadvgrid
- python 3.7
- advColumnGrid
- TMS
- hackerrank
- Today
- Total
목록delphi 10.3 (14)
DevHyun
외부업체와 연동 할때 외부업체 프로그램이 실행되어 있는지 확인 후 그 프로그램으로 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 대리 박대리 [사원별 잔여 연차 리스트] - ..
TWebbrowser 컴포넌트에서 웹페이지를 호출 한 뒤 해당 페이지를 핸들링해보자! 1. Navigate 함수를 통해서 웹페이지 접속 procedure Tform1.FormCreate(Sender: TObject); begin Webbrowser1.Navigate('https://www.000.com '); end; 2. 버튼 클릭시 특정 행동(value 값 전달, focus, click 등등) procedure Tform1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant); begin WebBrowser1.OleObject.Document.all.item('AAA').Value := e..
tms그리드에서 숫자 format 변경은 생각보다 간단하다! property만 바꿔주면 됨! 금액관련 그리드라 천단위(1,000) 콤마가 필요한 상황! Column그리드에선 코딩으로 FormatFloat('#,##0','값')으로 컬럼 자체에 넣어주면 되는데, DB그리드에선 불가능해서 방법을 찾던 도중 property를 살펴봤더니 다음과 같은 property를 찾을 수 있었다. 숫자 컬럼에서 천단위 콤마(1,000)가 필요하다면 FloatFormat 이라는 propery에다가 '%.0n' 을 입력하자! 코딩으로 DBAdvGrid1.FloatFormat := '%.0n' 도 가능!
예를들어 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;