Merhaba
Arkadaşlar String Gridde bir hücrede imleci kelimenin sonuna nasıl getirebilirim.
İyi Çalışmalar.
String Grid İmlec
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Arkadaşlar bu olayı çözdüm
Grid'in içinde TInplaceEdit diye bir bileşen var. Kullanıcının girdiği değer bu bileşen tarafından alınıyor StringGrid tarafından işleniyor.
Bu bileşen stringrid bileşenini çok kullanışlı hale getirbiliyor. Örneğin StrinGrid bileşeninde hücreleri ReadOnly yapma veya Parasal rakamları girerken basamaklara ayırma gibi.
Hierarchhy' si ise şöyle TCustomEdit - > TCustomMaskEdit -> TInplaceEdit
Bu bileşen gizlide olsa TCustomEdit da var olan herşey TInplaceEdit 'da da olması gerekli ama bu bileşen tam olarak çalışması problemli
bende kodumu TEdit bileşenine göre yorumladım.
ve imlecin sonunu buldum.
İyi Çalışmalar.
Grid'in içinde TInplaceEdit diye bir bileşen var. Kullanıcının girdiği değer bu bileşen tarafından alınıyor StringGrid tarafından işleniyor.
Bu bileşen stringrid bileşenini çok kullanışlı hale getirbiliyor. Örneğin StrinGrid bileşeninde hücreleri ReadOnly yapma veya Parasal rakamları girerken basamaklara ayırma gibi.
Hierarchhy' si ise şöyle TCustomEdit - > TCustomMaskEdit -> TInplaceEdit
Bu bileşen gizlide olsa TCustomEdit da var olan herşey TInplaceEdit 'da da olması gerekli ama bu bileşen tam olarak çalışması problemli
bende kodumu TEdit bileşenine göre yorumladım.
Kod: Tümünü seç
TEdit(StringGrid1.Controls[0]).SelStart := length(stringgrid1.Cells[0, ARow]);
İyi Çalışmalar.
Arkadaşlar bu olayı ben StringGride girdiğim parasal alanları hücreye giriş esnasında basamaklamak için yazmıştım ve neticeye ulaştım programımın bu kısmını sizinle paylaşmak istiyorum. Lütfen görüşlerinizi iletiniz şimdilik eksiği yok gibi gözüküyor. Umarım sizlerinde işini görür.
Not : Format sayı fonksiyonunu ben yazmadım.
İyi Çalışmalar.
Kod: Tümünü seç
Function FormatSayi(sayi:string):string;
var s,s1,s2 :string;
x,i,ns :integer;
nokta_sayisi:real;
begin
s:=sayi;
s1:='';
x:=length(s);
for i:=x downto 1 do
begin
insert(copy(s,i,1),s1,x-i+1);
end;
if (x mod 3)=0 then
nokta_sayisi:=(x/3-1);
if (x mod 3)<>0 then
begin
nokta_sayisi:=trunc(x/3);
end;
ns:=strtoint(floattostr(nokta_sayisi));
x:=x+ns;
for i:=1 to x do
begin
if (i Mod 4)=0 then
insert('.',s1,i);
end;
x:=length(s1);
s2:='';
for i:=x downto 1 do
begin
insert(copy(s1,i,1),s2,x-i+1);
end;
result:=s2;
end;
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
var
i:Integer;
Fiyat:String;
begin
if ACol = 0 Then
Begin
Fiyat := stringgrid1.Cells[0, ARow];
for i:=1 to length(stringgrid1.Cells[0, ARow]) do
begin
if copy(Fiyat,i,1)='.' then
delete(Fiyat,i,1);
end;
stringgrid1.Cells[0, ARow] := FormatSayi(Fiyat);
TEdit(StringGrid1.Controls[0]).SelStart := length(stringgrid1.Cells[0, ARow]);
End;
end;
İyi Çalışmalar.