Font Arşivi Oluşturma ve kullanma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Font Arşivi Oluşturma ve kullanma

Mesaj gönderen ALUCARD »

Arkadaşlar Merhaba;

Programımda kullandığım bilgileri müşterim kendi oluşturduğu şablona göre çıktı almak istiyor.

Yani
Tarih alanının formatını ve font ayarlarını
Telefon no alanlarının formatını ve fontunu
para birimi alanların formatını ve fontunu
yazı alanlarının formatını ve fontunu
vb.

bunları dbye kayıt ettirip seçip kullanabilirmiyim.

aslında burdaki en can alıcı nokta fontdialog ile yaptığım ayarı ve editmaskı dbye nasıl kaydetmem lazım.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen ALUCARD »

yada şöyle yapabilirmiyim. formatlanmış bir bilgi kaydetsem o kayıtlı verinin font bilgilerini alabilirmiyim. zaten kaydettiğim fontun örneğini gösternek için birr bilgi kaydedeceğim. örnek bir resim ekliyorum. bu arada örneği excel de yaptım.
Dosya ekleri
font.png
font.png (3.17 KiB) 2893 kere görüntülendi
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen G.Arkas »

ALUCARD yazdı:Arkadaşlar Merhaba;

Programımda kullandığım bilgileri müşterim kendi oluşturduğu şablona göre çıktı almak istiyor.

Yani
Tarih alanının formatını ve font ayarlarını
Telefon no alanlarının formatını ve fontunu
para birimi alanların formatını ve fontunu
yazı alanlarının formatını ve fontunu
vb.

bunları dbye kayıt ettirip seçip kullanabilirmiyim.

aslında burdaki en can alıcı nokta fontdialog ile yaptığım ayarı ve editmaskı dbye nasıl kaydetmem lazım.
IniFiles daha doğru bir tercih olabilir bunun için. Bir klasör oluşturun ve adını Profiller koyun. Bunun içerisine kullanıcı bazlı tüm ayarları .ini olarak tutun. Bunu yapmak mümkün tabii ki.

Kod: Tümünü seç

procedure WriteFontToIniFile(Sender : TObject); 
var 
Ini : TInifile; 
begin 
  Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI')); 
  with Ini,Font do 
  try 
    WriteString('Font',FontName',FontName); 
    WriteInteger('Font','FontColor',FontColor); 
    WriteInteger('Font','FontSize',FontSize); 
    WriteBool('Font','Bold',fsBold in Style); 
    WriteBool('Font','Italic',fsItalic in Style); 
  finally 
    Ini.Free; 
  end; 
end; 
Gibi olabilir. Test etmedim kafadan yazdım.
Resim
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen G.Arkas »

ALUCARD yazdı:yada şöyle yapabilirmiyim. formatlanmış bir bilgi kaydetsem o kayıtlı verinin font bilgilerini alabilirmiyim. zaten kaydettiğim fontun örneğini gösternek için birr bilgi kaydedeceğim. örnek bir resim ekliyorum. bu arada örneği excel de yaptım.
RichEdit bunu yapabiliyor. RTF olarak kaydedildiğinde aynı ayar ile geri yükler.
Resim
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen ALUCARD »

G.Arkas yazdı: IniFiles daha doğru bir tercih olabilir bunun için. Bir klasör oluşturun ve adını Profiller koyun. Bunun içerisine kullanıcı bazlı tüm ayarları .ini olarak tutun. Bunu yapmak mümkün tabii ki.

.
Evet ini ile yapmak benim de aklımda idi ancak bir iki tane değil onlarca örnek kaydetmem gerekiyor
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen thelvaci »

Bu tarz şeyler için bir adet sınıf oluşturun, içerisine ihtiyacınız olan property'leri serpiştirin ardından sınıfı JSON'a çevirin ve veritabanınıza text olarak kayıt edin; sonra ihtiyacınız olduğunda text halindeki JSON'dan tekrar sınıfa çevirip dilediğiniz gibi kullanın.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen ALUCARD »

Hocam mantığını anlayabilmem için küçük bi ornek kod yazarmisiniz
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen thelvaci »

Aşağıdaki gibi bir yapı kullanabilirsiniz: (Microsoft Comic Chat zamanlarından kalma asl sorusu geldi aklıma o yüzden böyle bir örnek yaptım :) )

Kod: Tümünü seç

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TSex = (Male, Female);
  TPerson = class
  private
    fAge : Byte;
    fSex : TSex;
    fLocation : String;
  public
    function ToString : String; override;

    function ToJSON : String;
    class function FromJSON(const AData: String): TPerson;

    property Age : Byte read fAge write fAge;
    property Sex : TSex read fSex write fSex;
    property Location : String read fLocation write fLocation;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses
  TypInfo,
  DBXJSON,

  {$IFDEF VER300}
  System.JSON,
  {$ENDIF}

  DBXJSONReflect;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Person  : TPerson;
  Data    : String;
begin
  Person := TPerson.Create;
  try
    Person.Age := 40;
    Person.Sex := Male;
    Person.Location := 'Istanbul';
    Data := Person.ToJSON;
    ShowMessage( Data );
  finally
    FreeAndNil(Person);
  end;

  Person := TPerson.FromJSON( Data );

  if Assigned(Person) then
  begin
    try
      ShowMessage( Person.ToString );
    finally
      FreeAndNil(Person);
    end;
  end;
end;

{ TPerson }

class function TPerson.FromJSON(const AData: String): TPerson;
var
  AUnMarshal : TJSONUnMarshal;
  AObject    : TJSONValue;
begin
  Result := nil;

  AUnMarshal := TJSONUnMarshal.Create();
  AObject := TJSONObject.ParseJSONValue( AData );

  try
    Result := AUnMarshal.Unmarshal( AObject ) as TPerson;
  finally
    AObject.Free;
    AUnMarshal.Free;
  end;
end;

function TPerson.ToJSON: String;
var
  Marshal   : TJSONMarshal;
  AValue    : TJSONValue;
begin
  Result := '';

  Marshal := TJSONMarshal.Create(TJSONConverter.Create);

  try
    AValue := Marshal.Marshal( Self );

    Result := AValue.ToString;
  finally
    if Assigned(Marshal) then
      Marshal.Free;

    if Assigned(AValue) then
      AValue.Free;
  end;
end;

function TPerson.ToString: String;
begin
  Result := Format('Age:%d, Sex:%s, Location:%s', [Age, GetEnumName(TypeInfo(TSex), Integer(Sex)), Location]);
end;

end.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen ALUCARD »

hocam xe 7 ile örneğinizi çalıştıramadım.

Kod: Tümünü seç

[dcc32 Error] Unit1.pas(87): E2003 Undeclared identifier: 'TJSONValue'
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen ikra »

Ifdef version 300'ü devre disi birakip direkt system.json yazip deneyin.
kıdemsiz üye
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen ALUCARD »

hocam örneğin için teşekkür ederim. çalıştırdım ama bunu nasıl kullanacağımı bir türlü bulamadım. bi yardımcı olursan sevinirim.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Font Arşivi Oluşturma ve kullanma

Mesaj gönderen thelvaci »

ALUCARD yazdı:hocam örneğin için teşekkür ederim. çalıştırdım ama bunu nasıl kullanacağımı bir türlü bulamadım. bi yardımcı olursan sevinirim.
Kullanıcının özelleştirdiği bazı bilgileri biryerlerde saklamak ve istediğiniz an geri çağırabilmeyi istemiyormuydunuz siz ? Eh bir sınıfı string hale getirip; string'den de tekrar sınıf haline getirebildiğinize göre; sorun nedir ben de bunu anlayamadım ?
Cevapla