pchar komutu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
afsarbey
Üye
Mesajlar: 18
Kayıt: 06 Tem 2007 11:59

pchar komutu

Mesaj gönderen afsarbey »

s.a arkadaşlar
pchar komutunu kullanıyorum ama çalışmıyor bunun için uses satırına ayrıca bişey eklemek gerekiyormu
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

PChar komutu nedir? PChar tipinden bahsediyorsanız, bunun için uses'a bir şey eklemeniz gerekmiyor. Komut ile kastınız, tip dönüşümü(type casting) olabilir mi acaba:

Kod: Tümünü seç

var
  s: string;
  p: PChar;
begin
  ...
  ...
  p := PChar(s); //stringi PChar'a dönüştürür.
end;
Bu işlem type casting'dir. PChar burada fonksiyon değil, bir tiptir. Derleyici burada bir fonksiyon çalıştırmak yerine olaya direk müdahale eder. Ama aynı dönüşümü string'den integer'a yapsa idik:

Kod: Tümünü seç

  i := StrToInt(s);
burada type casting olmayacaktı. Çünkü burada StrToInt fonksiyonu çağrılıyor.[/code]
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: pchar komutu

Mesaj gönderen sabanakman »

afsarbey yazdı:s.a arkadaşlar
pchar komutunu kullanıyorum ama çalışmıyor bunun için uses satırına ayrıca bişey eklemek gerekiyormu
Sn fatihtolgaata'a paralel olarak;

PChar komut değil sistemin bir veri tipidir (Pointer Character). Bunun için uses'a bir unit eklemenize gerek yok. Tıpkı Integer veri tipinde olduğu gibi. Çalıştıramadığınız kodu sorunuzla birlikte verirseniz daha açıklayıcı cevaplar gelecektir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
afsarbey
Üye
Mesajlar: 18
Kayıt: 06 Tem 2007 11:59

Mesaj gönderen afsarbey »

yaf şimdi delphiyi yeni yeni öğreniyorum sık sık örnek çözüyorum hangileri komut fln henüz ayrım yapabilecek düzeye gelmedim ;
o yusden sordum pchar lı bi örnek çözüyordum ,,
çalıştırırken onun bulunduğu sırada hata verdi..hata deilde şimdi klasörleri program üzerinden gizleyip göstermeyi yapmaya çalışıyorum ama olmuyor program çalışıyor ama işlevini yerine getiremiyor

Kod: Tümünü seç

begin
Edit1.Text := ShellTreeView1.Path;
end;

procedure TForm1.suiButton1Click(Sender: TObject);
var
dizin : String;
begin
dizin := Edit1.Text;
WinExec(pchar('cmd.exe /c attrib +h +s' + dizin),SW_HIDE);
end;

procedure TForm1.suiButton2Click(Sender: TObject);
var
dizin : String;
begin
dizin := Edit1.Text;
WinExec(pchar('cmd.exe /c attrib -h -s' + dizin),SW_HIDE);
end;
kod böyle ama olmuyor
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

'cmd.exe /c attrib -h -s' den sonra boşluk karakteri koyup deneyebilirmisiniz. Hatta dizin değişkenini de " karakter ile çevirmek lazım. Yani:

Kod: Tümünü seç

WinExec(pchar('cmd.exe /c attrib +h +s "' + dizin + '"'),SW_HIDE);
Cevapla