Aceminin C# sorulari

Başlatan z, 30 Mayıs 2012, 08:19:05

muhittin_kaplan

Alıntı YapHocam, 1 tane .cs uzantili dosya ekleyip projeye kodlari yapistirdiktan sonra 1 kez derleyin. Daha sonra form tasarim ekraninda toolbox'ta HexBox belirecektir. Istediginiz kadar surukleyip birakarak kullanabilirsiniz
Bu olayı C deki kütüphanelere benzetebilirsiniz hocam.

z

#31
@cicjoe

Hocam eline saglik. 0..9 rakamlar ayni genislikte fakat A..F farkli genislikte. Bu durumda 0..9 A..F lerden olusan hex veriler duzgun gorunmuyor hizalamalar kayiyor. Buna bir cozum uretebilirmiyiz?

Edit:Courier New fontu ile sorun cozuldu.

Hocam astronot gibi adammissin. C# ile bu seviyede kod yazacak hale ne kadar zamanda geldin? Asil mesleginiz yazilimmi?

HexBox'in davranisinda bir durumdan rahatsizim ve kodlarinizi oynayarak bunu duzeltmem zor gibi.

Sorun;

Diyelimki 00 verisinde ilk 0'i sectim ve klavyeden 12 yazdim. Kursor boslukta duruyor. Bu esnada 34 yazmak istesem bosluga denk gelindigi icin basilan tuslar cope gidiyor.
Halbuki 12 yazdiktan sonra kursor bir sagdaki hex sayinin ilk karakterine tasinsa surekli olarak space yada sag ok tusuna basmak gerekmez. Bu da veri girisini cok kolaylastirir.

Hatta satir sonuna gelindiginde otomatik olarak bir alt satirin en sol alanina ziplatabilirmisin?


Hexbox'i toolboxa kalici bir eleman olarak gommek mumkun degilmi? Yeni bir proje acip toolboxdan secip kullanamazmiyim?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

serhat1990

Hocam aceminin c# soruları deyince bende daha 3 günlük bir c# öğrencisi olarak şunu sormak istiyorum seriport uygulaması lazımdı uğraştım biraz yazdım sonunda fakat alma işlemini tam olarak beceremedim bana alma rutinini yazabilirmisiniz acaba bir mesaj kutusunda bunu görüntülebilmem için yada hernerde olursa :) illa koda gerek yok gele veriyi görüntüleyeyim ve bu işlem için butona basmak zorunda kalmayayım. Nasıl bir yol izlemem lazım. Şimdiden teşekkürler yarın programı koyacam şimdi telden girdim foruma herkese kolay gelsin :)

cicjoe

#33
Evet hocam yazilim. Elektorik ogrenmeye calisiyorum.
HexBox'a su metod'u eklerseniz sanirim istedigin davranisi elde edersiniz.

Edit: Tabi o zaman KeyPress'teki bosluk tusunun kontrolu de anlamsiz kaliyor, silinebilir. Ben araya geldigi zaman bosluk tusu basilirsa sonraki cifte gecsin diye yazmistim.
protected override void OnTextChanged(EventArgs e)
{
	if (this.SelectionStart % 3 == 0)
		this.SelectionStart++;
	if (this.Lines.Length != 0 &&
	(this.SelectionStart % (this.Lines[0].Length+2) == (this.Lines[0].Length)) &&
	(this.SelectionStart < (this.Text.Length - 7)))
		this.SelectionStart += 6;

	base.OnTextChanged(e);
}


Ayrica constructer'da sabit olarak 8 satir 8 byte yazdim ama, oranin da daha dinamik hale getirilmesi uygun olabilir. Property tanimlayarak set oldugunda degisecek sekilde.

YARARMAN

Alıntı yapılan: serhat1990 - 01 Haziran 2012, 23:33:07
Hocam aceminin c# soruları deyince bende daha 3 günlük bir c# öğrencisi olarak şunu sormak istiyorum seriport uygulaması lazımdı uğraştım biraz yazdım sonunda fakat alma işlemini tam olarak beceremedim bana alma rutinini yazabilirmisiniz acaba bir mesaj kutusunda bunu görüntülebilmem için yada hernerde olursa :) illa koda gerek yok gele veriyi görüntüleyeyim ve bu işlem için butona basmak zorunda kalmayayım. Nasıl bir yol izlemem lazım. Şimdiden teşekkürler yarın programı koyacam şimdi telden girdim foruma herkese kolay gelsin :)

Küçük bir yazılım hazırladım, onu inceleyebilirsin...

https://rapidshare.com/files/3125668450/SerialPortApp.zip



cicjoe

Alıntı yapılan: serhat1990 - 01 Haziran 2012, 23:33:07
Hocam aceminin c# soruları deyince bende daha 3 günlük bir c# öğrencisi olarak şunu sormak istiyorum seriport uygulaması lazımdı uğraştım biraz yazdım sonunda fakat alma işlemini tam olarak beceremedim bana alma rutinini yazabilirmisiniz acaba bir mesaj kutusunda bunu görüntülebilmem için yada hernerde olursa :) illa koda gerek yok gele veriyi görüntüleyeyim ve bu işlem için butona basmak zorunda kalmayayım. Nasıl bir yol izlemem lazım. Şimdiden teşekkürler yarın programı koyacam şimdi telden girdim foruma herkese kolay gelsin :)

Hocam, forumda c# ve seri port ile ilgili cok tartisma ve paylasim olmustu. Sanirim isinize yarar. Arama yaparsaniz cikacaktir.
Iyi calismalar. =)

z

#36
Buldugum bir programi degistirerek istedigim sekle sokmus,bu programda kullandigim  HexBox icin de kendi yazdigim kodlari kullaniyordum. Simdi Cicjoe nin HexBox kodlarini kullanarak devam etmek istiyorum.

Ancak neyi nereye yapistiracagimi kestiremedim. Cicjoenin kodlarini kendi programima tasimak bana daha az problemli olacak gorunuyor. Bu isi nasil yapacagim?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

cicjoe

Alıntı yapılan: z - 01 Haziran 2012, 23:11:09
Hexbox'i toolboxa kalici bir eleman olarak gommek mumkun değilmi? Yeni bir proje acip toolboxdan secip kullanamazmiyim?

Hocam, HexBox.cs dosyasini yeni bir Class Library projesi acarak derleyin, size 1 .dll dosyasi verecektir. Diger projelerinizde o dll'i ekleyip kullanabilirisiniz. HexBox'in kendine has ayarlarinin da Property Window'da cikmasi icin tanimlarsaniz, bir daha koda girmeden davranislarini degistirebilirsiniz. Ornegin public int Byte { get; set; }, public int Row { get; set; } gibi Property'ler tanimlarsaniz, tasarim ekranindan ayarlayabilirsiniz. Actiginiz her yeni projede HexBox'i iceren dll'in ekli gelmesini istiyorsaniz, 1 tane Windows Form uygulamasi actiktan sonra dll'i ekleyin, sonra File->Export Template->Project Template seclinde devam edin. Ilerde proje acarken Windows Form Application yerine sablonunuza verdiginiz isimi secerek acabilir, boylece hazir ayarlarda bir proje baslatabilirsiniz.

YARARMAN

Alıntı yapılan: z - 02 Haziran 2012, 00:48:28
Buldugum bir programi degistirerek istedigim sekle sokmus,  HexBox icin de kendi yazdigim kodlari kullaniyordum. Simdi Cicjoe nin HexBox kodlarini kullanarak devam etmek istiyorum.

Ancak neyi nereye yapistiracagimi kestiremedim. Cicjoenin kodlarini kendi programima tasimak bana daha az problemli olacak gorunuyor. Bu isi nasil yapacagim?

Tam olarak sorunu anlayamadım.
Arkadaşın özel denetimini, Toolbox'a mı taşıyıp denetim olarak kullanmak mı istiyorsun yoksa kendi kodunun içine direk mi atmak istiyorsun?

z

#39
Internetten USB ile ilgili bir program buldum. Buna pek cok eklenti yapip belli bir kivama getirdim. Icinde Hexbox lar da var ve bunlari kendim yazmistim. Acemi oldugumu dusunursek program benim icin bir hayli karmasik yapida. (DLL vs de kullaniyor)

Ote yandan Cicjoe hosuma giden bir HexBox gelistirdi, Simdi kendi yazdigim HexBoxlari kaldirip atacak ve yerine cicjoenin gelistirdigi HexBox kodlarini kullanacagim.

Gene acemi oldugumu dusunursek hem usb tarafidaki kodlar hemde cicjoe nin yazdigi kodlar gozumde corba gibi gorunuyor. Birini birine tasimaliyimki kodlamaya devam edebileyim.

Niyetim cicjoenin kodlarini usb programinin icine tasimak.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

YARARMAN

İsterse yüzbinlerce işlem olsun.
Eğer işlemlerini güzelce sınıflar haline getirirsen, inanılmaz kolaylık sağlarsın.
Çok daha hızlı bir şekilde yazılım geliştirirsin.
Keza factoring yapacağın zaman da işin çok kolaylaşır.

Eğer bahsettiğin yazılımda bu hex editor işlemini gerçekleştirecek 5-10 tane textbox var ise;
cicjoe'nun kodlarını, her bir textboxa uyarlamak zorunda kalırsın ki hiç güzel bir yöntem değil bence.
Bahsettiğin yazılımda bir tane class (cs) dosyası aç.
İçine cicjoe'nun kodlarını yapıştır, eklemek istediğin yerlere kendi kodunu da ekle sonra derle.
Oluşan yeni özel HexBox textboxını, yazılımında kullanmak istediğin yerlerde kullan.

cicjoe

Hocam, usb programina hexbox'i yerlestirmek daha kolay gibi gorunuyor. Solution Explorer'dan projeye sag tiklayarak Add->New Class diyin. Dosya ismine HexBox.cs ismini verin ve acilan dosyanin icine HexBox kodlarini yapistirin. Daha sonra toolbox'tan surukleyerek formunuza ekleyin hexbox'lari. Daha onceden yazmis oldugunuz kodlardan aktarmak istediklerinizi, HexBox dosyasi icine degil de, gene daha once textbox'lara nasil eklediyseniz oyle ekleyin. Ornegin 1 hexbox'in icerigi degistiginde kod calistiriyorsaniz, onu hexbox dosyasinin icine yazmayin. Programa eklenmis hexbox'in textchanged event'ine giderek yazin. Cunku eger hexbox'a yazarsaniz, eklediginiz butun hexbox'larda ayni kod calisir. Ancak eklediklerinizde yazarsaniz, her biri icin ayri yazabilme sansiniz var.

YARARMAN

Elbette, tekrarlanan ortak işlemleri HexBox içerisine eklesin.
Opsiyonel işlemleri ise senin dediğin gibi form içine eklesin.

cicjoe

Bu arada kodu birkac kez edit'lemistim, umarim en guncel versiyonu koplayalamissinizdir.

z

#44
Sorun değil, tekrar kodlarinizi indiririm. Simdilik en son istedigim otomatik space gecis ve satir sonunda otomatik alta gecis var ve memnunum.

Ekranimda form1.cs* varken

Solution Explorer'dan projeye sag tiklayip add sectigimde bana New project ve Existing project olmak uzere 2 seceneki sunuyor,

Add->New Class gelmedi.

Anlasilmaz bir durumdaysam ekran goruntulerimi vereyim.

Edit:


Pardon bir alt satirdaki iconun ustunde sag click yapinca add class gordum sanirim devam edebilirim,
Bana e^st de diyebilirsiniz.   www.cncdesigner.com