TMS 의 TAdvStringGrid 에서 LoadFromCSV 메소드를 사용하면 csv 파일을 불러 올 수 있습니다.
Grid 의 Column 과 Row 는 csv 데이터 항목 수에 맞게 자동으로 세팅 됩니다.
컬럼 헤드 클릭시 Sorting 명령을 수행 하기 위해서 아래와 같이 설정 힙니다.
AdvStringGrid1.SortSettings.Show := TRUE;
Sorting 관련해서 다양한 옵션들이 제공 됩니다. 상세 기능은 세부 메뉴얼을 참고 하시기 바랍니다.
Grid Column 의 헤드 타이틀 항목을 클릭하여 soting 하기 위해서는 다음의 3가지 이벤트 메소드가 활용 됩니다.
dosort 항목을 TRUE 로 지정하면 Sorting이 가능해지며 아래 코드는 0 번 Column 은 클릭 Disable 됨을 의미 합니다.
dosort := acol > 0;
procedure TMvForm.Button1Click(Sender:TObject);
begin
AdvStringGrid1.LoadFromCSV('c:\temp\cdata.csv');AdvStringGrid1.SortSettings.Show:= TRUE;AdvStringGrid1.ColWidths[2]:=100;
end;
procedure TMvForm.AdvStringGrid1CanSort(Sender:TObject;ACol:Integer; var DoSort:Boolean);
begin
dosort := acol >0;Cursor:= crHourGlass;
end;
procedure TMvForm.AdvStringGrid1ClickSort(Sender:TObject;ACol:Integer);
begin
Cursor:= crDefault;
end;
procedure TMvForm.AdvStringGrid1GetFormat(Sender:TObject;ACol:Integer; var AStyle:TSortStyle; var aPrefix, aSuffix: string);
begin
case acol of
1:AStyle:= ssAlphabetic;// ssAlphanocase;2:AStyle:= ssNumeric;3:AStyle:= ssNumeric;4:AStyle:= ssDate;
end;
end;
네이버에서 제공하는 다양한 OPEN API 중 활용도가 놓은 Papago 번역 서비스의 활용법을 소개 합니다.
사용환경은 Rad Studio 11 이며 Post 호출 방식입니다.
REST API를 이용한 사용법을 알면 다른 여러가지 OPEN API도 같은 방식으로 사용이 가능 합니다.
1. https://developers.naver.com/main/ 네이버 개발자 사이트에서 파파고 서비스를 선택하여 어플리케이션을 등록하고 Client ID 와 Client Secret 키를 발급 받습니다. 테스트를 위해서는 어플리케이션 이름과 Android Package (또는 iOS) 명을 임의로 지정해도 됩니다. 향후 정식 서비스에서는 실제 사용하는 패키지명을 등록 하면 됩니다.
2. Rad Studio 에서 새로운 FMX 프로젝트를 생성하고 아래 그림과 같이 화면을 생성하고 TNetHTTPRequest 와 TNetHTTPClient 컴포넌트를 생성 합니다. 이때 TNetHTTPRequest 에 연결된 Client 항목을 TNetHTTPClient 로 지정 합니다.
3. 아래 소스를 참고 하여 빌드 하면 파파고 서비스를 호출하여 사용 가능 합니다.
번역 버튼을 클릭하면 파파고 서비스를 호출하게되고 NetHTTPRequest1의 OnRequestCompleted 메소드에서 결과값을 받아 옵니다.
NetHTTPClient1.CustomHeaders 에 본인이 발급받은 Cient ID 와 키값을 입력하고
sParam.Add( 'text=' + Edit1.Text ); 의 Edit1.Text 번역하고자 하는 내용을 입력합니다.
기타 옵션은 네이버 개발자 가이드를 참고 하시면 됩니다.
procedure TForm1.Button1Click(Sender: TObject); var sParam : TStringList; sURL : string; begin sURL := 'https://openapi.naver.com/v1/papago/n2mt';
procedure TForm1.NetHTTPRequest1RequestCompleted(const Sender: TObject; const AResponse: IHTTPResponse); begin Memo2.Lines.Clear; Memo2.Lines.Add( AResponse.ContentAsString() ); // 응답받은 전체 Json 데이터
Memo1.Lines.Clear; Memo1.Lines.Add( Response_To_GetPapagoData( AResponse.ContentAsString() ) ); // 번역된 내용 end;
//-------------------------------------------------------------------------------- function TForm1.Response_To_GetPapagoData( rData : string ) : string; var jSONValue : TJSONValue; begin