S.a. arkadaşlar
iyi akşamlar. Bir program yapıyorum. Bedava çalışacak bir yapı. Çalışan insanların sabah işe gelince yarım saat haber okuduklarını ve haberlere ulaşmak için 5-6 tane site gezdiklerini biliyorum. İstisnalar olabilir tabi ama genelde böyle gördüm
Ben buradaki insanların az da olsa orada kaybettikleri zamanı kazanmaları için bir program ve web sitesi geliştiriyorum. sitenin adresini yazsam reklam olmaz umarım. adres: haberbar.com Kısaca yaptığı iş rss desteği olan haber sitelerinden güncel haberleri alarak haberbar programı yüklü olan bilgisayarlara iletiyor. Daha doğrusu program alıyor haberleri
Örnek kullanım yada gelişme aşamasına http://www.haberbar.com/HaberBar.rar dosyasından erişebilirsiniz.
Benim kafamdaki olayda kişi kategorileri XML aracılığı ile alıyor daha sonra bunları parse ederek tabloya yazdırıyorum. Tablo olarak acess tablosu kullanıyorum. mdb realtime create ettiriyorum. Herşey bu adımlarda normal. Zamanı gelince yeni haberleri bulup indiriyor. Bu da normal. Ama gelen haberleri ne şekilde göstereceğimiz tam olarak kestiremedim. Akşama kadar grid baktım. Düşündüm. Araştırdım ama haberleri göstertecek güzel bişey bulamadım ya da yapamadım.
Gerekli olan yapıda databaseden veriyi alacak. Son eklenen en başta olacak şekilde. kategori alanına göre gruplatabilirim ama gerekte pek yok.
Kullandığım alanlar Başlık, açıklama ve url. Bu alanlara göre üstte küçük bir ikon yanında kalın bir şekilde haber başlığı ve tıklandığından url sayfası default browserde göstereceğim. Başlığın altında da tek satır halinde kısa bir açıklama. Bunu elle yapmaya kalktığım zaman bana saçma olacak gibi geliyor. Bu yapıda göstertebileceğim bir component bilen ya da delphinin standart componetlerinden hangisi ile yapabilirim fikir verebilirseiniz memnun olurum.
Yeni gelen haberleri msn popup benzeri bir ekranda zaten göstericem ama onun haricinde programda da bütün haberleri göstertmek istiyorum.
(Bu arada telif haklarına tamamen uygun bir şekilde düzenlenmiş bir projedir. Haber detay için haber kaynağının sayfası açılıyor. Bununla ilgili googlenin bir projesi olmuş ancak buna haber sağlayıcılar karşı çıkmışlardı )
Öneri, eleştiri ve yardımlarınız için şimdiden teşekkürler
Bir öneri istiyorum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
projeniz için jedi gridlerini inceleyin bence, ufak resimleri gridde gösterebilirsiniz.
Konunun başlığı forum kurallarına aykırı, başlığı "İmage gösterimi yapabilecek, Yetenekli Gird Önerisi istiyorum" gibi bişeyle değiştirebilirsiniz. Böylece başlığı gören birsi mesaj içeriği hakkında ufak da olsa bir fikir sahibi olur.
Saygılarımla.
Projenizde Başarılar diliyorum
Konunun başlığı forum kurallarına aykırı, başlığı "İmage gösterimi yapabilecek, Yetenekli Gird Önerisi istiyorum" gibi bişeyle değiştirebilirsiniz. Böylece başlığı gören birsi mesaj içeriği hakkında ufak da olsa bir fikir sahibi olur.
Saygılarımla.
Projenizde Başarılar diliyorum
teşekkürler. aslında tam olarak bir grid değil. bir arkadaşımın lisanslı dxgrid bileşeni var onu denedim ama lisansını alacak kadar param yok
jediden bir kaç vcl kullandım. Tam aradığım özelliklerde değil ya da ben iki fieldi alt alta göstertemedim. Delphi kullanmayalı neredeyse bir seneye yaklaştı. Bazı şeyler hakkında sağlıklı fikirler yürütemiyorum.
bu aradığım şey gridden farklı bişeyler de olabilir. Ya da resim olmasına da gerek yok ufacık bir simge de olabilir. Olmasına da gerek yok
bold bir satır (başlık için) tıklandığından url açılacak. ve altında kısa bir yada iki satir bilgi ve biraz boşluk.
Örnek:
Borland yakında Türkiye'de büyük yatırımlar yapacağını duyurdu.
Borlan firması gelişmiş ve çok fazla sayıda programcıya hidap eden Delphi programlama dilinin...
Borland yakında Türkiye'de büyük yatırımlar yapacağını duyurdu.
Borlan firması gelişmiş ve çok fazla sayıda programcıya hidap eden Delphi programlama dilinin...
bu şekilde olması yeterli. yerine > kullanabilirim. O pek sorun olmaz. O yüzden tam nasıl bişey işimi görür fikir yürütemedim :'(
jediden bir kaç vcl kullandım. Tam aradığım özelliklerde değil ya da ben iki fieldi alt alta göstertemedim. Delphi kullanmayalı neredeyse bir seneye yaklaştı. Bazı şeyler hakkında sağlıklı fikirler yürütemiyorum.
bu aradığım şey gridden farklı bişeyler de olabilir. Ya da resim olmasına da gerek yok ufacık bir simge de olabilir. Olmasına da gerek yok
bold bir satır (başlık için) tıklandığından url açılacak. ve altında kısa bir yada iki satir bilgi ve biraz boşluk.
Örnek:
Borland yakında Türkiye'de büyük yatırımlar yapacağını duyurdu.
Borlan firması gelişmiş ve çok fazla sayıda programcıya hidap eden Delphi programlama dilinin...
Borland yakında Türkiye'de büyük yatırımlar yapacağını duyurdu.
Borlan firması gelişmiş ve çok fazla sayıda programcıya hidap eden Delphi programlama dilinin...
bu şekilde olması yeterli. yerine > kullanabilirim. O pek sorun olmaz. O yüzden tam nasıl bişey işimi görür fikir yürütemedim :'(
RSS readerlar da ekran genelde 3 bolumden olusuyor. Sol tarafta bir listbox oluyor ve bunda RSS feeder'larin listesi oluyor. Sag taraf yatay olarak ikiye bolunuyor ve sag ustte secili olan kaynaktan haberlerin listesi oluyor, yine bir listbox kullaniliyor. sag altta ise bir read only bir memo alaninda haberin detayi veriliyor ve ustune tiklaninca web sayfasi aciliyor.
Kolay gelsin...
Kolay gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
@marmarman tşk. evet görünüm olarak ne yapacağımı buldum ama bu yolun daha çook başında görünüyorum
http://delphi.about.com/od/vclusing/a/2007ownerdraw.htm
bunun üzerine biraz çalışayım inş bu canvas olayını güzel biş şekilde başarabilirim. Eğer yapabilirsem burda paylaşmak isterim )
(@hdayi tşk. aslında yapmak istediğim şey bir rss readerden daha farklı. yinede tşk)
http://delphi.about.com/od/vclusing/a/2007ownerdraw.htm
bunun üzerine biraz çalışayım inş bu canvas olayını güzel biş şekilde başarabilirim. Eğer yapabilirsem burda paylaşmak isterim )
(@hdayi tşk. aslında yapmak istediğim şey bir rss readerden daha farklı. yinede tşk)
- Madem araştırdın bir yere kadar geldin, kendimce bir örnek hazırladım onu sunayım...
- Veritabanı olarak kendiminkini kullandım sen veri alanı değişikliğini yaparsın... Forma bir tane TImageList bir de TDBGrid ekledik. Bu ImageList içerisinde dilediğin kadar Bitmap Icon koyabilirsin. Kayıt tipine göre de sondaki (0) yerine image'in indexini verir, onun basılmasını sağlarsın...
Örnek
veya
gibi..
- Bunlar aşağıdaki örnekteki gibi Transparan çevrelenmiş olarak DBGrid'in canvasına basılabilir nitelikte olsunlar... Mesela buradaki (formda gördüğü) ok resmini ( ) farklı kaydet dediğinde BMP tipini seçerek kaydet ve öylece ImageList'e al.
- Afiyet olsun
- Veritabanı olarak kendiminkini kullandım sen veri alanı değişikliğini yaparsın... Forma bir tane TImageList bir de TDBGrid ekledik. Bu ImageList içerisinde dilediğin kadar Bitmap Icon koyabilirsin. Kayıt tipine göre de sondaki (0) yerine image'in indexini verir, onun basılmasını sağlarsın...
Örnek
Kod: Tümünü seç
ImageList1.Draw( Canvas, Rect.Left, Rect.Top, 0);
Kod: Tümünü seç
ImageList1.Draw( Canvas, Rect.Left, Rect.Top, 1);
Kod: Tümünü seç
ImageList1.Draw( Canvas, Rect.Left, Rect.Top, 2);
- Bunlar aşağıdaki örnekteki gibi Transparan çevrelenmiş olarak DBGrid'in canvasına basılabilir nitelikte olsunlar... Mesela buradaki (formda gördüğü) ok resmini ( ) farklı kaydet dediğinde BMP tipini seçerek kaydet ve öylece ImageList'e al.
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
begin
AdoQuery1.SQL.Text := 'SELECT M_Name, M_TR_Name FROM Movies';
AdoQuery1.Active := True;
DBGrid1.Options := DBGrid1.Options - [dgEditing];
TStringGrid(DBGrid1).DefaultRowHeight := 30;
end;
Kod: Tümünü seç
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
Ortala : Boolean;
begin
If Column.Field.DisplayName = 'M_Name' then begin
With TDBGrid(Sender) do begin
If (gdSelected in State) OR (gdFocused in State) then begin
Canvas.Brush.Color := clAqua;
end else begin
Canvas.Brush.Color := clYellow;
end;
Canvas.FillRect(Rect);
Canvas.Font.Color := clBlack;
Canvas.Font.Style := [fsBold];
Canvas.TextOut( Rect.Left + ImageList1.Width, Rect.Top, DataSource.Dataset.FieldByName('M_Name').AsString );
Canvas.Font.Style := [];
Canvas.TextOut( Rect.Left + ImageList1.Width, Rect.Top + Canvas.TextHeight('H'), DataSource.Dataset.FieldByName('M_TR_Name').AsString );
// Resmi dikey ortalamak istersen true yap...
Ortala := False;
If Ortala then ImageList1.Draw(Canvas, Rect.Left, Rect.Top+(((Rect.Bottom-Rect.Top-ImageList1.Height)) div 2), 0)
else ImageList1.Draw(Canvas, Rect.Left, Rect.Top, 0);
end;
end;
end;