delphi Dns ve İp adresleri girme

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

(1) NetCfgInstanceId'yi buldun, sonra ne yaptın ?

buldum ama yukarıdaki örnekte anlattıgn REG_SZ_MULT ve RegQueryValueEx() RegsetValueEx() komutlarını daha önce dedigim nasıl kullanacagımı bilmiyorum ben regedit bu şekilde okumuyorum o yüzndne bu komutların nasıl kullanıldıgını bilmiyorum bu yüznden sizden örnek istedim aşagıda regedit le çalıştıgım örnegi veriyorum ben bu şekilde regedit kullanıyorum

procedure TForm1.Button1Click(Sender: TObject);
var
deger:TRegistry;
altklasör:AnsiString;
begin
deger:=TRegistry.Create;
deger.RootKey:= HKEY_LOCAL_MACHINE;
altklasör:= 'SOFTWARE\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000001');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer';
deger.OpenKey(altklasör,true);
deger.WriteString('NoSaveSettings','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer';
deger.OpenKey(altklasör,true);
deger.WriteString('NoSaveSettings','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Internet Explorer\Main';
deger.OpenKey(altklasör,true);
deger.WriteString('Start Page',edit1.Text);
deger.CloseKey;
Application.MessageBox('Giriş sayfanız başarıyla degiştirilmiştir','Giriş Sayfasını Değiştirme',0);
WinExec('C:\Program Files\Internet Explorer\iexplore.exe',sw_show);
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

- Kodlarını yazamadığına ( yazmak istememekle ısrar ettiğine ) göre NetCfgInstanceId'yi -iddia ettiğin gibi- okumayı bile daha başaramamışsın demektir.

- Adım adım ilerleyelim.
(*) Bir Registry kaydından nasıl okuma yapıldığına ilişkin bağımsız bir örnek içeren bu kodların nasıl çalıştığını anladığını görmek istiyorum.
- Onun için şimdi
(1) Bir registry kaydı okuma fonksiyonu hazırlamanı istiyorum.
(2) HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318} anahtarını OPEN yapmanı
(3) GetKeyNames() ile bu anahtar altındaki tüm başlıkları aldığını
(4) Bir FOR döngüsü veya WHILE döngüsü ile bu listesini aldığın başlıkları adım adım OPEN etmeni ve
. (a) DriverDesc değerini okumanı ve bir değişkene almanı.
. (b) NetCfgInstanceId değerini okumanı ve bir değişkene almanı.
Değişkenlere aldığın bu iki değeri bir ComboBox'a koyup listelemeni görmek istiyorum.

Bu işlemi bana yazdığın kodlar ile kolaylıkla yapabilirsin. Ekstra bir koda veya sana daha önce yazdığım RegQueryValueEx veya RegSetValueEx fonksiyonlarına şu aşamada ihtiyacın olmayacak. Sadece
- TRegistry için Create edecek,
- RootKey belirleyecek,
- OpenKeyReadonly ile anahtarı açacak,
- GetKeyNames ile içeriği topluca bir StringList'e alacak,
- bu stringlist içinde döngü kurup;
- ReadString ile her iki değeri okuyacaksın.


- Bu defa da yapamazsan bu kısmın kodlarını paylaşıcam... Gerisini tekrar sana bırakıcam.
Başarılar.
Resim
Resim ....Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

Çözemedin sanırım...

İlk aşamanın cevabını vereyim...

Kod: Tümünü seç

Procedure ListeIcineNICveGUID( Bilgiler:TStrings );
Const
  NetworkKEY = '\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}';
Var
  Reg    : TRegistry;
  strKey,
  strDriverDesc,
  strNetCfgInstanceId : String;
  Liste  : TStringList;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  if Reg.OpenKeyReadonly( NetworkKEY ) then
  begin
    Liste := TStringList.Create;
    Reg.GetKeyNames( Liste );
    while Liste.Count > 0 do
    begin
      // Tekrar bir önceki, üst ağaç dalına dönüyoruz...
      Reg.OpenKeyReadonly( NetworkKEY );
      strKey := Liste[0];
      if Reg.KeyExists(strKey) then
      begin
        Reg.OpenKeyReadOnly( strKey );
        strDriverDesc       := Reg.ReadString('DriverDesc');
        strNetCfgInstanceId := Reg.ReadString('NetCfgInstanceId');
        if ( Pos( 'ETHERNET', UpperCase(strDriverDesc) ) > 0 )
        or ( Pos( 'LAN',      UpperCase(strDriverDesc) ) > 0 )
        or ( Pos( 'NIC',      UpperCase(strDriverDesc) ) > 0 )
        then Bilgiler.Add( Format('"%s" : %s', [strDriverDesc, strNetCfgInstanceId]) );
      end;
      Liste.Delete(0);
    end;
    Liste.Free;
  end;
  Reg.Free;
end;
Bir button altında Kullanımı:

Kod: Tümünü seç

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  ComboBox1.Style := csDropDownList;
  ComboBox1.Items.Clear;
  // Bizim Network kart(lar)ı tespit Procedure
  ListeIcineNICveGUID( ComboBox1.Items );
  if ComboBox1.Items.Count > 0 then ComboBox1.ItemIndex := 0;
end;
Resim
Resim
Resim ....Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

mrmarman yapabilecegim bu kadar çünkü regedit ile bu şekilde kullanmabiliyorum regedit fonksiyon hiç kullanmadım kod aşagıdaki gibidir

procedure TForm1.FormCreate(Sender: TObject);
var
oku:TRegistry;
sonuc,altklasör:AnsiString;
begin
oku:=TRegistry.Create;
oku.RootKey:=HKEY_LOCAL_MACHINE;
altklasör:= 'SYSTEM\ControlSet001\Control\Class';
oku.OpenKey(altklasör,true);
sonuc:=oku.ReadString('Class');
oku.CloseKey;
combobox1.Items.Add(sonuc);
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

Yazdıkların sıkıntılı...

(1) OpenKey içinde TRUE dememelisin. Çünkü o key yoksa CREATE et manasına gelir. FALSE kalsın. Sistem ayarlarına mümkün olduğunca kontrollü erişmek gerekir. Buradaki konumuzda eğer yoksa CREATE etmenin manası da yok çünkü.

(2) OpenKey dedikten sonra (altklasor) READSTRING ile 'Class' başlığını sormuşsun, REGEDIT açıp bakarsan orada CLASS diye değer okuyacağın bir başlık mevcut değil. Önce REGEDIT ile açıp orayı gözle bir keşif yapıp ondan sonra kodlamak lazım gelir.

(*) Yine en başa dönüyoruz. Sana verdiğim kodlar çalışıyor haldedir ve geçerli.
(*) En azından ilk aşama için bu kodların içeriğinin ne işe yaradığını kavramaya çalış. Soracaklarını bu kod üzerinden sor ki yardımcı olalım.

- REGEDIT kullanımında sıkıntı yaşamıyor olduğun ana kadar bu tip işlemlere soyunmak doğru olmaz. Sistemin kararlılığını bozarsın. Sadece kendine değil, bu projeni vereceğin üçüncü kişiler varsa onların da veri güvenliğini tehdit etmiş olursun. Bu nedenle derinden gidelim. Sen sor biz cevaplayalım. :idea:
Resim
Resim ....Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

Yani bu şekilde sadece okumak kodları ben nasıl işin içinden çıkayım anlamadım şuan kullandıgın regedit kodlarını hiç bir delphi kitabında bu şekilde görmedim zirvedeki beyinler kitabındaki delphide okuma işlemi bu şekilde gerçekletiriyorlar senin yazdıgın kodlar beni gerçekten aşıyor o akdar professional degilim delphide ama olacagım yada bilgisayardan vazgeçip başka bir iş bakacam inşallah ögrenebilirim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}'; degerindeki 4D36E972-E325-11CE-BFC1-08002BE10318 degeri her bilgisayardaki gibi farklı degilmi
bendede aynı acaba baska pc lerdedemi aynı anlamadım ben ? normalde her pc den farklı olması lazım veya xp kullananlarda degişiyormu ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

pakv yazdı:SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}'; degerindeki 4D36E972-E325-11CE-BFC1-08002BE10318 degeri her bilgisayardaki gibi farklı degilmi
bendede aynı acaba baska pc lerdedemi aynı anlamadım ben ? normalde her pc den farklı olması lazım veya xp kullananlarda degişiyormu ?
- Bak yeni bir şey öğrendik değil mi ? Bu {4D36E972-E325-11CE-BFC1-08002BE10318} kodu bir CLASS yani Türkçe'si bir SINIF'a verilmiş bir koddur. Sınıf dediğimiz ise Ağ Bağdaştırıcıları ana başlığına verilmiş bir tekil bir koddur. Özel bir durum olmadığı sürece windows sürümlerinde aynı sınıf kodu her zaman korunur. Kendin de REGEDIT açıp gözlemleyip kendin karar verebilirsin. Ayrıca bu sınıfın değişkenliğinden kuşkun olacak olurda onu da bir döngü ile tespit edebilirsin, bu verdiğim örnek ona da uygun bir kaynak aslında.

- Kodları satır satır gözlemleyip, anlamadığını önce bu forumda, ondan sonra Google'da aradığında çok çabuk kavrayacaksın.

- Dikkat ettiğinde göreceksin ki aslında senin yazdığın kodlardakilerden farklı değiller...

- Bu sorduğun konu ya da başkaları faketmez, bir Registry kaydına nasıl erişim yapılır konusunu yazılımcılık hayatın boyunca eninde sonunda karşılaşacaksın. Şimdiden bu öğrenmek senin lehine bir durum.

(!!!)- Ancak asıl konu Windows Registry'nin ne işe yaradığını ve nerelerine ne şekilde müdahale edeceğini bilmeden bunu yapmak intihara meyilli bir durumdur. :roll:

- Gözlem herşeyden önemli.
(1) Elle DNS ve/veya IP ayarlarını yapacaksın,
(2) REGEDIT'e girip ilgili alanın bir REG kopyasını diske yazacaksın.
(3) Sonra DNS ayarını değiştireceksin.
(4) Yeni bir kopyasını yine REG olarak diske yazacaksın.
(5) Bu iki dosya arasındaki farkları gözlemleyip kodlarını ona göre şekillendireceksin.

- Kararını verdiğinde bu kodlar üzerinde bilmediğin hangisi ise arama :ara yapmaya başlayabilirsin. Belli bir bilgi olgunluğuna eriştiğinde yeniden projeye dönersin.
pakv yazdı:Yani bu şekilde sadece okumak kodları ben nasıl işin içinden çıkayım anlamadım şuan kullandıgın regedit kodlarını hiç bir delphi kitabında bu şekilde görmedim zirvedeki beyinler kitabındaki delphide okuma işlemi bu şekilde gerçekletiriyorlar senin yazdıgın kodlar beni gerçekten aşıyor o akdar professional degilim delphide ama olacagım yada bilgisayardan vazgeçip başka bir iş bakacam inşallah ögrenebilirim
Resim
Resim ....Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

mrmarman veridigin bilgiler için tşk ederim aşagıdaki bilgileri daha önce yaptım ama interface her ethernet farklı oldugu için yazamamıştım kodu alıyordum dns ip atanmış halini kendi bilgisayarımın ethernetine yazıyom ama başka pc ethernetine yazamıyordum :) birde bir eksimi daha bana gösterdin (methot, fonksiyon producure ) oluşturmada yetersiz oldugumu gördüm aslında kitaplarda okudum ama asıl olarak yani anlaşılır şekilde mantıgını anlatmamışlar elimde 2 tane kitap var memik yanık ve fatih küçükkelepçe mesala foksiyonlar geri deger gönderir derken neyi kastediyor neden gönderiyor nasıl gönderiyor hakkında bilgi vermemiş bütün kitaplarda böyle bu yüznden programcılık ögrenmekte eksikler yaşıyoruz bu konuda beni aydınlatabilirmisin

- Gözlem herşeyden önemli.
(1) Elle DNS ve/veya IP ayarlarını yapacaksın,
(2) REGEDIT'e girip ilgili alanın bir REG kopyasını diske yazacaksın.
(3) Sonra DNS ayarını değiştireceksin.
(4) Yeni bir kopyasını yine REG olarak diske yazacaksın.
(5) Bu iki dosya arasındaki farkları gözlemleyip kodlarını ona göre şekillendireceksin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

pakv yazdı:mrmarman veridigin bilgiler için tşk ederim aşagıdaki bilgileri daha önce yaptım ama interface her ethernet farklı oldugu için yazamamıştım kodu alıyordum dns ip atanmış halini kendi bilgisayarımın ethernetine yazıyom ama başka pc ethernetine yazamıyordum :)
- Sana yazdığım kodda interface altında ne varsa hepsini ele alıyor, sonra da içlerinden ethernet olmayanları eliyor. Sana ikili gruplar döndürüyor. Solunda tırnak içerisinde ethernet adaptörünün adı, sağında ise iki nokta üst üsteden itibaren interface kodu. Sen hangi bilgisayarda bu kodu çalıştırırsan çalıştır, illa ki o bilgisayardaki cihazları getirecek önüne serecektir. Yani marka model değişse de sınıfı hep aynıdır.

pakv yazdı:birde bir eksimi daha bana gösterdin (methot, fonksiyon producure ) oluşturmada yetersiz oldugumu gördüm aslında kitaplarda okudum ama asıl olarak yani anlaşılır şekilde mantıgını anlatmamışlar elimde 2 tane kitap var memik yanık ve fatih küçükkelepçe mesala foksiyonlar geri deger gönderir derken neyi kastediyor neden gönderiyor nasıl gönderiyor hakkında bilgi vermemiş bütün kitaplarda böyle bu yüznden programcılık ögrenmekte eksikler yaşıyoruz bu konuda beni aydınlatabilirmisin
- Procedure'ler; hani Türkçe veya İngilizce derslerinde boşlukları doldur mantığı vardır ya ona benzer bir yapı sergiler.
- Function'lar; Procedure'lere yapısal olarak aslında benzerdir.

Şimdi iki örnek yazıcam. Birbirinin aynı işlemi yapacak. Birisi Procedure diğeri Function.... Böylece geri değer döndürür sözündeki gerçeği daha açık ifade etmiş oluruz.

// PROCEDURE içerisinde var ile sonuç alma

Kod: Tümünü seç

procedure Topla1( A, B:Integer; var C:Integer );
begin
  C := A + B;
end;
// Kullanımı

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  Sonuc : Integer;
begin
  Topla1( 10, 20, Sonuc );
  ShowMessageFmt('%d', [Sonuc] );
end;
// FUNCTION ile Integer sonuç alma

Kod: Tümünü seç

function Topla2( A, B: Integer ): Integer;
begin
  Result := A + B;
end;
// Kullanımı

Kod: Tümünü seç

procedure TForm1.BitBtn2Click(Sender: TObject);
Var
  Sonuc : Integer;
begin
  Sonuc := Topla2( 10, 20 );
  ShowMessageFmt('%d', [Sonuc] );
end;
Bu iki kod da ayı sonucunu veriyor. Aralarında fark yok. Sadece çalışma mekanizması sana bir şeyler ifade edecektir.

O zaman neden Procedure ve Function diye iki kavram var diye bir soru sorabilirsin. Bu doğaldır. Cevabı ise basittir. Aşağıdaki şekilde sadece bir function'u kullanabiliriz. Procedure kullanamayız.

Kod: Tümünü seç

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  ShowMessageFmt('%d', [ Topla2( 10, 20 ) ] );
end;
Function satırını direkt bir değişken değermişçesine direkt başka bir procedure veya function içerisine yazabiliriz. İşte fark budur. :idea:
Resim
Resim ....Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

maddeler halinde sorularımı yazim
1. ('%d', [Sonuc] ) yüzde işareti d ve sonuç kısmı köşeli parantez neyi ifade ediyor

2.Aşağıdaki şekilde sadece bir function'u kullanabiliriz. Procedure kullanamayız.(pek anlayamdım neden oldugunu)
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ShowMessageFmt('%d', [ Topla2( 10, 20 ) ] );
end;

3.aşagıdaki anlatmak istedigniz kısım anlayamadım geriye deger döndürür ifadesini tam oalrak anlayamadım
Şimdi iki örnek yazıcam. Birbirinin aynı işlemi yapacak. Birisi Procedure diğeri Function.... Böylece geri değer döndürür sözündeki gerçeği daha açık ifade etmiş oluruz.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

:arrow: (1) FORMAT fonksiyonunu bildiğini değerlendirdim. Bu fonksiyon, bir veya bir grup veriyi düzenli bir STRING blok halinde sunmaya yarayan bir fonksiyondur.

Örnek :

Kod: Tümünü seç

procedure TForm1.BitBtn3Click(Sender: TObject);
Var
  A: Integer;
  B: String;
  C: Integer;
  D: String;
  SONUC : String;
begin
  A := 10;
  B := 'Muharrem';
  C := 20;
  D := 'ARMAN';
  SONUC := Format('%d sayısının ikiye bölümü : %d rakamıdır ("%s %s")', [ C, A, B, D ] );
  ShowMessage( SONUC );
end;
Ürün aşağıdaki gibidir.. :idea:

Resim

:arrow: (2) Şu anlama geliyor : Fonksiyonu sanki VAR ile tanımladığın bir değişken gibi bir şeye eşitleyebilirsin. Tabi eşitliğin sağ tarafında kalmak koşulu olduğunu söylememe gerek yok. Çünkü fonksiyon; içindeki parametreler ile bir işlem yaparak bir değer veya değer dizisi döndürür. Bu dönen değer veya değer dizisini bir değişkene eşitleyerek atama yapabilirsin.

Kod: Tümünü seç

Function Topla( A, B : Integer ) : Integer;
begin
  Result := A + B;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
Var
  Sonuc : Integer;
begin
  // Burada fonksiyon dönecek değeri SONUC değişkenine aktardık.
  Sonuc := Topla( 10, 20 );
  ShowMessage( IntToStr( Sonuc ) );
end;
Resim

:arrow: (3) de bu iki cevap içinde anlatıldı.
pakv yazdı:maddeler halinde sorularımı yazim
1. ('%d', [Sonuc] ) yüzde işareti d ve sonuç kısmı köşeli parantez neyi ifade ediyor

2.Aşağıdaki şekilde sadece bir function'u kullanabiliriz. Procedure kullanamayız.(pek anlayamdım neden oldugunu)
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ShowMessageFmt('%d', [ Topla2( 10, 20 ) ] );
end;

3.aşagıdaki anlatmak istedigniz kısım anlayamadım geriye deger döndürür ifadesini tam oalrak anlayamadım
Şimdi iki örnek yazıcam. Birbirinin aynı işlemi yapacak. Birisi Procedure diğeri Function.... Böylece geri değer döndürür sözündeki gerçeği daha açık ifade etmiş oluruz.
:idea: Bunlar temel programcılık bilgileridir. Bu noktadan başlamakla en doğrusunu yapıyorsun. Şimdi WMI veya REGISTRY olaylarını bir kenara bırakıp en baştan başlamalısın. Çok hızlı ilerleme, çünkü geri adım atmak zorunda kalmak en zorudur.
Resim
Resim ....Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

bu arada fonksiyon veya prosüdür hangi alanda tanımlamlıyız global degişken olarakmı yani verdigin regedit kodlarında fonksiyon prosüdürü private public veya implemantion hangi kısımda tanımlamalıyım
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

pakv yazdı:bu arada fonksiyon veya prosüdür hangi alanda tanımlamlıyız global degişken olarakmı yani verdigin regedit kodlarında fonksiyon prosüdürü private public veya implemantion hangi kısımda tanımlamalıyım
- Procedure veya Function; nerede kullanılacaksa; kullanılacak o yerin üzerinde olması kafidir.
- Bu aşamada UNIT kavramı geliyor. Biliyorsun bir projede birden fazla sayıda UNIT olabilir. Bu durumda aşağıdaki (3) adet durum söz konusudur.

(1) Sadece Bir Procedure veya Function içerisinde çalışacak bir Procedure veya Function
(2) Sadece ilgili UNIT içerisinde çalışabilecek şekilde o UNIT sınırları dışında çalışmayan türden Implementation satırının üzerine koyabileceğin bir (PRIVATE alanındaki) Procedure veya Function
(3) USES satırına eklenmiş tüm unitlerde kullanıma açık şekilde yine Implementation kısmının üzerine koyabileceğin bir (PUBLIC alanındaki) Procedure veya Function

- (2) ve (3) numaralardaki tanıma uyanlara GLOBAL olarak tabir edilir. Yani birden fazla procedure ve/veya function altında tanınabilen anlamına gelir.

- Şimdi bu anlattıklarımın çerçevesinde kullanacağın yerin üzerinde olduğu sürece yeri fark etmez. Eğer satır olarak daha aşağılarda yer olacaksa o zaman GLOBAL statüsünde tanımlaman gerekir. :idea:

- Başlık yavaş yavaş DELPHI programlama standarları dersine döndü... :lol:
Resim
Resim ....Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

mrmarman seni bu kadar ugraştırmak istemezdim ama kitaplar soruma cevap veremedigiiçin destek alacagım kimse olmadıgı için senden yardım istedim umarım senide rahatsız etmiyorum bu arada regedit yazma işine ne zaman geçecegiz ethernetde artık yazalım :)
Cevapla