Konuyu Oyla:
  • Derecelendirme: 5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Kayan Yazı
#11
(14-12-2016, Saat: 11:36)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(14-12-2016, Saat: 10:01)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Teşekkür ederim yorumlarınıza, dikkate alacağım. Volkancım, o component'i biliyorum; ama benim için yeterince smooth değil Wink
Şimdilik basit bir örnek uygulamayı buradan indirebilirsiniz:

Tek kelimeyle Mükemmel. Ellerinize sağlık hocam.

(14-12-2016, Saat: 10:22)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı:  Sanki; yeni bir eklenen yazı olduğunda ve ekranda kayan bir başka yazı mevcut ise; mevcut yazının ekran koordinatlarından tamamen çıkmasının beklenmesine müteakip yeni eklenen yazının da bir öncekinin dibine eklenmesi en makulu gibi görünüyor. Siz ne düşünürsünüz bu hususta ?

Sonradan eklenen yazının akıbeti, dinamik (publish veya public bir özellik olabilir) olmalıdır.  Smile  

(14-12-2016, Saat: 10:22)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: İkinci olarak, parse işleminin kolay olması açısından ve string'in de unicode olmasından dolayı (char = 2 Byte); komutların 2 byte (word) yapılması gerektiğini düşünüyorum. Örneğin <b> komutu için 190 ve 00, <fs=24> için 195 ve 24 byte'larını birleştirerek eklemeyi düşünüyorum yazıya. Böylece parse ederken epeyce kolaylaşmış olacak işler.

Arka planın nasıl olacağını size bırakarak, ön planda (son kullanıcı olarak) şöyle olursa daha iyi olur.

TKayanYazı.Add('Dakika 1 gol 1').Bold.Italik.UnderLine.fs(24).fn('Gabriola').Link('http://www.delphican.com','Delphi Can').Picture('http://www.delphican.com/images/duyuru/delphican.png')

Çok şey istedim galiba.  Smile

Yoo güzel bir istek, bu hâlde yazarım Wink

Bu arada o gönderdiğim örnek şimdilik amatörce çalışıyor. Oyun programlama mantığında değil de timer mantığında çalışıyor şimdilik. Aynı zamanda her bilgisayarda aynı performansta çalışacak kodlardan da mahrum. Nihai halinde; QueryPerformance(Count/Freq) vb ile senkronizasyonu tüm bilgisayarlarda aynı şekilde çalışacak biçimde ayarlamak ve döngüyü while GetMessage do .. biçiminde değil de while PeekMessage do.. biçimine almak gerekecek.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#12
Bugün hastanede bekleme sırasını gösteren tv ünitesinde de sanırım adına "kayan yazı" denen şey vardı . pek kayıyor gibi gözükmüyordu tabi "zıplayan yazı" desek daha doğru olur.
Bir süre baksam gözüm şaşı olurdu herhalde Smile

Bir hasta listesi var ama adam grid vs gibi bileşen kulanmamış arkada bir jpeg dosyası koymuş jpeg dosyasına labelleri yerlleştirmiş resim le labeller uyuşmamış üste kaymış o kadar saçma duruyor ki anlatamadım bile, hani bir yerden fatura alırsınız. yazıcı fatura kağıdının hane boşluklarını tutturamaz yukarı yada aşağı kayar falan aynı öyle

Aklıma direk bu konu geldi koskoca devletin hastanesinde kullanılacak yazılımı neden bilmeyen kişilere yazdırıyorlar. Gerçi kesin kpss ile seçilmiştir. çocuğa da yazık yazılım öğreneceği vakti kpssde coğrafya çalışarak harcadı belkide.
WWW
Cevapla
#13
Arkadaşlar, sistemlerinde Rad Studio Berlin yüklü arkadaşım var ise; WinAPI.D2D1.pas içinde tanımlı olan IDWriteTextRenderer interface'inin içindeki DrawInlineObject metodunun tanımını burada paylaşabilir mi ? İlgili metod tanımı Seattle versiyonunda hatalı maalesef. Uzunca bir zaman uğraştırdı beni, dene yanıl yapa yapa doğrusunu buldum. Sizinle paylaşayım, ama merak ettim acaba son versiyonda bu tanım düzeltilmiş mi ?

Seattle'da mevcut hatalı tanım:

 
function DrawInlineObject(clientDrawingContext: Pointer; originX: Single;
      originY: Single; var inlineObject: IDWriteInlineObject; isSideways: BOOL;
     isRightToLeft: BOOL; const clientDrawingEffect: IUnknown): HResult; stdcall;

Benim düzelttiğim tanım:

 
function DrawInlineObject(clientDrawingContext: POinter; originX: single; originY: single;
            inlineObject: IDWriteInlineObject; isSideways: longbool; isRightToLeft: longbool;
           clientDrawingEffect: IUnknown): HResult; stdcall;

Sizin de DirectX ile işiniz olur ise benim yaptığım gibi ilgili tanımı değiştirmeli ve WinAPI.D2D1.pas ve Vcl.Direct2D.pas dosyalarını Lib klasörü altına atmalı ve Tools\Options\Environment Options\Delphi Options\Library Path ve Browsing Path'e dosyaları kopyaladığınız Lib klasörünü eklemelisiniz. Aksi taktirde yaptığınız değişiklikler etkili olmayacaktır.

Çalışmam yavaş da olsa ilerliyor. Şimdiki haline küçük bir örneği bulabildiğim ilk dosya yükleme sitesine upload ettim. Buradan indirip bakabilirsiniz eğer isterseniz.

Kullanımı ise Fesih Bey'in istediği gibi şekillenmeye devam ediyor. Örneğin bu örneği aşağıdaki gibi bir kod ile elde ettim:

procedure TForm3.WMAfterShow(var Message: TMessage);
begin
 Scroller := TXScroller.Create(Self);
 Scroller.Align := alTop;
 Scroller.Height := 100;
 Scroller.Parent := Self;

 Scroller
   .BackgroundFromFile('d:\Source\Denemeler\ScrollerDeneme\Icons\pinkback.jpg')
   .Add('Merhaba')
   .Color(clBlue)
   .Bold
   .ImageFromFile('d:\Source\Denemeler\ScrollerDeneme\Icons\calculator_48x48.png')
   .Add('DelphiCan yöneticileri.')
   .Color(clYellow)
   .Underline
   .ImageFromFile('d:\Source\Denemeler\ScrollerDeneme\Icons\write_48x48.png')
   .Add('Nasılsınız ?')
   .ImageFromLink('http://www.delphican.com/images/duyuru/delphican.png')
   .Render;

 Scroller.X := Left + Width;
 iStop := Round(Scroller.TextWidth);

 RollDown;

 Timer1.Enabled := true;
end;
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#14
Tuğrul abi, iconları da ekleyebilir misin, Çünkü ben farklı iconlar attım ama saçma sapan bir görüntü oluştu tepede
WWW
Cevapla
#15
(18-12-2016, Saat: 01:42)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Arkadaşlar, sistemlerinde Rad Studio Berlin yüklü arkadaşım var ise; WinAPI.D2D1.pas içinde tanımlı olan IDWriteTextRenderer interface'inin içindeki DrawInlineObject metodunun tanımını burada paylaşabilir mi ? İlgili metod tanımı Seattle versiyonunda hatalı maalesef. Uzunca bir zaman uğraştırdı beni, dene yanıl yapa yapa doğrusunu buldum. Sizinle paylaşayım, ama merak ettim acaba son versiyonda bu tanım düzeltilmiş mi ?

Seattle'da mevcut hatalı tanım:

 
function DrawInlineObject(clientDrawingContext: Pointer; originX: Single;
      originY: Single; var inlineObject: IDWriteInlineObject; isSideways: BOOL;
     isRightToLeft: BOOL; const clientDrawingEffect: IUnknown): HResult; stdcall;

Benim düzelttiğim tanım:

 
function DrawInlineObject(clientDrawingContext: POinter; originX: single; originY: single;
            inlineObject: IDWriteInlineObject; isSideways: longbool; isRightToLeft: longbool;
           clientDrawingEffect: IUnknown): HResult; stdcall;

Sizin de DirectX ile işiniz olur ise benim yaptığım gibi ilgili tanımı değiştirmeli ve WinAPI.D2D1.pas ve Vcl.Direct2D.pas dosyalarını Lib klasörü altına atmalı ve Tools\Options\Environment Options\Delphi Options\Library Path ve Browsing Path'e dosyaları kopyaladığınız Lib klasörünü eklemelisiniz. Aksi taktirde yaptığınız değişiklikler etkili olmayacaktır.

Çalışmam yavaş da olsa ilerliyor. Şimdiki haline küçük bir örneği bulabildiğim ilk dosya yükleme sitesine upload ettim. Buradan indirip bakabilirsiniz eğer isterseniz.

Kullanımı ise Fesih Bey'in istediği gibi şekillenmeye devam ediyor. Örneğin bu örneği aşağıdaki gibi bir kod ile elde ettim:

procedure TForm3.WMAfterShow(var Message: TMessage);
begin
 Scroller := TXScroller.Create(Self);
 Scroller.Align := alTop;
 Scroller.Height := 100;
 Scroller.Parent := Self;

 Scroller
   .BackgroundFromFile('d:\Source\Denemeler\ScrollerDeneme\Icons\pinkback.jpg')
   .Add('Merhaba')
   .Color(clBlue)
   .Bold
   .ImageFromFile('d:\Source\Denemeler\ScrollerDeneme\Icons\calculator_48x48.png')
   .Add('DelphiCan yöneticileri.')
   .Color(clYellow)
   .Underline
   .ImageFromFile('d:\Source\Denemeler\ScrollerDeneme\Icons\write_48x48.png')
   .Add('Nasılsınız ?')
   .ImageFromLink('http://www.delphican.com/images/duyuru/delphican.png')
   .Render;

 Scroller.X := Left + Width;
 iStop := Round(Scroller.TextWidth);

 RollDown;

 Timer1.Enabled := true;
end;

Merhaba,
Sanırım düzeltilmemiş hocam.
Delphi Berlin Update2 Winapi.D2D1.pas içindeki DrawInlineObject fonksiyon tanımı aşağıdaki gibi.

   function DrawInlineObject(clientDrawingContext: Pointer; originX: Single;
      originY: Single; var inlineObject: IDWriteInlineObject; isSideways: BOOL;
     isRightToLeft: BOOL; const clientDrawingEffect: IUnknown): HResult; stdcall;
 end;
Cevapla
#16
Bilgilendirme için teşekkürler Fesih bey, muhtemelen haberleri dahi yoktur. QC üyeliği olan bir arkadaşım var ise bildirebilir. Başkalarına faydası olsun bari.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#17
DBWQqv.png

Kaymaya çalışan yazı örneği,  bahsettiğim ekran
WWW
Cevapla
#18
(19-12-2016, Saat: 12:43)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Bilgilendirme için teşekkürler Fesih bey, muhtemelen haberleri dahi yoktur. QC üyeliği olan bir arkadaşım var ise bildirebilir. Başkalarına faydası olsun bari.

Tugrul abi eski EDN hesabin varsa QC ye login olabiliyorsun ya da yeni bir EDN hesabi olusturabiliyorsun.
QC olarak jira kullaniyorlar. bildirilen hatalari gorebiliyorsun , fixlenen hatalari gorebiliyorsun , ilgilendigin hatalari takip edebiliyorsun. bir gelisme olursa bilgilendirme maili geliyor otomatik.

https://quality.embarcadero.com/secure/Dashboard.jspa

Programda kayan yazi olarak java script kullandim. Fena da olmadi , cok memnunum. WebBrowser nesnesi ile nette ki bir duyuru.html dosyasini gosteriyorum.

Belki sana da kullanisli gelebilir. her türlü html tagı destekliyor Smile
sagdan sola kayarak ilerliyor , mouse ile uzerine gelince yazilar duruyor vs.

ornek bir resmi ekte bulabilirsin.

(12-01-2017, Saat: 10:35)yhackup Adlı Kullanıcıdan Alıntı: DBWQqv.png

Kaymaya çalışan yazı örneği,  bahsettiğim ekran

Kardelen yazilima ait hastane uygulamasi Smile Resmi kardelende calisan arkadasima gondereyim , ne bu rezillik diye sorayim Smile


Ek Dosyalar Resimler
   
WWW
Cevapla
#19
HTML marquue kısmı çok ilkel bir performans sunuyor maalesef. DirectWrite çok iyi. Çok büyük oranda bitirdim yapmam gerekenleri, son derece de güzel ve kullanışlı olduğunu düşünüyorum. Word dökümanını referans da alabiliyor ilgili sınıfım, word dökümanı içinde nasıl bir formatlama yaptı iseniz aynısını kayan yazı olarak ekranda görebiliyorsunuz. Ancak, başka hususlara geçmem gerektiği için şimdilik geliştirmeyi durdurdum.(Ayrıca, işin içine DirectComposition, Windows Animation Library, DXGI da sokmaya karar verdim) Tekrar ihtiyaç duyacağım (projeye ekleyeceğim) zaman, son halini vereceğim ve ardından sizlerle de paylaşacağım Allah nasip eder ise.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#20
(19-01-2017, Saat: 03:09)sadettinpolat Adlı Kullanıcıdan Alıntı:
(12-01-2017, Saat: 10:35)yhackup Adlı Kullanıcıdan Alıntı: Kaymaya çalışan yazı örneği,  bahsettiğim ekran
Kardelen yazilima ait hastane uygulamasi Smile Resmi kardelende calisan arkadasima gondereyim , ne bu rezillik diye sorayim Smile

Söyle söyle, ekrana bakınca gözüm şaşı oluyor, ekran zıplayıp duruyor olmaz böyle de Smile
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Rest debugger Memo Yazi Gönder gonulali 2 634 14-04-2023, Saat: 22:24
Son Yorum: gonulali
  Arapça Yazı Gösterme baloglurecep 9 4.591 28-02-2023, Saat: 16:31
Son Yorum: themerdogan
  Fastreport fiyat yazı fontu mukoly 9 2.209 21-02-2022, Saat: 16:52
Son Yorum: m_ekici
  StatusBar Yazı Renklendirme Hk. Yardım glagher 3 1.089 16-10-2021, Saat: 20:56
Son Yorum: Bay_Y
  Program içinde resim üzerine yazi gonulali 1 2.464 06-06-2018, Saat: 11:29
Son Yorum: iyarar



Konuyu Okuyanlar: 1 Ziyaretçi