Menghitung jumlah hari dengan Pemograman Delphi.

Posted by @MINS











Silahkan klik gambar di bawah ini untuk mendonwload soucecode nya:






unit UnitJumHari;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Memo1: TMemo;
    Label3: TLabel;
    Label4: TLabel;
    Shape1: TShape;
    Bevel1: TBevel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    Function DaysPerMonth(YearIn, MonthIn: Integer): Integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
Function TForm1.DaysPerMonth(YearIn, MonthIn: Integer): Integer;
Const
  DaysInMonth: array[1..12] of integer =
            (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
    Result := DaysInMonth[MonthIn];
    If (MonthIn = 2) and IsLeapYear(YearIn) then
        Inc(Result);
End;


procedure TForm1.Button1Click(Sender: TObject);
Var
s1,s2:Integer;
Begin
  s1:=strToint(edit1.text);
  s2:=StrToInt(edit2.text);
  Memo1.Lines.Clear;
  Memo1.Lines.Add(IntToStr(DaysPerMonth(s1,s2)));
  Memo1.Lines.Add('Hari');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
halt;
end;
end.


Silahkan klik gambar di bawah ini untuk mendonwload soucecode nya:


Read More......

Mengirimkan Email dengan delphi

Posted by @MINS

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
edtSubject: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edtNamaPengirim: TEdit;
edtEmailPengirim: TEdit;
Label4: TLabel;
edtNamaPenerima: TEdit;
edtEmailPenerima: TEdit;
Label5: TLabel;
MemoMessage: TMemo;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses MAPI;

{$R *.dfm}

function SendMail(const Subject, Body, FileName,
SenderName, SenderEMail,
RecipientName, RecipientEMail: string): Integer;


var
Message: TMapiMessage;
lpSender, lpRecipient: TMapiRecipDesc;
FileAttach: TMapiFileDesc;
SM: TFNMapiSendMail;
MAPIModule: HModule;
begin
FillChar(Message, SizeOf(Message), 0);
with Message do
begin
if (Subject <> '') then
lpszSubject := PChar(Subject);
if (Body <> '') then
lpszNoteText := PChar(Body);
if (SenderEmail <> '') then
begin
lpSender.ulRecipClass := MAPI_ORIG;
if (SenderName = '') then
lpSender.lpszName := PChar(SenderEMail)
else
lpSender.lpszName := PChar(SenderName);
lpSender.lpszAddress := PChar(SenderEmail);
lpSender.ulReserved := 0;
lpSender.ulEIDSize := 0;
lpSender.lpEntryID := nil;
lpOriginator := @lpSender;
end;
if (RecipientEmail <> '') then
begin
lpRecipient.ulRecipClass := MAPI_TO;
if (RecipientName = '') then
lpRecipient.lpszName := PChar(RecipientEMail)
else
lpRecipient.lpszName := PChar(RecipientName);
lpRecipient.lpszAddress := PChar(RecipientEmail);
lpRecipient.ulReserved := 0;
lpRecipient.ulEIDSize := 0;
lpRecipient.lpEntryID := nil;
nRecipCount := 1;
lpRecips := @lpRecipient;
end
else lpRecips := nil;
if (FileName = '') then
begin
nFileCount := 0;
lpFiles := nil;
end
else
begin
FillChar(FileAttach, SizeOf(FileAttach), 0);
FileAttach.nPosition := Cardinal($FFFFFFFF);
FileAttach.lpszPathName := PChar(FileName);
nFileCount := 1;
lpFiles := @FileAttach;
end;
end;
MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule = 0 then
Result := -1
else
try
@SM := GetProcAddress(MAPIModule, 'MAPISendMail');
if @SM <> nil then
begin
Result := SM(0, Application.Handle, Message, MAPI_DIALOG or MAPI_LOGON_UI, 0);
end
else
Result := 1;
finally
FreeLibrary(MAPIModule);
end;
if Result <> 0 then
MessageDlg('Gagal mengirim email (' + IntToStr(Result) + ').', mtError, [mbOK], 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMail(edtSubject.Text,
MemoMessage.Text,
'',
edtNamaPengirim.Text, edtEmailPengirim.Text,
edtNamaPenerima.Text, edtEmailPenerima.Text);
end;

end.

Read More......

Mendisable menu close

Posted by @MINS

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
hMenuHandle : HMENU;
begin
hMenuHandle := GetSystemMenu(Form1.Handle, FALSE);
if (hMenuHandle <> 0) then DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;

end.

Read More......

Password Screen Saver

Posted by @MINS

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Forms, StdCtrls, Registry, Classes, Controls,
ExtCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Panel2: TPanel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
reg: TRegistry;
const xorwert: array[1..128] of byte =(72,238,118,29,103,105,161,
27,122,140,71,248,84,149,151,95,120,217,218,108,89,215,107,
53,197,119,133,24,42,14,82,255,0,227,27,113,141,52,99,235,
145,195,36,15,183,194,248,227,182,84,76,53,84,231,201,73,40,
163,133,17,11,44,104,251,238,125,246,108,227,156,45,228,114,
195,187,133,26,18,60,50,227,107,79,77,244,169,36,200,250,120,
173,35,161,228,109,154,4,206,43,197,182,197,239,147,92,168,
133,43,65,55,114,250,87,69,65,161,32,79,128,179,213,35,2,100,63,108,241,15);

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
buf: Array[0..256] of char;
laenge: word;
a: byte;
asdec: byte;
passwort : String[128];
begin
passwort := '';
asdec := 0;
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('\Control Panel\Desktop',FALSE);
if reg.ValueExists ('ScreenSave_Data')= true then
Reg.ReadBinaryData('ScreenSave_Data', buf, sizeof(buf));
laenge := (Reg.GetDataSize('ScreenSave_Data') - 1) shr 1;
if reg.ValueExists ('ScreenSaveUsePassword')= true then
begin
if Reg.ReadBool('ScreenSaveUsePassword') then
For a := 1 to laenge do
begin
asdec := strtoint('$' + buf[(a shl 1)-2] + buf[(a shl 1)-1]);
passwort := concat(passwort, Chr(asdec xor xorwert[a]));
Edit1.Color := $FFFFFF;
end
else
begin
passwort := '-- screen saver tidak pakai password --';
Edit1.Color := $0000FF;
end;
reg.free;
Edit1.Text := passwort;
end

else begin
Edit1.Text := '-- screen saver tidak pakai password --';
Edit1.Color := $006C6CFF;
end;
//Edit1.SelectAll;
//Edit1.CopyToClipboard;
end;

end.

Read More......

Menambahkan Image pada Combo Box

Posted by @MINS

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ImgList, StdCtrls;

type
TForm1 = class(TForm)
ImageList1: TImageList;
ComboBox1: TComboBox;
procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
ComboBox1.Canvas.FillRect(Rect);
ImageList1.Draw(ComboBox1.Canvas,Rect.Left,Rect.Top,Index);
ComboBox1.Canvas.TextOut(Rect.Left+ImageList1.Width+2,Rect.Top,
ComboBox1.Items[Index]);
end;

end.

Read More......

Bahasa Pemrograman Delphi?

Posted by @MINS

Delphi merupakan bahasa pemrograman yang sering digunakan dikalangan kampus, sebagai penunjang matakuliah pemrograman walaupun sekarang ini sudah hampir kurang diminati dengan adannya beberapa bahasa pemrograman dengan menggunakan metoda dan cara yang lebih simple dalam penggunaannya. Namun kekuatan delphi masih bisa diungulkan dengan adanya versi-versi terbaru yang telah berbasis .net.

Bahasa pemrograman delphi ini sintak dasarnya menggunakan bahasa Pascal (Object Pascal Oriented). Apabila kita sudah banyak mengenal bahasa Pascal kita tidak akan susah untuk mempelajari bahasa pemrograman delphi ini.

Basis Object Oriented Programming(OOP)dalam Delphi dapat mempermudah pengembang aplikasi dalam mebangun project yang dikelolanya.

Beberapa kelebihan bahasa programan Delphi:
1. Komponen dapat dipakai ulang dan dapat dikembangkan
Delphi mempermudah pembuatan program bagi komponen-komponen Windows seperti label, button dan bahkan dialog dan lainnya. Komponen ini dapat diatur sesuai dengan kebutuhan kita si pembuat program.

2. Dapat mengakses VBX.
Dengan Delphi kita dapat langsung mengakses komponen VBX yang sudah merupakan satu kesatuan dan dapat langsung digunakan .

3. Template Aplikasi dan template Form
Dalam Delphi telah didefinisikan template aplikasi dan template Form yang dapat dipakai untuk membuat semua form aplikasi dengan lebih cepat.

4. Lingkungan pengembang Delphi
Lingkungan yang disedia pada Delphi sangat mudah untuk digunakan dalam pengembangan aplikasi yang produktif.

5. Program terkompilasi.
Kebanyakan lingkungan pengembang visual pada windows menyatakan dapat mengkompilasi program. Namun sebenarnya mereka hanya dapat mengkompilasi sebagian program dan kemudian mengabungkan interpreter dan pcode dalam sebuah file. Dengan cara ini akan menghasilkan aplikasi dengan eksekusi yang lambat. Namun dengan pemrograman delphi output yang dihasilkannya merupakan file yang benar-benar terkompilasi tanpa interpreter dan pcode sehinga dapat berjalan lebih cepat. Program Delphi yang kecil dapat diserahkan dalam bentuk sebuah file EXE tanpa harus menyertakan file DLL.

6. Kemampuan mengakses data dalam bermacam format.
Dalam Delphi terdapat BDE ( Borland Database Engine) yang digunakan untuk mengakses format file data yang ada. BDE telah melalui beberapa tahap pengembangan, yang sebelumnyaBDE dikenal dengan ODAPI , kemudian IDAPI. Sekarang BDE sudah menjadi standar untuk akses semua jenis data yang ada saat ini. BDE juga dapat mengakses Database Client / Server seperti Sybase, SQL Server, Oracle dan Borland Interbase. Bila dibandingkan dengan microsoft ODBC , BDE lebih unggul dalam hal unjuk kerjannya, hal ini karena BDE memiliki bentuk yang lebih mendekati format database tujuannya.

Selamat... menggunakan Delphi....

Read More......