Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Hoşgeldin, Ziyaretçi
Sitemizden yararlanabilmek için Kayıt olmalısınız.

Kullanıcı Adınız:
  

Şifreniz:
  





Forumda Ara

(Gelişmiş Arama)

Forum İstatistikleri
» Toplam Üyeler: 2.045
» Son Üye: atf
» Toplam Konular: 3.849
» Toplam Yorumlar: 31.353

Detaylı İstatistikler

Son Aktiviteler
UWP app
Forum: Genel Programlama
Son Yorum:

Tuğrul HELVACI
1 saat önce
» Yorumlar: 2
» Okunma: 45
EFatura xml oluşturma ile...
Forum: Genel Programlama
Son Yorum:

boreas
5 saat önce
» Yorumlar: 10
» Okunma: 2.385
Rad studio 10.3.3
Forum: Muhabbet Olsun
Son Yorum:

pro_imaj
5 saat önce
» Yorumlar: 5
» Okunma: 141
Google Play Store'a Ağust...
Forum: Mobil Platform - FireMonkey (FMX)
Son Yorum:

nakisen
6 saat önce
» Yorumlar: 23
» Okunma: 1.241
Karikatür Vakti
Forum: Muhabbet Olsun
Son Yorum:

adelphiforumz
11 saat önce
» Yorumlar: 109
» Okunma: 24.863
Tarih Ekleme
Forum: MS SQL Server
Son Yorum:

m_ekici
Bugün, Saat: 09:50
» Yorumlar: 8
» Okunma: 1.981
CodeRage 2019 - FireMonke...
Forum: Embarcadero Görsel Eğitimleri
Son Yorum:

Fesih ARSLAN
Bugün, Saat: 08:53
» Yorumlar: 0
» Okunma: 37
FireMonkey ile Modern Ara...
Forum: Embarcadero Görsel Eğitimleri
Son Yorum:

Bay_Y
Bugün, Saat: 08:02
» Yorumlar: 57
» Okunma: 5.367
E Fatura XML dosyasını gö...
Forum: Genel Programlama
Son Yorum:

nguzeller
Dün, Saat: 19:59
» Yorumlar: 4
» Okunma: 110
Basit Kriptoloji - 03
Forum: Access violation
Son Yorum:

Fesih ARSLAN
Dün, Saat: 14:50
» Yorumlar: 20
» Okunma: 582

 
  ListView GlyphButton nesnesini CheckBox gibi kullanmak
Yazar: Fesih ARSLAN - 24-07-2016, Saat: 17:25 - Forum: Mobil Platform - FireMonkey (FMX) - Yorum Yok

Merhaba;

GlyphButton kullanarak CheckBox yapmak için;
1- Öncelikle yeni bir proje oluşturalım.
2- Forma bir adet ListView yerleştirelim.
3- Structure penceresinde ListView>ItemAppearance>Item'ı seçip Object Inspector'dan Appearance özelliğini DynamicAppearance seçelim.
Böylece bir adet TTextObjectAppearance oluşacaktır. 
4- Yine Structure penceresinde ListView>ItemAppearance>Item'ı seçili iken  Object Inspector'da en altta yer alan artı (+) sembölünün yanındaki Add new... seçeneğini TGlyphButtonObjectAppearance ile değiştirelim. Böylece TListItemGlyphButton tipinde yeni bir alt Item oluşacaktır. 

2jwk2g.jpg

5- Oluşturduğumuz Item elemanlarını düzenlemek için Form üzerindeki ListView'e sağ tıklayıp "Toggle DesignMode" menüsünü seçelim.

2nsw3dx.jpg

Tasarım işi tamamlanmış oldu. 
Kod kısımlarını ise aşağıdaki linkten paylaşıyorum.
Proje Linki: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Ekran görüntüsü:
jwjGvqL.gif

Bu konuyu yazdır

  Listview nesnesi ile birden fazla alan oluşturma
Yazar: Fesih ARSLAN - 24-07-2016, Saat: 17:24 - Forum: Mobil Platform - FireMonkey (FMX) - Yorumlar (11)

Merhaba;
1- Forma 1 adet ListView yerleştirin.
2- Structure penceresinden ListView > ItemAppearance > Item'ı seçin.
3- Object Inspector'dan Appearance özelliğinden DynamicAppearance 'ı seçin.

ftfssk.jpg

4- Yine ListView > ItemAppearance > Item seçili iken, Object Inspector'dan Add new... penceresini açın.

99kr5z.jpg

5- Açılan pencerede Text, Image, Accessory, TextButton ve GlyphButton nesnelerinden herhangi birini seçerek ListView Item'a yerleşmesini sağlayabilirsiniz.

Örnek:
20ho9rs.jpg

Eklediğiniz MultiDetail Item'ları tasarlamak için;
ListView üzerinde sağ tuşa basın ve açılan menüden Toggle DesignMode menü elemanını seçin.

2l8w103.jpg

İster Structure penceresinden isterseniz doğrudan ListView üzerinden bir Item elemanı seçerek Object Inspector'dan pozisyon, boyut, font ve diğer bir çok özelliğini düzenleyebilirsiniz.

Örnek:
121qumq.jpg

Bu konuyu yazdır

  Mobil platformlarda (Android, iOS) internet bağlantısı kontrolü yapmak
Yazar: Fesih ARSLAN - 24-07-2016, Saat: 17:21 - Forum: Mobil Platform - FireMonkey (FMX) - Yorumlar (9)

Merhaba;
Android ve iOS (Mobil) platformları için daha önce Dave Nottage (Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.) tarafından Delphi XE5 ile bir örnek uygulama (Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.) yapılmış. 
Küçük değişikliklerle bu örneği Delphi 10.1 Berlin sürümünde derledim.

Örnekte isterseniz yalnızca bağlantı durumunu kontrol edebilirsiniz.

 if NS.IsConnected then
  Label1.Text := 'Bağlantı Var' 
   else
    Label1.Text := 'Bağlantı Yok';
 

İsterseniz bağlantı türü ile birlikte bağlantı kaynağını da tespit edebilirsiniz.

var
  NS: TNetworkState;
begin
  NS := TNetworkState.Create;
  try
    if not NS.IsConnected then
      Label1.Text := 'Bağlantı Yok'
    else if NS.IsWifiConnected then
      Label1.Text := 'Bağlantı Yöntemi: WiFi'
    else if NS.IsMobileConnected then
      Label1.Text := 'Bağlantı Yöntemi: WWAN (Mobil)';
    Label2.Text := NS.CurrentSSID;
  finally
    NS.Free;
  end;
end;

Kullanmadan önce Android Platformu için Project > Options > Uses Permissions kısmından Access network state ve Access wifi state izinlerini true yapın.

x9lzc.jpg

Uygulama Ekran Görüntüsü:
13zyj4x.jpg

Uygulama Linki: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

İyi çalışmalar...

Bu konuyu yazdır

  Son Depremler (Tüm Platformlar için)
Yazar: Fesih ARSLAN - 24-07-2016, Saat: 17:18 - Forum: Hazır Programlar - Yorumlar (18)

Merhaba;
"Son Depremler" uygulamasıdır.
Uygulama verileri, Kandilli Rasathanesi ve Deprem Araştırma Enstitüsü (KRDAE)'nün web sayfasından anlık alır.
Uygulama sade bir ara yüze sahiptir. Kendi tasarım zevkinize göre yeniden düzenleyebilirsiniz.
Özellikleri

  • KRDAE sayfa verilerinin Memo nesnesinde gösterilmesi.Liste Oluştur Butonu ile KRDAE sayfa verileri parse işlemine tabi tutularak ListView'da gösterilmektedir.Uygulama iOS, Android, MAc OS X ve Windows platformlarında stabil çalışmaktadır.
Android Platformu (Asus Zenfone 5) Ekran görüntüsü

sondepremler.jpg

Link
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Lisans: Kullanım ve geliştirme haklarının tümünü size devrediyorum. Adımı anmanız yeterlidir.
Hayırlı olsun...

Bu konuyu yazdır

  Firemonkey (FMX) Nesne Boyutunu (Yükseklik, Genişlik) Yeniden Düzenlemek
Yazar: Fesih ARSLAN - 24-07-2016, Saat: 17:16 - Forum: Makale - Yorum Yok

Merhaba;
Multi-Device Application (FMX) proje tipinde kullanılan UI (Kullanıcı arayüz nesneleri)
temelde bir varsayılan stile sahiptir. Yani her nesne platforma özgü doğal boyutunda (FixedSize) görünecek şekilde
ayrı ayrı tanımlanmıştır. 

FMX nesne stilleri, FMX.Controls.TStyledControl sınıfı içerisinde yer alırlar. FMX platformlarının varsayılan nesne boyutlarında bir değişiklik yapmak için sınıfın temel özelliklerinden AdjustFixedSize virtual metodunu ezmek gerekiyor. Bu metot içerisinde hedef platforma göre her nesnenin varsayılan boyutu TAdjustType enum tipi ile sabitlenmektedir. Bu tip None, FixedSize, FixedWidth, FixedHeight olmak üzere 4 farklı değere sahiptir.

Örneğin Android hedef platformu için TEdit nesnesinin  TAdjustType.FixedHeight değeri 32 olarak atanmıştır. Dolayısıyla Android hedef 
platformu için geliştirilen bir uygulamada kullandığınız TEdit nesnesi 32 piksel boyutunu aşmayacaktır. Buna bağlı olarak 
edit font boyutu (Font.Size) belirlenen Edit yüksekliğinden fazla olması durumunda, Edit nesnesinin metinsel değeri
tam olarak görüntülenmeyecek, yalnızca edit boyutunda görünecektir.

Bu makale kapsamında TEdit nesnesinin AdjustFixedSize prosedürünü ezerek, istenilen boyuta getirilebilen bir Edit nesnesi
oluşturacağız.


1- Yeni bir Multi-Device Application Delphi projesi başlatalım.
2- FMX.Edit referansında yer alan TEdit nesnesini aşağıdaki gibi yeniden tanımlayalım.

type
  TEdit = class(FMX.Edit.TEdit)
  protected
    procedure AdjustFixedSize(const Ref: TControl); override;
  end;

3- AdjustFixedSize procedure'üne imleci konumlayalım ve Ctrl+Shift+C tuş takımlarına basalım veya procedure üzerinde sağ tuş ile
"Complete Class at Cursor" menüsünü seçelim. Bu durumda procedure'ün implementation kod kısmı otomatik olarak oluşturulacaktır.
Yeni oluşan procedure yapısı aşağıdaki gibi olacaktır.

procedure TEdit.AdjustFixedSize(const Ref: TControl);
begin
  inherited;

end;

Yukarıda yer alan inherited direktifi ile temel sınıfın AdjustFixedSize işlemlerini devralmaktadır. Inherited direktifi temel sınıfta
platform kontrollerini gerçekleştirip işlem yapmaktadır. Burada amacımız platforma özgü direktifleri devre dışı barakmak ise inherited
kod satırını da silmemiz gerekiyor. Sakıncası ne olabilir derseniz, Edit nesnesi temel sınıfta öncelikle varsayılan boyuta getirilecek,
daha sonra bizim yöntemimiz devreye girecek ve varsayılan boyutları yok sayacaktır. 
Kısacası Edit nesnesinin boyutu 2 defa değiştirilecektir.

4- Bu durumun önüne geçmek ve boyutlandırma işleminin yalnızca bir defa çalışmasını sağlamak için inherited direktifini silelim.  

Oluşturulan metodun kod kısmında, platforma özgü kısıtlamayı devre dışı bırakmak için Edit'in TAdjustType enum tipine None değerini atayacağız. Bunun için SetAdjustType procedure'ünü kullanacağız.

5- TEdit nesnesinin varsayılan boyut tipini değiştirecek yeni metodu aşağıdaki gibi yeniden düzenleyelim.

procedure TEdit.AdjustFixedSize(const Ref: TControl);
begin
  SetAdjustType(TAdjustType.None);
end;

Artık boyutlandırılabilir yeni Edit nesnemizi test edecek bir örnek yapalım

Bunun için forma 2 adet TEdit nesnesi yerleştirelim ve Object Inspector penceresinden özelliklerini aşağıdaki gibi ayarlayalım.
Edit1
Size.Height=65
Text=Merhaba
TextSettings.Font.Size=50
TextSettings.Font.Style.fsBold=True
Width=250

Edit2
Text=Merhaba
TextSettings.Font.Size=50
TextSettings.Font.Style.fsBold=True
Width=250

Bu haliyle kod çalışacaktır. Hâlihazırda masaüstü uygulamalarında nesne boyutu ile ilgili bir kısıtlama olmadığı için (en azından şimdilik Big Grin )
Son bir işlem olarak; tanımladığımız tip ve procedure'ün yalnızca mobil platformlar için geçerli olmasını sağlayacak direktifleri yazalım.

Projenin tamamlanmış halini paylaşıyorum.

unit uBoyut;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.Edit;

{$IF DEFINED(iOS) or DEFINED(ANDROID)}
type
  TEdit = class(FMX.Edit.TEdit)
  protected
    procedure AdjustFixedSize(const Ref: TControl); override;
  end;
{$ENDIF}

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.fmx}
{ TEdit }

{$IF DEFINED(iOS) or DEFINED(ANDROID)}
procedure TEdit.AdjustFixedSize(const Ref: TControl);
begin
  SetAdjustType(TAdjustType.None);
end;
{$ENDIF}

end.

10oh6k0.jpg

İyi Çalışmalar
Fesih ARSLAN

Bu konuyu yazdır

  Devexpress cxScheduler ile Ajanda / Günlük / Etkinlik Görünümleri Oluşturmak
Yazar: Fesih ARSLAN - 24-07-2016, Saat: 17:01 - Forum: Makale - Yorum Yok

Merhaba;

cxScheduler'ın tüm görünümlerini kullanabileceğiniz metodları adım adım anlatayım.

1- Öncelikle Interface bölümünde bütün cxScheduler görünümlerini kapsayacak bir enum tip tanımlayalım.

type
TArsAjandaGorunumu = (agSaat, agGun, agHafta, agCalismaGunleri, agAy, agYil, agGantt);

2- Implementation bölümünde ise cxScheduler görünümünü set edecek procedure'ümüzü yazalım.
procedure TfrmAjanda.SetArsAjandaGorunumDegis(ArsAjandaGorunumu
  : TArsAjandaGorunumu);
var
  AjandaTarih: TDateTime;
  AjandaGorunum: TcxSchedulerCustomView;
begin
  AjandaGorunum := AjandaTum.CurrentView; {AjandaTum=TcxScheduler adıdır}
  AjandaTarih:= Trunc(AjandaTum.SelStart);
  case ArsAjandaGorunumu of
    agGun:
      AjandaTum.GoToDate(AjandaTarih, vmDay);
    agCalismaGunleri:
      AjandaTum.GoToDate(AjandaTarih, vmWorkWeek);
    agHafta:
      AjandaTum.GoToDate(AjandaTarih, vmWeek);
    agAy:
      AjandaTum.GoToDate(AjandaTarih, vmMonth);
    agSaat:
      AjandaTum.ViewTimeGrid.Active := True;
    agYil:
      AjandaTum.ViewYear.Active := True;
    agGantt:
      AjandaTum.ViewGantt.Active := True;
  end;
  AjandaTum.LayoutChanged;
end;

3- Oluşturduğumuz SetArsAjandaGorunumDegis metodunun aşağıdaki gibi kullanalım.

Saat görünümü
procedure TfrmAjanda.btnBarGunClick(Sender: TObject);
begin
  SetArsAjandaGorunumDegis(agSaat);
end;
34g0bc1.jpg

Gün görünümü
procedure TfrmAjanda.btnBarGunClick(Sender: TObject);
begin
  SetArsAjandaGorunumDegis(agGun);
end;
xkqhbt.jpg

Çalışma Günleri görünümü
procedure TfrmAjanda.dxBarLargeButton4Click(Sender: TObject);
begin
  SetArsAjandaGorunumDegis(agCalismaGunleri);
end;
mkya7q.jpg

Hafta görünümü
procedure TfrmAjanda.dxBarLargeButton4Click(Sender: TObject);
begin
  SetArsAjandaGorunumDegis(agHafta);
end;
avoi9l.jpg

Ay görünümü
procedure TfrmAjanda.dxBarLargeButton5Click(Sender: TObject);
begin
  SetArsAjandaGorunumDegis(agAy);
end;
erllqw.jpg

Yıl görünümü
procedure TfrmAjanda.dxBarLargeButton6Click(Sender: TObject);
begin
  SetArsAjandaGorunumDegis(agYil);
end;
2v1ww01.jpg

Gantt Grafiği
procedure TfrmAjanda.dxBarLargeButton7Click(Sender: TObject);
begin
  SetArsAjandaGorunumDegis(agGantt);
end;
kd66m9.jpg

İyi çalışmalar

Bu konuyu yazdır

  Delphi kod örnği
Yazar: Fesih ARSLAN - 19-07-2016, Saat: 23:56 - Forum: Mobil Platform - FireMonkey (FMX) - Yorumlar (2)

SQl komut biçimlendirme örneği

Select * from DelphiCan


Delphikomut biçimlendirme örneği

 
     Sender.Canvas.Font.Size := Boyut;
     Sender.Canvas.Font.Style := [fsBold];
     Sender.Canvas.Font.Color := clBlack;
     Sender.Canvas.Pen.Color := clGreen;
     Sender.Canvas.Brush.Color := RGB(255, 255, 255);

Bu konuyu yazdır

  FireBird veri tabanını nereden indirebilirim?
Yazar: Coder - 17-07-2016, Saat: 00:51 - Forum: FireBird - Yorumlar (4)

Merhaba;
Firebird veri tabanı indirme linkini paylaşabilir misiniz?

Bu konuyu yazdır

  İlk Mesaj
Yazar: Fesih ARSLAN - 16-07-2016, Saat: 03:00 - Forum: Görüş & Öneri ve Yorum - Yorumlar (8)

Merhaba,

Formumuz, gelişmekte olan Yeni Nesil Delphi Teknolojilerini takip etmek ve bunları yaymak adına kurulmuş, bir yazılım geliştirme platformdur.

Hedefimiz, Bir çok gelişmiş ülkelerde olduğu gibi Ülkemizin yazılım alanında en üst seviyelere çıkması için, genç yazılımcı arkadaşlarımıza klavuz olmak, yeni başlayan arkadaşlarımıza ise bilgi ve deneyimlerimizle Delphi (Object Pascal) yazılım dilinin daha doğru öğrenilmesini sağlamaktır. 

Bildiğiniz gibi başlangıçta kazanılmış olan temel prensipler sonradan vazgeçilmiyor. Temelin sağlamlığı, yükselecek bir mimarinin de sağlamlığını gösterir. Bu nedenle daha işin başında doğru bilgi ve doğru bir mantığın kavranmasını sağlamak için birlikte hareket edelim. Birlikten kuvvet doğar. 
Yıllardır bu sektörde iş yapan, geçimini bu işten sağlayan, bir hobi olarak yürüten, eğitim seminerleri veren veya bir çok platformda bildiklerini paylaşan sayısızca Uzman abilerimiz ve arkadaşımız var. İnşaallah onların da katkılarıyla Türkiyemiz'de Yeni Nesil Delphi'yi hakkettiği konumda görürüz. 
Bu anlamda formun açılışı ile birlikte bizleri yalnız bırakmayan Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. ve Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. hocalarımıza teşekkür ederiz.  

İnşaallah Türkiye'mizi dünya çapında temsil edecek bir çok üyemize vesile oluruz.  
Tüm üyelerimizin bilgi ve deneyimleri ile katkılarını bekler iyi çalışmalar dileriz.
Saygı ve Sevgilerimizle

Bu konuyu yazdır

  Pascal nedir?
Yazar: Fesih ARSLAN - 16-07-2016, Saat: 01:56 - Forum: Merakımdan Soruyorum - Yorum Yok

Pascal yüksek seviyeli bir programlama dilidir ve algoritma dilinden türetildiği için algoritmaya olan yakınlığı ile bilinir. Matematiksel hesaplamalarda kullanılmasının yanı sıra dosyalama işlemleri için de kullanışlıdır. Görsel Programlama dillerinden günümüzde yaygın olan Delphi'nin yani Visual Pascal'ın tabanını oluşturur. Bundan dolayı bir yazılımcı eğer iyi derecede Delphi öğrenmek istiyorsa Pascal Programlama diline iyi derecede hakim olabilmesi gerekir.

Bu konuyu yazdır