목록Programming (138)
C#,Delphi,Oracle,MSSQL 개발자블로그
uses DateUtils, System procedure TForm1.Button10Click(Sender: TObject); var dte1,dte2:TDateTime; begin dte1 := StrToDate('2019-09-24'); dte2 := StrToDate('2019-09-30'); ShowMessage(IntToStr(DaysBetween(dte2, dte1))); end; DaysBetween(TDateTime,TDateTime)는 두 날짜사이의 차를 일수로 구한다. 앞과 뒤 파라미터 중 어느 값이 작고 큼에 관계없이 양수를 반환한다.
레지스트리를 지울 땐 델파이를 모두 닫고 진행한다. procedure ClearRecentlyOpenedProjects; var iCount : Integer; Reg : TRegistry; sList : TStrings; begin sList := TStringList.Create; Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey('\Software\Borland\BDS\5.0\Closed Projects', True) then Reg.GetValueNames(sList); if sList.Count > 0 then begin for iCount := 0 to Pred(sList.Count) do Reg.Dele..
ColCount : Hide 컬럼을 읽지 않는다. Columns.Count : Hide컬럼까지 읽는다.
FormatFloat('##,###,##0', value); 리턴 값은 string이며, value는 실수 타입이다.
프로그래스바의 동작방식은, 루프를돌며 1씩 증가시켜주는 것이다. 프로그래스바의 처음(Position)과 끝(Max)을 각각 정하고, 어떠한 작업이 끝날 때 마다(루프가 한번 돌 때 마다) Position을 1씩 증가시키면 된다. procedure TForm1.Button4Click(Sender: TObject); var iRow : Integer; begin prg.Position := 0; prg.Max := 10000; for iRow := 0 to 10000 - 1 do begin prg.Position := prg.Position +1; end; end;
C#의 Split 가능과 같은 기능을 하는 함수이다. function TForm1.Split(from, delimiter: string): TStringList; var P, dl, fl: integer; begin Result := TStringList.Create; dl := Length(delimiter); fl := Length(from); repeat P := Pos(delimiter, from); if P = 0 then P := fl + dl; Result.Add(copy(from, 1, P - 1)); from := copy(from, P + dl, fl); fl := Length(from); until fl = 0; end;
콤보박스 사용 시 콤보박스 자체의 크기는 작지만, 내부 항목의 길이는 넓은 경우가 있다. 이 때, 방법은 콤보박스 자체의 크기를 늘리면 되지만, 콤보박스가 올라가는 폼에서 공간이 협소해 콤보박스 자체의 크기를 늘리기 어려울 때가 있다. 이 때, 콤보박스의 크기는 그대로 두고, 내부 아이템의 크기만 늘리는 방법이다. 적용 전과 후의 차이는 다음 캡쳐와 같다. 소스는 다음과 같다. procedure TForm1.ComboBox_AutoWidth(const theComboBox: TAdvComboBox); const HORIZONTAL_PADDING = 15; var itemsFullWidth: integer; idx: integer; itemWidth: integer; begin itemsFullWidth ..
Exit : 현재 Procedure를 빠져나와 원래의 루틴으로 복귀하여 일을 처리한다. Abort : 현재 시점에서 모든 루틴을 종료한다. Ex. procedure TForm1.Button2Click(Sender: TObject); begin Calc; ShowMessage('abc'); end; procedure TForm1.Calc; var str1,str2 : Integer; begin str1 := StrToInt(Edit1.Text); str2 := StrToInt(Edit2.Text); Edit3.Text := IntToStr(str1+str2); Abort; 또는 Exit; ~ ~ ~ end; 위의 예에서 Exit를 호출하면, ShowMessage('abc')가 실행되지만, Abort를 호출..
dll파일을 경로에 재대로 일치시키고 컴파일에러는 없는상태에서 실행하면 해당 dll파일을 찾지 못하는 경우가 있다. 이때는 c:\Windows\SysWOW64에 dll이없는 경우 발생한다. 해당 dll을 여기에 복사하면 깔끔하게 해결된다. 출처 : https://m.blog.naver.com/PostView.nhn?blogId=downkhg&logNo=90136718581&proxyReferer=http%3A%2F%2Fwww.google.com%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D2%26cad%3Drja%26uact%3D8%26ved%3D2ahUKEwj8yIu1oOfeAhUY148KHd_VAlsQFjABegQICBAB%26u..
procedure TForm1.FormCreate(Sender: TObject); var l: DWORD; begin // hide minimize and maximise buttons l := GetWindowLong(Self.Handle, GWL_STYLE); l := l and not(WS_MINIMIZEBOX); l := l and not(WS_MAXIMIZEBOX); l := SetWindowLong(Self.Handle, GWL_STYLE, l); end; 출처 : https://stackoverflow.com/questions/2316286/how-to-disable-maximize-button-in-delphi-program