본문 바로가기

분류 전체보기1063

변수와상수 변수와상수 package com.MonoSoft.SayHello import android.os.Bundle import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var variable : String = "홍길동" //*********코틀린의 기본타입 //실수형 var doublevalue : Double = 35.6 //자주씀 var floatvalue : Float =.. 2022. 7. 11.
앱 개발을 위해서 꼭 알아야할 코틀린 문법 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.
메모 프린터 기타 방안 #1 uses Printers; procedure TForm1.Button1Click(Sender: TObject); var ScaleX, ScaleY: Integer; RR: TRect; begin with Printer do begin BeginDoc; // The StartDoc function starts a print job. try ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch; ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch; // Retrieves information about the Pixels per Inch of the Printer. RR := Rec.. 2022. 6. 29.
로그 활용하기 로그 활용하기 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.
코틀린 기본 문법 4 코틀린 기본 문법 4 //******************************* 람다식 //하나의 함수를 표현하는 방법으로 익명 클래스나 익명함수를 간결하게 표현함 //코드를 간결하게 해주는 장점,디버깅이 어렵고 남발할경우 오히려 단점됨 fun add(x : Int , y : Int) : Int { return x + y } println(add(1,2)) //또는 fun add1(x : Int, y : Int) = x + y println(add1(1,2)) //또는 val add2 = { x : Int, y : Int -> x + y} println(add2(1,2)) //******************************* Sam 변환 //자바로 작성된 메소드가 하나인 인터페이스를 구현할때 대.. 2022. 6. 2.
코틀린 기본 문법 3 코틀린 기본 문법 3 //******************************* 컬렉션 //컬렉션은 개발에 유용한 자료구조를 말함 //******************************* 리스트 //읽기 전용 리스트는 listOf()메서드로 작성할수있다 val foods : List = listOf("라면","갈비","밥") println(foods.get(1)) //바꿀수없는 리스트값 val foods1 = listOf("라면","갈비","밥") //바꿀수없는 리스트값 println(foods1.get(1)) //바꿀수 있는 리스트값 val foods2 = mutableListOf("라면","갈비","밥") foods2.add("초밥") //초밥을 맨 뒤에 추가 foods2.removeAt(0) .. 2022. 5. 26.
코틀린 기본 문법 2 코틀린 기본 문법 //******************************* 클래스 // 클래스란? // :붕어빵 틀에 비유할수있고 인스턴스는 클래스를 생성한 객체의 실체인 // 붕어빵에 비유할 수 있습니다. 코틀린에서의 클래스는 자바와 역할은 유사하지만 더 간결함 //클래스 선언 class Person() { } val person : Person = Person() var person1 = Person() //******************************* 생성자 class Personmen ( val name : String = "철수", var age : Int = 0) val PMen = Personmen(age = 10) class Per { constructor(name : Str.. 2022. 5. 25.
코틀린 기본 문법 1 코틀린 기본 문법 //******************************* 변수 선언 var a: Int = 10 a = 20 println(a) //******************************* 상수 선언 val b: Int = 10 //b=20 //오류 //******************************* 함수 fun greet(str: String) { println(str) } greet(str = "안녕합니까?") //또는 fun greet2(str:String) = println(str) greet2( str="안녕합니까2") fun something() : String { return "hello" } //******************************* 기본자료.. 2022. 5. 24.
실행 종류 시 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.
IdHTTP 한글 깨짐 IdHTTP 한글 깨짐 소스파일 자체의 인코딩도 UTF-8이고 페이지세팅도 UTF-8일 경우, 아래와 같은 형태로 가져오면 됨. function getURLContent(URL: String): String; var IdHTTP1: TIdHTTP; Stream: TBytesStream; begin Result:=''; Stream := TBytesStream.Create; IdHTTP1:=TIdHTTP.Create(nil); try IdHTTP1.Get(URL, Stream, []); Result:=TEncoding.UTF8.GetString(Stream.Bytes, 0, Stream.Size); finally FreeAndNil(IdHTTP1); FreeAndNil(Stream); end; end; 중.. 2022. 5. 17.
IBconsols = attempted update during read-only transaction 에러해결방법 IBconsols = attempted update during read-only transaction 에러해결방법 IBConsole 창에서 Tools - Interactive SQL 창을 오픈한다. Interactive 창에서 Transactions-Option 클릭 해당 창에서 Access mode 를 Write 로 설정한다. 원인은 읽기 전용으로 설정해놔서 쿼리가 수정/저장이 안된것이다 관련 글 IBConsole in InterBase XE7 has changed the "default transaction mode"; it is set to "read only" transaction by default. If you are planning to execute UPDATE statements fro.. 2022. 5. 16.
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&noticeType=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.