[Çözüldü]Xe skin seçtirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

[Çözüldü]Xe skin seçtirme

Mesaj gönderen Lord_Ares »

Merhaba kullanıcılara Delphi xe6 da yüklü olan skinleri değiştirebilme imkanı vermek istiyorum. Bunu nasıl yapabilirim. ( delphinn kendi temaları harici komponent kullanmak istemiyorum. Skinpackte bunu yapabiliyorduk acaba Delphi kendi temalarında bu mümkün mü)
En son Lord_Ares tarafından 05 May 2015 11:41 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Xe skin seçtirme

Mesaj gönderen sabanakman »

Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Xe skin seçtirme

Mesaj gönderen Lord_Ares »

Merhaba,
Kullanıcıya skin seçtirdiğim bir formum var. Delphideki stilleri, programın çalıştığı klasöre kaydetmemiz gerekiyor mu.
Delphinin tüm skinlerini projeye nasıl gömerim, gerek varmı gömmeye.
Teşekürler
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Xe skin seçtirme

Mesaj gönderen SimaWB »

Project-> Options içinden skin'leri programınız içine gömebileceğiniz gibi ayrı ayrı dosya olarak da programınızla birlikte dağıtabilirsiniz. Tercih size kalmış.
İki durumda da TStyleManager sınıfını kullanmalısınız. Dosyadan çağırmak için LoadFromFile, proje içinden çağırmak için LoadFromResource kullanmalısınız.
There's no place like 127.0.0.1
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Xe skin seçtirme

Mesaj gönderen xozcanx »

Merhaba;
Gerekli açıklamalar yapılmış fakat Kodlar elimin altında olduğu için Paylaşayım istedim.

Kod: Tümünü seç

Uses Vcl.Themes;
procedure TForm1.FormShow(Sender: TObject);
var
  a: String;
begin
  ComboBox1.Items.BeginUpdate;
  try
    ComboBox1.Items.Clear;
    for a in TStyleManager.StyleNames do // Options Bölümünden Seçtiğimiz temlar sırası ile 
       ComboBox1.Items.Add(a);              // Combobox'a ekleniyor.
    ComboBox1.Sorted := True;               // A..Z Sıralamasını yapıyoruz.   
    ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(TStyleManager.ActiveStyle.Name); //Aktif Temayı Seç.
  finally
    ComboBox1.Items.EndUpdate;
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  TStyleManager.TrySetStyle(ComboBox1.Items[ComboBox1.ItemIndex]);
  // Seçilen Tema Aktif oluyor!
end;
Fakat burada şöyle bir sorun oluyor hata bende de olabilir , belki de kullanım böyle bilemedim.
Şöyleki;
Form1 Ana Form, Form2 Tema Formu. Form1 Hide Durumda iken Form2 üzerinden tema değiştiği zaman Form(Proje) kayboluyor hide durumuna düşüyor. :!:
Bu durumu çözmek için. önce Ana Formu Show edip tema değişikliğinin ardından Tekrar Gizleyerek çözüm üretebildim.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Xe skin seçtirme

Mesaj gönderen Lord_Ares »

Bilgi ve yardım için teşekkürler arkadaşlar istediğim gibi oldu. xozcanx sorununun formları gizleme ve gösterme şeklinden olabileceğini düşünüyorum.
Ben formları hide ve show metodu ile değilde aşağıdaki şekilde gösteriyorum. Böylece ram kullanımını da düşürmüş oluyorum. Aşağıdaki şekilde bahsetmiş olduğun sorunları yaşamadım.

Form1 den Form2 yi göstermek için aşağıdaki gibi kullanıyorum

Kod: Tümünü seç

   Application.CreateForm(TForm2,Form2) 
   Form2.ShowModal;
   Form2.Release;
Cevapla