Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
Class etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Class etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

10 Aralık 2011 Cumartesi

Visual FoxPro(VFP) ile .NET DLL çağırmak(interop)

Ve VFP de öğrenmek gerekti.

Eti kakaolu bisküvimizi açtık. Bitki çayımızıda aldıktan sonra VFP yi çalıştıralım. Derin derin anlatacak vaktim yok ama ben çektim siz çekmeyin kısımlarını vereceğim.

thisform

thisform.nesneAdi.özellikAdi : Buradaki thisform reserve kelimesini kullanmazsanız form üstündeki bileşenlere erişemiyorsunuz.


SET DEFAULT TO

SET DEFAULT TO "c:\temp" : Eğer c:\temp klasöründe programınızı yazacaksanız başta varsayılan yeri bu klasör olarak mimleyin.
Avatar'ın soundtrackini dinleyelim.

DO FORM

DO FORM c:\temp\form1.scx : Formunuzu çalışır görmek isterseniz ya bu komutu Command penceresine yazın ya "Ctrl-E" kısayolunu kullanın ya da yukarıdaki kırmızı ünlenm düğmesine basın.

CREATEOBJECT

obj = CREATEOBJECT("ClsDeneme.Class") : CREATEOBJECT(sınıf adı, [param 1], [param 2]...) ile dışarıdaki dll'deki sınıftan bir nesne oluşturabilirsiniz. Tam keşfedemeden başka bir yol buldum ama oluşturduğunuz Visual FoxPro sınıfından bir nesneyide bu şekilde yaratabiliyorsunuz gibi. Gelelim beni bulduğum yönteme.
MSDN yine güzel bir anlatımla aşağıdaki bağlantılardan VFP içinde nasıl sınıf yaratabileceğinizi izah etmiş.
  1. Classes in Visual FoxPro
  2. How to: Create Classes and Subclasses
  3. How to: Add Properties to Classes
  4. How to: Add Classes and Subclasses to Class Libraries
  5. How to: Add Classes to Visual FoxPro Tools
  6. How to: Open Class Libraries


1)Tools->Class Browser
2)New Class
3)Class oluşturacağınız dosyanın yerinide belirtiyorsunuz(vfp_classtest.vcx oluşturdum)
4)Class->New Property(Class Designer açılıkken-*.vcx dosyanız File->Open ile açıkken yani-)
5)Sınıfınızı tamamladınız.Tool->Toolbox
6)Sağ tuş->Add Class Library, vcx dosyanızı seçin ve açın.
7)Dilediğiniz sınıfınızı forma sürükleyin.
8)Properties penceresinde eklediğiniz özellikleri göreceksiniz.
9)Formun koduna bu özellikleri nasıl kullanmak istiyorsanız yazın.



Aşağıdaki sınıfı RegAsm.exe ile registry ye kaydedediyor sonrasında VFP içinden çağırıyorum.
using System.Runtime.InteropServices;

namespace ClsLib
{
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ProgId("SinifDeneme.Class")]
    [ComVisible(true)]
    public class Sinif
    {
        public string SitringField;
        public string M_SitringProp { get; set; }
        public string f_Metot(object obj)
        {
            return "sdfsdf";
        }
    }
}


Bu da VFP nin Command penceresinde çalıştığım bir kaç komut:
SET DEFAULT TO "c:\temp"
m = CREATEOBJECT("SinifDeneme.Class")
MODIFY form c:\temp\form1.SCX  
ADD CLASS
ADD CLASS aaa

cem = CREATEOBJECT("SinifDeneme.Class")
ADD CLASS
cem.SitringField
print cem.SitringField
write
echo
cem.f_Metot()

ENDDEFINE
CREATE CLASS
DO FORM c:\temp\form1.scx
MODIFY FORM form1
DO "c:\program files (x86)\microsoft visual foxpro 9\viewcode.prg"
DO FORM "c:\users\administrator\documents\visual foxpro projects\form1.scx"
MODIFY CLASS ? OF c:\temp\vfp_classtest.vcx

20 Ekim 2010 Çarşamba

Javascript sınıflarına statik metot tanımlanması

Önceki yazılarımın birinde sınıf tanımı v.s. anlatmıştım. Burada da javascript sınıfın içine statik metot yazmayı eklemiş olayım:

function Sinif(){
this.YeniMetot = function(){ };
}



ya da


function Sinif(){ }

Sinif.prototype.YeniMetot = function(){ }


idi. Şimdi bu iki tanımda güzel ve aynı anlama geliyor.

Peki sınıfa bağlı yani bir sınıf örneği(nesne) oluşturmadan erişilebilen metot(statik metot) tanımlayalım.

function Sinif(){ }

Sinif.prototype.YeniMetot = function(){ }

Sinif.IsteStatikMetot = function(){ }


9 Haziran 2010 Çarşamba

QT ile ilk oluşturulan sınıfların yapısı



C++ Hataları


non-aggregate type



* typical error message

../src/CBNT_Truth.cxx:720: request for member `pdg_id' in `thePart', which is of non-aggregate type `const HepMC::GenParticle*'

* cause : trying to use a pointer as the real object
* solution : replace the "." by an "->"

non-pointer type



* typical error message (a bit clearer than in previous case)

../src/CBNT_Truth.cxx:721: base operand of `->' has non-pointer type `TruthStab'

* cause : trying to use a real object as a pointer
* solution : replace the "->" by a "."

9 Mart 2010 Salı

Javascript ile Class yapımının 3 yolu

Ref:http://www.phpied.com/3-ways-to-define-a-javascript-class/

1. Yol : Fonksiyonlar kullanılarak oluşturmak.

function Apple (type) {
this.type = type;
this.color = "red";
this.getInfo = getAppleInfo;
}

function getAppleInfo() {
return this.color + ' ' + this.type + ' apple';
}


Nesne türetmek için:

var apple = new Apple('macintosh');
apple.color = "reddish";
alert(apple.getInfo());




1.1. Yol: Function içinde dahili function ile metot tanımı

function Apple (type) {
this.type = type;
this.color = "red";
this.getInfo = function() {
return this.color + ' ' + this.type + ' apple';
};
}





2. Yol : JSON modeli. Tabii bundan nesne üretilemez.

var apple = {
type: "macintosh",
color: "red",
getInfo: function () {
return this.color + ' ' + this.type + ' apple';
}
}



Kullanımı:

apple.color = "reddish";
alert(apple.getInfo());





3. Yol :

var apple = new function() {
this.type = "macintosh";
this.color = "red";
this.getInfo = function () {
return this.color + ' ' + this.type + ' apple';
};
}


Kullanımı:

apple.color = "reddish";
alert(apple.getInfo());

4 Ekim 2009 Pazar

Javada interface ve abstract kavramları ve sınıf türetme






package abstractpkg;

interface intrface {
// interface içinde public
// modifier kullanılabiliyor.
public int intrfaceMetot_1();
void intrfaceMetot_2();
//C#tan farklı olarak normal/static
//sabit tanımlanabiliyor
final int yas = 10;
}

interface intrface1 {
int intrface_1_metot();
}

abstract class abs {
abstract void absMetot();
void absMetot_2(String s1){
// birşeyler yapsın
// anlayalımki abstractlerin
// bodyli metotları da olduğunu
}
}

abstract class abs1 extends abs implements intrface, intrface1 {
public String sdegisken;
abstract void abs_1_Metot();
}




class cls extends abs1 {

@Override
void abs_1_Metot() {
}

@Override
void absMetot() {
}

public int intrfaceMetot_1() {
}

public void intrfaceMetot_2() {
}

public int intrface_1_metot() {
}
}

class clsInterfaceten implements intrface,intrface1{

public int intrfaceMetot_1() {
}

public void intrfaceMetot_2() {
}

public int intrface_1_metot() {
}
}

public class Main {

public static void main(String[] args) {
}
}


Interface kullanımına güzel bir örnek: http://www.sourcecodesworld.com/articles/java/java-data-structures/Comparing_Objects.asp

Javada Class Yapıları


package poly;

class Employee{
public void func() {
System.out.println("Bu empden");
}
}

class Manager extends Employee{
public void func() {
System.out.println("Bu mngden");
}
}

public class Main {
public static void main(String[] args) {
Employee emp1 = new Employee();
emp1.func();

Employee emp2 = new Manager();
emp2.func();

Manager mng = new Manager();
mng.func();

Manager mng1 = new Employee();
mng1.func();

/* SONUCLAR:
run:
Bu empden
Bu mngden
Bu mngden
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types
required: poly.Manager
found: poly.Employee
at poly.Main.main(Main.java:28)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
*/
}
}