Mac安裝laravel

  • 終端機輸入下列指令取得最新版本composer
  • curl -sS https://getcomposer.org/installer | php
  • 接著輸入下面指令讓終端機能直接執行
  • mv composer.phar /usr/local/bin/composer
  • 到MAMP下載安裝(http://www.mamp.info)
  • cd /Applications/MAMP/htdocs/
  • composer create-project laravel/laravel laraveltest
  • 會出現沒有安裝mcrypt,在mac是由於mac預設的版本跟MAMP不同
  • 看一下mamp的PHP版本
  • cd –
  • nano .bash_profile
  • 加上 export PATH=/Applications/MAMP/bin/php/php5.5.3/bin/:$PATH
  • 重新建立專案

中文網域轉換設定Addon Domains

addondomain01

目前有開放中文網域,不過在虛擬主機上Cpanel設定Addon Domains會出現錯誤,這時候需要透過PUNYCODE轉換才能將網域名稱從Unicode 編碼轉成DNS系統的編碼。

 

addondomain02

可以透過IDN Converter(https://manage.centralnic.com/support/idn_converter)把網域放在左邊的輸入框,按下Convert to PunyCode,就可以得到PunyCode編碼。addondomain03
最後將Punycode編碼的網域名稱貼進去就可以成功設定:)

PChome網址購買後設定

domain11

 

1‧ 在上次購買網址後,如果付款成功入帳,就可以進入管理我的網址

domain13

2. 進入後,可以看到還沒付錢的網址。有付款成功的就會出現在網址清單下,我們可以進入DNS設定與修改的進入開始設定

domain14

 

3. 自管DNS是如果有自己的DNS Server可以指定domain15

 

4. 另外一種是DNS交給PChome管理~如果你要轉到特定網址的話倒是可以直接用它

domain165. Page Parking是申請.tw比較特別的功能,twnic貼心提供申請.tw網域的朋友快速架站的方式。

 

為DBGrid加上OnClick事件

很奇怪的在DBGrid竟然沒有OnClick事件~不過還是可以用方式讓Click事件重見天日

[pascal]
private
{ Private declarations }
procedure dbgrid1Click(Sender:Tobject);
[/pascal]

[pascal]
procedure TForm1.FormCreate(Sender: TObject);
begin
dbgrid1.ControlStyle := dbgrid1.ControlStyle + [csClickevents];
TForm(dbgrid1).OnClick := dbgrid1click;
end;
[/pascal]

[pascal]
procedure TForm1.dbgrid1Click(Sender: Tobject);
begin
// Click事件
end;
[/pascal]

中台科技大學使用Delphi XE6開發成果

10846058_10152391825376541_6729644901142507463_n
有幸成為中台科技大學畢業專題研究的考試委員,要感謝中台資管系裡一直致力於推廣Delphi的李桂春老師,以及幾位老師排除許多意見讓Delphi這門課仍在學校中延續。
這次的二組學生共開發了六支程式
一、Smile BUS
二、學務小幫手 – 學生護照、失物招領、車號辨識、賃居訪視、校安警報系統
系統內應用了Google Map、GPS、上傳、拍照、QRCode…..等技術,完成度相當的高!
10846309_10152396576211541_8581711142382981368_n

10565285_10152396576181541_5511641369811730287_n

10414380_10152396576136541_2027245156865070595_n

10360343_10152396576086541_9016676841456869558_n

1012968_10152396575891541_8956913892727382166_n

10175956_10152396575801541_6156401098272297629_n

10559764_10152396575726541_7185801609891298930_n

Delphi Indy TCPClient/TCPServer元件傳檔

Indy這套免費又強大的網路元件相信對Delphi開發者不陌生,不過常常被問如何透過Indy傳送檔案。
寫了個簡單的範例給大家。

一、伺服端
只需要在表單放上一個IdTCPServer元件,接著在FormOnCreate以及IdTCPServer1OnExecute寫上
[pascal]
procedure TForm1.FormCreate(Sender: TObject);
begin
idtcpserver1.DefaultPort := 1234; // 可自行更改Port號,但Client/Server要一致
idtcpserver1.Active:=true;
end;

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
ms:Tfilestream;
fn:String;
begin
fn := ExtractFileName(acontext.Connection.IOHandler.ReadLn()); // 從Client接收檔名
ms := Tfilestream.Create(‘c:\’+fn, fmCreate);
ms.Position :=0;
acontext.Connection.IOHandler.ReadStream(ms,0,true);
ms.Free;
end;
[/pascal]

二、客戶端
畫面上放上IdTCPClient外,再放上三個Edit(分別是EdtHost、EdtPort、EdtFileName)以及四個Button(分別是BtnConnect、BtnDisConnect、BtnChooseFile、BtnSend)以及一個OpenDialog
[pascal]
procedure TForm1.BtnConnectClick(Sender: TObject);
begin
// 連接到伺服器
if IdTCPClient1.Connected then
IdTCPClient1.Disconnect;
IdTCPClient1.Host := EdtHost.Text;
IdTCPClient1.Port := StrToInt(EdtPort.Text);
IdTCPClient1.Connect;
end;

procedure TForm1.BtnDisconnectClick(Sender: TObject);
begin
// 斷開連線
IdTCPClient1.Disconnect;
end;

procedure TForm1.BtnChooseFileClick(Sender: TObject);
begin
// 選擇檔案
if opendialog1.Execute then begin
EdtFileName.Text :=opendialog1.FileName;
end;
end;

procedure TForm1.BtnSendClick(Sender: TObject);
var
ms : tmemorystream;
begin
// 傳送檔案
BtnConnect.Click;
ms := Tmemorystream.Create;
ms.Clear;
ms.LoadFromFile(EdtFileName.Text);
ms.Position :=0;
IdTCPClient1.IOHandler.LargeStream := true;
idtcpclient1.IOHandler.WriteLn(ExtractFileName(EdtFileName.Text)); // 告知檔名
idtcpclient1.IOHandler.Write(ms);
idtcpclient1.IOHandler.Close; // 很重要的一行,不然傳送完,無法開啟會出現檔案使用中
ms.Free;
end;
[/pascal]

POS收銀發票紙安裝?

好像常被問到POS機器上的發票要如何更換收執跟存根這件事!乾脆就拍了些照片分享出來

10615497_10152372365721541_4102564396419321322_n
一、發票機上蓋打開後,會發現有二個槽,右邊的叫做發票存根聯(存根聯是店家自己留存用的,而且應依稅捐稽徵機關管理營利事業會計帳簿憑證辦法第27條規定,除應永久保存或有關未結會計事項者外,於會計年度決算程序辦理終了後,至少保存5年。);左邊的叫做發票收執聯(收執聯是店家給消費者保管,對獎用)。

10348600_10152372365756541_1593691220301017020_n

二、我們先裝存根聯,把黑色定位點朝上

10440967_10152372365801541_2805259296329859052_n

三、接下來按照方向從箭頭處穿入,壓住旁邊的壓桿穿出(沒壓住的話會被擋住)
10615525_10152372365936541_1208175994699616437_n

 

四、接著把紙張插入存根捲紙軸中,記得是順時針方向

 

983827_10152372365981541_8942709199697736152_n

五、完成存根聯安裝

 

10647239_10152372366046541_6579798124903263254_n

六、收執聯也一樣是黑色定位點朝上

10343654_10152372366111541_7844571347815681004_n

七、依照箭頭穿入紙張,按住旁邊的壓桿讓紙張穿出

1240091_10152372369436541_6840354904454565874_n

八、完成後,蓋回上蓋,按住存根進紙以及收執進紙不放讓二聯定位完成即可

1901594_10152372366186541_2042713172510746853_n

九、就可以印出漂亮的發票了

 
相關法令: 營業人使用收銀機辦法
http://law.moj.gov.tw/LawClass/LawContent.aspx?PCODE=G0340084

Delphi偵測按鍵輸入

1. Form -> keyprivew = True
2.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_down) or (key = 13) then begin // 如果按向下鍵或Enter
//key:=vk_tab;
Caption :=ActiveControl.Name;
SendMessage(getparentform(self).Handle,WM_NEXTDLGCTL,0,0);
end else if (key = vk_up) then begin // 如果按向上鍵
Caption :=ActiveControl.Name;
SendMessage(getparentform(self).Handle,WM_NEXTDLGCTL,1,0);
end;
if ssctrl in shift then
if key = vk_f11 then showmessage(‘按下Ctrl+F11’);
end;