Bir ziyaretçi defteri yazıyorum Delphi.Net ile.Kullanıcıdan verileri 4 adet textbox ile alıyorum , ilk 3 tanesi singleline textbox , 4. olanı ise multiline textbox.İlk 3 tanesi ile adsoyad, mail , konu başlığı , sonuncu textbox ile ise mesaj'ı alıyorum ve veritabanına (oledbconnection kullanarak) başarıyla kaydediyorum.Sonra mesajları göstermek için veritabanından verileri sorunsuz alıyorum ve label etiketinin içine atıyorum.
Fakat eğer girilen mesaj uzun ise (mesela 100 karakterden fazla) internet explorer alt tarafta yatay kaydırma çubukları çıkartıyor ve mesaj sağa doğru uzayıp gidiyor.Label etiketinin eski delphi win32'de olduğu gibi wrap özelliği yok.Ben de her 80 karakterde bir "enter" koyuyorum kodların arasına ama bazen kelimenin tam olmayacak yerinden kesiyor.Ben kelime kelime kessin istiyorum.Mesela şöle yapıyor : Arkadaşım kelimesini "A" yazıp alt satıra geçiyor ve "rkadaşım" diyerek devam ediyor , bu da çirkin bir görüntü oluşturuyor.
Tam olarak bu kıstaslarıda ele alabilecek bir yöntem yada kod varmıdır ?
Mesela şimdi bu mesajı yazdığım textbox çok güzel yapıyor , kelimeleri bölmeden alt satıra alıyor.Şimdiden teşekkür ederim..
Label etiketi problemi.
Arkadaşlar , yabancı sitenin birinde VB.NET ile verilmiş bir örnek buldum , hiç VB bilmememe ve sevmiyor olmama rağmen bunu delphi karşılığına çevirdim ve çok güzel çalıştı.Sizlerle de paylaşmak istedim.
Tanımlamalar
Program Bloğu
Tanımlamalar
Kod: Tümünü seç
var
son_bosluk,deger1,deger2,deger3:integer;
sonuc,giris_str,ara_deger:string;
vbCRLF:string;
Kod: Tümünü seç
vbCRLF:=chr(13)+chr(10);
giris_str:=herhangi bir yerden getirilen string;
ara_deger:='';
deger1 := 1;
deger2 := giris_str.length;
deger3 := 1;
While (deger1 < deger2) do begin
If copy(giris_str, deger1, 1) = ' ' Then begin
son_bosluk := deger1;
end;
//Burada 80 değerini kullandım , yani her satırda max. karakter , siz
//istediğimiz bir rakam ile değiştirebilirsiniz.
If (deger1 = deger3 + 80) Then begin
ara_deger := ara_deger + Trim(copy(giris_str, deger3,son_bosluk - deger3 + 1)) + vbCrLf;
deger3 := son_bosluk + 1;
While copy(giris_str, deger3, 1) = ' ' do begin
deger3 := deger3 + 1;
end;
End;
deger1 := deger1 + 1;
End;
ara_deger := ara_deger + Trim(copy(giris_str,deger3)) + vbCrLf;
sonuc:='<font face="tahoma" size="2" color=lime>' + ara_deger + '</font><p><hr>';
label1.Text:=label1.text+sonuc;
end;