1

Konu: FOXPRO ve C# .

Merhaba Arkadaşlar,

Ben de yavaş yavaş c# diline başlayacağım.   Sağolsun Konuralp açık çek verdi bana yardımcı olacak..

Merak ettiğim şey foxpro da yapılan işlemlerin c# da nasıl yapıldığını gösteren bir karşılaştırmalı tablo var mı?

Öneğin,

foxpro DA ARRAY 'in yaptığı işi C# da nasıl yapabilirim gibi..

CURSOR INTO   -> C# DA karşılığı...

table için, goto ,skip, recno() vs gibi komutların  c# da karşılığı var mı  gibi...

böyle bir doküman var mıdır?

2

Re: FOXPRO ve C# .

Çalışacağın zaman sana uygunsa belli bir zaman gel benim yanımda dur.
Beraber bakarız..

Bu arada youtube' da bir sürü video var.
Boş vakitlerinde ona bak.
Zor değil..

3

Re: FOXPRO ve C# .

Aydin,
Oyle seyleri unut. Cevabi hem evet hem hayir, VFP gibi dusunursen isin zor. Eger istersen, aksamlari 1-2 saat online beraber bakalim.

Spesifik olarak buradaki soruya gore:

Foxpro'daki ARRAY kullanimi benzer ama farkli ve aslinda C#'ta daha kolay, aslinda pek de kullanmayabilirsin. VFP'den farklari:

Array boyutunu onceden belirlemelisin, sonradan degistiremezsin (metodlar ile degistiriyorsun ama gercekte arka planda yenisi yaratiliyor).
Array elemanlarinin hepsi ayni tipte.
Array'ler 0 bazli, yani ilk eleman VFP'deki gibi arrEleman[1] degil arrEleman[0].

C#
int[] sayilar = new int[5];

sayilar[0] = 55;
sayilar[1] = 23;
sayilar[2] = 34;
sayilar[3] = 35;
sayilar[4] = 10;

C#
int[] sayilar = {55,23,34,35,10};

Multidimensional array, jagged ve sparse arrayler var. Performans nedeniyle jagged pek tercih edilmiyor (array of arrays gibi).

Neyse gene cenem dusuyor, sadece array bile bir chapter. VFP'dekini ve fazlasini yapiyor, ama kullandigin yerde kullanman gereken o olmayabilir.

cursor into ... en basit sekliyle in memory "liste".

Arada biraz karsilastirmali okuyayim dersen, benim blog'a goz atabilirsin (Subat 2009'daki ilk giristen baslayip sirayla gelmen lazim) : cetinbasoz.wordpress.com

Baslarda C#'a giris var ve VFP'cinin gozunden wink

4 Son düzenleyen, KONURALP (17.08.2016 15:14:36)

Re: FOXPRO ve C# .

Aydın,

Çetin'in dediği gibi fox gibi düşünme..
Ben 1 yıldır çok yoğun yazıyorum.
Elimdeki programı yeniden yazdım ve bitirmek üzereyim.

Daha hiç array kullanmadım galiba..
Bir sürü alternatifi var..

5

Re: FOXPRO ve C# .

Rus uçağı kullanıyorsan Rus gibi düşünmelisin big_smile

Tekin Başöz
Yapay Zeka Ltd.

6

Re: FOXPRO ve C# .

Rahmetli Levent Kırca'nin bir parodisi vardi sampuan ile ilgili:)
Her kadina ayni sampuan mi? her saca ayri kadinmi?  whatever unuttum:(

Belli bir yazilim,analistik  yaklasim deneyimi edinince ve bir de bu deneyimi c# ile ortaya koymaya baslayinca cok kisa surede bir seyler ortaya cikarmaya basladigini farkediyorsun (burada DevexEpress, Telerik vs vs  gibi yardimci araclari es gecmem mumkun degil ilerlemede muthis yardimcilar) VS'un mukemmel IntelliSense destegi, LinqPad gibi bir olmazsa olmazi kesfediyorsun, bir sure sonra vay be diyorsun...

Ben su an o durumdayim c# , sql server, sql views-functions-sp, linq sorgulari, linqpad deneyimleri derken bir deryada yuzuyorum yavas yavas hakim olmaya baslayinca cok keyifli geliyor...

Ustelik ben asp.net ve winform deneyimlerimi frenleri patlamis kamyon ornegi ile aciklayabilirim smile deadline var oturup basliyorsun bir bakmissin gidiyor bir sekilde...

sende de oyle olacaktir @aydin

Kolayliklar...

7 Son düzenleyen, aydinufuk (18.08.2016 09:11:44)

Re: FOXPRO ve C# .

Kervan yolda düzülürmüş.. smile

Çıktık yola bakalım ...

Dün gece çetinden ilk dersi aldım smile  Sağlam bir giriş yaptı sağ olsun. Çok şey öğrendim. Şimdi bol bol çalışma zamanı.

8

Re: FOXPRO ve C# .

İLK SORUM smile
    SQL  olarak hangi versiyonunu indireyim ?

9 Son düzenleyen, KONURALP (18.08.2016 10:44:34)

Re: FOXPRO ve C# .

Sql server developer edition  olabilir..
Bedava sana..

https://www.microsoft.com/en-us/cloud-p … developers

Farketmez aslında muhtemelen  visual studio  yu yüklediğinde içinden SQL express çıkar..

10

Re: FOXPRO ve C# .

VS yuklenince, ne yazik ki eskisi gibi express degil localdb kuruyor. Kimine gore iyi, bana gore dert smile

2016 developer edition ucretsiz, enterprise ozelliklerine sahip. Onu al kur, ancak yine de yaninda express de al kur (express kullanimda da ucretsiz, developer edition sadece gelistirme icin).

11

Re: FOXPRO ve C# .

VS da WPF biraz inceledim. yaptığım iş için uygun gözüküyor. Geleceği hakkında bir bilginiz var mı? kodlar elimde kalır mı sizce?

12

Re: FOXPRO ve C# .

Microsofta ne olacağı belli olmaz..
Bir tek kalıcı c# dir.

Ara yüzler kalmayabilir.
Şimdilik asp.net  core  en garantisi gözüküyor.
Ama çok daha işin başındalar.

Ben windows form da yazıyorum..

13

Re: FOXPRO ve C# .

C# eğlenceliymiş..

14 Son düzenleyen, antepli (30.09.2016 14:42:06)

Re: FOXPRO ve C# .

visual studio 2008 ortamında c# ile Windows Mobile / Windows CE uygulaması yazıyorum .
bir sorum olacaktı hazır konu açılmışken  form2 den form1 de bulunan texbox1 e deger gönderemedim. Daha doğrusu
Application.OpenForms Property kullanamadım aynı işi yapacak bir yöndem önere bilirmisiniz .

form2 de butonun Click Event ine

      Form1 anaform = new Form1();
       anaform.textBox1.Text=textBox2.Text;
       anaform.Show();
       this.Close();

yazarak  gönderiyor fakat yeni foram açıp gönderiyor açık olan form1 e gönderemiyorum veya açık olan form1 i kapatamıyorum girerken degil buton içerisindeyken .

Bilgi Paylaşıldıkça Artar...!

15

Re: FOXPRO ve C# .

var oform = Application.OpenForms["Form1"];

                    if (oform != null)
                    {
                        ((Form1)oform).TextBox1.Text="Test";
                    }

Veya

                foreach (Form oForm in Application.OpenForms)
                {
                    if (oForm.GetType()==typeof(Form1))
                    {
                        ((Form1)oForm).TextBox1.Text="Test";
                    }
                }

16

Re: FOXPRO ve C# .

Sayın ctapan;
öncelikle cevap yazdıgınız için teşekkürler .

fakat problem zaten
var oform = Application.OpenForms["Form1"];  komutunun smartdevice uygulamasında çalışmaması tanımıyor
ondan dolayı bu işlemi başka naıl yapabiliriz smartdevice de onu sormuştum.

yani açık olan forma WinCe smartdevice formunda nasıl ulaşabilirim ve onun üzerinden işlem yaptıra bilirim benim problemim
açık olan form1 e bilgi göndermek.

Bilgi Paylaşıldıkça Artar...!

17

Re: FOXPRO ve C# .

MECBUREN FORM1 DEKİ VERİLERİ FORM 2 YE TAŞIYARAK TEKRAR FORM1 OLUŞTURUNCA YÜKLEMEK ZORUNDA KALIYORUM BUNUN KOLAY BİR YOLU YOKMU ACABA ?

C# SMART DEVİCE WİNCE FORMDA KISITLAMALAR VAR SANIRIM

Bilgi Paylaşıldıkça Artar...!

18

Re: FOXPRO ve C# .

Kendi actigin formlarin referansini kendin bir dictionary'de tutabilirsin. OpenForms olmasina gerek yok.

19

Re: FOXPRO ve C# .

Çetin Bey;

Konuyu Biraz açabilirmisiniz. benim yapmak istedigim olay form1 de iken bir buton vasıtasıyla form 2 açılıyor form2 de bulunan 3 adet texbox var onlara deger atanıyor örnegin
textBox1.Text ="12345"
textBox2.Text ="Ali Gel"
textBox3Text ="Meslegi"

bu bilgileri form1 de bulunan yine
textBox4.,textBox5 ve textBox6 ya yazmasını istiyorum form2 yi kapatınca

buna örnek bahsettiginiz Dictionary örnek vere bilirmisiniz

malum c# 'ta yeni yeni tırmalıyoruz.

Bilgi Paylaşıldıkça Artar...!

20

Re: FOXPRO ve C# .

Hmm bu sekilde olunca ona da gerek yok.

bir buton vasıtasıyla form 2 açılıyor

O zaman soyle bir sey:

C#
var f2 = new Form2();

f2.ShowDialog();
 
var t1 = f2.Text1.Text;
var t2 = f2.Text2.Text;
var t3 = f2.Text3.Text;

Text1, 2, 3 public ise boyle olur. Degilse iceriklerini public bir nesnede sakla. Bir baska cozum, Form1'in public propertyleri olmasi ve Form1 referansini Form2'ye gondermen.

21 Son düzenleyen, antepli (04.10.2016 20:19:36)

Re: FOXPRO ve C# .

Çetin bey form1 den form2 yi açmakta sıkıntı yok form1 den form2 ye bilgi gönderiyoruz  form2 den form1 e bilgi göndermem lazım
form1 den form2 yi açtırdıgımda form2 de olan bilgileri açık olan form1 e ulaşamıyorum

aşagıdaki kodlarla anlatayım;

öncelikle form1 açık durumda ve form1 de bir buton var butonun

private void button1_Click(object sender, EventArgs e)
        {
           
            Form2 musaraform = new Form2();
            musaraform.textBox1.Text =textBox6.Text.Text;
             musaraform.Show();
           // this.Close();

        }

Event  ile form2 açlıyor burada sıkıntı yok

form2 de işlem yapılıyor ve 3 adet deger üretiliyor  bunlarda form2 de bulunan

textBox2.Text  örnek kişi adı olasun
textBox3.Text  meslegi olsun
textBox4.Text  dogum tarihi olsun

bunlar form2 de yapılan işlemlerle elde ediliyor
elde etme işlemi bitince form2 de bulunan buton

     private void button2_Click(object sender, EventArgs e)
        {
         
            işte bu alanda  form1 e ulaşıp bu üç degeri form1 de bulunan 3 adet texbox a göndermem ve formu kapatırmam lazım
            fakat form1 açık olmasına ragmen ulaşamıyprum aşagıdaki gibi yaptıgımdada form1 açık birtanedaha yeni form1 açıyor ve yeni açtıgı form1 e göndriyor işte tam olarak istedigim bu alanda açık olan form1 e bu üç bilgiyi göndermek       

aşagıdaki işlem işime yaramıyor     

            Form1 anaform = new Form1();

            anaform.textBox7.Text =textBox2.Text.Text;
            anaform.textBox8.Text =textBox3.Text.Text;
            anaform.textBox9.Text =textBox4.Text.Text;

            anaform.Show();



            this.Close();

        }

bu sefer anlata bilmişimdir

Bilgi Paylaşıldıkça Artar...!

22

Re: FOXPRO ve C# .

Ya ben seni zaten anladim v ona gore cevap verdim ama anlatamadim herhalde. En iyisi kodla anlatmak.

Yontem 1: Modal form, kapaninca oradaki "public" textboxlardan degerleri al:

C#
void Main()

{
    var form1 =new Form1();
    form1.Show();
}
 
public class Form1 : Form
{
    private TextBox txtRet1;
    private TextBox txtRet2;
    private TextBox txtRet3;
    private Button btnForm2;
 
    public Form1()
    {
        txtRet1 = new TextBox {Top = 10, Left = 10 };
        txtRet2 = new TextBox {Top = 40, Left = 10 };
        txtRet3 = new TextBox {Top = 70, Left = 10 };
        btnForm2 = new Button {Top = 120, Left = 10, Text="Form 2" };
 
        this.Controls.AddRange(new Control[] {txtRet1, txtRet2, txtRet3, btnForm2});
 
        btnForm2.Click += (sender, args) =>
        {
            var form2 = new Form2 {Text="Form2"};
            form2.ShowDialog();
 
            txtRet1.Text=form2.txtReturn1.Text;
            txtRet2.Text=form2.txtReturn2.Text;
            txtRet3.Text=form2.txtReturn3.Text;
        };
    }
}
 
public class Form2 : Form
{
    public TextBox txtReturn1;
    public TextBox txtReturn2;
    public TextBox txtReturn3;
 
    public Form2()
    {
        txtReturn1 = new TextBox { Top = 10, Left = 10 };
        txtReturn2 = new TextBox { Top = 40, Left = 10 };
        txtReturn3 = new TextBox { Top = 70, Left = 10 };
 
        this.Controls.AddRange(new Control[] { txtReturn1, txtReturn2, txtReturn3 });
    }
}

Yontem 2: Bu sefer form1'deki textboxlar pub;ic ve form1'in referansini parametre olarak gonderiyoruz:
(yazdikca degistiriyoruz, daha havali oluyor)

C#
void Main()

{
    var form1 =new Form1();
    form1.Show();
}
 
public class Form1 : Form
{
    public TextBox txtRet1;
    public TextBox txtRet2;
    public TextBox txtRet3;
    private Button btnForm2;
 
    public Form1()
    {
        txtRet1 = new TextBox {Top = 10, Left = 10 };
        txtRet2 = new TextBox {Top = 40, Left = 10 };
        txtRet3 = new TextBox {Top = 70, Left = 10 };
        btnForm2 = new Button {Top = 120, Left = 10, Text="Form 2" };
 
        this.Controls.AddRange(new Control[] {txtRet1, txtRet2, txtRet3, btnForm2});
 
        btnForm2.Click += (sender, args) =>
        {
            var form2 = new Form2(this) { Text = "Form2" };
            form2.Show();
        };
    }
}
 
public class Form2 : Form
{
    private TextBox txtReturn1;
    private TextBox txtReturn2;
    private TextBox txtReturn3;
 
    public Form2(Form1 caller)
    {
        txtReturn1 = new TextBox { Top = 10, Left = 10 };
        txtReturn2 = new TextBox { Top = 40, Left = 10 };
        txtReturn3 = new TextBox { Top = 70, Left = 10 };
 
        this.Controls.AddRange(new Control[] { txtReturn1, txtReturn2, txtReturn3 });
 
        txtReturn1.TextChanged += (s, a) => { caller.txtRet1.Text = this.txtReturn1.Text; };
        txtReturn2.TextChanged += (s, a) => { caller.txtRet2.Text = this.txtReturn2.Text; };
        txtReturn3.TextChanged += (s, a) => { caller.txtRet3.Text = this.txtReturn3.Text; };
    }
}

23

Re: FOXPRO ve C# .

çetin bey çok teşekkür ederim kodu yazınca ortya çıktı .Olmamasının sebebi aşagıdaki gibi olmamasıymış smile)

doğru olan:

  frm1.ShowDialog();
  textBox1.Text = frm1.textBox1.Text;
  textBox2.Text = frm1.textBox2.Text;
  textBox3.Text = frm1.textBox3.Text;


benin hata yaptıgım yer
frm1.Show();

tabi böyle açınca olmuyor :

birde geri dönüşleri koymamışım sizin kod içerisinde görünce tamam işte bu dedim smile)

Bilgi Paylaşıldıkça Artar...!

24

Re: FOXPRO ve C# .

Ikinci yontemin videosu.

İleti eklentileri

Recording #1.mp4 429.67 kb, 7 kez indirildi, 2016-10-05 tarihinden itibaren 

Bu iletideki eklenti/leri indirmeye yetkiniz yok.