BSTR -> char 배열
char szData[200];
BSTR decodeData;
USES_CONVERSION;
strcpy(szData,OLE2A(decodeData));
char 배열 -> BSTR
USES_CONVERSION;
char* szData = "char array";
BSTR sbstr;
sbstr = SysAllocString(A2W(szData));
BSTR -> char 배열
USES_CONVERSION;
strcpy(szData,OLE2A(decodeData));
char 배열 -> BSTR
USES_CONVERSION;
char* szData = "char array";
BSTR sbstr;
sbstr = SysAllocString(A2W(szData));
출처
http://adobe.bloter.net/tt/adobe/23
http://www.adobe.com/kr/devnet/flash/articles/flex_flasher_05.html
준비물
ant 1.7 (apache-ant-1.7.0-bin.zip)
: http://ant.apache.org/bindownload.cgi
Flex Ant Task (flex_ant_tasks_022607.zip)
: http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks
1. ant 설치
apache-ant-1.7.0-bin.zip 파일을 압축을 출고
apache-ant-1.7.0\bin 폴더를 path에 추가 해줍니다.
2. F;ex Ant Tash 설치
flex_ant_tasks_022607.zip 특정 폴더에 압축을 풀고
build.xml 파일에 taskdef 태그에 jar 경로를 지정해준다.
예) <taskdef resource="flexTasks.tasks" classpath="D:/dev.flex/lib/flexTasks.jar" />
3. build.xml 파일 작성
<project name="Flex Ant Tasks" default="compile" basedir=".">
<property name="FLEX_HOME" value="C:/Program Files/Adobe/Flex Builder 2/Flex SDK 2" />
<property name="swfFile" value="${basedir}/HelloWorld.swf" />
<property name="main_appliation" value="${basedir}/HelloWorld.mxml" />
<taskdef resource="flexTasks.tasks" classpath="D:/dev.flex/lib/flexTasks.jar" />
<target name="compile">
<echo>Building ${swfFile}</echo>
<mxmlc
file="${main_appliation}"
output="${swfFile}"
actionscript-file-encoding="UTF-8"
keep-generated-actionscript="true"
incremental="true"
>
</mxmlc>
</target>
</project>
PHP 다운로드
http://www.php.net/downloads.php
php-5.2.3-Win32.zip
php-5.2.3-Win32.zip 파일을 받아
c:/php 폴더에 풀고 paht에 추가 합니다.
httpp.conf 수정
ScriptAlias /php5/ "C:/php/"
Action application/x-httpd-php "/php5/php-cgi.exe"
AddType application/x-httpd-php .php .php3 .inc .phtml .html .htm
AddType application/x-httpd-php-source .phps
테스트 페이지 작성
<?php
phpinfo();
?>
참조
http://flexdocs.kr/docs/flex2/langref/mx/events/DataGridEvent.html
DataGird에서 Item 선택시 호출되는 이벤트 처리 입니다.
DataGird 속성은 반듯이 editable="true" 되어 있어야 해당 이벤트가 호출 됩니다.
DataGridEvent 객체
Property | Value |
---|---|
bubbles |
false |
cancelable |
false |
columnIndex |
0부터 시작 / DataGrid의 열의 인덱스 |
currentTarget |
이벤트를 처리하는 event listener를 정의하는 object |
dataField |
null |
itemRenderer |
편집중의 아이템에 대응하는 아이템 에디터 인스턴스 |
localX |
NaN |
reason |
null |
rowIndex |
0부터 시작 / DataGrid의 행의 인덱스 |
target |
이벤트를 dispatch한 object |
Type |
DataGridEvent.ITEM_FOCUS_IN |
java 소스를 Delphi로 변환 프로그램을 간단하게 만들어 보았습니다.
원래 필요로 했던 것은 사칙연산이나 제어문 정도라서 일주일 투자해서 간단하게 만들어 보았습니다.
JavaCC을 이용했으며, jj 파일을 제외하고 Java 소스를 첨부합니다.
사용법:
java -jar java2delphi.jar Formatter.java
위와 같이 명령을 하시면 Formatter.pas의 결과물을 얻을 수 있습니다.
아래에 일부 변환된 예를 입니다.
return s1 + s2;
}
begin
result := s1+s2;
end;------------------------------------------------------------------
if (s1.equalsIgnoreCase("select")) {
return true;
} else {
return false;
}
} function TFormatter.checkSELECT(s1 : String): boolean;
begin if ((UpperCase(s1)='SELECT')) then
begin
result := true;
end else begin
result := false;
end;
end;------------------------------------------------------------------
int sum = 0;
for (int i=0; i<100; i++)
sum = sum + 1;
}
var
i : integer;
sum : integer;
begin
sum:=0;
i:=0;
while (i<100) do begin
sum:=sum+1;
inc(i);
end;
end;------------------------------------------------------------------
private void doEscape2Space() {
for (aD = 1; aD <= queryTokenCount; aD++) {
if (isTokenQuoteLiterals[aD])
continue;
if (queryToken[aD].equals("\t")
|| queryToken[aD].equals("\f")
|| queryToken[aD].equals("\r")
|| queryToken[aD].equals("\b"))
queryToken[aD] = " "; if (queryToken[aD].equals("\r"))
queryToken[aD] = "\\n";
} }
procedure TFormatter.doEscape2Space();
begin
aD:=1;
while (aD<=queryTokenCount) do begin if (isTokenQuoteLiterals[aD]) then
begin
continue;
end; if ((queryToken[aD]=#9)
or (queryToken[aD]=#12)
or (queryToken[aD]=#13)
or (queryToken[aD]=#8)) then
begin
queryToken[aD]:=' ';
end; if ((queryToken[aD]=#13)) then
begin
queryToken[aD]:='\\n';
end;
inc(aD);
end;
end;