May 2010 - Posts

Buat yang suka download, YB adalah nilai tertinggi yang sudah akan di pakai. :D (at least sebagai virtual data, sesuai report tahun 2010 akan manusia akan men-generate 1.3 ZB data).
Sebagai refence saja, kalau-kalau lupa soal ukuran storage kita.
http://en.wikipedia.org/wiki/Binary_prefix

Share this post: | | | |

Q:
Bagaimana memanggil form tanpa harus meng-instance terus?

A:
Kita harus menyimpan form tersebut dalam variable. Kita gunakan variable tersebut sebagai trigger form-nya.
Implementasi di vb.net agak sedikit berbeda.


// C#

public partial class Form1 : Form
{
private Form2 f2 = null;

private void button1_Click(object sender, EventArgs e)
{
if (this.f2 != null && !this.f2.IsDisposed)
{
this.f2.Focus();
}
else
{
this.f2 = new Form2();
this.f2.Show();
}
}
}


' VB.Net

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Not Form2 Is Nothing And Not Form2.IsDisposed Then
Form2.Focus()
Else
Form2.Show()
End If

End Sub
Share this post: | | | |

Q:
Bagaimana me-loop char, jadi seperti scroller text?

A:
Banyak caranya salah satunya memmainkan index dalam StringBuilder class.


// C#

// using System.Text;

private string MarqueeText(string text, bool reverse)
{
    StringBuilder sb = new StringBuilder(text);
    char ch = '\0';
   
    {
        if ((reverse)) {
            ch = sb(0);
            sb.Remove(0, 1);
            sb.Insert(sb.Length, ch);
        }
        else {
            ch = sb(sb.Length - 1);
            sb.Remove(sb.Length - 1, 1);
            sb.Insert(0, ch);
        }
    }
   
    return sb.ToString();
}


// usage in timer control
private void TickOfTmrTxtToMarquee(object sender, System.EventArgs e)
{
    this.txtToMarquee.Text = this.MarqueeText(this.txtToMarquee.Text);
    this.lblToMarquee.Text = this.MarqueeText(this.lblToMarquee.Text, true);
}


' VB.Net

' Imports System.Text

Private Function MarqueeText(ByVal text As String, Optional ByVal reverse As Boolean = False) As String
Dim sb As New StringBuilder(text)
Dim ch As Char

With sb
If (reverse) Then
ch = sb(0)
.Remove(0, 1)
.Insert(.Length, ch)
Else
ch = sb(.Length - 1)
.Remove(.Length - 1, 1)
.Insert(0, ch)
End If
End With

Return sb.ToString()
End Function


' usage in timer control
Private Sub TickOfTmrTxtToMarquee(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmrTxtToMarquee.Tick
Me.txtToMarquee.Text = Me.MarqueeText(Me.txtToMarquee.Text)
Me.lblToMarquee.Text = Me.MarqueeText(Me.lblToMarquee.Text, True)
End Sub
Share this post: | | | |
Posted Friday, May 7, 2010 1:00 AM by dede | with no comments
Filed under: , ,

Q:
Mengapa kalau kita men-save image dengan format MemoryBmp atau RawFormat gagal?

A:
Dalam method Image.Save, Format MemoryBmp and RawFormat tidak memiliki metadata untuk processing the image.
Oleh karena itu untuk format dulu image itu ke dalam mime/type baru di save.
atau coba gunakan format image yang lain seperti png atau bmp (lihat pada class: System.Drawing.Imaging.ImageFormat)


// C#

// using System.IO;
// using System.Drawing.Imaging;

using (MemoryStream ms = new MemoryStream())
{
this.pictureBox1.Image.Save(ms, ImageFormat.MemoryBmp);
Byte[] imgBytes = ms.GetBuffer();
}


' VB.Net

' Imports System.IO;
' Imports System.Drawing.Imaging;

Using ms As New MemoryStream()
    Me.pictureBox1.Image.Save(ms, ImageFormat.MemoryBmp)
    Dim imgBytes As [Byte]() = ms.GetBuffer()
End Using
Share this post: | | | |

Q:
Bagaimana menambahkan password di PDF file?

A:
Pertama di butuhkan library yang mengenal PDF file.
Dalam hal ini kita coba menggunakan iTextSharp.

 

iTextSharp (.net) merupakan library yang di terinspirasi dari iText (java) untuk bekerja dengan pdf file.
Karena ini porting, jadi hanya set class-nya saja yang mirip dan tidak memerlukan java runtime untuk itu. cukup dengan .net saja.
// C#
'using System.IO
'using iTextSharp.text
'using iTextSharp.text.pdf

PdfReader reader = new PdfReader("MyFile.pdf");
Document doc = new Document(reader.GetPageSize(1));
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("MyFile.enc.pdf", FileMode.Create));
    
writer.Open();
writer.SetEncryption(PdfWriter.STRENGTH40BITS, "pass1", "ownerpass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
PdfContentByte contentByte = writer.DirectContent;
doc.Open();
    
for (int i = 1; ic = reader.NumberOfPages; i <= ic; i++) {
    doc.NewPage();
    contentByte.AddTemplate(writer.GetImportedPage(reader, i), 0, 0);
}
    
reader.Close();
doc.Close();
writer.Close();


'Imports System.IO
'Imports iTextSharp.text
'Imports iTextSharp.text.pdf

Dim reader As New PdfReader("MyFile.pdf")
Dim doc As New Document(reader.GetPageSize(1))
Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("MyFile.enc.pdf", FileMode.Create))

writer.Open()
writer.SetEncryption(PdfWriter.STRENGTH40BITS, "pass1", "ownerpass", PdfWriter.AllowCopy Or PdfWriter.AllowPrinting)
Dim contentByte As PdfContentByte = writer.DirectContent
doc.Open()

For i As Integer = 1 To reader.NumberOfPages
	doc.NewPage()
	contentByte.AddTemplate(writer.GetImportedPage(reader, i), 0, 0)
Next

reader.Close()
doc.Close()
writer.Close()
Share this post: | | | |
Posted Wednesday, May 5, 2010 1:00 AM by dede | with no comments
Filed under: , ,