DELPHİ XP ÇALIŞMASI HAKKINDA ACİL YARDIM....

yildirim_86
31-01-2007, 12:35   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
10 mesaj
Kayıt Tarihi:Kayıt: Ara 2006

Yaptığımız yazılımda win95 de çok rahat paralel port devremizi çalıtırtıyoruz ama bunu bir türlü xpde çalıştıramıyoruz.. yani paralel port bilgi okuma işlemini xpde yapamıyoruz.. yardımcı olursanız çok sevinirim...
saygılarımla...

PAIN_KILLER
02-02-2007, 23:20   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
149 mesaj
Kayıt Tarihi:Kayıt: Mar 2006

function portin(IOport:word) :byte;assembler;
asm
mov dx,ax //port'taki degeri okumak için
in al,dx
end;


function readcom2:smallint;stdcall;
var
com2: TextFile;
begin
AssignFile(com2, 'COM2');
Rewrite(com2);
read(com2,result);
CloseFile(com2);
end;

Bu kodları bu forumdaki yildirim_86
arkadaşıma gönderdim sanırm çalıştı o konuya bir bak
Url= https://www.chip.com.tr/forum/de ... -yardim_t24129.html
SAYGILAR

3DART
17-02-2007, 22:28   |  #3  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

Bu kodlar çalıştı mı?
Merak ettim...
Çünkü ben XP için portlardan okuma ya da porta yazma yapmak için çok daha kompleks kodlar kullanmak zorunda kaldım...
Fırsat bulursam deneyeceğim bu kodları...

Teşekkürler...

PAIN_KILLER
20-02-2007, 09:27   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
149 mesaj
Kayıt Tarihi:Kayıt: Mar 2006

Ben bu kodlari evde denedim çalışmadı sorunun benim sistemden kaynaklandığı düşündüm (zaten benim pc portlar ilgili bir hata veriyor.); XP de çalışmadığını daha yeni duydum;
Sen o kompleks komutları buraya yazsan?

Son Düzenleme: PAIN_KILLER ~ 20 Şubat 2007 11:10
3DART
20-02-2007, 22:58   |  #5  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

Benim kompleks dediğim kodlar aslında kompleks değil ve üstelik oldukça da güzel..."SmallPor" isimli bir komponent...
ücretsiz...
Bu komponenti yükleyince tek bir satırla yazdığımız port okuma ya da yazma kodu windowsun tüm işletim sistemlerinde çalışıyor...Üstelik bu komponenti kullanarak yazdığım program ticari olarak kullanılıyor ve hiç bir problem olmadı şu ana kadar...

Yukardaki kodları görünce aklıma hemen şu geldi:Bir zamanlar bu bileşeni bulmadan önce api'leri kullanarak port okuma yazma kodları yazmaya çalışıyordum ama ne yaptımsa bir türlü başaramamıştım...Xp de okumak bu kadar basitse smalport daki bu komplex kodlar ne için acaba?Diye sordum kendime...Her neyse lafı uzatmadan smalportun linkini veriyorum...


Aşağıda da bunla ilgili bir delphi sitesinde yazdığım makalemi kopyaladım...


COMPONENT "smallport" 4 Eylül 2006 22:50
tekkolar
Özellikle Delphi'yi İleri Derecede Kullananlar İçin Çok Yararlı Olacağına İnandığım Bir "Component" SmallPort...

Bilen Bilir Port Erişimi İle İlgili Delphi'de Bazı Zorluklar Var...
Delphi'de Port Erişimi İçin Direkt Bir Kod Ya da Komut Yoktur...
Ve Bir Diğer Zorluk da Windows'un İşletim Sistemlerine Göre Bu Kodların Farklılık Göstermesidir...
Yani Mesela Windows 98 için yazılmış bir Port Erişim Kodu XP için Hiçbir Anlam İfade Etmiyor...

Bir Çok Kişi Win95/98/ME için Geçerli Olan Port Erişim Kodlarını Bilir Ya da Kolayca Bulur Ama Bu Kodlar Yalnızca Bu İşletim Sistemleri İçin Geçerlidir...

Aşağıda Link ini Verdiğim "SmallPort" Component'ini Delphi'ye Nesne Olarak Yüklediğinizde Bu Component İle Tek Bir Satır Kodla Windows'un Bütün İşletim Sistemleri İçin Geçerli Olacak Port Erişim Kodunu Yazmış Olacaksınız...

İyi Hoş Ama Bunun da Bir Bedeli Var: O da Win95/98/ME için C:\Windows\System klasöründe smport.vxd dosyası ya da WinNT/XP/2000 için ise C:\Windows\system32 klasöründe smport.sys dosyası yer almalıdır...
(Ya da Sadece Programın İcra Edildiği Klasörde Bu dosyaların Yeralması da yeterlidir Ama Benim Tavsiyem System de olması daha güvenli)...

Eğer Bu Açıklamalar Yeterli Değil Diyen Varsa Ayrıntı Ya da Örnek İsteyebilir...


PAIN_KILLER
21-02-2007, 15:34   |  #6  
Yıllanmış Üye
Teşekkür Sayısı: 0
149 mesaj
Kayıt Tarihi:Kayıt: Mar 2006

Gerçektentde dediğin gibi.Onay Sağolasın indirip bir deneyeyim.

yildirim_86
21-02-2007, 23:49   |  #7  
OP Taze Üye
Teşekkür Sayısı: 0
10 mesaj
Kayıt Tarihi:Kayıt: Ara 2006

bilgiler için çok teşekkür ederim ama ne yazık ki asm kodları ile olmadı gene xp uyumluluğu karşımıza çıktı biraz araştırmalar sonucu bende sizin yazdığınız smallport olayını buldum ve çalıştırdım delphi 7 de ama bilgi göndermede sorun yaşanmıyor.. takır takır bilgiyi gönderiyor ama ne yazıkki bilgi almada zorlanıyoruz ve benim için ise bilgi alma önemli ve bunu yapamadım tekrardan bana yardımcı olursanız bu konuda sevinirim.. ilginize şimdiden teşekkürler.
saygılarımla...

yildirim_86
21-02-2007, 23:51   |  #8  
OP Taze Üye
Teşekkür Sayısı: 0
10 mesaj
Kayıt Tarihi:Kayıt: Ara 2006

ayrı yeten


sitesinden port böülümünde port ile ilgili herşeyi anlatmışlar ama ordaki bilgi almayı bir tülü yapamadım eğer yapabilirseniz lütfen banada yardımcı olun...

3DART
23-02-2007, 10:25   |  #9  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

Sevgili yıldırım smallport ile bilgi okumada ve yazmada hiçbir problem yok...

Sana şu an tıkır tıkır çalışan bir programdan okuma ile ilgili örnek kod...

Procedure TMDIForm.PozisyonXYZ;
var pozX,pozY,pozZ,i:Byte;L:Longint;
begin
i:=0;
repeat
  i:=i+1;
     Repeat
      //Application.ProcessMessages;
      pozX:=1;
      PozY:=1;
      PozZ:=1;
      pozX:=MDIForm.SmallPort1.readbyte(BaseAdress+0);
      pozY:=MDIForm.SmallPort1.readbyte(BaseAdress+4);
      pozZ:=MDIForm.SmallPort1.readbyte(BaseAdress+8);
      if pozX and 64=0 then pozX:=0;
      if pozY and 64=0 then pozY:=0;
      if pozZ and 64=0 then pozZ:=0;
    until(pozX=0)and(pozY=0)and(pozZ=0);

L:=0;
          repeat
            L:=L+1;
          until L=10000;

until i=3;
end;

başka bir örnek...

          repeat
          Application.ProcessMessages;
          if TaramaStop then Exit;
          Kontrol;
          gzn:=gzn-ScanValue;
          XYZG01Play(True,xkor,ykor,gzn,chiz,false);
          until (MDIForm.SmallPort1.ReadByte(BaseAdress+12) and 2)= 2;

bu ikinci örnekte Hex 312 adresinde lojik 1 olup olmadığını sorguluyor...

Önemli Not:
BaseAdress:Word;
ve
SmallPort1.Opened:=True;
yapılmalıdır...

yildirim_86
27-02-2007, 09:07   |  #10  
OP Taze Üye
Teşekkür Sayısı: 0
10 mesaj
Kayıt Tarihi:Kayıt: Ara 2006

3DART sana çok teşekkür ederim verdiğin bu örnekleri denemeye çalışıyoruz ama takıldığımız bazı noktalar var anlayamadığımız ve çözemediğimiz mail adresim yildirim8613@gmail.com buraya mail atarsan ve burdan hemen konuşarak bana yardımcı olurmusun..
yardımların için çok teşekkür ederim..

3DART
27-02-2007, 10:33   |  #11  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

Mail gönderdim...

elegance26
11-03-2009, 16:18   |  #12  
Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: Mar 2009

merhaba delphi de 150 ile 250 arasında rast gele 10 sayıyı memo1 içine ekleyen program kodlarına ihtiyacım var yardımcı olursanız sevinirim.