본문으로 바로가기
homeimage

파스칼

해당되는 글 11
  • thumbnail
    컴퓨터/프로그래밍

    리눅스 X 윈도우 GUI 응용 프로그래밍 라자루스

    리눅스 GUI 응용 프로그램을 만들어야 한다면 라자루스를 추천합니다. Qt를 사용해 본 적이 있지만, 역시 라자루스가 쉽고 빠른데 국내에서는 아는 분이 별로 없는 것 같아서 안타깝습니다. GUI 응용 프로그래밍 통합 개발 환경 라자루스를 소개하고, 어떻게 프로그램을 작성하는지 예제로 보여드리겠습니다. 래피드 애플리케이션 개발 도구 라자루스 볼랜드사 래피드 애플리케이션 개발툴 델파이 볼랜드사에서 윈도우 응용 프로그램 개발툴로 델파이를 내놓으면서 래피드 애플리케이션 개발(Rapid Application Development)을 강조했습니다. 개발자가 마이크로소프트사의 비주얼 스튜디오를 대신해서 델파이를 선택하게 하려면 그만한 이유와 장점이 있어야 하는데, 볼랜드사에서는 매우 빠른 개발 환경이라고 내세운 것이..
  • thumbnail
    컴퓨터/프로그래밍

    라자루스 내문서 폴더 위치 구하는 방법

    오픈 소스 윈도우 프로그램 통합개발환경 라자루스에서 내 문서 폴더 위치를 구하는 방법입니다. 라자루스는 델파이 개발환경을 리눅스용으로도 만들자 해서 시작된 프로젝트라서 아마도 최근 버전의 델파이에서도 같은 방법으로 구할 수 있지 않을까 생각됩니다. How to get the "My documents" folder location in lazarus 예제를 위한 폼 디자인은 간단합니다. Button1은 내문서 폴더 위치를 구해서 labDocuments에 출력합니다. 전체 소스는 아래와 같습니다. unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls; type { ..
  • thumbnail
    컴퓨터/프로그래밍

    라자루스 사용자 AppData 폴더 위치 구하기

    프로그램을 윈도우 프로그램 폴더에 저장했다면, 권한 문제 대문에 그 위치에 파일을 생성하지 못합니다. 이런 경우 AppData 폴더를 이용합니다. AppData 폴더 위치는 ShGetSpecialFolderPath() 함수에 CSIDL_LOCAL_APPDATA를 인수로 호출하여 구할 수 있습니다. ShGetSpecialFolderPath() 함수를 사용하려면 uses절에 shlobj를 추가해야 합니다. How to get the appdata folder location in Lazarus 라자루스에서 AppData 폴더 위치를 구하는 예제입니다. Button1을 클릭하면 labAppData에 AppData 폴더 위치를 표시합니다. unit Unit1; {$mode objfpc}{$H+} interfac..
  • thumbnail
    컴퓨터/프로그래밍

    나도 프로그래머 크로미움 웹브라우저 만들기

    Lazarus와 CEF4Delphi 프리 파스칼로 윈도우 프로그램을 만들 수 있는 Lazarus 통합 개발 환경 프로그램에 CEF4Delphi 컴포넌트를 설치하면 크로미움 브라우저를 만들 수 있습니다. CEF4Delphi 컴포넌트의 이름에서 알 수 있듯이 Delphi에서도 사용이 가능한데요, Delphi7에는 설치하지 못했습니다. 지원하는 변수 타입 때문인데요, Delphi7 상위 버전이어야 가능한 것 같습니다. Lazarus로 크로미움을 만드는 방법을 알아보겠습니다. Lazarus에 대한 상세한 내용은 여기 링크를 참고하세요. 라자루스(lazarus) 설치 ▲ Lazarus 홈페이지에서 [Download Now] 버튼을 클릭합니다. 페이지가 바뀌면서 잠시 기다리면 컴퓨터 환경에 알맞은 설치 파일을 다운..
  • thumbnail
    컴퓨터/프로그래밍

    라자루스 조건 컴파일 방법(Lazarus Conditional compilation)

    Lazarus Conditional compilation 라자루스에서 디버깅을 위해 DebugSever 툴로 문자열 메시지를 전송해서 출력하는 방법을 소개했는데요, 프로젝트 옵션에서 디버거 옵션을 꺼도 DebugServer로 메시지를 전송하는 SendDebug 함수는 계속 남아서 DebugServer로 전송합니다. SendDebug 함수를 겨우 몇 개 사용했다면 제거하겠지만, 여기저기 많이 사용했다면 삭제하기 어렵죠. uses dbugintf; procedure TForm1.btnCloseClick(Sender: TObject); begin SendDebug( '종료 버튼을 클릭했습니다.'); Close; end; procedure TForm1.btnCopyWindowClick(Sender: TObjec..
  • thumbnail
    컴퓨터/프로그래밍

    나도 프로그래머 라자러스 이벤트란?

    윈도우 프로그램의 이벤트 이해 오픈 소스 통합 개발 환경 라자루스의 3 번째 글입니다. 이번에는 라자루스 프로그램의 중요한 개념 중에 하나인 이벤트에 대해서 알아 보겠습니다. 이벤트는 매우 중요하지만, 내용은 쉽습니다. 이벤트 뜻 그대로 사건입니다. 이전 글의 예제를 이해하셨다면 이미 이벤트에 대해 알고 계십니다. 다만, 이벤트 단어를 사용하지 않았을 뿐입니다. ▲ 이전 글에서 만든 예제입니다. 1초마다 타이머가 발생하면 현재 시간을 Label3에 입력하도록 했습니다. 또한, Button1을 마우스로 클릭하면 프로그램이 종료됩니다. 여기서 1초마다 발생하는 타이머와 마우스 버튼을 눌러서 발생하는 클릭을 이벤트라고 합니다. 폼 위에 올려 놓은 Label, Edit, Button, Timer를 컴포넌트라고 ..
  • thumbnail
    컴퓨터/프로그래밍

    윈도우 프로그램 만들기 라자루스 컴포넌트 속성이란?

    Lazarus IDE component property 필요한 프로그램을 직접 만들고 싶다면 통합 개발 환경 라자루스를 추천하니다. 이전 글에서 라자루스를 소개하면서 간단한 프로그램을 작성했는데요, 자리를 잠시 비울 때 찾는 분을 위해 메시지를 남겨 놓는 프로그램이었죠. ▲ 제대로 작동은 되지만, 뭔가 어색하죠? 처음 보는 분이라면 뭐가 뭔지 이해가 안 될 것입니다. 기능에 따라서 적당한 문장을 넣어 준다면 좀 더 쉬운 프로그램이 되겠습니다. 예를 들어 Button1 보다는 "종료"라고 쓴다면 눌러보지 않아도 어떤 기능인지 알 수 있습니다. Edit1이 어떤 뜻인지 모르겠지만, 알게 되어도 글을 쓰려면 "Edit1" 글자를 지우고 써야 합니다. 이번 글에서는 라자루스에서 컴포넌트의 속성이라는 것을 이해하..
  • thumbnail
    컴퓨터/프로그래밍

    lazarus DebugServer EIPCError

    라자루스 디버그서버 실행 에러 통합개발환경 라자루스가 설치된 폴더 안에 tools 폴더에는 디버깅에 도움을 주는 DebugServer 프로그램이 있습니다. 그런데 실행하면 EIPCError이라는 에러가 발생하네요. Project FPC/Lazarus debug message server raised exception class 'EIPCError' with message: This operation is illegal when the server is active. At address 1001C5C92 ▲ FSrv.StartServer 행에서 에러가 발생합니다. 그렇다고 이 행을 삭제하면 디버그 서버 기능을 하지 못 합니다. 해결 방법은... ▲ FSrv.Active := True를 주석 처리하면 됩니다..
  • thumbnail
    컴퓨터/유틸리티

    라자루스 디버깅 툴 디버그서버 사용 방법

    Lazarus DebugServer 라자루스로 윈도우 프로그램을 작성할 때 아쉬운 점이 있습니다. 디버깅을 위한 문장을 라자루스의 Messages 윈도우에 출력할 수 있다면 좋겠는데 아직 방법을 찾지 못했습니다. 콘솔 프로그램이라면 가능한 것 같은데 윈도우 프로그램은 Messages 창으로 전송할 방법이 없네요. 대신에 라자루스가 설치된 폴더에 tools 폴더가 있는데, 이 안에 DebugServer라는 프로그램이 있습니다. 이 프로그램을 먼저 실행하고 디버깅을 위한 문자를 전송해서 확인할 수 있습니다. ▲ 라자루스로 lazarus/tools/debugserver 안에 있는 debugserver.lpi 프로젝트 파일을 열기 합니다. ▲ 만일 DebugServer를 컴파일해서 실행했을 때 시작하자마자 "d..
  • thumbnail
    컴퓨터/프로그래밍

    나도 프로그래머 라자루스 통합 개발 환경

    오픈소스 통합개발환경(IDE) 라자루스 윈도우 프로그램을 직접 만들고 싶은 분께 오픈 소스 통합 개발 환경(IDE) 라자루스를 권합니다. 프로그래밍은 전문 지식이 필요해서 매우 어렵게 생각되는데요, 라자루스는 프로그램을 쉽게 만들 수 있는 편리한 기능을 제공해서 프로그래밍의 문턱을 낮추어 줍니다. 라자루스에 대한 자세한 얘기는 밑으로 내리고 과연 라자루스로 어떻게 프로그램을 작성하는지 보겠습니다. 라자루스의 첫 번째 프로그램으로 자리를 잠시 비울 때 나를 찾는 분에게 안내 문장을 보여 주는 작은 윈도우 프로그램을 만들어 보겠습니다. 화면 가운데에 메시지를 입력할 수 있는 입력창을 넣고 그 아래에 종료 버튼을 놓겠습니다. 참고로 이 정도의 프로그램이라면 라자루스 설치에서 만들기까지 10여 분도 채 안 걸릴..
  • thumbnail
    컴퓨터/프로그래밍

    라자루스 Ansi to UTF8, UTF8 to Ansi 변환

    윈도우 프로그램을 작성하다 보면 한글 처리가 걸리는 경우가 있습니다. 자주 경험하는데요, 프로그램을 다 짰다 싶은데 생각지도 않은 한글에서 에러가 발생합니다. 그래서 문자열을 처리할 때는 항상 한글을 넣어 검증합니다. 라자루스에서 Ansi to UTF8 또는 UTF8 to Ansi 변환 방법은 아래와 같습니다. 라자루스 UTF8 to Ansi uses lazutf8; strAnsi := lazutf8.UTF8ToWinCP( strUtf8); uses절에 lazutf8 유닛 추가를 잊지 마세요. 라자루스 Ansi to UTF8 uses lazutf8; SetCodePage(RawByteString( strAnsi), 949, FALSE); strUtf8 := AnsiToUtf8( strAnsi); UTF8..
    최근글
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

    이모티콘을 클릭하면 댓글창에 입력됩니다.