delphi484 앱 개발을 위해서 꼭 알아야할 코틀린 문법 3가지 앱 개발을 위해서 꼭 알아야할 코틀린 문법 3가지 package com.MonoSoft.SayHello import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { val TAG = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_.. 2022. 7. 5. 로그 활용하기 로그 활용하기 package com.MonoSoft.SayHello import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { val TAG = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) buttonLog.set.. 2022. 6. 17. 코틀린 기본 문법 5 - 기타기능 코틀린 기본 문법 5 - 기타기능 //******************************* 확장 함수 //쉽게 기존 클래스에 함수를 추가할수 있다 //확장함수를 추가할 클래스에 점을 찍고 함수이름 작성 //확장 함수 내부에서는 이 객를 this로 접근할수 있다 //이러한 객체를 리시버 객체라고 함 fun Int.isEven() = this % 2 == 0 val aa = 5 val bb = 6 println(aa.isEven()) println(bb.isEven()) //******************************* 형변환 //숫자형 자료형끼리는 to자료형() 메서드를 사용하여 형변환 가능 val a = 10L val b = 20 val c = a.toInt() val d = b.toDou.. 2022. 6. 14. 실행 종류 시 SetThreadContext failed 오류 해결법 실행 종류 시 SetThreadContext failed 오류 해결법 델파이 2009 버전 설치 후 기본 프로젝트 생성 후 실행한다음 종료 후 아래 같은 메세지 오류가 나오면 bds.exe - bordbk105N.dll Assertion failure:"(!"SetThreadContext failed")" in ..\win32src\thread32.cpp at line 403 Continue execution? 다음과 같은 해결법으로 해결해보쟈! 1. Close Delphi 2. Locate bordbk120N.dll (C:\Program Files (x86)\CodeGear\RAD Studio\6.0\bin) 3. Make a backup of the library (just in case). 4. O.. 2022. 5. 18. delphi32.$$$ 파일 delphi32.dro 파일명으로 변경 에러 delphi32.$$$ 파일 delphi32.dro 파일명으로 변경 에러 관리자 권한으로 실행 2022. 5. 13. vcl60.bpl 에러 vcl60.bpl 에러 볼란드사의 C++ builder로 컴파일 후 다른 컴퓨터에서 그 실행 파일을 그대로 실행하다 보면, vcl60.bpl이 없다는 메시지창을 보게 될 수 있다. 이때 해결 방법은 다음과 같다. 1. Project Option > Package tag > Build with runtime package의 체크 제거 2. Project Option > Link tag > Use dynamic RTL의 체크 제거 3. 재컴파일 여기서. *.bpl이란 Borland Package Library의 약자로 window의 dll과 같은 것이다. 옵션에서 위의 두가지를 풀어주면 동적이 아닌, 정적으로 컴파일을 행해 사용한 bpl이 실행파일에 같이 들어가게 된다. 그 대신 실행파일의 용량은 늘어난다는.. 2022. 5. 12. TWebBrowser에서 script에러 메세지 제거 TWebBrowser에서 script에러 메세지 제거 javaScript에러가 난다면 해당 web페이지에 script 에러가 있어서 아닐까요? HTML이나 javaScript는 잘 몰라서 정확하게는 뭐라 말씀 못드리겠구요 대게 다음과 같이하면 뜨지 않더군요 TWebBrowser의 Property에 Silent 라는게 있는데 이놈을 true로 하면 뜨지 않습니다. EmbededWB에서도 비슷한게 있는데 잘 기억이 안나네요 2022. 5. 11. 한글조합창 문제 해결 한글조합창 문제 해결 constructor TmyLIB.Create; begin // 그리드에서 한글 처리 Application.OnMessage := AppMessage; ..... end; procedure TmyLIB.AppMessage(var Msg: TMsg; var Handled: Boolean); var lead: integer; IMC: HIMC; pt : TPoint; rct: TRect; tCF : tagCompositionForm; begin // 그리드에서만 처리 if screen.ActiveControl is TtsGrid then begin // 한글 메시지 처리 if (Msg.message = WM_IME_COMPOSITION) or (Msg.message = WM_CHAR) .. 2022. 5. 10. Delphi 4~7을 감염시키는 바이러스 Delphi 4~7을 감염시키는 바이러스 조금 전에 델마당의 아래 글과 뉴스 기사로부터 알게되었는데.. Delphi 4, 5, 6, 7 네 버전을 감염시키는 바이러스가 유행하고 있습니다. 개발SW로 전파되는 '피라미드 바이러스' 발견 에스지어드밴텍, 델파이 개발자들 주의 당부 http://itnews.inews24.com/php/news_view.php?g_serial=436361&g_menu=020200 그리고 바이러스체이서의 개발사인 에스지어드밴택에서 자사 사이트에 올린 공지 내용. http://www.viruschaser.com/main/customer/VCNotice_Dt.jsp?page=1&no=3448&vno=162¬iceType=A 사실 이 회사에서 발견한 것은 아니고 해외에서 .. 2022. 5. 2. EH 그리드에서 한글문제 해결 EH 그리드에서 한글문제 해결 // interface use 절에 imm을 추가합니다. uses imm; // 그리드클래스의 protected 절에 다음과 같이 이벤트추가 합니다. procedure WMIme_Composition(var msg:TMessage); message WM_IME_COMPOSITION; implementation // 이벤트구현 procedure TMyStringGrid.WMIme_Composition(var msg: TMessage); var imc: HImc; buff: array [0..3] of Char; len: integer; begin if (msg.lParam and GCS_COMPSTR) 0 then begin imc := ImmGetContext(Handle).. 2022. 4. 28. CooltrayIcon으로 만든 프로그램이 실행중일때 윈도우종료가 안되요? FormCloseQuery(Sender: TObject; var CanClose: Boolean) CooltrayIcon으로 만든 프로그램이 실행중일때 윈도우종료가 안되? FormCloseQuery(Sender: TObject; var CanClose: Boolean) private { Private declarations } {Detecting Windows Shutdown To detect Windows Shutdown, you must trap WM_EndSession message. These steps should be taken: Declare a message handling procedure in your Form's Private section: } procedure WMEndSession(var Msg : TWMEndSession); message WM_ENDSESSION; {Det.. 2022. 4. 27. UAC Windows10 Drag & Drop 윈도우메세지 UAC Windows10 Drag & Drop 윈도우메세지 추가 procedure TF_Thermal_burn_Save.SetDragAndDropOnSystemsWIthUAC(Wnd: HWND; IsEnabled: boolean); type TChangeWindowMessageFilter = function(Msg : Cardinal; Action : Word):Bool; stdcall; const Msg_Add = 1; WM_COPYGLOBALDATA = $49; var DllHandle : THandle; ChangeWindowMessageFilter : TChangeWindowMessageFilter; begin DllHandle := LoadLibrary('user32.dll'); if DllHa.. 2022. 4. 26. fastreport 에서 PDF로 Export 시 한글 깨지는 문제 fastreport 에서 PDF로 Export 시 한글 깨지는 문제 에서 나온데로 해보아도 해결이 되지 않아 이것저것 시도하면서 잡질하는데.. 결국 알아냈다. frxReport 컴포넌트에서 리포트 작성시 사용되는 Memo 컨트롤의 Font를 기본에서 "굴림"으로 바꿔주니깐 해결되더라! 아놔... 어쨌든 해결 2022. 4. 19. 델파이 엑셀(Excel) 수식 포함 저장하기 델파이 엑셀(Excel) 수식 포함 저장하기 uses .., ComObj; procedure TForm1.Button2Click(Sender: TObject); var ExcelObj : OleVariant; WorkBook : OleVariant; WorkSheet : OleVariant; begin ExcelObj := CreateOLEObject('Excel.Application'); ExcelObj.DisplayAlerts := False; WorkBook := ExcelObj.Workbooks.Add; //통합문서를 생성합니다. WorkSheet := WorkBook.WorkSheets[1]; //Sheet를 선택합니다. //엑셀에 데이터를 입력합니다. WorkSheet.Cells[1, 1].V.. 2022. 4. 18. MessageBox와 MessageDlg의 차이점 MessageBox와 MessageDlg의 차이점 procedure TForm1.Button1Click(Sender: TObject); begin nID := MessageDlg('1234567', mtCustom, [mbOK, mbCancel], 0); nID := MessageBox(0, '1234567', '123455', MB_OKCANCEL); end; 이와 같은 코드가 있을 때 MessageBox는 Message창이 정상적으로 닫힌다. 하지만, MessageDlg나 ShowMessage는 Message창이 닫히질 않는다. 하물며, ModalResult도 반환도 하지 않는다. MessageBox의 모달과 MessageDlg의 모달이 차이점이 과연 멀까? procedure TForm1.Button.. 2022. 4. 15. 프로그램간 메세지 전송 프로그램간 메세지 전송 1. 개요 - 독립된 다른 응용 프로그램간의 메시지 교환을 통해 프로그램을 제어 해 본다. 2. 처리 방법 - Windows의 메시지인 WM_COPYDATA 를 이용한다. - 데이터 교환을 위해 CopyDataStruct 구조체를 이용한다. - SendMessage API를 이용한다. 가. 메시지를 교환 하고자 하는 델파이 프로젝트 양쪽의 유닛에 messages 를 Uses 절에 추가한다. 나. 메시지를 보내는 쪽 Unit - 메시지를 받을 응용 프로그램의 핸들을 얻는다. (FindWindow 이용) - CopyDataStruct 구조체에 보낼 정보를 채운다. - SendMessage를 이용해 받는쪽 윈도우 핸들에 WM_CopyData 메시지를 CopyDataStruct 구조체와 .. 2022. 4. 11. 델파이에서 MS Speech-API(SAPI) 사용 델파이에서 MS Speech-API(SAPI) 사용 사용법 TSpVoice, TSpObjectToken 클래스 필요 위 설치후 ActiveX에서 추가함 목소리 받아오기 목소리 목록을 받아서 콤보에 설정함. procedure TfConfig.FormCreate(Sender: TObject); var SOTokenVoice: ISpeechObjectToken; // See the MS SAPI SDK for info on SOTokenVoices:ISpeechObjectTokens; // registry tokens that hold resources i: Integer; begin SpVoice1.EventInterests := SVEAllEvents; SOTokenVoices := SpVoice1.Get.. 2022. 4. 6. 윈도우 종료(재시작) 3가지 방법 윈도우 종료(재시작) 3가지 방법 Title: Shutdown Computer by 3 Solution Question: how i can shutdown computer in windows NT family? Answer: // ALI EBRAHIMI DORCHEH (ebr_ali@yahoo.com) //------------- Solution 1----------------- procedure TForm1.Button1Click(Sender: TObject); begin ExitWindowsEx(EWX_FORCE and EWX_SHUTDOWN,0); //EWX_SHUTDOWN for shutdown //EWX_REBOOT for reboot //EWX_LOGOFF for logoff end; //--.. 2022. 4. 5. 프로세스가 살아있는지 검사 / 프로세스 죽이기 프로세스가 살아있는지 검사, 프로세스 죽이기 // uses 에 TlHelp32 추가 function IsRunningProcess(const ProcName: String) : Boolean; var Process32: TProcessEntry32; SHandle: THandle; Next: Boolean; begin Result:=False; Process32.dwSize:=SizeOf(TProcessEntry32); SHandle :=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); // 프로세스 리스트를 돌면서 매개변수로 받은 이름과 같은 프로세스가 있을 경우 True를 반환하고 루프종료 if Process32First(SHandle, Process32) the.. 2022. 4. 1. 윈도우버전별 바탕화면 경로 알아내기 윈도우버전별 바탕화면 경로 알아내기 uses ShFolder,ShlObj; function GetSystemDirectory(Dir: Integer): String; var Path: PChar; begin Result:=''; GetMem(Path, MAX_PATH); SHGetFolderPath(0, Dir, 0, 0, Path); Result:=Copy(Path, 0, Length(Path)); FreeMem(Path); end; 사용 예제 var path : String begin path := GetSystemDirectory(CSIDL_PROFILE); end; --------------------------------------------------------------------------.. 2022. 3. 28. 이전 1 ··· 12 13 14 15 16 17 18 ··· 25 다음