Commandx yazdı: 28 Şub 2020 04:17
Delphi7 eski sürüm kullanıyorum
Öncelikle, en son Delphi sürümüne geçiş yapmanızı ne kadar tavsiye etsem azdır. Kullandığınız sürüm ile en son sürüm arasında birçok programlama dili ve özellik eklendi. Kaldı ki 4-5 ay içinde çıkacak yeni sürümde beklenen geliştirmeler büyük projeler ile çalışmayı, kod yazma esnasındaki donma sorunlarına köklü çözümler getirmesi bekleniyor.
Bilmeyenler için; Delphi Community Edition adında bir sürüm yayınladı. En son versiyonu ücretsiz kullanma imkanı sunuyor. Eğer yıllık $5000 altında kazanca ve 5 kullanıcıdan az kullanıcıya sahip gerçek veya tüzel kişi iseniz ücretsiz olarak kullanılabilirsiniz. Aşağıdaki bağlantıdan üye olduğunuzda 1 sene geçerli KEY e-mail adresinize gönderiliyor. Normalde tek sürüm ile çalışıyor bu KEY. Süresi bittikten sonra (bitmeden önce değil, bittikten en erken 1 gün sonra) yeniden talep ettiğinizde yeni KEY gönderiliyor.
https://www.embarcadero.com/products/delphi/starter
Delphi Community Edition ile "Delphi Professional" özelliklerine sahip oluyorsunuz. Sadece veritabanı erişimleri yerel veritabanları ile sınırlı. Bunu aşmak için Firebird'e özel FIBPlus veya profesyonel Devart firması UniDAC gibi bileşen setleri kullanımı yeterli oluyor.
Sorunuza gelince, Delphi 7 ile belli bir karakter kullanarak string -> TStrings ayırma işlemini belli koşullara uyarak aşağıdaki kod ile yapabilirsiniz. Ancak yeni sürümlerde bu koşullara gerek kalmayacak şekilde yapmanız mümkün.
Kod: Tümünü seç
procedure SplitToStrings(const Value: string; const Splitter: Char; List: TStrings);
var
I: Integer;
LList: TStringList;
begin
if not Assigned(List) then Exit;
LList := TStringList.Create();
try
LList.Delimiter := Splitter;
LList.DelimitedText := Value;
List.Clear;
for I := 0 to LList.Count-1 do
List.Add(LList[I]);
finally
LList.Free();
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SplitToStrings(ComboBox1.Text, ';', ListBox1.Items);
end;
Tasarım ekranınız yukarıdaki ilk sorunuzda paylaştığınız ekran şeklinde düşünebilirsiniz. Burada tek dikkat etmeniz gereken konu boşluk karakterleri. Normalde Delphi 7 "TStringList.StrictDelimiters" özelliğini içermiyor. Bu daha sonraki Delphi sürümlerinde gelen bir özellik. Dolayısıyla boşluk karakterlerini de her zaman ayraç olarak algılıyor. Boşluk karakterinin ayraç olmasını engellemek için girilen bilerilerin aşağıdaki şekilde çift tırnak içinde olması gerekiyor.
Kod: Tümünü seç
"ALİ CAN";"MEHMET KAYA";"KENAN AY";"SUAT DAĞ"