Marco Cantu dahil çoğu kitabı e-book olarak bedava edinmek mümkün. PDF leri var ve yeterinde iyi. p2p programları deneyebilirsin

Merhaba site Uyesi degerli programcı Arkadaslar, Ben bu siteye yeni kayit oldum ve yaklasik 4 ay gibi bir suredir DELPHI ile calısmaya basladim amacim iyi bir programci olmak fakat yeterli bir egitimci bulamadigim icin programcilik kurslarinda ust seviye bilgi alma sansim olmadi Bu anlamda sizlerden yardim bekliyorum Delphi de en iyi kaynak Kimlerin ve hangi yazarlarin kitaplaridir? ve Delphi' ye nasil baslamaliyim su andaki bilgilerim daginik oldugu icin bocalamaktayim bana Dongu mantiklariyla ilgili olarak ornekler gonderirseniz sevinirim ve kolay yoldan mantik olusturmak icin nasil bir yol takip etmeliyim simdiden tesekkurler ediyor va islerinizde basarilar diliyorum Bahattin POLAT

quick reportda ay bazında fatura toplamlarını raporluycam bunu için quickreportu bir querye bağladım querye şunu yazdım: SELECT sum , sum , sum FROM fatura where tarih&gt;:tarih1 and tarih&lt;:tarih2 tarihleri paramsda date olarak tanımladım. sonra başka bir forma bir combobox koyup içine ay isimlerini yazdım.comboboxın yanına koyduğum butonun clickine de şunu yazdım: ayfatrapor. query1. close; ayfatrapor. query1. sql. clear; if cb1. Items ='Ocak' then begin ayfatrapor. query1. ParamByName('Tarih1'). Value:='01.01.2002'; ayfatrapor. query1. ParamByName('Tarih2'). Value:='31.01.2002'; end else if cb1. Items ='Şubat' then begin ayfatrapor. query1. ParamByName('Tarih1'). Value:='01.02.2002'; ayfatrapor. query1. ParamByName('Tarih2'). Value:='28.02.2002'; end vs. vs her ay için ayfatrapor. query1. prepare; ayfatrapor. query1. open; ayfatrapor. QuickRep1. Preview; burada 2002 tarihi yerine system yılı yazıcam, birde bu kod çalışınca ilktarih yok diyor. ne yapmalıyım? Quickreportla ilgili yardımları için tüm arkadaşlara çok teşekkürler

Selamlar, Query. SQL içine yazdığın kodlara bakıldığı zaman iki tarih arasındaki fatura toplamını alır. Ve bu bir tek kaydı ve sonucu ifade eder. Eğer yanlış anlamadıysam, her ay fatura toplamları bir satırda olacak şekilde bir rapor içinde görmek istiyorsan bu kodlar ve uyguladığın yöntemle sonuca ulaşılamayacaktır. Eğer yapmak istediğin bu ise : Bir Table oluştur, içinde sadece 1,2,3,4,...12 değerlerinin olacağı bir numeric ayno ve her kayıtda aydaki max gün sayısını içerecek bir gunno değeri ve ay isimlerini içerecek bir ayadi değeri içersin. her ay değerini bir kayıt olarak sabitle. Bu dosya böylesi QR raporlar alabilmek için senin sabit kütüphanenin bir parçası olsun ve her uygulamada bu mantığı ve dosyayı uygulayabilirsin. . . function Subat29 : Boolean; ( Şubat ayının 29 çektiği yılı bulmak... ) Var Y:Word; begin Result := (Y mod 4 = 0) and ((Y mod 100 &lt;&gt; 0) or (Y mod 400 = 0)); end; Var Y, A, G:Word; Begin // QR Dataset ini bu belirlediğin ay ve ayın son günlerini içeren table olarak belirle... // oluşturduğun detailband içine ayguntableAyadi değerini, Qtoptut, Qkdvtut, Qgeneltop değerlerini fatquery den alacak qrdbtext comp. ları yerleştir... DecodeDate ; if AygunTable. Active=True Then AygunTable. Open; AygunTable. Locate('AYNO','02', ); // Şubat ayı ne çeker...28-29... AygunTable. Edit; if Subat29 =True Then AygunTablegunno. asinteger:=29 Else AygunTablegunno. asinteger:=28; AygunTable. Post; AygunTable. First; Fatquery. SQL. Clear; // fatura = fatura. dbf - Ft ise Global SQL tablename variable... Fatquery. SQL. Add ; Fatquery. SQL. Add('Select SUM As QToptut, SUM as QKdvtut, Sum As QGeneltop From Fatura Ft'); Fatquery. SQL. Add('Where (EXTRACT =:Ayno)'); Fatquery. SQL. Add ; // Fatquery field listi içinde Q ile başlayan değişkenler görünecektir... QuickRep1. Preview; // NOT : QR içinde, Detailband. event içinde beforeprint aksiyonu içine aşağıdaki kodları yerleştir.. Fatquery. Prepare; // Özet olarak QR, Ay numaraları table kayıtlarını her alışında, Fatquery o ay numarasına ait kayıtların toplam değerlerini alacaktır... Eğer yapmak istediğini yanlış anladıysam daha açık yazarsan cevap vermeye çalışırım... Kolay Gelsin, Saygılarımla. QuickPink

Selam Bahattin arkadaşım, Önce girdiğin bu yolda sana başarılar dilerim. En kolay mantık oluşturmanın tarif edilebilir bir tanımı olduğunu düşünmüyorum. Zor olduğundan değil, kolay mantığın subjektif bir kavram oluşundan kaynaklanması. Bunu 15 yıldan bu vakte kadar profesyonel olarak programcılıkla uğraşmama ve 5 yıllık programcılık öğretmenliğime dayanarak söyleyebiliyorum. Yinede kolay mantığı sonuca giden en basit yol tercihi olarak bir tanım içine koyabiliriz. Seçilen bu yolun kestirme oluşu, dolambaçlı oluşu, çetrefilli veya zor oluşu.. vs işte bütün bunların hepsi sonuca gidişte karşılaşılanlar ve tercih edilen yoldaki aşamalardır. Siz hangi yolu tercih etmişseniz o yolun getirdikleri ve sizin karşılaştığınız soru/sorunları algılama ve çözme yöntemleriniz.. vs işte kolay mantık bu.. yani sonuca gidişdeki her aşamada verilen kararlar.. Fakat doğru mantık kurgulamanız en kolay mantığı kurgulamanızdan çok daha önemli ve hayatidir. Kolay mantığı tercih etmeye çalışırken doğru sonuca ulaşmayı geciktirmek, zorlaştırmak veya karışıklığa sebep vermemek gerekir... Delphi'de en iyi kaynak delphi nin kendi içindeki yardımı, örnekleri ve kitaplarıdır.. Döngüler : FOR Vardeğişken:=ilkdeğer TO sondeğer DO BEGIN. . düngü içi işlemler.. ilkdeğerden başlayarak son değere kadar bu işlemler tekrar edilir. . END; WHILE şart DO BEGIN. . verilen şart sağlandığı sürece döngü çalışır. şart ortadan kalkdığında döngüden çıkılır. Dikkat edillmesi gereken en önemli şey döngü içine girmeden önce, şartın sağlanıyor olup/olmadığı. WHILE döngüsü ilk çalıştığı zaman döngü içi işlemleri yapmadan önce şartın uygunluğunu kontrol eder... . END; REPEAT. . UNTIL ile verilen şart sağlandığı sürece döngü içi işlemler çalışır. Burada WHILE döngüsünün aksine şarta bakılmaksızın döngü çalıştırılır, işlemler en az bir defa yapılır ve UNTIL ile şart sağlanırsa işlemler tekrar edilir, şartın sağlanmadığı an döngü terk edilir.. . UNTIL şart GOTO = ilkel döngü/sapma... Bunun için Var, Const gibi tanımlama bölümlerinde LABEL paragrafadı1, paragrafadı2... vs gibi bir tanım yapılmalıdır. Sapma Kullanımı : BEGIN işlemler.. if a=b Then goto eşitlik_var Else if a&gt;b Then goto abuyukb Else if a&lt;b Then akucukb; Goto CIKIS; eşitlik_var: showmessage ; Goto CIKIS; abuyukb: showmessage ; Goto CIKIS; akucukb: showmessage ; CIKIS: Exit; End; Dikkat edilecek olursa goto ile program akışına sapma verilemektedir.. Program akışının GOTO ile yönlendirilmesi durumlarında akış yönlendirilen satırlardan sonra devam eder..(kullanımını tavsiye etmiyorum.. Profesyonel olmadığı ve programları yavaşlattığı bilinen gerçeklerdir.. Bu mantığı Kolay mantık olarak görenler vardır.. Fakat ben döngü mantığının öğretilmesi haricinde kullanılmasının doğru olmadığını düşünüyorum.. Döngü için kullanım: i:=0; Tekrar : inc ; if i&gt;30 Goto dongucik; Showmessage('I='+inttostr ,' değeri aldı..'); Goto Tekrar; dongucik: { For kullanımı : FOR I:=1 TO 30 do Showmessage('I='+inttostr ,' değeri aldı..'); FOR i:=30 DOWNTO 1 DO Umarım yardımcı olmuşumdur... Kolay gelsin.. Saygılarımla.. QuickPink

yardımın için çok teşekkür ederim. başlangıçta yazdığım kod çalışıyor fakat sadece şubat 29 da sorun var. o biraz daha basit olduğu için şimdilik onunla idare edicem. tekrar teşekkür ederim. yeni sorularım olacak, bir kaç gündür sorduğum ve kimseden cevap alamadığım. onlara da yardım edebilirsen sevinirim.

Merhaba Marco Cantu'nun kitapları oldukça iyidir. Bir inceleyin büyük ihtimalle alırsınız