![]() |
Delphi Editor ile hızalama - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: Delphi Editor ile hızalama (/showthread.php?tid=6919) |
Delphi Editor ile hızalama - enes_29 - 13-09-2022 selam arkadaşlar tc adı soyadı sicil ve tutar kısmını hepsini hizada yapmak istiyorum. Bir türlü beceremedim rica etsem yardımcı olurumsunuz. AŞAĞIDAKİ GİBİ YAPMAYA ÇALIŞIYORUM AMA BECEREMEDİM 1478523612345678912DENEME DENEME SOYAD 1236548 000000000120.00 1486222232145698741DENEME1 DENEME SOYAD 1147852 000000000052.00 Delphi Editor ile hızalama - frmman - 13-09-2022 Form üzerindeki memo nesnesinde bu dediğinizi yapmak istiyorsanız, font tipini "Courier New" olarak değiştirin ve karakter sayısına göre kelime aralarına ilave edeceğiniz boşluk karakteri sayısını hesaplayarak sonrasında araya boşluk karakteri ekleyerek yapabilirsiniz. Delphi Editor ile hızalama - enes_29 - 13-09-2022 Dediğiniz gibi yaptım ama gine olmadı. sütunlar sıralı şekilde çıkmıyor. kod kısmının bir bölümü bu şekilde type myproctype=procedure(maskno:byte) of object; d_rec1=record d_sube_kodu:string[4]; d_KURUM_kodu:string[2]; d_islem_ayi:string[2]; d_odeme_turu:string[1]; d_bos:string[10]; d_musteri_hesap_no:string[8]; d_sss_soyadi: string[13]; d_sss_adi:string[12]; d_sicil_no:string[9]; d_miktar:currency; d_kimlik_no:string[11]; --------------------------------------------------- d_kurum_kodu:= d_kurum_kodu1; hesap1:=''+hesap; hesap2:=query1.FieldByName('BANKA_HES2').AsString; d_musteri_hesap_no:=hesap2; d_kimlik_no:=(query1.fieldbyname('KIMLIK_NO').ASSTRING); d_sss_adi:=query1.fieldbyname('ADI').AsString ; d_sss_soyadi:=query1.fieldbyname('SOYADI').AsString; numara :=floattostr(query1.fieldbyname('SICIL_NO').Asfloat); for jj:=1 to (12-length(numara)) do sifir_str:=sifir_str+''; d_sicil_no:=sifir_str+numara; d_miktar:=query1.FieldByName('TUTAR').AsFloat; d_odeme_turu:=UPPERCASE(Edit2.text); d_bos:=' '; yeni_deger := StringReplace(formatfloat('0###########.00',d_miktar) , ',', '.', [rfReplaceAll, rfIgnoreCase]); // disket rapor kısmı sıralaması satir_str1:= d_musteri_hesap_no+ d_kimlik_no+ d_sss_adi+' '+ d_sss_soyadi+ ' '+ d_sicil_no+ ' '+ yeni_deger ; Delphi Editor ile hızalama - frmman - 14-09-2022 Paylaştığınız kod parçacığında yukarıdaki mesajda önerdiğim çözüm yöntemini uyguladığınızı göremedim. Daha basit şekilde yukarıdaki örneği şu şekilde uygulayabilirsiniz. Her sütünunda hizalamaya çalıştığınız içeriklerin max uzunluğu belli ise, ve belirli sütünlardaki kelime uzunlukları eşit ise (ör: kimlik no) kelimelere ayırmak ve bunları dinamik işlemek yerine daha statik bir yaklaşım kurgulanabilir. Hizalama ihtiyacınıza göre boşluk sayısını değiştirebilirsiniz. Aşağıdaki kodlar doğrudan çalışmayacaktır, probleme yaklaşım yöntemi konusunda size fikir vermesi içindir. var maxuzunluk:integer = 20; //sss_adi en fazla 20 karakter veri içerebilir. ..... memo1.Font.Name:= 'Courier New'; ...... satir_str1:=d_musteri_hesap_no+ '5 adet boşluk' + // hesap no fix uzunlukta d_kimlik_no+ '5 adet boşluk' + // kimlik no fix uzunlukta d_sss_adi+ 'maxuzunluk-length(d_sss_adi) kadar boşluk' + '5 adet boşluk' + // sss_adi uzunluğu dinamik d_sss_soyadi+ ...... d_sicil_no+ ...... yeni_deger ; memo1.lines.add(satir_str1); Delphi Editor ile hızalama - mrmarman - 14-09-2022 Font tipini Courier New yaptıktan sonra Satır satır girişi Format() fonksiyonu kullanmak da isteyebilirsiniz. FORMAT( '%-20s %.5d', ['abc', 123] ) gibi deneyin isterseniz. Delphi Editor ile hızalama - frmman - 14-09-2022 @mrmarman beyin çözüm önerisi çok daha pratik. ![]() |