30 Haziran 2014 Pazartesi

Delphi Mobile Duyuru Componenti

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ü:

Ş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.

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).Start;
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: