Thursday, September 12, 2013

Form Login pada Participants Page

Assalamualaikum ,,

Pada kesempatan kali ini akan saya tampilkan bagian-bagian yang ada pada participants form, yang pertama disini yaitu form login. Halaman yang pertama akan muncul saat menjalankan aplikasinya yaitu form login, setelah itu baru ke menu home/tampilan utama. tapi untuk masuk ke menu utama, peserta harus login dulu sesuai dengan username dan password nya. untuk mendapatkan username sama passwordnya peserta harus terlebih dahulu mendaftarkan diri ke admin, baru setelah itu admin memasukkan data ke database untuk keperluan login.

Tampilan Halaman Login :



Salah Password :


Source :

 private async void Button_Click_2(object sender, RoutedEventArgs e)
        {
            ID = txtUsername.Text;
            bool hasil = false;
            hasil = await service.LoginUserAsync(new ParticipantIOAA.ServiceReference1.Login
            {
                Username = txtUsername.Text,
                UserPassword = txtPassword.Password.ToString(),
                UserPrivillage = "participant"
            });
            if (hasil)
            {
                MainWindow main = new MainWindow();
                main.Show();
                var dlg = Window.GetWindow(this);
                dlg.Close();
            }
            else
            {
                MessageBox.Show("User or Password Wrong");
            }
        }

Sekian.

Penjabaran pen touch

Assalamualaikum,,

Pada malam kali ini saya akan membahas mengenai touch pen yang ada pada form peserta , kita bahas fungsinya beserta koding / sintak nya kayak gimana . oke pada touch ini terdapat beberapa fungsi yaitu diantaranya :

  • Save Ink
  • Save Ink as a bitmap
  • Load Ink
  • Cut Ink
  • Copy Ink
  • Paste Ink
  • Delete Ink
  • Select Ink
  • Format Ink
  • Stylus Color
  • Change stylus type
  • Change pen

Pada menu save ini , berfungsi untuk mengsave hasil dari gambar yang sudah kita buat dan dengan ekstensi .bmp .

int marg = int.Parse(this.inkCanv.Margin.Left.ToString());
RenderTargetBitmap rtb = 
        new RenderTargetBitmap((int)this.inkCanv.ActualWidth - marg,
                (int)this.inkCanv.ActualHeight - marg, 0, 0, 
            PixelFormats.Default);
rtb.Render(this.inkCanv);
BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(file);
file.Close();


Pada menu open ini berfungsi untuk membuka gambar dari luar aplikasi , dan dalam bentuk ekstensi .jpg .bmp .

this.inkCanv.Strokes = new StrokeCollection(file);


Sesua dengan namanya yaitu NEW , fungsi ini untuk mengganti lembar dengan yang baru.

this.inkCanv.Strokes.Clear();


Pada fungsi cut ini fungsinya yaitu memotong obyek yag telah di seleksi.

if (this.inkCanv.GetSelectedStrokes().Count > 0)
    this.inkCanv.CutSelection();


Fungsi ini yaitu untuk mengcopy obyek yang telah di seleksi.

if (this.inkCanv.GetSelectedStrokes().Count > 0)
    this.inkCanv.CopySelection();


Fungsi ini adalah untuk menempelkan hasil copy an pada tempat yang kita inginkan.

if (this.inkCanv.CanPaste())
    this.inkCanv.Paste();


Fungsi ini untuk menghapus obyek

if (this.inkCanv.GetSelectedStrokes().Count > 0)
{
    foreach (Stroke strk in this.inkCanv.GetSelectedStrokes())
        this.inkCanv.Strokes.Remove(strk);
}


Fungsinya yaitu untuk menyeleksi obyek

this.inkCanv.Select(this.inkCanv.Strokes);


Fungsi ini yaitu untuk memformat semua obyek yang di seleksi.

StylusSettings dlg = new StylusSettings();
dlg.Owner = this;

// Try getting the DrawingAttributes of the first selected stroke.
StrokeCollection strokes = this.inkCanv.GetSelectedStrokes();

if (strokes.Count > 0)
    dlg.DrawingAttributes = strokes[0].DrawingAttributes;
else
    dlg.DrawingAttributes = this.inkCanv.DefaultDrawingAttributes;

if ((bool)dlg.ShowDialog().GetValueOrDefault())
{
    // Set the DrawingAttributes of all the selected strokes.
    foreach (Stroke strk in strokes)
        strk.DrawingAttributes = dlg.DrawingAttributes;
}


private void createGridOfColor()
{
    PropertyInfo[] props = typeof(Brushes).GetProperties(BindingFlags.Public |
                                          BindingFlags.Static);
    // Create individual items
    foreach (PropertyInfo p in props)
    {
        Button b = new Button();
        b.Background = (SolidColorBrush)p.GetValue(null, null);
        b.Foreground = Brushes.Transparent;
        b.BorderBrush=Brushes.Transparent;
        b.Click += new RoutedEventHandler(b_Click);
        this.ugColors.Children.Add(b);
    }
}


Fungsinya disini yaitu untuk mengembalikan kursor , menghapus , menghapus per obyek dan menyeleksi.

public DrawingAttributes DrawingAttributes
{
    set
    {
        chkPressure.IsChecked = value.IgnorePressure;
        chkHighlight.IsChecked = value.IsHighlighter;
        penWidth = value.Width;
        penHeight = value.Height;
        currColor = value.Color;
    }
    get
    {
        DrawingAttributes drawattr = new DrawingAttributes();
        drawattr.IgnorePressure = (bool)chkPressure.IsChecked;
        drawattr.Width=penWidth;
        drawattr.Height = penHeight;
        drawattr.IsHighlighter = (bool)chkHighlight.IsChecked;
        drawattr.Color = currColor;
        return drawattr;
    }
}

Sekian...

FlowChart Participants Page

Assalamualaikum,,,

Berikut adalah tampilan dari flowchart pada participants page , pada flowchart ini di buat menggunakan microsoft visio 2007.

FlowChart Participants Page :


Penjelasan :

•Start•Peserta melakukan login.•Proses login , apakah login benar atau tidak , kalau benar makan akan masuk ke pengolahan data/menu utama. Kemudian apabila salah, maka akan kembali ke proses login.•Apabila peserta masuk ke menu list constants, questions, change password, settings dan logout maka akan masuk ke data/inpormasi.•Peserta melakukan logout, apabila YA maka akan keluar dari aplikasi, dan apabila tidak , maka akan kembali pada pengolahan data.•End.

Sekian.

Monday, September 9, 2013

Timer untuk Program Olympiade Astronomi

Berikut ini adalah contoh bagaimana cara membuat timer yang dapat diset pada halaman admin. yang pertama untuk mengatur berapa banyak waktu yang dibutuhkan dalam pertandingan terlebih dahulu atur waktuna pada halaman set timer yang ada pada aplikasi admin IOAA. Dibawah ini merupakan tampilan XMLnya.

sciprt  utamanya adalah sebagai berikut :
          bool hasil = await MyService.InsertTimerAsync(new ServiceReference1.Timer
            {
                startTime = txtdate.Text + " " + txttime.Text,
                endTime = Convert.ToInt16(txtduration.Text)

            });
            if (hasil)
            {
                MessageBox.Show("Timer was Set");               
            }
            else
            {
                MessageBox.Show("Cannot Set");
            }
dimana script diatas memanggil servise InsertTimerAsync yang merupakan service dari WCF yg berisi sript seperti dibawah ini:
public bool InsertTimer(Timer TimerInsert)
        {
            string strMessage = string.Empty;
            con.Open();
            SqlCommand cmd = new SqlCommand("update tbl_timer set start_time=@start_time,end_time=DATEADD(MINUTE,@end_time,@start_time)", con);
            cmd.Parameters.AddWithValue("@start_time", TimerInsert.startTime);
            cmd.Parameters.AddWithValue("@end_time", TimerInsert.endTime);
            try
            {
                int result = cmd.ExecuteNonQuery();

                con.Close();
                if (result == 1)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception e)
            {
                return false;
            }           
        }
Setelah settingan untuk timer sudah dibuat maka cara membuat timer dan mencocokkan hasil settingan timer adalah sebagai berikut :
public void timer_Tick(object sender, object e)
        {
            new Action(async () =>
            {
                bool cek = await service.checkTimerAsync();

                if (cek)
                {
                    txtWarning.Content = "";
                    gridSoal.Visibility = Visibility.Visible;
                    var c = await service.GetTimeAsync();
                    foreach (var cou in c)
                    {
                        sec = cou.Timer;
                    }
                    jam = sec / 3600;
                    int b = jam * 3600;
                    menit = (sec - b) / 60;
                    detik = (sec - b) % 60;



                    // Else continue counting.
                    if (detik < 1)
                    {
                        detik = 59;
                        if (menit == 0)
                        {
                            menit = 59;
                            if (jam != 0)
                                jam -= 1;

                        }
                        else
                        {
                            menit -= 1;
                        }
                    }
                    else
                        detik -= 1;
                    // Display the current values of hours, minutes and seconds in
                    // the corresponding fields.
                    t0.Text = "Time :";
                    t1.Text = ":";
                    t2.Text = ":";
                    txtJam.Text = jam.ToString();
                    txtMenit.Text = menit.ToString();
                    txtDetik.Text = detik.ToString();
                    if ((jam == 0) && (menit == 0) && (detik == 0))
                    {
                        // If the time is over, clear all settings and fields.
                        // Also, show the message, notifying that the time is over.

                        // this.Frame.Navigate(typeof(HalamanPeserta), rootPage);
                        t0.Text = "";
                        t1.Text = "";
                        t2.Text = "";
                        txtJam.Text = "";
                        txtMenit.Text = "";
                        txtDetik.Text = "";
                        gridSoal.Visibility = Visibility.Collapsed;
                        txtWarning.Content = "End Competition";
                        timer.Stop();
                    }
                }
                else
                {
                    // MessageBox.Show("Not the competition time");
                    gridSoal.Visibility = Visibility.Collapsed;
                    t0.Text = "";
                    t1.Text = "";
                    t2.Text = "";
                    txtJam.Text = "";
                    txtMenit.Text = "";
                    txtDetik.Text = "";
                    txtWarning.Content = "Not the competition time";

                }
            }).Invoke();


        }