Exemplo n.º 1
0
        void ArkaPlandaÇalışanUygulama()
        {
            while (Çalışsın)
            {
                Bekleyenİşlemler_Yap();

                EkrandakileriHareketlendir();
                EkrandanSilinenleriHareketlendir();

                if (BekleyenEkranlama.Count > 0)
                {
                    EkranıTazele();
                }
                else
                {
                    AnaPano.Invoke((Action)(() => { AnaPano.AutoScroll = true; }));

                    ArkaPlanİşlemiÇalışsınMı.WaitOne();
                    ArkaPlanİşlemiÇalışsınMı.Reset();
                }
            }
        }
Exemplo n.º 2
0
        void EkranıTazele()
        {
            AnaPano.Invoke((Action)(() =>
            {
                foreach (var biri in BekleyenEkranlama)
                {
                    switch (biri.EkranlamaTipi)
                    {
                    case Bekleyen_Ekranlama_Tipi_.Ekle:
                        AnaPano.Controls.Add(biri.Nesne as Panel);
                        (biri.Nesne as Panel).BringToFront();
                        break;

                    case Bekleyen_Ekranlama_Tipi_.ÖneGetir:
                        (biri.Nesne as Panel).BringToFront();
                        break;

                    case Bekleyen_Ekranlama_Tipi_.PozisyonunuDeğiştir:
                        (biri.Nesne as Panel).Location = (Point)biri.Değer;
                        break;

                    case Bekleyen_Ekranlama_Tipi_.Sil:
                        foreach (Control n in (biri.Nesne as Panel).Controls)
                        {
                            n.Dispose();
                        }
                        (biri.Nesne as Panel).Controls.Clear();
                        (biri.Nesne as Panel).Dispose();
                        break;

                    case Bekleyen_Ekranlama_Tipi_.KaydırmaÇubuğunuGizle:
                        AnaPano.AutoScroll = false;
                        break;

                    case Bekleyen_Ekranlama_Tipi_.SolaDayalıResmiDeğiştir:
                        (biri.Nesne as PictureBox).Image = (Image)biri.Değer;
                        break;

                    case Bekleyen_Ekranlama_Tipi_.YazıyıDeğiştir:
                        int YüzdeDeğeri = 0;
                        if (biri.Nesne is ComboBox && (biri.Değer as string).Contains(";"))
                        {
                            (biri.Nesne as ComboBox).Items.Clear();
                            (biri.Nesne as ComboBox).Items.AddRange((biri.Değer as string).Split(';'));
                        }
                        else if (biri.Nesne is ProgressBar && int.TryParse((biri.Değer as string), out YüzdeDeğeri))
                        {
                            (biri.Nesne as ProgressBar).Value = YüzdeDeğeri;
                        }
                        else
                        {
                            (biri.Nesne as Control).Text = (string)biri.Değer;
                        }
                        break;

                    case Bekleyen_Ekranlama_Tipi_.YazıyıDurgunlaştır:
                        (biri.Nesne as Control).Enabled = false;
                        break;

                    case Bekleyen_Ekranlama_Tipi_.YazıyıEtkinleştir:
                        (biri.Nesne as Control).Enabled = true;
                        break;
                    }
                }

                AnaPano.Refresh();
            }));

            BekleyenEkranlama.Clear();
        }
Exemplo n.º 3
0
        public void Uyar(int MesajNo, int YazıNo, string Uyarı, ToolTipIcon İkon = ToolTipIcon.Warning, int ZamanAşımı = 10000, string Başlık = "ilgili MesajNo daki mesajın tanımı")
        {
            if (Ekrandakiler.Count == 0)
            {
                return;
            }

            if (MesajNo >= Ekrandakiler.Count)
            {
                MesajNo = Ekrandakiler.Count - 1;
            }
            if (MesajNo < 0)
            {
                MesajNo = 0;
            }

            if (Başlık == "ilgili MesajNo daki mesajın tanımı")
            {
                this.Uyarı.ToolTipTitle = Ekrandakiler[MesajNo].Tanım;
            }
            else
            {
                this.Uyarı.ToolTipTitle = Başlık;
            }

            this.Uyarı.ToolTipIcon = İkon;

            Control Eleman;

            if (YazıNo == -1)
            {
                if (Ekrandakiler[MesajNo].SolaDayalıResim == null)
                {
                    return;
                }
                Eleman = Ekrandakiler[MesajNo].SolaDayalıResim;
            }
            else
            {
                if (Ekrandakiler[MesajNo].Yazılar.Count == 0)
                {
                    return;
                }

                if (YazıNo >= Ekrandakiler[MesajNo].Yazılar.Count)
                {
                    YazıNo = Ekrandakiler[MesajNo].Yazılar.Count - 1;
                }
                if (YazıNo < 0)
                {
                    YazıNo = 0;
                }

                Eleman = Ekrandakiler[MesajNo].Yazılar[YazıNo];
            }

            if (AnaPano.InvokeRequired)
            {
                AnaPano.Invoke(new Action(() =>
                {
                    this.Uyarı.Show(string.Empty, Eleman);
                    this.Uyarı.Show(Uyarı, Eleman, ZamanAşımı);
                }));
            }
            else
            {
                this.Uyarı.Show(string.Empty, Eleman);
                this.Uyarı.Show(Uyarı, Eleman, ZamanAşımı);
            }
        }
Exemplo n.º 4
0
        void Bekleyenİşlemler_YenidenÇizdir()
        {
            AnaPano.Invoke((Action)(() =>
            {
                Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Pano.BringToFront();

                int EtiketlerinToplamYüksekliği = 0;
                int EnUzunEtiketinUzunluğu = 0;
                Point[] EtiketlerinKonumu = new Point[Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar.Count];
                for (int i = 0; i < Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar.Count; i++)
                {
                    EtiketlerinKonumu[i] = new Point(Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar[i].Location.X, EtiketlerinToplamYüksekliği);
                    EtiketlerinToplamYüksekliği += Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar[i].Height + Ayarlar.İkiYazıArasıMesafe;
                    if (Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar[i].Width > EnUzunEtiketinUzunluğu)
                    {
                        EnUzunEtiketinUzunluğu = Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar[i].Width;
                    }
                }
                EtiketlerinToplamYüksekliği -= Ayarlar.İkiYazıArasıMesafe;

                int ResiminYüksekliği = 0;
                int ResiminUzunluğu = 0;
                if (Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim != null)
                {
                    int YazılarınKonumu_X = 0, YazılarınKonumu_Y = 0;

                    if (Ayarlar.Varsayılan_Resim_Boyut.Height == 0)
                    {
                        Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Height = EtiketlerinToplamYüksekliği;
                    }
                    else if (Ayarlar.Varsayılan_Resim_Boyut.Height > 0)
                    {
                        Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Height = Ayarlar.Varsayılan_Resim_Boyut.Height;
                    }

                    if (Ayarlar.Varsayılan_Resim_Boyut.Width == 0)
                    {
                        Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Width = EtiketlerinToplamYüksekliği;
                    }
                    else if (Ayarlar.Varsayılan_Resim_Boyut.Width > 0)
                    {
                        Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Width = Ayarlar.Varsayılan_Resim_Boyut.Width;
                    }

                    YazılarınKonumu_X = Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Width + Ayarlar.ResimİleYazıArasıMesafe;

                    if (Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Height < EtiketlerinToplamYüksekliği)
                    {
                        int fark = EtiketlerinToplamYüksekliği - Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Height;
                        fark /= 2;

                        Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Location = new Point(0, fark);
                    }
                    else if (Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Height > EtiketlerinToplamYüksekliği)
                    {
                        int fark = Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Height - EtiketlerinToplamYüksekliği;
                        YazılarınKonumu_Y = fark / 2;

                        Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Location = new Point(0, 0);
                    }

                    for (int i = 0; i < Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar.Count; i++)
                    {
                        Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Yazılar[i].Location = new Point(YazılarınKonumu_X, EtiketlerinKonumu[i].Y + YazılarınKonumu_Y);
                    }

                    ResiminYüksekliği = Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Height;
                    ResiminUzunluğu = Ekrandakiler[Bekleyenİşlemler[0].MesajNo].SolaDayalıResim.Width;
                }

                Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Pano.Height = EtiketlerinToplamYüksekliği > ResiminYüksekliği ? EtiketlerinToplamYüksekliği : ResiminYüksekliği;
                if (!Ayarlar.Çerçeveli)
                {
                    Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Pano.Width = ResiminUzunluğu + Ayarlar.ResimİleYazıArasıMesafe + EnUzunEtiketinUzunluğu;
                }
                else
                {
                    Ekrandakiler[Bekleyenİşlemler[0].MesajNo].Pano.Height += 3;
                }
            }));

            if (Bekleyenİşlemler[0].MesajNo > 0)
            {
                for (int i = Bekleyenİşlemler[0].MesajNo + 1; i < Ekrandakiler.Count; i++)
                {
                    Ekrandakiler[i].HedefKonum.Y = Ekrandakiler[i - 1].HedefKonum.Y + Ekrandakiler[i - 1].Pano.Height + Ayarlar.İkiMesajArasıMesafe;
                    Ekrandakiler[i].EkranGüncellemesiGerekiyor = true;
                }
            }
        }