DataSnap REST 에서 한글(utf8)을 사용하려고 Template의 html의 헤더에
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
을 포함하여도 한글이 제대로 표현되지 않습니다.
예전에 WebBroker 에서 한글처리하기 위하여서는
해당 엑션에서
Response.ContentType := 'text/html; charset=utf-8';
Response.ContentEncoding
:= 'utf-8';
지정하여 하였었습니다.
DataSnap Rest 에서는
WebModuleUnit1.pas 에서
procedure TWebModule1.WebModuleBeforeDispatch(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.ContentType := 'text/html; charset=utf-8'; // 추가
Response.ContentEncoding := 'utf-8'; //추가
if FServerFunctionInvokerAction <> nil then
FServerFunctionInvokerAction.Enabled := AllowServerFunctionInvoker;
end;
하여서 해결하였습니다.
2013년 1월 27일 일요일
2013년 1월 24일 목요일
windows7 에서 엑셀 2007 xls adoquery로 읽기
windows7 에서 엑셀 2007 xls adoquery로 읽기위하여는
폼에 AdoQuery를 올려 놓고 ConnectionString 에
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Administrator\Desktop\Example2.xls;Extended Properties=Excel 12.0;
와 같이 입력하면 됩니다.
단, 엑셀에서 데이터 베이스로 설정 할 영역을 이름을 주어야 합니다.
그런후 Sql 에 Select * from name where 1
와 같은 방법으로 접근하면 됩니다.
폼에 AdoQuery를 올려 놓고 ConnectionString 에
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Administrator\Desktop\Example2.xls;Extended Properties=Excel 12.0;
와 같이 입력하면 됩니다.
단, 엑셀에서 데이터 베이스로 설정 할 영역을 이름을 주어야 합니다.
그런후 Sql 에 Select * from name where 1
와 같은 방법으로 접근하면 됩니다.
2013년 1월 18일 금요일
특정 폴더 찾기
uses WinApi.Shlobj, ActiveX;
procedure TForm2.Button1Click(Sender: TObject);
var
PIDL: PItemIDList;
// Path: String;
Path: PChar;
Folder: integer;
AMalloc: IMalloc;
begin
Folder:= CSIDL_INTERNET_CACHE;
// SetLength(Path,MAX_PATH);
Path:= StrAlloc(Max_Path);
SHGetSpecialFolderLocation(Application.Handle, Folder, PIDL);
// if SHGetPathFromIDList(PIDL, pChar(Path)) then
if SHGetPathFromIDList(PIDL, Path) then
Edit1.Text:= Path;
SHGetMalloc(AMalloc);
StrDispose(Path);
end;
Path 변수를 String 과 PChar 2가지의 방법으로 구현하여 보았습니다.
당연 String 으로 할 경우에는 StrDispose 가 필요없습니다.
ShellListView 에서 필터 구현하기
ShellListView 컴포넌트는 델파이 샘플프로그램에 있으니 설치하면 됩니다.
저의 경우에는
C:\Users\Public\Documents\RAD Studio 9.0 Samples\Delphi\VCL\ShellControls
에 있습니다.
폼에 FilterComboBox 와 ShellListView 컴포넌트를 올려 놓습니다.
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.FileCtrl, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.Shell.ShellCtrls;
type
TForm2 = class(TForm)
ShellListView1: TShellListView;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
FilterComboBox1: TFilterComboBox;
procedure ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
var CanAdd: Boolean);
procedure FilterComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FilterComboBox1Change(Sender: TObject);
begin
ShellListView1.Refresh;
end;
procedure TForm2.ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
var CanAdd: Boolean);
var xFilterExt, xExt : string;
begin
if FilterComboBox1.Mask <> '*.*' then begin
xFilterExt:= ExtractFileExt(FilterComboBox1.Mask);
xExt:= ExtractFileExt(AFolder.PathName);
if (CompareText(xExt, xFilterExt) = 0) or AFolder.IsFolder then
CanAdd:= True
else
CanAdd:= False;
end;
end;
end.
저의 경우에는
C:\Users\Public\Documents\RAD Studio 9.0 Samples\Delphi\VCL\ShellControls
에 있습니다.
폼에 FilterComboBox 와 ShellListView 컴포넌트를 올려 놓습니다.
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.FileCtrl, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.Shell.ShellCtrls;
type
TForm2 = class(TForm)
ShellListView1: TShellListView;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
FilterComboBox1: TFilterComboBox;
procedure ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
var CanAdd: Boolean);
procedure FilterComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FilterComboBox1Change(Sender: TObject);
begin
ShellListView1.Refresh;
end;
procedure TForm2.ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
var CanAdd: Boolean);
var xFilterExt, xExt : string;
begin
if FilterComboBox1.Mask <> '*.*' then begin
xFilterExt:= ExtractFileExt(FilterComboBox1.Mask);
xExt:= ExtractFileExt(AFolder.PathName);
if (CompareText(xExt, xFilterExt) = 0) or AFolder.IsFolder then
CanAdd:= True
else
CanAdd:= False;
end;
end;
end.
피드 구독하기:
글 (Atom)
델파이 12.1이냐 11.3이냐?
델파이가 12.1이 나왔습니다. 혹시 11.3버전의 커뮤니티버전이 필요하시는분이 있을 수 있을 것 같아 https://altd.embarcadero.com/.../RADStudio_11_3_esd_28... 와 이것 찾느랴 엄청고생함.
-
윈도우10에 있는 음성 녹음기는 간단하게 녹음 할 때 간편하고 좋다. 곰 녹음기를 사용하면 오늘기준으로 CPU 점유율이 35% 이상 올라가 맥의 팬이 돌아간다. 윈10의 음성녹음기는 좋은 데 저장 폴더가 디폴트로 되어 있어 사용하기 불편하다. ...
-
클라이언트가 HTTP프로토콜을 이용해서 서버에 무언가를 전달할 때 Get 이나 Post가 사용됩니다. GET은 주소줄에 값이 ?뒤에 쌍으로 이어붙고 여러개일 경우에는 & 으로 반복하고, POST는 숨겨져서(body안에) 보내집니다. GET...
-
일단은 Python 사이트에가서 dmg 파일을 다운받아 설치합니다. m1 프로세서일경우에는 아래에 있는 파일이겠죠. 터미널을 열어 파이썬의 위치를 확인합니다. 파이썬3의 위치로 이동합니다. [cd /usr/local/bin] 파인더를 엽니다. [...