본문 바로가기

Delphi Tip246

indy idhttp 이용해서 파일 업로드 indy idhttp 이용해서 파일 업로드 IdMultipartFormData 을 uses절에 추가할것 ============================================== uses IdMultipartFormData; procedure TForm1.Button1Click(Sender: TObject); var UploadFile: TIdMultiPartFormDataStream; Outputs: TStringStream; begin if OpenDialog1.Execute then begin UploadFile := TIdMultiPartFormDataStream.Create; Outputs := TStringStream.Create(''); try IdHTTP.Request.Conten.. 2021. 11. 19.
웹페이지 FillInForm 웹페이지 FillInForm procedure FillInForm(WB: ShDocVW.TWebbrowser; IDoc1: IHTMLDocument2; Document: Variant; OptionSelectedName: string); var IEFields: array[1..2] of string; var IEFieldsCounter: Integer; i,j,m: Integer; ovElements: OleVariant; begin IEFields[1] := 'file_list'; if Pos('frmBoard', Document.Title) 0 then while WB.ReadyState READYSTATE_COMPLETE do Application.ProcessMessages; for m := 0.. 2021. 11. 18.
웹브라저를 통한 사이트HTML 옵션문 추가방법 웹브라저를 통한 사이트HTML 옵션문 추가방법 var Option: OleVariant; begin tOption := WebBrowser.OleObject.document.createElement('option'); tOption.value:='DD'; tOption.text:='text'; doc.file_list.add(tOption); end; html 문법과 동일 2021. 11. 17.
Delphi WebBrowser Delphi WebBrowser 이 글은 제가 IE스파이를 만들면서 MSDN을 뒤져 C소스를 델파이로 바꾸고, 여기저기 기웃거리며 하나씩 주워 모은 자료입니다. 이걸 참고 하셔서 WebBrowser 컨트롤을 쓰는데 조금이라도 도움이 되길 바랍니다. 글을 메모장에서 쓰다보니 보기좋게 꾸지미 못하는점을 쪼금 이해해 주세요. 1. 기본적인 사항 모든 웹브라우저 컴퍼넌트는 IWebBrowser2 라는 인터페이스를 사용합니다. 델파이로만들던 VC로 만들던 VB로 만들던지 암튼간에 무조건 저 인터페이스를 사용합니다. 델파이의 TWebBrowser라는 컴퍼넌트 역시 MS의 웹브라우저 컴포넌트를 포장해서 쓰는관계로 IWebBrowser2 인터페이스를 가지고 있습니다. 바로 OleObject 퍼로퍼티가 그 놈입니다. I.. 2021. 11. 16.
네트워크(인터넷) 연결 유무 (물리적) 네트워크(인터넷) 연결 유무 (물리적) 네트워크의 연결 유무 체크하는 함수 입니다. ​ 좀 더 자세한 내용은 MSDN등을 참조하시면 나옵니다. Windows Me 버전 이상, Explorer 5.0 이상이 있어야 한다는 군요... 또한 아시겠지만 sensapi.dll 도... const NETWORK_ALIVE_LAN = $1; NETWORK_ALIVE_WAN = $2; NETWORK_ALIVE_AOL = $4; function IsNetworkAlive(var lpdwFlags: DWORD): HRESULT; stdcall; external 'SENSAPI.DLL'; . . . . var dRet : DWORD; begin if IsNetworkAlive(dRet) = 0 then ShowMessage.. 2021. 11. 15.
IdHTTP 이용하여 파일 다운로드 IdHTTP 이용하여 파일 다운로드 procedure 이미지파일_저장(웹경로, 로컬경로: String); var IdHTTP1: TIdHTTP; mStream: TMemoryStream; begin mStream:=TMemoryStream.Create; IdHTTP1:=TIdHTTP.Create; try // 1. 스트림으로 받아 IdHTTP1.Get(웹경로, mStream); // 2. 로컬디스크에 저장 mStream.SaveToFile(로컬경로); finally FreeAndNil(IdHTTP1); FreeAndNil(mStream); end; end; 2021. 11. 12.
델파이 DSPack MP4 델파이 DSPack MP4 delphi dspack mp4 델파이 컴포넌트중 영상을 재생하고 컨트롤할수있는 컴포넌트 DSPack 이라는놈이 있다~! 허나 데모판을 보면 모두 AVI나 모 처음듣는 확장자를 볼수도있지만 모두 영상 관련 확장자이다!!! 간단하게 설명하겠다~! Filtergraph와 videowindow를 폼에 놓고 filtergraph를 video window에 연결하고 renderfile을 호출했다... FFDShow가 이미 설치되어 있고 작동하지 않을 때 자동으로 ffdshow를 선택하도록 필터 그래프를 설정하는 방법을 알려주실 수 있습니까 ? 그래프 빌더는 RenderFile메소드에 전달하는 파일을 렌더링하기 위한 적절한 필터를 선택해야 합니다 . 그것이 내가 언급한 자동적인 방법입니다.. 2021. 11. 11.
델파이 콤보박스 key 값 설정 델파이 콤보박스 key 값 설정 콤보박스 이름 : Cbo_Adjust 콤보박스 속성 : ItemHeight : 17 Style : csOwnerDrawFixed --OnDrawItem Handler--- with (Control as TComboBox) do begin Canvas.Font.Size := 10; Canvas.FillRect (Rect); Canvas.TextOut (Rect.Left + 2 , Rect.Top + 2 , Items.Values [Items.Names[Index]]); end; --COMBOBOX 데이터 넣을 때--- --- 불필요할 수도 있음 --- Cbo_Adjust.Items.Values ['*'] := FieldByName ('CODE_DESC').asString; .. 2021. 11. 10.
TAdvColumnGrid 팁 TAdvColumnGrid 팁 1. AdvColumnGrid 컬럼 타입 체크 형식으로 변경 AdvColumnGrid.AddCheckBoxColumn(colindex); 2. AdvColumnGrid Footer 생성 AdvColumnGrid.FloatingFooter.ColumnCalc[0] := acCount; AdvColumnGrid.FloatingFooter.ColumnCalc[1] := acCUSTOM; AdvColumnGrid.FloatingFooter.ColumnCalc[2] := acCUSTOM; AdvColumnGrid.FloatingFooter.ColumnCalc[3] := acSUM; AdvColumnGrid.FloatingFooter.ColumnCalc[4] := acNONE; 3.A.. 2021. 11. 9.
델파이 XE10.2에 SAPI 컴포넌트 등록 방법 델파이 XE10.2에 SAPI 컴포넌트 등록 방법 1. 델파이 메뉴에서 "Component -> Import Component" 클릭. ​ 2. "Import a Type Libray" 선택 후 [Next] 클릭. 3. "Microsoft Speech Object Library" 를 선택하고, 버전과 GUID를 확인한다. [Next] 클릭. 4. "Palette Page"에서 "ActiveX"를 선택하고 [Next] 클릭. 5. "Install to New Package"를 선택 후 [Next] 클릭. 6. 우측의 "…"을 클릭. 7. dpk 파일이 저장될 폴더를 선택하고 "파일 이름"란에 Package name 를 입력한다. [저장] 클릭. 8. "Description" 명을 입력하고 [Finish] .. 2021. 11. 8.
델파이 TChart 마커 이동하기 델파이 TChart 마커 이동하기 procedure TFrm_Mng_014.Chart_PriceAfterDraw(Sender: TObject); function ChartSeriesValueIndexByXValue(ASeries: TChartSeries; AXValue: Double): Integer; var i: Integer; LastValue: Double; dMinDiff, dMaxDiff: Double; begin Result := -1; try if ASeries.XValues.Count > 0 then begin LastValue := ASeries.XValue[ASeries.XValues.Count - 1]; if AXValue > LastValue then begin Result := A.. 2021. 11. 4.
델파이 TChart 설명 델파이 TChart 설명 1. TChart 중요 요소 (1) Panel(= TChart) - 차트 배경. 색이나 바깥 테두리와 간격등을 설정 가능. - TChart.Color, TChart.MarginLeft등 (2) TChart.Title - 차트 제목. 기본 중앙 상단에 표시되며 위치, 글꼴등 변경 가능. (3) TChart.Legend - 범례. 기본 버전은 기능이 미약하여 거의 사용하지 않고 필요기능(보이기/감추기, 이름/색상변경등)을 추가하여 따로 만들어서 사용하는것이 좋음. (4) TChart.Left Axis, TChart.BottomAxis - 차트 축. Left(기본 Y축), Bottom(기본 X축) 외에 Right, Top등이 존재. - (Property) Automatic, Autom.. 2021. 11. 3.
[Controls] EDIT에 숫자만 입력받기 [Controls] EDIT에 숫자만 입력받기 TEdit를 비롯하여 EDIT 컨트롤에 숫자만 입력받도록 하는 방법은? 여러가지가 있겠지만 간단히 GWL_STYLE을 변경해주므로 가능합니다. 가끔 필요한데 생각이 나지 않아서 찾아야 하는데.. 찾는 수고를 덜기 위해서 여기에 .... @C++Builder에서 void __fastcall TDLG_MANAGE::FormCreate(TObject *Sender) { SetWindowLong(Edit1->Handle,GWL_STYLE,GetWindowLong(Edit1->Handle,GWL_STYLE)|ES_NUMBER); } @ Delphi 에서 procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLon.. 2021. 11. 2.
TXMLDocument를 이용한 XML로딩방법 TXMLDocument를 이용한 XML로딩방법 procedure TForm1.Button1Click(Sender: TObject); Var XMLDoc : TXMLDocument; ChildNode : IXMLNode; I, J , N : Integer; begin XMLDoc := TXMLDocument.Create(Application); XMLDoc.LoadFromFile('C:\Test.Xml'); XMLDoc.Active := True; if XMLDoc.ChildNodes.First = nil then Begin Exit; End; For I := 0 To XMLDoc.DocumentElement.ChildNodes.count - 1 Do Begin ChildNode := XMLDoc.Docu.. 2021. 11. 1.
TList 활용하기 TList활용하기 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TMyData=record SAW_CODE:String; FName:String; end; MyData=^TMyData; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TC.. 2021. 10. 29.
TEdit 다음 포커스 이동하기 TEdit 다음 포커스 이동하기 if key = #13 then SelectNext(Activecontrol, True, True); 2021. 10. 28.
TEdit 숫자만 입력받기 TEdit 숫자만 입력받기 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin // #8 is Backspace if not (Key in [#8, '0'..'9']) then begin ShowMessage('Invalid key'); // Discard the key Key := #0; end; end; If you also want numbers with a decimal fraction, you must allow a POINT or a COMMA, but only once. For an international version that looks at the correct decimal separator, he code co.. 2021. 10. 27.
TdateEdit 날짜 요일 구하기 TdateEdit 날짜 요일 구하기 Web.HTTPApp uses추가 DateToLongDateStr(DateEdit1.Date); 이전버전은 DayofWeek 사용 0일,1월,2화,3수,4목,5금,6토,7일 2021. 10. 26.
델파이 RGB 와 HSL 유틸 유닛 델파이 RGB 와 HSL 유틸 유닛 HSL의 의미 HSL은 컬러를 이루는 3가지 요소인 Hue (색), Saturation (채도), Lightness (명도)를 직접 조절하는 메뉴입니다. 물론 포토샵에서도 Hue / Saturation 모드를 통해 컬러를 조절할 수 있지만 라이트룸은 좀 더 직관적인 메뉴를 제공합니다. 또한 라이트룸에서는 모든 컬러를 동시에 조절하는 것이 아니라 컬러별로 미세하게 위의 요소들을 조절할 수 있기 때문에 보다 전문적인 컬러 조절을 하기 위해선 꼭 알아야 하는 메뉴입니다. unit RGBHSLUtils; interface uses Windows, Graphics, Math, Scanlines; var //set these variables to your needs, e.g. .. 2021. 10. 22.
판넬 이미지파일 저장 판넬 이미지파일 저장 TMyPanel = class(TPanel) public property Canvas; end; procedure TForm1.Button1Click(Sender: TObject); var B: TBitmap; begin B:=TBitmap.Create; B.Width:=Panel1.Width; B.Height:=Panel1.Height; B.Canvas.CopyRect(Rect(0,0,B.Width,B.Height), TMyPanel(Panel1).Canvas, Rect(0,0,B.Width,B.Height)); B.SaveToFile('panel.bmp'); B.Free; end; Panel1 - your Panel; 2021. 10. 21.