Dönen yok seferinden...
Delphi 7 Köşesi...
Cevaplar
Umarım bu köşe faydalı olur ben delphiye yeni başlıyorum,kitaptan da takip ediyorum ama çözümünde tıkandığım basit yerler olabiliyor bunlardan biriside;

Resimin aşağısındaki açık ve kapalı kontakları üstte image1,2,3,4 kontaklarınının hangisine işlem yapacaksam örneğin image1.hide dediğimde altta kapalı kontak varsa kapanmış gösterecek benim sorunum
image1 ve image2.hide devamında image3 ve image4.show bunu birtürlü yapamadım.
Yardımcı olabilecek delphi kurdu bir arkadaş var mı acaba?
Resimin aşağısındaki açık ve kapalı kontakları üstte image1,2,3,4 kontaklarınının hangisine işlem yapacaksam örneğin image1.hide dediğimde altta kapalı kontak varsa kapanmış gösterecek benim sorunum
image1 ve image2.hide devamında image3 ve image4.show bunu birtürlü yapamadım.
Yardımcı olabilecek delphi kurdu bir arkadaş var mı acaba?
biraz daha açık yazabilirmisin? kafamda canlandıramadım da:(
4 adet İmage var bu imageları gizleyerek veya (Altta açık kontaklar var)evowinds dedi: ↑biraz daha açık yazabilirmisin? kafamda canlandıramadım da:(
göstererek açılır kapanır yapıyorum. Bu işlemi tek kontak için rahatlıkla yapabiliyorum.
procedure TForm1.Button1Click(Sender: TObject);
begin
image1.hide
end;
end.Ancak image1 ile birlite image2'ninde gizlenmesini;bu ikisi gizlendiğinde de image3 ve 4'ünde gösterilmesini (image3;image4.show) yapamadım.
Yani;
procedure TForm1.Button1Click(Sender: TObject);
begin
image1.hide
image2.hide
image3.show
image4.show
end;
end.doğrusu nedir umarım anlatabildim. Kaç gündür arıyorum kaynaklardan araya virgül mü koyucam parantez açıp tırnak içerisine mi yazıcam bilmiyorum denedim olmadı zaten.kodların sonuna" ;" koymayı dene, delphi de sadece "else" den önce ve bazı özel durumlarda satır sonuda ";" gelmez...
Birde eğer bu işine yaramazsa şöyle dene :
image1.visible :=True;
image2.visible :=True;
image3.visible :=False;
image4.visible :=False;
veya duruma göre tersi...
Birde eğer bu işine yaramazsa şöyle dene :
image1.visible :=True;
image2.visible :=True;
image3.visible :=False;
image4.visible :=False;
veya duruma göre tersi...
Eline sağlık Çok teşekkürler açıkladığın gibi...evowinds dedi: ↑kodların sonuna" ;" koymayı dene, delphi de sadece "else" den önce ve bazı özel durumlarda satır sonuda ";" gelmez...
Birde eğer bu işine yaramazsa şöyle dene :
image1.visible :=True;
image2.visible :=True;
image3.visible :=False;
image4.visible :=False;
veya duruma göre tersi...
Eğer diğer konularda da sorunun olursa yardımcı olmaya çalışırım. :)
Ama bıkarsın, aslında tam konuya hakim bir programcıya zaman zaman çok ihtiyacım oluyor bıktırmadan size sorma teklifi beni çok sevindirir, Size özelden de mesaj atabilir miyim takıldığım konu hakkında?evowinds dedi: ↑Eğer diğer konularda da sorunun olursa yardımcı olmaya çalışırım. :)
tabiki, bende meraklıyım. ama fırsat bulup da vakit ayıramıyorum. elimden geldiğince yardımcı olmaya çalışırım. çalıştığım yerde arkadaşın arkadaşına-tanımadığım birine- bir program bile yazmışlığım vardır..webrettin dedi: ↑Ama bıkarsın, aslında tam konuya hakim bir programcıya zaman zaman çok ihtiyacım oluyor bıktırmadan size sorma teklifi beni çok sevindirir, Size özelden de mesaj atabilir miyim takıldığım konu hakkında?
Çok teşekkür ederim.evowinds dedi: ↑tabiki, bende meraklıyım. ama fırsat bulup da vakit ayıramıyorum. elimden geldiğince yardımcı olmaya çalışırım. çalıştığım yerde arkadaşın arkadaşına-tanımadığım birine- bir program bile yazmışlığım vardır..
Zaten çözmüşsünüz sorunu. If..then..else ile çözülebilir. :)webrettin dedi: ↑Ama bıkarsın, aslında tam konuya hakim bir programcıya zaman zaman çok ihtiyacım oluyor bıktırmadan size sorma teklifi beni çok sevindirir, Size özelden de mesaj atabilir miyim takıldığım konu hakkında?
Diğer sorunları da yazın buraya. Herkes faydalansın cevaplardan.
Haklısın.Hammers dedi: ↑Zaten çözmüşsünüz sorunu. If..then..else ile çözülebilir. :)
Diğer sorunları da yazın buraya. Herkes faydalansın cevaplardan.
Dönen yok seferinden...
Benim sorum şekilden de anlaşılacağı gibi aynı forma komut verme değilde diğer formdaki değişiklikten dolayı farklı fprma komut verme hakkında olacaktı.
Aynı formda olsaydı;
if resim2.visible:=true then resim1.visible:=true;
resim farklı formda olunca nasıl yapacağım hakkında fikrim yok yardım ederseniz sevinirim.

Aynı formda olsaydı;
if resim2.visible:=true then resim1.visible:=true;
resim farklı formda olunca nasıl yapacağım hakkında fikrim yok yardım ederseniz sevinirim.

Silindi?
...
form1.resim1.visible:=False;
..
form1.button1.visible:=False;
..
şeklinde yapabilirsin form2 de "uses unit1;" yapman gerekli sadece;
form1.resim1.visible:=False;
..
form1.button1.visible:=False;
..
şeklinde yapabilirsin form2 de "uses unit1;" yapman gerekli sadece;
evet sorunu bahsettiğiniz şekilde çözdüm küçük bir fark var form1 değilde form2.button1.visible şeklinde yaptım sonuçta sizin mantığınız sorunumu çözdü. Teşekkürler.oduncu dedi: ↑...
form1.resim1.visible:=False;
..
form1.button1.visible:=False;
..
şeklinde yapabilirsin form2 de "uses unit1;" yapman gerekli sadece;
Formu tam ekran yaptığımda form içerisindeki örneğin resim tam ekran olmayıp boşluklar kalıyor. Align := alclient yaptım fakat olmadı nasıl yapabilirim ?

sorunum çözüldü.
İmage nesnesi strecth:=true olmalıymış.
sorunum çözüldü.
İmage nesnesi strecth:=true olmalıymış.
Registry kullanarak bilgisayara takılan USB id sinin alınması.
Ben delphide takılı bir usb nin id bilgisine ulaşacak bir kod kullanıyorum, bu kod XP de sorunsuz çalışıyor ancak Vistada ve Windows 7 de kod işe yaramıyor. XP de çalışan kod Vistada neden çalışmıyor?
Öğrenmek istediğim: "Windows Registry de bilgisayarda şuan takılı bir usb nin id bilgisine nasıl ulaşılabilir? Bu bilgi registry nin neresine 'hangi mantıkla' kayıt edilmektedir ve Bununla alakalı Vistada XPden farklı olarak ne değişti?. Yani bu bilgi Registry ağacının neresinde tutuluyor?"
iletişim: worker.db@gmail.com
Teşekkürler.
Ben delphide takılı bir usb nin id bilgisine ulaşacak bir kod kullanıyorum, bu kod XP de sorunsuz çalışıyor ancak Vistada ve Windows 7 de kod işe yaramıyor. XP de çalışan kod Vistada neden çalışmıyor?
Öğrenmek istediğim: "Windows Registry de bilgisayarda şuan takılı bir usb nin id bilgisine nasıl ulaşılabilir? Bu bilgi registry nin neresine 'hangi mantıkla' kayıt edilmektedir ve Bununla alakalı Vistada XPden farklı olarak ne değişti?. Yani bu bilgi Registry ağacının neresinde tutuluyor?"
iletişim: worker.db@gmail.com
Teşekkürler.
@worker.db; bu sorun Windows sürümleri değiştikçe meydana gelen bir durum. XP için
geçerli olan kodlar maalesef diğer sürümlerde çalışmıyor bazen. Bu kullanılan API lerle ve
dediğin gibi registry ayarları ile değişiklik gösteriyor. Mesela, XP de bulunan Documents and
Settings klasörü yerine W7 de Users adlı ayrı bir klasör var. Uyumluluk modunda
çalıştırırsan belkide bir nebze sorunun çözülür ama en sağlıklısı W7 ve Vista için geçerli
kodların yayınlanmasını beklemen...
geçerli olan kodlar maalesef diğer sürümlerde çalışmıyor bazen. Bu kullanılan API lerle ve
dediğin gibi registry ayarları ile değişiklik gösteriyor. Mesela, XP de bulunan Documents and
Settings klasörü yerine W7 de Users adlı ayrı bir klasör var. Uyumluluk modunda
çalıştırırsan belkide bir nebze sorunun çözülür ama en sağlıklısı W7 ve Vista için geçerli
kodların yayınlanmasını beklemen...
Sorunumun çözümünün aslında basit olduğunu seziyorum ama tüm çabalarıma rağmen olmadı.
Formda 1 er adet edit, buton ve label var.
edite girilen tam sayılı değer butona basılınca istenen herhangi miktarda (1, 10, 24 gibi ) artacak label'a aktarılacak ve örneğin 1000'e gelince artırma sona erecek.
Bunu timerla yaptım ama birkereye mahsus artırıyor.
inc(sayi,10) yaptığımda da sonuç değişmedi. Çözümünü bilen arkadaşlarım yardım ederlerse gerçekten sevineceğim.

Formda 1 er adet edit, buton ve label var.
edite girilen tam sayılı değer butona basılınca istenen herhangi miktarda (1, 10, 24 gibi ) artacak label'a aktarılacak ve örneğin 1000'e gelince artırma sona erecek.
Bunu timerla yaptım ama birkereye mahsus artırıyor.
inc(sayi,10) yaptığımda da sonuç değişmedi. Çözümünü bilen arkadaşlarım yardım ederlerse gerçekten sevineceğim.
edit1.text:=inttostr(strtoint(edit1.text+10));
Timer için formun mesela OnActivate olayına yazabilirsin. Form sürekli aktif olacağından timer sürekli bunu işletir.
button onclick olayına
rakam:integer;
rakam:=strtoint(edit1.text);
label1.caption:=inttostr(rakam);
Procedure TFormActivate(Sender:Tobject)
var sayi:integer;
begin
sayi:=sayi+10;
label1.text:=inttostr(sayi);
if sayi>1000 then
timer.enabled:=false;
end;
deyip Timer ı kapatabilirsin. Not :Aklımdan yazdım...
button onclick olayına
rakam:integer;
rakam:=strtoint(edit1.text);
label1.caption:=inttostr(rakam);
Procedure TFormActivate(Sender:Tobject)
var sayi:integer;
begin
sayi:=sayi+10;
label1.text:=inttostr(sayi);
if sayi>1000 then
timer.enabled:=false;
end;
deyip Timer ı kapatabilirsin. Not :Aklımdan yazdım...
Dediğiniz gibi de ve şekildeki gibi de yaptım ikisinde de aynı hatayı verdi nerede hata yapıyor olabilirm yardım edermisiniz?oduncu dedi: ↑edit1.text:=inttostr(strtoint(edit1.text+10));
Text bir veriyle nümerik bir veriyi toplamaya kalkarsan matematiksel bir ifade olmaz. Onun yerinewebrettin dedi: ↑Dediğiniz gibi de ve şekildeki gibi de yaptım ikisinde de aynı hatayı verdi nerede hata yapıyor olabilirm yardım edermisiniz?
edit1.text:=inttostr(strtoint(edit1.text)+10); demen gerekir.
İnşallah gün gelir bende aklımdan yazarım yazdıklarınızı çalışır hale getirmeye bakıyorum hemen teşekkürler.evowinds dedi: ↑Timer için formun mesela OnActivate olayına yazabilirsin. Form sürekli aktif olacağından timer sürekli bunu işletir.
button onclick olayına
rakam:integer;
rakam:=strtoint(edit1.text);
label1.caption:=inttostr(rakam);
Procedure TFormActivate(Sender:Tobject)
var sayi:integer;
begin
sayi:=sayi+10;
label1.text:=inttostr(sayi);
if sayi>1000 then
timer.enabled:=false;
end;
deyip Timer ı kapatabilirsin. Not :Aklımdan yazdım...
bu hatayı verdi.
Çözüldü......
Afedersin,
sayi ile rakam ı eşitlemen gerekir. yani o veriyi bir global değişken tanımlayıp kullanman faydalı olur. Yoksa döngü içinde sürekli kendini tekrar eder.
biraz uğraşayım sana düzgün kodları yazacağım.
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
if Edit1.Text<>'0' then
begin
i:=i+10;
Label1.Caption:=IntToStr(i);
if i>1000 then
Timer1.Enabled:=False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//if Edit1.Text<>'0..9' then
// ShowMessage('Lütfen bir değer giriniz')
//else begin
i:=StrToInt(Edit1.Text);
Label1.Caption:=Edit1.Text;
Timer1.Enabled:=True;
end;
//end;
end.
sayi ile rakam ı eşitlemen gerekir. yani o veriyi bir global değişken tanımlayıp kullanman faydalı olur. Yoksa döngü içinde sürekli kendini tekrar eder.
biraz uğraşayım sana düzgün kodları yazacağım.
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
if Edit1.Text<>'0' then
begin
i:=i+10;
Label1.Caption:=IntToStr(i);
if i>1000 then
Timer1.Enabled:=False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//if Edit1.Text<>'0..9' then
// ShowMessage('Lütfen bir değer giriniz')
//else begin
i:=StrToInt(Edit1.Text);
Label1.Caption:=Edit1.Text;
Timer1.Enabled:=True;
end;
//end;
end.
sanal olarak memnuniyetimi nasıl belli ederim tam bilmiyorum çok teşekkürlerevowinds dedi: ↑Afedersin,
sayi ile rakam ı eşitlemen gerekir. yani o veriyi bir global değişken tanımlayıp kullanman faydalı olur. Yoksa döngü içinde sürekli kendini tekrar eder.
biraz uğraşayım sana düzgün kodları yazacağım.
---------- saat 23:23 eklendi ---------- önceki mesaj saat 23:20 eklenmişti ----------
Dediğiniz şekilde yaptım Ellerinize ve yüreğinize sağlık evowinds veevowinds dedi: ↑Text bir veriyle nümerik bir veriyi toplamaya kalkarsan matematiksel bir ifade olmaz. Onun yerine
edit1.text:=inttostr(strtoint(edit1.text)+10); demen gerekir.
oduncu
:clap::clap::clap::clap:
Sizin bilgileriniz açılmışken anektod şeklinde bir soru daha sormak isterim. Randomla rastgele artırıp azaltabiliyoruz ama bu tam sayılar için ondalık sayılar için ne yapabilirim?
ondalık sayılar için istediğin ondalığa çevireceksin, bunu üniversitedeyken keşfetmiştik :D
yani 2 basamaklı ondalık istiyorsan 100'e, 3 basamaklı ondalık istiyorsan 1000'e böleceksin.
tabiki random(100) veya random(1000) demen gerekli.
yani 2 basamaklı ondalık istiyorsan 100'e, 3 basamaklı ondalık istiyorsan 1000'e böleceksin.
tabiki random(100) veya random(1000) demen gerekli.
Bunu da deniyeyim ama bunu hemen şip şak yapamam. Sindire sindire yapabilirim. ellerinize sağlık tekrar cevaba döndüğünüz için tekrar teşekkür ederim.evowinds dedi: ↑Afedersin,
sayi ile rakam ı eşitlemen gerekir. yani o veriyi bir global değişken tanımlayıp kullanman faydalı olur. Yoksa döngü içinde sürekli kendini tekrar eder.
biraz uğraşayım sana düzgün kodları yazacağım.
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
if Edit1.Text<>'0' then
begin
i:=i+10;
Label1.Caption:=IntToStr(i);
if i>1000 then
Timer1.Enabled:=False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//if Edit1.Text<>'0..9' then
// ShowMessage('Lütfen bir değer giriniz')
//else begin
i:=StrToInt(Edit1.Text);
Label1.Caption:=Edit1.Text;
Timer1.Enabled:=True;
end;
//end;
end.
Bunuda deneyeyim.:) Gittiğim yoldan çoktan geçmiş birisiyle görüşmek keyifli.evowinds dedi: ↑ondalık sayılar için istediğin ondalığa çevireceksin, bunu üniversitedeyken keşfetmiştik :D
yani 2 basamaklı ondalık istiyorsan 100'e, 3 basamaklı ondalık istiyorsan 1000'e böleceksin.