Delphi Mobile Duyuru Componenti

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Delphi Mobile Duyuru Componenti

Mesaj gönderen barisatalay »

Merhabalar,

Sizlere bu yazımda kendi çapımda hazırladığım bir procedure'den bahsedeceğim. Bu procedure sayesinde Google Analytics'in kullandığı şekil objeleriniz olacak ve böyle şeyler kullanıcıya duyuru vs. gösteriminde görünüş olarak size artı puan sağlayacağına inanmaktayım.

Google Analytics Görünümü:

Resim

Şimdi örnek projemiz için forumumuza yerleştireceğimiz objeler:
-Editbox 1 adet
-Button 1 adet
-VertScrollBox 1 adet ve Align = Client yapın ki bütün ekranı kaplasın.

Kod: Tümünü seç

Uses FMX.Layouts,FMX.Effects,FMX.Objects;// Eklenmesi gerekenler

procedure DuyuruEkle(Yazi, YBaslik: String; Scroll: TVertScrollBox);
var
  Pano,BPano: TRectangle;
  Metin,Baslik: TText;
  Golge: TShadowEffect;
begin
  TThread.CreateAnonymousThread(procedure
  begin
    Pano := TRectangle.Create(Scroll);
    with Pano do
    begin
      Parent := Scroll;
      Align := TAlignLayout.alTop;
      with Margins do
      begin
        Left := 5;
        Right := 5;
        Top := 5;
        Bottom := 5;
      end;
      Padding.Left := 5;
      Fill.Color := $FFECF0F1;
      Sides := [];

      Golge := TShadowEffect.Create(Scroll);
      with Golge do
      begin
        Parent := Pano;
        Direction := 90;
        Distance := 2;
        Opacity := 0.6;
        ShadowColor := TAlphaColorRec.Black;
        Softness := 0.1;
      end;

      BPano := TRectangle.Create(Scroll);//Baslik Arkafon
      with BPano do
      begin
        Parent := Pano;
        Position.X := 15;
        Position.Y := 0;
        Fill.Color := $FFCF3F30;
        Sides := [];

        Baslik := TText.Create(Scroll);//Baslik yazı
        with Baslik do
        begin
          Parent := BPano;
          Text := UpperCase(YBaslik);
          Align := TAlignLayout.alContents;
          WordWrap := False;
          Font.Family := 'Calibri';
          Color := TAlphaColorRec.White;
          Font.Size := 15;
        end;
         BPano.Width := Baslik.Width + 30 + 30;
         BPano.Height := 30;
      end;

      Metin := TText.Create(Scroll);
      with Metin do
      begin
        Parent := Pano;
        Margins.Top := 40;
        Text := Yazi;
        Font.Family := 'Arial';
        Align := TAlignLayout.alClient;
      end;

      Pano.Height := ((Length(Metin.Text) / (Scroll.Width / 15)) * 15) ;
      if Pano.Height < 80 then
        Pano.Height := 90;
    end;
  end);
end;
Gerekli procedure tanımını yaptıktan sonra Buton içerisine gelerek:

DuyuruEkle(DuyuruEdit.Text,'ÖNEMLİ',VertScrollBox);


1-) Gördüğünüz gibi. "DuyuruEdit.text" editboxdan gönderdiğimiz yani elimizle yazdığımız yazıdır.
2-) "ÖNEMLİ" yazan yeri örnekte manuel olarak ayarladım ben, siz isterseniz başka bir edit ile orayıda değiştirebilirsiniz.
3-) Son parametremizde işlem görecek olan VertScrollBox'dır.

Bu çalışmada renkleri istediğiniz gibi değiştirebilirsiniz. Ben burada form rengini "#FFCF3F30" yaptım.

Projenin son hali:
Resim
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen mehmetantalya »

eline saglik. guzel olmus
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen Hashirama »

Oluşturulan dörtgenlerden herhangi birine tıkladığımızda o dörtgene ait bir animasyon oluşturabilir miyiz ? Ben şöyle denedim ama olmadı .

Kod: Tümünü seç

 
procedure dortgenclick(Sender: TObject);
procedure Button1Click(Sender: TObject);

var
 xdortgennumarasi: integer = 0; // her oluşturulan dörtgene ve animasyonlara farklı bir isim vermek için
aralik: real = 10;
dortgen: TRectangle;
animasyon: TFloatAnimation;

procedure TForm1.Button1Click(Sender: TObject);
begin

inc(xdortgennumarasi);

dortgen := TRectangle.Create(VertScrollBox1);
  with dortgen do
  begin
    Parent := VertScrollBox1;
    Name := format('dortgen%.3d', [xdortgennumarasi]);
    Height := 120;
    Width := StatusBar2.Width - 20;
    Position.X := 10;
    Position.Y := aralik; 
    aralik := aralik + 130;
    Fill.Color := $FFD9EAE8; // TAlphaColorRec.orange;
    Tag := xdortgennumarasi;
    sides := [];
  end;

 dortgen.OnClick := dortgenclick;

end;

procedure TForm1.dortgenclick(Sender: TObject);
begin
// tıklanan dörtgene ait animasyon oluşturmaya çalışıyorum ancak sadece son oluşturulan dörtgende animasyon gerçekleşiyor üstte eski oluşan dörtgenlerde animasyon olmuyor.

animasyon := TFloatAnimation.Create(dortgen );
  with animasyon do
  begin
    Parent := dortgen ;
    Name := format('animasyon%.3d', [xdortgennumarasi]);
    AnimationType := TAnimationType(2);
    Interpolation :=TInterpolationType(6);
    Duration := 0.2;
    PropertyName := 'scale.x';
    StartFromCurrent := True;
    StartValue:=1;
    StopValue := 0;
    Start;
  end;
end;
wahsiii
Üye
Mesajlar: 17
Kayıt: 04 May 2014 06:32

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen wahsiii »

Dostum eline saglık çok güzel olmuş
Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen barisatalay »

@Hashirama dostum tam olarak ne yapmak istiyorsun şimdi sen her cliğinnde bir animasyon create ediyorsun aynı zamandada tıklayınca kapanıyor gidiyor :)

Net bir şekilde anlat olmadı güzel bi class hazırlarız.
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen Hashirama »

Rastgele sayıda dörtgen oluşturuyorum ve bu dörtgenlerden hangisine basarsam basayım şu animasyonu oynatmaya çalışıyorum.

Kod: Tümünü seç

animasyon := TFloatAnimation.Create(dortgen );
  with animasyon do
  begin
    Parent := dortgen ;
    Name := format('animasyon%.3d', [xdortgennumarasi]);
    AnimationType := TAnimationType(2);
    Interpolation :=TInterpolationType(6);
    Duration := 0.2;
    PropertyName := 'scale.x';
    StartFromCurrent := True;
    StartValue:=1;
    StopValue := 0;
    Start;
  end;
Sorun : Tıklanan dörtgende animasyon oluşmayıp sadece en son create edilen dörtgende oluşması.
Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen barisatalay »

Şimdi ben istediğin gibi çalıştırdım fakat birşeyi anlamadım. Tıklanınca kapanıp gidiyor ve bu sebeble bir daha tıklanamıyor doğru mudur ?
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen Hashirama »

barisatalay yazdı:Şimdi ben istediğin gibi çalıştırdım fakat birşeyi anlamadım. Tıklanınca kapanıp gidiyor ve bu sebeble bir daha tıklanamıyor doğru mudur ?
Evet doğrudur.
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Delphi Mobile Duyuru Componenti

Mesaj gönderen Hashirama »

barisatalay yazdı:Şimdi ben istediğin gibi çalıştırdım fakat birşeyi anlamadım. Tıklanınca kapanıp gidiyor ve bu sebeble bir daha tıklanamıyor doğru mudur ?
Yazdığın kodu paylaşabilir misin ?
Cevapla