selamu aleyküm
arkadaslar iki adet form um var form1 de stringgrid olusturuyorum ve form2 üzerindeki edit ler ile stringgrid e satir ekliyorum ve iclerini edit icine girdigim bilgiler ile dolduruyorum... cümleler uzun oldugunda wordwrap yapip row yüksekligini ona göre ayarliyor ve haliyle stringgrid in de yüksekligi degisiyor... buraya kadar hersey ok. fakat form2 yi kapadigim an stringgrid allak bullak oluyor.. yüksekligini kisaltiyor, row larin yükseklikleri degisiyor vs vs vs vs... bunu nasil engelleyebilirim bilgisi olan var mi? yardimci olursaniz sevinirim..
saygilar...
Stringgrid de Sorun yasiyorum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
string gridde de yapılan değişiklikleri kapatırken bir şekilde kayıt yaptırırsan..sorun kalmayacağını düşünüyorum.açarken de kayıt yaptığın ayarlar üzerinden okutarak açarsın.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Stringgrid hatasi
vedat hocam ben form2 yi kapatiyorum fakat stringgrid form1 üzerinde. yani form2 üzerindeki edit leri saymaz isem form1 ile uzaktan yakindan hic bir iliskisi yok : ) form2 yi kapatirken form1 üzerindeki grid i neden kayit etme geregi olsun henüz anlamis degilim... bunun baska bir alternatifi var mi?
Re: Stringgrid hatasi
ya gerçekten özürdilerim soruyu yanlış okumuş olmalıyım..yazdığın kodları falan versen biraz daha fazla yardımcı olacağımızdan eminim.Ekingen yazdı:vedat hocam ben form2 yi kapatiyorum fakat stringgrid form1 üzerinde. yani form2 üzerindeki edit leri saymaz isem form1 ile uzaktan yakindan hic bir iliskisi yok : ) form2 yi kapatirken form1 üzerindeki grid i neden kayit etme geregi olsun henüz anlamis degilim... bunun baska bir alternatifi var mi?
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
stringgrid sorunu
vedat hocam...
form1 ve form2 olmak üzere iki adet formumuz var. proje bir fatura projesi. form1 üzerinde bir GRID olusturuluyor ve form2 modal olarak kücük bir pencere halinde aciliyor. form2 üzerinde yalnizca bir kac edit ve bir adet buton var baska hic bir sey yok...
form2 üzerindeki edit lere bilgiler giriliyor ve butona basildiginda form1 üzerinde bulunan grid e bir adet row ekleniyor ve edit lerin icindeki bilgiler yeni olusturulan row a ekleniyor.
grid in ondrawcell in de ise su yaziyor.
procedure TForm1.HauptGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var Text : String;
Y : integer;
begin
IF ACol = 1 Then Begin
Text := (Sender as TStringGrid).Cells[ACol,ARow];
(Sender as TStringGrid).Canvas.FillRect(Rect);
DrawText((Sender as TStringGrid).Canvas.Handle, PChar(Text), Length(Text), Rect, DT_CalcRect or DT_Left or DT_WordBreak);
DrawText((Sender as TStringGrid).Canvas.Handle, PChar(Text), Length(Text), Rect, DT_Left or DT_WordBreak);
y := Rect.Bottom - Rect.Top;
IF StrToInt((Sender as TStringGrid).Cells[6,ARow]) < y Then Begin
(Sender as TStringGrid).Cells[6,ARow] := IntToStr(y);
(Sender as TStringGrid).RowHeights[ARow] := y;
(Sender as TStringGrid).Height := Rect.Bottom;
End;
End;
end;
bu grid in ondrawcell i... simdi burada dikkatini cekecek bir yer olacak o da burasi olsa gerek
IF StrToInt((Sender as TStringGrid).Cells[6,ARow]) < y Then Begin
6 nolu cell in icinde row un yüksekligi kayitli ve yeni bir yazi geldiginde Y ile Cell icindeki rakam kiyaslaniyor her hangi bir degisiklik var ise yükseklik ayarlari yeniden vukuu buluyor...
ondrawcell de yapmis oldugum uzatma-kisaltma islemi bir kac row dan sonra bozuluyor. yani bir kac row düzenli olarak genisliyor veya daraliyor bir kac row dan sonra ne yaptigini kendi de bilmiyor : ))
ve bir de grid scrollbox üzerinde yer aliyor... scrollbox u asagi yukari kaydirdigim zaman veya form2 yi kapadigim an form1 üzerinde bulunan grid in row lari kayip oluyor... repaint ediyor sanirim ve repaint ettigi an ondrawcell yeniden devreye giriyor tam bu sirada hersey allak bullak oluyor...
hocam Allah kolaylik versin... insaAllah cikabilirsin isin icinden...
saygilar
Ekingen...
form1 ve form2 olmak üzere iki adet formumuz var. proje bir fatura projesi. form1 üzerinde bir GRID olusturuluyor ve form2 modal olarak kücük bir pencere halinde aciliyor. form2 üzerinde yalnizca bir kac edit ve bir adet buton var baska hic bir sey yok...
form2 üzerindeki edit lere bilgiler giriliyor ve butona basildiginda form1 üzerinde bulunan grid e bir adet row ekleniyor ve edit lerin icindeki bilgiler yeni olusturulan row a ekleniyor.
grid in ondrawcell in de ise su yaziyor.
procedure TForm1.HauptGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var Text : String;
Y : integer;
begin
IF ACol = 1 Then Begin
Text := (Sender as TStringGrid).Cells[ACol,ARow];
(Sender as TStringGrid).Canvas.FillRect(Rect);
DrawText((Sender as TStringGrid).Canvas.Handle, PChar(Text), Length(Text), Rect, DT_CalcRect or DT_Left or DT_WordBreak);
DrawText((Sender as TStringGrid).Canvas.Handle, PChar(Text), Length(Text), Rect, DT_Left or DT_WordBreak);
y := Rect.Bottom - Rect.Top;
IF StrToInt((Sender as TStringGrid).Cells[6,ARow]) < y Then Begin
(Sender as TStringGrid).Cells[6,ARow] := IntToStr(y);
(Sender as TStringGrid).RowHeights[ARow] := y;
(Sender as TStringGrid).Height := Rect.Bottom;
End;
End;
end;
bu grid in ondrawcell i... simdi burada dikkatini cekecek bir yer olacak o da burasi olsa gerek
IF StrToInt((Sender as TStringGrid).Cells[6,ARow]) < y Then Begin
6 nolu cell in icinde row un yüksekligi kayitli ve yeni bir yazi geldiginde Y ile Cell icindeki rakam kiyaslaniyor her hangi bir degisiklik var ise yükseklik ayarlari yeniden vukuu buluyor...
ondrawcell de yapmis oldugum uzatma-kisaltma islemi bir kac row dan sonra bozuluyor. yani bir kac row düzenli olarak genisliyor veya daraliyor bir kac row dan sonra ne yaptigini kendi de bilmiyor : ))
ve bir de grid scrollbox üzerinde yer aliyor... scrollbox u asagi yukari kaydirdigim zaman veya form2 yi kapadigim an form1 üzerinde bulunan grid in row lari kayip oluyor... repaint ediyor sanirim ve repaint ettigi an ondrawcell yeniden devreye giriyor tam bu sirada hersey allak bullak oluyor...
hocam Allah kolaylik versin... insaAllah cikabilirsin isin icinden...
saygilar
Ekingen...