none
Move etme RRS feed

  • Soru

  • Merhaba seri haberleşme uzerinden gelen anlık bir veriyi labele alıyorum ama veri gittiginde label haliyle boş kaliyor veri gitse bile bu veriyi başka bir text-box a nasıl taşırım ve orada yeni veri gelinceye kadar kalmasını sağlaya bilirim
    4 Haziran 2020 Perşembe 19:37

Yanıtlar

  • Cevap icin teşekkürler  ama problem bende degil ki veride orada kalsa tamam eşik değeri var alarm icin ekranda motor sıcaklığı 40 derecede alarm veriyor 40 olunca labelle alarm yazıyor ama 39 olunca gidiyor kast ettiğim buydu anlık ben bu geldiyse orada kalmasını istiyordum 

    Ekran nesnelerini değişken gibi kullanmayın, daha az sıkıntı yaşarsınız. Ekranlara sakın iş yaptırmayın, onların görevi yalnızca veriyi göstermek ve diğer katmanlara komutları iletmek. Bunu yaptıktan sonra gelen verileri çok daha iyi yönettiğinizi göreceksiniz.

    Örneğin cihazla haberleşme ve verileri okuma işini tamamen yeni bir sınıfa çıkartın. Sözde kod olarak böyle bir şey olacak (derlenmez notepad'de karaladım):

    public class SicaklikYonetimi
    {
    	public double SonOkunanSicaklik {get; private set;}
    	public event EventHandler SicaklikDegisti;
    
    	private Thread OkumaThreadi;
    	public void CihaziDinle()
    	{
    		//...
    		OkumaThreadi = new Thread(Oku);
    	
    	}
    
    	private void Oku()
    	{
    		//..
     	okunan = _port.ReadLine(); // ya da her ne okunuyorsa
    	
    		if(okunan.length > 0) // bir şeyler okunduysa
    		{
    			SonOkunan = okunan;
    			OnSicaklikDegisti(EventArgs.Empty);
     
    		}
    
    		//..
    
    	}
    
    
        protected virtual void OnSicaklikDegisti(EventArgs e)
        {
            EventHandler handler = SicaklikDegisti;
            handler?.Invoke(this, e);
        }
    }

    Daha sonra bunu form içinde dilediğiniz gibi kullanabilirsiniz. Bu sınıftan bir nesne oluşturup bir düğmede CihaziDinle metodunu çalıştırabilir, SicaklikDegisti event'ine baglanıp  sıcaklık değiştikçe bunu label'da gösterebilirsiniz. 


    www.cihanyakar.com


    5 Haziran 2020 Cuma 06:59
  • label ya da textbox, icerigi siz değiştirmedikçe değişmez ki zaten.

    if (!string.IsNullOrEmpty(lblTasinacak.Text))
    {
       txtTasinacak.Text = lblTasinacak.Text;
    }




    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen Yasin AKAR 4 Haziran 2020 Perşembe 23:01
    4 Haziran 2020 Perşembe 20:52
    Yanıtlayıcı

Tüm Yanıtlar

  • label ya da textbox, icerigi siz değiştirmedikçe değişmez ki zaten.

    if (!string.IsNullOrEmpty(lblTasinacak.Text))
    {
       txtTasinacak.Text = lblTasinacak.Text;
    }




    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen Yasin AKAR 4 Haziran 2020 Perşembe 23:01
    4 Haziran 2020 Perşembe 20:52
    Yanıtlayıcı
  • Cevap icin teşekkürler  ama problem bende degil ki veride orada kalsa tamam eşik değeri var alarm icin ekranda motor sıcaklığı 40 derecede alarm veriyor 40 olunca labelle alarm yazıyor ama 39 olunca gidiyor kast ettiğim buydu anlık ben bu geldiyse orada kalmasını istiyordum 

    4 Haziran 2020 Perşembe 21:21
  • Cevap icin teşekkürler  ama problem bende degil ki veride orada kalsa tamam eşik değeri var alarm icin ekranda motor sıcaklığı 40 derecede alarm veriyor 40 olunca labelle alarm yazıyor ama 39 olunca gidiyor kast ettiğim buydu anlık ben bu geldiyse orada kalmasını istiyordum 

    Ekran nesnelerini değişken gibi kullanmayın, daha az sıkıntı yaşarsınız. Ekranlara sakın iş yaptırmayın, onların görevi yalnızca veriyi göstermek ve diğer katmanlara komutları iletmek. Bunu yaptıktan sonra gelen verileri çok daha iyi yönettiğinizi göreceksiniz.

    Örneğin cihazla haberleşme ve verileri okuma işini tamamen yeni bir sınıfa çıkartın. Sözde kod olarak böyle bir şey olacak (derlenmez notepad'de karaladım):

    public class SicaklikYonetimi
    {
    	public double SonOkunanSicaklik {get; private set;}
    	public event EventHandler SicaklikDegisti;
    
    	private Thread OkumaThreadi;
    	public void CihaziDinle()
    	{
    		//...
    		OkumaThreadi = new Thread(Oku);
    	
    	}
    
    	private void Oku()
    	{
    		//..
     	okunan = _port.ReadLine(); // ya da her ne okunuyorsa
    	
    		if(okunan.length > 0) // bir şeyler okunduysa
    		{
    			SonOkunan = okunan;
    			OnSicaklikDegisti(EventArgs.Empty);
     
    		}
    
    		//..
    
    	}
    
    
        protected virtual void OnSicaklikDegisti(EventArgs e)
        {
            EventHandler handler = SicaklikDegisti;
            handler?.Invoke(this, e);
        }
    }

    Daha sonra bunu form içinde dilediğiniz gibi kullanabilirsiniz. Bu sınıftan bir nesne oluşturup bir düğmede CihaziDinle metodunu çalıştırabilir, SicaklikDegisti event'ine baglanıp  sıcaklık değiştikçe bunu label'da gösterebilirsiniz. 


    www.cihanyakar.com


    5 Haziran 2020 Cuma 06:59
  • Teşekkür ederim uyarılarınızı kesinlikle uygulayacağım

    5 Haziran 2020 Cuma 07:12
  • Cevap icin teşekkürler  ama problem bende degil ki veride orada kalsa tamam eşik değeri var alarm icin ekranda motor sıcaklığı 40 derecede alarm veriyor 40 olunca labelle alarm yazıyor ama 39 olunca gidiyor kast ettiğim buydu anlık ben bu geldiyse orada kalmasını istiyordum 

    Benim verdigim kod da tam olarak o dediğinizi cozuyor :) Gittiğinde label.Text NULL ya da "", o nedenle txtBox.Text güncellenmiyor.

    Her neyse asil doğru seklini Cihan üşenmeden oturup yazmış :)

     


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    5 Haziran 2020 Cuma 11:26
    Yanıtlayıcı
  • Şu an sizin yazdığınızı kullanıyorum cihan ustamın yazdığına da çalışıyorum   :) teşekkür ederim
    5 Haziran 2020 Cuma 14:10
  • :) Cihan'inkini kullan. O dogrusu, benimki "bandaj".


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    5 Haziran 2020 Cuma 16:53
    Yanıtlayıcı
  • Onu kullanacagimda YAZDIĞINI anlamaya çalışıyorum ezber  kopyala yapistir olmasin diye
    5 Haziran 2020 Cuma 21:48