StringGrid Yazdırma

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

StringGrid Yazdırma

Mesaj gönderen tuna »

Arkadaşlar herkese merhaba. Bu forma yeni üye olabildim. Olabildim diyorum çünkü bazı aylarda üye kabul ediyormuşsunuz. Neyse sonunda hep takip ettiğim bu forma artık bende üyeyim.
Benim şöyle bir sorum olacaktı. Stringgrid içeriğini nasıl yazıcıya gönderebilirim.

Şimdiden herkese teşekürler.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: StringGrid Yazdırma

Mesaj gönderen Battosai »

Biraz araştırıp sorsaydın bunu cevabı, bu siteyi geç google da print stringgrid delphi yazınca en başta çıkıyor.Yani bu kadar basit.Aramadan sormayalım...Neyse ben yinede bulduğum kodu yazayım veya yazmayayım sen dediğim işlemi yap cevabı bulmanın keyfini çıkar... 8)
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: StringGrid Yazdırma

Mesaj gönderen tuna »

Önerilerin için teşekkürler. Arkadaşım ben araştırmadan ve forumda arattırmadan buraya yazmadım meraketme. Bilmeden insanı neden suçluyorsunki. Cevabı biliyorsan yaz bilmiyorsan sus. Ben sadece daha basit yöntem veya kod arıyorum hepsi bu. Google da çıkan sonuçların hepsi karmaşık geldi. Bu stringgrid olayınıda kendim için değil delphiyi yeni öğrenmiş bir arkadaşım için araştırıyorum. Onun için sade ve karışık olmayan bi kod yöntem bulmam lazım.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: StringGrid Yazdırma

Mesaj gönderen Battosai »

Zaten bilmeyen kişi kodun kolaylığını ne yapacak...Şimdi aşağıdaki kod mesela çok mu zor veya niye zor? Sonuçta kopyala yapıştır yapacaksınız...şuna bulduk ama ne bulduk onu bilmiyoz desene...
uses
Printers;

procedure PrintGrid(sGrid: TStringGrid; sTitle: string);
var
X1, X2: Integer;
Y1, Y2: Integer;
TmpI: Integer;
F: Integer;
TR: TRect;
begin
Printer.Title := sTitle;
Printer.BeginDoc;
Printer.Canvas.Pen.Color := 0;
Printer.Canvas.Font.Name := 'Times New Roman';
Printer.Canvas.Font.Size := 12;
Printer.Canvas.Font.Style := [fsBold, fsUnderline];
Printer.Canvas.TextOut(0, 100, Printer.Title);
for F := 1 to sGrid.ColCount - 1 do
begin
X1 := 0;
for TmpI := 1 to (F - 1) do
X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);
Y1 := 300;
X2 := 0;
for TmpI := 1 to F do
X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);
Y2 := 450;
TR := Rect(X1, Y1, X2 - 30, Y2);
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.Font.Size := 7;
Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);
Printer.Canvas.Font.Style := [];
for TmpI := 1 to sGrid.RowCount - 1 do
begin
Y1 := 150 * TmpI + 300;
Y2 := 150 * (TmpI + 1) + 300;
TR := Rect(X1, Y1, X2 - 30, Y2);
Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);
end;
end;
Printer.EndDoc;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
PrintGrid(StringGrid1, 'Print Stringgrid');
end;
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Re: StringGrid Yazdırma

Mesaj gönderen Vital »

Merhaba ;

Battosai bu kodu dbgrid icin uygulayinca hata veriyor. biraz degisiklik yapmaya calistim fakat kar etmedi?dbgrid icin nasil kuıllanabiliriz bunu

tskler.
Garibanus
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: StringGrid Yazdırma

Mesaj gönderen unicorn64 »

Vital yazdı:Merhaba ;

Battosai bu kodu dbgrid icin uygulayinca hata veriyor.
tskler.
ne @Battosai nede forumdaki diğer arkadaşlar müneccim olmadıklarına göre ne hatası verdiğini sen söylemeden bilemeyiz.
yanlış anlama sözüm sadece sana değil,tüm forum kullanıcılarına... bir hatayla karşılaşıyor ve bununla ilgii soru soruyorsak hatanın ne olduğunu da belirtelimki cevaplar daha net olsun ve en az 1 arkadaşımız dahi "keşke hatayı da yazsaydın" demek zorunda kalmasın...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: StringGrid Yazdırma

Mesaj gönderen Battosai »

DBGrid için çalışmaz tabi çünkü StringGrid için yazılmış bir kod...ama bir kaç düzenlemeyle DBGrid içinde çalışır...direk düzeltmeleri yapmayacam ama bir fikir vereyim...döngüleri Datasete göre yapıp sGrid.Cells[F, 0] yazan yerlerede x.Fields.text şeklinde...yerleştirmeler yaparaktan sonuca ulaşabilirsin....biraz zorlamak lazım kafayı zorlamadan ilerlenmez bu yolda....
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Re: StringGrid Yazdırma

Mesaj gönderen Vital »

tskler arkadasim kafayi zorladiktan sonra sana yazdim zaten.
verdigin ipucuyla cozdum.tavsiyen icin sagol beraber zorlayalim kafalari daha hizli ilerlesin.ve unicorn64 hata var demek yanlis olur o yuzden yazmadim hata var diye tip uyusmazligi veriyordu yani dbgrid icin nasil kullancagimi bilmiyordum.yani Battosai ye bahsettigim sey yukarida .

tekrar tskler.
Garibanus
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: StringGrid Yazdırma

Mesaj gönderen Battosai »

:bravo: Keyifli oluyor değilmi.... :)
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Re: StringGrid Yazdırma

Mesaj gönderen Vital »

hehe evet keyifli oluyor Battosai kardesim sagolasin galiba sende bu keyfi tatmissin ee hersey tecrube degil mi :lol:
Garibanus
Cevapla