'델파이'에 해당되는 글 23건
- 2020.04.13 :: [C#] TXT 불러오기 소스
- 2020.04.13 :: [C#] 네이버 카페 인증소스
- 2020.04.13 :: [C언어] C언어란 무엇인가?
- 2020.04.12 :: [DelPhi] 자신의 개인 DLL 제작한 후 사용해보기 소스
- 2020.04.12 :: [DelPhi] Edit에 버튼을 넣어보자 소스
- 2020.04.12 :: [DelPhi] 간단하게 dll로 값을 저장&불러오기
- 2020.04.12 :: [DelPhi] 델파이 랜덤문자 만들기 두번째방법
- 2020.04.12 :: [DelPhi] 델파이 랜덤문자 만들기 첫번째방법
//열기창 생성
OpenFileDialog oDialog = new OpenFileDialog();
oDialog.Filter = "텍스트 파일|*.txt";
//열기창 띄우고 내용 반환
if (oDialog.ShowDialog() == DialogResult.OK)
{
string a = System.IO.File.ReadAllText(oDialog.FileName, Encoding.Default);
}
'C샵' 카테고리의 다른 글
[C#] C# 데이터 타입 배워보기 (종류) (1) | 2020.04.16 |
---|---|
[C#] C#의 버전 알아보자 (0) | 2020.04.16 |
[C#] C#이란 무엇일까? 기초알아보기 (1) (0) | 2020.04.16 |
[C#] 네이버 카페 인증소스 (0) | 2020.04.13 |
// 상단에 using지시문 추가
using WinHttp; // 오류가 뜰 경우 참고 추가로 winhttp.dll 추가하시면 됩니다.
// 추가 방법은 찾아보기 - C:\windows\System32 에서 저 winhttp 검색하시면 됩니다. (32비트 기준)
// 네이버 계정 및 카페 인증
bool NaverLogin(string ID, string PW)
{
WinHttpRequest WinHttp = new WinHttpRequest();
WinHttp.Open("POST", "https://nid.naver.com/nidlogin.login", false);
WinHttp.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
WinHttp.SetRequestHeader("Referer", "https://nid.naver.com/nidlogin.login");
WinHttp.Send("enctp=2&url=http://www.naver.com&enc_url=http://www.naver.com&postDataKey=&saveID=0&nvme=0&smart_level=1&id=" + ID + "&pw=" + PW);
WinHttp.WaitForResponse();
WinHttp.Open("GET", "http://cafe.naver.com/"); // 해당 카페 주소 입력
WinHttp.Send("");
WinHttp.WaitForResponse();
string result = Encoding.Default.GetString(WinHttp.ResponseBody);
if (result.IndexOf("카페멤버") == -1) // 이건 WinHttp.ResponseText.IndexOf("카페멤버") 이렇게 사용하면 오류가 뜨더라구요
{
return false; // 카페 가입이 되어있으면 저 "카페멤버" 라는 글자가 표시되지 않습니다.
}
else
{
return true; // 카페 가입이 되어있지않으면 저 "카페멤버" 라는 글자가 표시됩니다.
}
}
이렇게 하시고 버튼 이벤트에
// NaverLogin 이 false 값일 경우 (가입 되어있을 경우)
// NaverLogin 이 true 값일 경우 (가입 되어있지 않을 경우)
if (NaverLogin(textBox1.Text, textBox2.Text) == false)
{
// false 값이면 성공
MessageBox.Show("네이버 인증에 성공하였습니다.", "성공!", MessageBoxButtons.OK);
}
else
{
// true 값이면 실패
MessageBox.Show("네이버 인증에 실패하였습니다.", "실패!", MessageBoxButtons.OK);
}
'C샵' 카테고리의 다른 글
[C#] C# 데이터 타입 배워보기 (종류) (1) | 2020.04.16 |
---|---|
[C#] C#의 버전 알아보자 (0) | 2020.04.16 |
[C#] C#이란 무엇일까? 기초알아보기 (1) (0) | 2020.04.16 |
[C#] TXT 불러오기 소스 (0) | 2020.04.13 |
기본적인 C언어란 프로그래밍 언어이다.
컴퓨터와의 대화에 사용하기 위해 일종의 의사소통이다.
ex) 한국인 영어> 통역사(컴퓨터 본체) > 일본인
ex) > 한국말 영어> 통역사 > 일본말 > 일본인
이런식으로 가능한 조건이 C언어이다.
하지만 컴퓨터에서는 의사소통이 불가능이므로 C언어로 의사소통 할수있다.
ex) 한국어 C언어 > 컴파일러(C언어 기계어) > 컴퓨터
*컴파일러이란? > 프로그래밍 언어로 작성한 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역하는역할을합니다. (Compile)
*기계어란? 컴퓨터가 이해할 수 있도록 0과1로 구성된 언어체계입니다.
{ 여기서 부터 dll 작성부분이다 }
{ 여기서 두함수가 DLL 함수가 된다 }
library Firstdll;
uses
Windows;
function Triple( N : Integer) : Integer; stdcall;
begin
MessageBox(0,'Triple function called',
'First Dll',mb_Ok);
Result := N * 3;
end;
function Double( N : Integer) : Integer; stdcall;
begin
MessageBox(0,'Double function called',
'First Dll',mb_Ok);
Result := N * 2;
end;
exports
Triple , Double;
begin
end.
{ 여기까지가 Dll 작성 루틴이다 }
{ 여기서 부터는 DLL 에 있는 함수를 호출하는것을 보여주는 예이다.}
unit dllcall;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Spin;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
{ DLL 함수를 선언한다 }
function Double( N : Integer) : Integer;
stdcall; external 'FirstDll.dll';
function Triple( N : Integer) : Integer;
stdcall; external 'FirstDll.dll';
implementation
{$R *.DFM}
{DLL 함수의 호출}
procedure TForm1.Button1Click(Sender: TObject);
begin
SpinEdit1.Value := Double(SpinEdit1.Value);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SpinEdit2.Value := Triple(SpinEdit2.Value);
end;
end.
----- Dfm 파일 -----
object Form1: TForm1
Left = 200
Top = 108
Width = 328
Height = 156
Caption = 'Form1'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 24
Top = 24
Width = 75
Height = 25
Caption = 'Double'
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 24
Top = 80
Width = 75
Height = 25
Caption = 'Triple'
TabOrder = 1
OnClick = Button2Click
end
object SpinEdit1: TSpinEdit
Left = 144
Top = 24
Width = 121
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 2
Value = 0
end
object SpinEdit2: TSpinEdit
Left = 144
Top = 80
Width = 121
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 3
Value = 0
end;
end;
'DelPhi' 카테고리의 다른 글
[DelPhi] Edit에 버튼을 넣어보자 소스 (0) | 2020.04.12 |
---|---|
[DelPhi] 간단하게 dll로 값을 저장&불러오기 (0) | 2020.04.12 |
[DelPhi] 델파이 랜덤문자 만들기 두번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 랜덤문자 만들기 첫번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 캡션명 인젝터 구동하기 소스 (0) | 2020.04.12 |
// 컴포넌트를 Install 한다음 Samples 디렉토리에 가서
// EditButton 을 한번 시험해 보는 것도 재미 있을듯..
unit ButtonEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TButtonEdit = class(TEdit)
private
//FCanvas: TCanvas; //commented out - see below!
//do you want to 'click' when the up or down arrow key pressed as well?
FClickOnArrow: boolean;
//do you want to 'click' when the Return key pressed as well?
FClickOnReturn: boolean;
//flag - is the button pressed or not
FPressed: boolean;
procedure Click; override;
procedure CreateWnd; override;
procedure WMPAINT(var Message: TMessage); message WM_PAINT;
procedure WMLBUTTONDOWN(var Message: TWMMouse); message WM_LBUTTONDOWN;
procedure WMLBUTTONUP(var Message: TWMMouse); message WM_LBUTTONUP;
procedure WMMOUSEMOVE(var Message: TWMMouse); message WM_MOUSEMOVE;
//procedure WMSETFOCUS(var Message: TMessage); message WM_SETFOCUS;
protected
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
public
constructor Create(AOwner: TComponent); override;
published
property ClickOnArrow: boolean read FClickOnArrow write FClickOnArrow;
property ClickOnReturn: boolean read FClickOnReturn write FClickOnReturn;
end;
procedure Register;
implementation
const
BUTTONWIDTH = 17;
{----------------------------------------------------------------------}
{----------------------------------------------------------------------}
procedure Register;
begin
RegisterComponents('Samples', [TButtonEdit]);
end;
{----------------------------------------------------------------------}
constructor TButtonEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPressed := false;
FClickOnArrow := true;
FClickOnReturn := false;
end;
{----------------------------------------------------------------------}
procedure TButtonEdit.CreateWnd;
begin
inherited CreateWnd;
//this is crucial to stop text disappearing under the button...
perform(EM_SETMARGINS,EC_RIGHTMARGIN,(BUTTONWIDTH+2) shl 16);
end;
{----------------------------------------------------------------------}
procedure TButtonEdit.WMLBUTTONDOWN(var Message: TWMMouse);
begin
inherited;
//draw button in pressed state...
if message.xpos >= clientwidth-BUTTONWIDTH+1 then begin
FPressed := true;
Refresh;
end;
end;
{----------------------------------------------------------------------}
procedure TButtonEdit.WMLBUTTONUP(var Message: TWMMouse);
begin
inherited;
//draw button in non-pressed state...
if FPressed then begin
FPressed := false;
Refresh;
end;
end;
{----------------------------------------------------------------------}
procedure TButtonEdit.WMMOUSEMOVE(var Message: TWMMouse);
begin
inherited;
//change cursor when over the button to an arrow (not the default I-beam)...
if message.xpos >= clientwidth-BUTTONWIDTH+1 then cursor := crArrow
else cursor := crDefault;
end;
{----------------------------------------------------------------------}
procedure TButtonEdit.Click;
var
pt: TPoint;
begin
//fix a minor cosmetic problem...
if FPressed then begin
FPressed := false;
Repaint;
end;
//Only process an OnClick method if the button is clicked,
//NOT if the text is clicked!
GetCursorPos(pt);
if PtInRect(Rect(clientwidth-BUTTONWIDTH+1,0,clientwidth,clientheight),
ScreenToClient(pt)) then inherited Click;
end;
{----------------------------------------------------------------------}
procedure TButtonEdit.KeyDown(var Key: Word; Shift: TShiftState);
begin
//respond to up or down arrow keys or Return key with OnClick event if
//"ClickOnArrow" or "ClickOnReturn" property set...
inherited KeyDown(Key, Shift);
if ((Key = vk_Down) or (Key = vk_Up))
and (Shift = []) and FClickOnArrow then begin
Key := 0;
inherited Click;
end
else if (Key = vk_return) and FClickOnReturn then begin
Key := 0;
inherited Click;
end;
end;
{----------------------------------------------------------------------}
//This no longer seems to be necessary ... I've left it here just in case!
{procedure TButtonEdit.WMSETFOCUS(var Message: TMessage);
begin
inherited;
repaint;
end;}
{----------------------------------------------------------------------}
procedure TButtonEdit.WMPAINT(var Message: TMessage);
var
dc: HDC;
CntrPt: TPoint;
pic: array [0..3] of TPoint; //arrow 'picture' points
begin
// let windows draw the text!
// I don't really want to struggle with all the scrolling issues etc!
inherited;
//NOW DRAW THE BUTTON ... (not as bad as it looks if you take out the comments!)
//find the centre of the button...
CntrPt := point(clientwidth - BUTTONWIDTH div 2, clientheight div 2);
//offset CntrPt by 1 if pressed...
if FPressed then CntrPt := point(CntrPt.x+1,CntrPt.y+1);
//get button arrow drawing coordinates from CntrPt...
pic[0] := point( CntrPt.x-5,CntrPt.y);
pic[1] := point( CntrPt.x,CntrPt.y-5);
pic[2] := point( CntrPt.x+5, CntrPt.y);
pic[3] := point( CntrPt.x, CntrPt.y+5);
//Notes:
//1. As I'm calling the inherited WMPAINT method before drawing the button -
// I have to use getDC(handle) instead of beginpaint(handle,paintstruct)
// otherwise I don't see the button! (I think due to clipping.)
//2. If I wanted to draw the text as well as the button (without calling
// the inherited method) then I would have to use beginpaint(handle,paintstruct).
dc := getDC(handle);
//To make this method a little more efficient you could add a private Canvas field
// to the component and create it once only in TButtonEdit.create and free it in
//TButtonEdit.destroy. I've kept it all here for simplicity.
//(Don't use TControlCanvas instead of TCanvas in TButtonEdit.create -
//It doesn't work! - Someone might explain TControlCanvas to me.)
with TCanvas.create do begin
Handle := dc;
Brush.Color := clBtnFace;
//Brush.style := bsSolid;
//paint the button surface...
FillRect(rect(clientwidth-BUTTONWIDTH+1,0,clientwidth,clientheight));
//draw the button edges...
if FPressed then Pen.color := clBtnShadow else Pen.color := clBtnHighlight;
Moveto(clientwidth-BUTTONWIDTH+2,clientheight-1);
Lineto(clientwidth-BUTTONWIDTH+2,1);
Lineto(clientwidth-1,1);
if FPressed then Pen.color := clBtnHighlight else Pen.color := clBtnShadow;
Lineto(clientwidth-1,clientheight-1);
Lineto(clientwidth-BUTTONWIDTH+2,clientheight-1);
//draw the arrows...
Brush.Color := clGreen;
Pen.color := clBlack;
polygon(pic);
Pen.color := clBtnFace;
Moveto(CntrPt.x-5,CntrPt.y);
Lineto(CntrPt.x+6,CntrPt.y);
Handle := 0;
free; //the canvas.
end;
ReleaseDC(handle,dc);
end;
{----------------------------------------------------------------------}
(*
//Old WMPAINT Method (not using TCanvas)...
procedure TButtonEdit.WMPAINT(var Message: TMessage);
var
dc: HDC;
SilverBrush, ArrowBrush, Oldbrush: HBrush;
WhitePen, GrayPen, SilverPen, OldPen: HPen;
CntrPt: TPoint;
pic: array [0..3] of TPoint; // for arrow 'picture'.
begin
inherited;
//NOW DRAW BUTTON ...
//find the centre of the button...
CntrPt := point(clientwidth - BUTTONWIDTH div 2, clientheight div 2);
//offset by 1 if pressed...
if FPressed then CntrPt := point(CntrPt.x+1,CntrPt.y+1);
//get button arrow coordinates...
pic[0] := point( CntrPt.x-5,CntrPt.y);
pic[1] := point( CntrPt.x,CntrPt.y-5);
pic[2] := point( CntrPt.x+5, CntrPt.y);
pic[3] := point( CntrPt.x, CntrPt.y+5);
//create handles ...
dc := getDC(handle);
SilverBrush := CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
ArrowBrush := CreateSolidBrush(clGreen);
WhitePen := CreatePen(PS_SOLID,1,clWhite);
GrayPen := CreatePen(PS_SOLID,1,clGray);
SilverPen := CreatePen(PS_SOLID,1,GetSysColor(COLOR_BTNFACE));
//draw button surface and outline...
OldBrush := SelectObject(dc, ArrowBrush);
FillRect(dc,rect(clientwidth-BUTTONWIDTH+1,0,clientwidth,clientheight),SilverBrush);
if FPressed then OldPen := SelectObject(dc,GrayPen)
else OldPen := SelectObject(dc,WhitePen);
MovetoEx(dc,clientwidth-BUTTONWIDTH+2,clientheight-1,nil);
Lineto(dc,clientwidth-BUTTONWIDTH+2,1);
Lineto(dc,clientwidth-1,1);
if FPressed then SelectObject(dc,WhitePen)
else SelectObject(dc,GrayPen);
Lineto(dc,clientwidth-1,clientheight-1);
Lineto(dc,clientwidth-BUTTONWIDTH+2,clientheight-1);
//draw up&down arrows...
SelectObject(dc,OldPen);
polygon(dc,pic,4);
SelectObject(dc,SilverPen);
MovetoEx(dc,CntrPt.x-5,CntrPt.y,nil);
Lineto(dc,CntrPt.x+6,CntrPt.y);
//clean up ...
SelectObject(dc,OldPen);
SelectObject(dc, OldBrush);
DeleteObject(WhitePen);
DeleteObject(SilverPen);
DeleteObject(GrayPen);
DeleteObject(SilverBrush);
DeleteObject(ArrowBrush);
ReleaseDC(handle,dc);
end;
*)
{----------------------------------------------------------------------}
end.
'DelPhi' 카테고리의 다른 글
[DelPhi] 자신의 개인 DLL 제작한 후 사용해보기 소스 (0) | 2020.04.12 |
---|---|
[DelPhi] 간단하게 dll로 값을 저장&불러오기 (0) | 2020.04.12 |
[DelPhi] 델파이 랜덤문자 만들기 두번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 랜덤문자 만들기 첫번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 캡션명 인젝터 구동하기 소스 (0) | 2020.04.12 |
1.Classes 추가
uses
Classes;
2.값을 저장하고 불러올 Packed record를 만듭니다!
type
TPerson = Packed record
sName : Array[1..50] of Char;
nAge : Integer;
end;
//저장할 데이터의 크기를 고정시켜줍니다.
var
Person : TPerson;
3. dll 저장!
procedure WriteDll;
var
sFilePath : string;
Stream : TMemoryStream;
begin
sFilePath := '저장될 경로명' + '파일명.dll';
Stream := TMemoryStream.Create;
try
Stream.Clear;
Stream.Write(Person, SizeOf(TPerson))
Stream.SaveToFile(sFilePath);
finally
Stream.Free;
end;
4.dll 불러옵니다
procedure ReadDll;
var
sFilePath : string;
Stream : TMemoryStream;
begin
sFilePath := '불러올 경로명' + '파일명.dll';
Stream := TMemoryStream.Create;
FillChar(Person, Sizeof(TPerson), #0); //공백으로 채워줍니다.
try
Stream.LoadFromFile(sFilePath);
Stream.Position := 0;
Stream.Read(Person, SizeOf(TPerson));
finally
Stream.Free;
//공백으로 채웠기 때문에 Trim을 사용해 문자열의 양쪽 공백을 제가한뒤 사용
ShowMessage(Trim(Person.sName));
end;
'DelPhi' 카테고리의 다른 글
[DelPhi] 자신의 개인 DLL 제작한 후 사용해보기 소스 (0) | 2020.04.12 |
---|---|
[DelPhi] Edit에 버튼을 넣어보자 소스 (0) | 2020.04.12 |
[DelPhi] 델파이 랜덤문자 만들기 두번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 랜덤문자 만들기 첫번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 캡션명 인젝터 구동하기 소스 (0) | 2020.04.12 |
<?
function random_string() {
$random= "";
for( $i=0; $i<rand(7,8); $i++) {
if(rand(0,1)) {
$random .= rand(0, 9);
} else {
$random .= chr(rand(98, 122));
}
}
return $random;
}
print_r(random_string());
?>
'DelPhi' 카테고리의 다른 글
[DelPhi] Edit에 버튼을 넣어보자 소스 (0) | 2020.04.12 |
---|---|
[DelPhi] 간단하게 dll로 값을 저장&불러오기 (0) | 2020.04.12 |
[DelPhi] 델파이 랜덤문자 만들기 첫번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 캡션명 인젝터 구동하기 소스 (0) | 2020.04.12 |
[DelPhi] 델파이 체크 프로세스 함수 소스 (0) | 2020.04.12 |
//랜덤 문자 만들기
function random_string($len) {
$str = '1234567890abcdefghijklmnopqrstuvwxyz';
$strlen = strlen($str) -1;
$return = '';
for ($i = 0; $i < $len; $i++) {
$rand = rand(0, $strlen);
$return .= $str[$rand];
}
return $return;
}
'DelPhi' 카테고리의 다른 글
[DelPhi] 간단하게 dll로 값을 저장&불러오기 (0) | 2020.04.12 |
---|---|
[DelPhi] 델파이 랜덤문자 만들기 두번째방법 (0) | 2020.04.12 |
[DelPhi] 델파이 캡션명 인젝터 구동하기 소스 (0) | 2020.04.12 |
[DelPhi] 델파이 체크 프로세스 함수 소스 (0) | 2020.04.12 |
[DelPhi] 델파이 폼이란 무엇인가? (기본메뉴알아보기) (0) | 2020.04.12 |