검색결과 리스트
Study에 해당되는 글 56건
- 2012.05.23 [Delphi]Q 큐를 이용한 델파이 공부.
- 2012.05.22 [Android]TextView 에서 스크롤 기능 추가
- 2012.05.22 [Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기.
- 2012.05.22 배드 테스트 프로그램
- 2012.05.22 컴퓨터 포멧후 드라이브 잡기 3DP
- 2012.05.22 가상드라이브 프리웨어
- 2012.05.22 [Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기
- 2012.05.21 [Delphi]델파이 VCL 레퍼런스
- 2012.05.21 [Delphi]델파이 함수 레퍼런스
- 2012.05.21 [Android]안드로이드 이벤트 종류와 방법
글
Q를 실습해 봤습니다.
실습 내용은 은행의 창구와 대기표를 구현했습니다.
공부는 류종택님의 동영상 강의를 보면서 했습니다. 유용한 강의라 좋습니다.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,TicketQueue ;
.
.
.
private
{ Private declarations }
FTicketQueue : TTicketQueue;
procedure m_Display;
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnaddClick(Sender: TObject);
begin
FTicketQueue.AddWaittingList;
m_Display;
end;
procedure TfrmMain.btnTurn1Click(Sender: TObject);
var
CurrNo : Integer;
begin
if FTicketQueue.Empty then
begin
showMessage('대기하고 있는 손님이 없습니다.');
exit;
end;
CurrNo := FTicketQueue.pop;
memoDisplay.Lines.Values['[1번 창구]'] :=Format(' %d번 손님 창구로 오세요.',[CurrNo]);
lblOne.Caption := IntToStr(CurrNo);
m_Display;
end;
procedure TfrmMain.btnTurn2Click(Sender: TObject);
var
CurrNo : Integer;
begin
if FTicketQueue.Empty then
begin
showMessage('대기하고 있는 손님이 없습니다.');
exit;
end;
CurrNo := FTicketQueue.pop;
memoDisplay.Lines.Values['[2번 창구]'] :=Format(' %d번 손님 창구로 오세요.',[CurrNo]);
lblTwo.Caption := IntToStr(CurrNo);
m_Display;
end;
procedure TfrmMain.btnTurn3Click(Sender: TObject);
var
CurrNo : Integer;
begin
if FTicketQueue.Empty then
begin
showMessage('대기하고 있는 손님이 없습니다.');
exit;
end;
CurrNo := FTicketQueue.pop;
memoDisplay.Lines.Values['[3번 창구]'] :=Format(' %d번 손님 창구로 오세요.',[CurrNo]);
lblThr.Caption := IntToStr(CurrNo);
m_Display
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
FTicketQueue.Clear;
memoDisplay.Lines.Clear;
lblOne.Caption := '00';
lblTwo.Caption := '00';
lblThr.Caption := '00';
m_Display;
end;
procedure TfrmMain.m_Display;
begin
memoDisplay.Lines.Values['전체 대기자']:=IntToStr(FTicketQueue.Count);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
FTicketQueue := TTicketQueue.create;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
FTicketQueue.free;
end;
end.
interface
uses
Classes, SysUtils;
type
TTicketQueueNode = class
private
public
Next : TTicketQueueNode;
No : Integer;
end;
TTicketQueue = class
private
FHead, FTail : TTicketQueueNode;
FCurrentNo : Integer;
FCount : Integer;
function GetEmpty : boolean;
public
procedure Clear;
procedure AddWaittingList;
function pop:integer;
published
property Empty : Boolean read GetEmpty;
property Count : Integer read FCount;
end;
implementation
procedure TTicketQueue.AddWaittingList;
var
Item : TTicketQueueNode;
begin
FCurrentNo := FCurrentNo +1;
FCount := FCount + 1;
Item := TTicketQueueNode.Create;
Item.No := FCurrentNo;
if FHead = nil then FHead := Item;
if FTail <> nil then FTail.Next:= Item;
FTail := Item;
FTail.Next := nil;
end;
procedure TTicketQueue.Clear;
begin
while Empty = False do pop;
FCurrentNo := 0;
FCount := 0;
end;
function TTicketQueue.GetEmpty:Boolean;
begin
Result := FHead = nil;
end;
function TTicketQueue.pop: integer;
var
item : TTicketQueueNode;
begin
if Empty then raise Exception.Create('TicketQueue가 비어있습니다.');
FCount := FCount -1;
item := FHead;
FHead := FHead.Next;
Result := item.No;
FreeAndNil(item);
end;
end.
'Delphi' 카테고리의 다른 글
[Delphi] 델파이 단축키 (0) | 2012.06.04 |
---|---|
[Delphi]ExtractStrings을 이용한 문자열 구분 (0) | 2012.05.30 |
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
설정
트랙백
댓글
글
TextView 에서 스크롤 기능 추가
<TextView
android:text="aaaaaaaaaaaaaaaaaaaaaaaa\n
abbbbbbbbbbbbbbbbbbbbbbbaa\n
ccccccccccccccac\n
eeeeeeeeeeeeeeee\n
errrrrrrrrrrrrrrrrr"
android:id="@+id/txt01"
android:layout_width="wrap_content"
android:layout_height="50px"
></TextView>
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txt01=(TextView)findViewById(R.id.txt01);
//스크롤 가능
txt01.setMovementMethod(new ScrollingMovementMethod());
}
}
'Android' 카테고리의 다른 글
[Android]Layout 뷰의 기능들... (0) | 2012.05.25 |
---|---|
[Android]CP(Content Provider) (0) | 2012.05.24 |
[Android]SQLite 접근하기 (0) | 2012.05.23 |
[Android]SQLite Manager 설치 (0) | 2012.05.23 |
[Android]안드로이드 이벤트 종류와 방법 (0) | 2012.05.21 |
설정
트랙백
댓글
글
마우스 좌표를 구하는 두가지 방식입니다.
첫번째 윈도우 상에서의 마우스 좌표
procedure TForm1.Image1Click(Sender: TObject);
var
fpint : TPoint; //Tpoint 타입
begin
Windows.GetCursorPos(fpint); //윈도우상에서의 무우스 좌표
StartX := fpint.X // X좌표 추출
StartY := fpint.Y // Y좌표 추출
lblView.Caption := 'X : '+IntToStr(StartX)+' Y : '+IntToStr(StartY);
end ;
end;
위에서 보듯 이벤트 자체가 마우스 클릭 이벤트입니다.
두번째 이미지 캔버스 안에서 만의 마우스 좌표
procedure TfrmMain.imgMainMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
lblView.Caption := 'X : '+IntToStr(X)+' Y : '+IntToStr(Y);
end;
이번에는 마우스 다운 이벤트로 이 프로시져 자체가 x,y좌표를 인수로 갖는다. 그냥 활용만 하면 됩니다.
'Delphi' 카테고리의 다른 글
[Delphi]ExtractStrings을 이용한 문자열 구분 (0) | 2012.05.30 |
---|---|
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
[Delphi]델파이 함수 레퍼런스 (0) | 2012.05.21 |
설정
트랙백
댓글
글
하드 디스크의 배드 섹터 검사 프로그램입니다.
이유없이 사용중 블루스크린 뜨거나 하면 가끔 하드디스크에
배드일 수도 ...ㅋ
'ETC' 카테고리의 다른 글
이클립스 화면& 폰트 변경 (0) | 2012.05.30 |
---|---|
Eclipse 유용한 단축키 (0) | 2012.05.23 |
컴퓨터 포멧후 드라이브 잡기 3DP (0) | 2012.05.22 |
가상드라이브 프리웨어 (0) | 2012.05.22 |
자격증 등급입니다. 열심히 해서 Get해요. (0) | 2012.05.21 |
설정
트랙백
댓글
글
다들 아시는 3DP입니다.
칩셉,드라이브,랜 등을 자동 으로 잡습니다.
드라이브 잡는 3DP_Net_v1105도 있는데 용량이 커서 안되네요
차후 방법을 알면 올릴게요
'ETC' 카테고리의 다른 글
Eclipse 유용한 단축키 (0) | 2012.05.23 |
---|---|
배드 테스트 프로그램 (0) | 2012.05.22 |
가상드라이브 프리웨어 (0) | 2012.05.22 |
자격증 등급입니다. 열심히 해서 Get해요. (0) | 2012.05.21 |
spell 2.8 우클릭 방지 해제 (0) | 2012.05.21 |
설정
트랙백
댓글
글
'ETC' 카테고리의 다른 글
배드 테스트 프로그램 (0) | 2012.05.22 |
---|---|
컴퓨터 포멧후 드라이브 잡기 3DP (0) | 2012.05.22 |
자격증 등급입니다. 열심히 해서 Get해요. (0) | 2012.05.21 |
spell 2.8 우클릭 방지 해제 (0) | 2012.05.21 |
엘리베이터 순서도 작성. (0) | 2012.05.21 |
설정
트랙백
댓글
글
OnSelectCell 이벤트에서 변경.
procedure SelectCell(Sender: TObject; ACol, ARow: Integer; var FSelect: Boolean);
begin
if (ACol = Col) and (ARow = Row) then
begin
{컬럼에서 수정모드 막음}
TStringGrid(Sender).Options := TStringGrid(Sender).Options - [goEditing];
end
else
TStringGrid(Sender).Options := TStringGrid(Sender).Options + [goEditing];
end;
'Delphi' 카테고리의 다른 글
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
---|---|
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
[Delphi]델파이 함수 레퍼런스 (0) | 2012.05.21 |
[Delphi]TstringList 입력 중복 제거 (0) | 2012.05.21 |
설정
트랙백
댓글
글
델파이에 사용되는 VCL 레퍼런스입니다.
출처는 김상형 저 델파이정복 4.0 의 부록 내용입니다.
알파벳 순으로 되어있고요 그리 많은 양은 아니니 참고용으로 사용하세요
'Delphi' 카테고리의 다른 글
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
---|---|
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 함수 레퍼런스 (0) | 2012.05.21 |
[Delphi]TstringList 입력 중복 제거 (0) | 2012.05.21 |
[Delphi]델파이를 처음 접하는 분에게 (0) | 2012.05.21 |
설정
트랙백
댓글
글
델파이에 사용되는 함수들의 레퍼런스입니다.
출처는 김상형 저 델파이정복 4.0 의 부록 내용입니다.
알파벳 순으로 되어있고요 그리 많은 양은 아니니 참고용으로 사용하세요
'Delphi' 카테고리의 다른 글
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
---|---|
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
[Delphi]TstringList 입력 중복 제거 (0) | 2012.05.21 |
[Delphi]델파이를 처음 접하는 분에게 (0) | 2012.05.21 |
설정
트랙백
댓글
글
Event 4가지 사용 방법
Event 첫 번째 방법
(1) Main.xml --> 버튼생성
<Button
android:text="OK"
android:id="@+id/btnOK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
(2) MainActivity.java----> 이벤트 소스 얻기
Button btnOK=(Button)findViewById(R.id.btnOK);
btnOK.setText("OK!!!");->>버튼 이름
//이벤트 처리
//1.이벤트 소스 얻기
btnOK.setOnClickListener(new ButtonHandler());
(3) public class ButtonHandler implements OnClickListener {<--리스너 인터페이스
//4.메소드 구현
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("test", "OK Click");<--로그보기
}//end onClick
}//end class
Event 두번째 방법
(1) main.xml
<Button
android:text="@+id/Button01"
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
(2) MainActivity.java <--inner method
public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnOK=(Button)findViewById(R.id.Button01);
//이벤트 처리
//1.이벤트 소스
btnOK.setOnClickListener(this);
}/end conCreate
//3 추상 메소드 구현
public void onClick(View v){
Log.i("test", "Ok Click");
}
}
Event 세번째 방법
<--첫번째 방법과 다른점 ( MainActivity에서 상속받지않고 핸들러에서 상속 받음 )
그럴땐 View.리스너를 해워야 한다.
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnOK=(Button)findViewById(R.id.Button01);
btnOK.setOnClickListener(new ButtonHandler());
}//end onCreate
class ButtonHandler implements View.OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("test", "ok!!!!!!");
}
}
}
Event 네번째 방법
<-- 많이 사용됨
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnOK=(Button)findViewById(R.id.Button01);
//이벤트 처리
//1, 2
btnOK.setOnClickListener(new View.OnClickListener() {
//3. 자체적 상속 받음
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("test","ok!!!ASDFSADFSADFSADF");
}
}
);
}
}
Evet 응용
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//OK
Button btnOK= (Button)findViewById(R.id.Button01);
//Cancle
Button btnCancle=(Button)findViewById(R.id.Button02);
//이벤트 처리
//1.
btnCancle.setOnClickListener(new ButtonHandler());
btnOK.setOnClickListener(new ButtonHandler());
}//end onCreate
//2. inner Class
class ButtonHandler implements View.OnClickListener{
//3.
public void onClick(View v) {
switch(v.getId()){ <-- ButtonView의 ID값 //외울것
case R.id.Button01:
Log.i("test", "OK click");
break;
case R.id.Button02:
Log.i("test", "Cancel click");
break;
}
}
}
}
'Android' 카테고리의 다른 글
[Android]Layout 뷰의 기능들... (0) | 2012.05.25 |
---|---|
[Android]CP(Content Provider) (0) | 2012.05.24 |
[Android]SQLite 접근하기 (0) | 2012.05.23 |
[Android]SQLite Manager 설치 (0) | 2012.05.23 |
[Android]TextView 에서 스크롤 기능 추가 (0) | 2012.05.22 |
RECENT COMMENT