Delphi’de İlerleme Çubuğu: FastReport VCL’den TfrProgressBar ve TfrxProgressBar Bileşenleri

2026-10-26

Delphi'de ilerleme çubuğu: FastReport VCL'den TfrProgressBar ve TfrxProgressBar bileşenleri

İlerleme göstergesi — arayüzün en anlaşılır öğelerinden biridir: ne kadar işin tamamlandığını ve sürecin bitmesine ne kadar kaldığını anında gösterir. Bu makalede, yeni TfrProgressBar ve TfrxProgressBar bileşenleriyle böyle bir göstergenin hem Delphi uygulamasının arayüzüne hem de raporlara nasıl ekleneceğini inceleyeceğiz.

FastReport VCL Ultimate kullanıcıları, FastEditors VCL ve FastGrid VCL setleri kapsamında ek görsel arayüz bileşenlerine erişebilir. Şimdi bu setlere yeni bir kullanışlı editör — TfrProgressBar, raporlara ise TfrxProgressBar bileşeni eklendi. Ayrıca rapor bileşeni yalnızca Ultimate sahiplerine değil, ana rapor bileşenine erişimi olan herkese — TfrxReport'a da açıktır.

Aşağıda yeni bileşenlerin özelliklerini ve yeteneklerini ayrıntılı olarak inceleyecek, ardından bunları iş başında göstereceğiz: FastReport VCL Ultimate ile birlikte gelen gerçekçi verilere sahip bir demo projesi örneğinde.

 


 

TfrProgressBar Bileşeni: Özellikler ve Yetenekler

ProgressBar bileşeni IDE'de FastEditors VCL paletinde sunulur ve sayısal değerleri ilerleme göstergesi biçiminde göstermek için tasarlanmıştır. Bileşen:

  • ölçeğin yatay ve dikey yönünü destekler;
  • belirtilen sınır aralığına göre yüzde değerini otomatik olarak hesaplar ve görüntüler;
  • ilerleme ölçeğinin aralıklarını çeşitli stillerde görselleştirmeye olanak tanıyan bir işaret çizgileri ve eşik değerleri koleksiyonu içerir: düz dolgu, gradyan dolgu, doku.

Bu ilerleme bileşenini FastEditors VCL setindeki diğer editörlerden ayıran temel özellikleri inceleyelim.

  • Value — görüntülenen sayısal değer. Bileşen onu görsel stil ayarlarına ve değer aralığına göre otomatik olarak biçimlendirir. ProgressBar bir FastGrid bileşeninin hücresi içinde kullanılıyorsa, Value olarak bu hücrenin değeri otomatik olarak kullanılır.
  • Properties.CaptionColor — görüntülenen metnin rengi. Bu özellik clDefault değerine sahipse, metin rengi arka plan rengine otomatik olarak uyarlanır; böylece yazı her arka planda fark edilir.
  • Properties.CaptionHorizontalAlignment — metnin yatay hizalaması.
  • Properties.CaptionVerticalAlignment— metnin dikey hizalaması.
  • Properties.CaptionOrientation— metnin yatay veya dikey yönü.
  • Properties.CaptionType — metin biçimlendirme türü. frpbctPercent (MinValue/MaxValue aralığına bağlı olarak yüzde değerinin otomatik hesaplanması), frpbctPosition (Value özelliğinin metin gösteriminin biçimlendirme olmadan görüntülenmesi) veya frpbctCustom (Properties.ProgressCaption özelliğine yazılan metnin görüntülenmesi) değerlerini alabilir.
  • Properties.MarkerLinesVisible — ilerleme ölçeğindeki işaret çizgilerinin görünürlüğünü yönetir. Bu çizgiler Properties.Thresholds koleksiyonunda tanımlanır.
  • Properties.MaxValue — ilerleme yüzdesini hesaplamak için ölçeğin maksimum değeri. Properties.MinValue değerinden küçük olamaz.
  • Properties.MinValue — ilerleme yüzdesini hesaplamak için ölçeğin minimum değeri. Properties.MaxValue değerinden büyük olamaz.
  • Properties.Orientation — Value'ya bağlı olarak ilerleme ölçeği seviyesinin değişim yönü: soldan sağa ya da yukarıdan aşağı.
  • Properties.ProgressBarStyle — ilerleme ölçeğinin görüntülenme stili. frpbsSolid (Properties.ProgressBeginColor rengiyle düz dolgu), frpbsGradient (Properties.ProgressBeginColor'dan Properties.ProgressEndColor'a kadar renkte yumuşak geçişle gradyan dolgu) veya frpbsBitmap (Properties.ProgressBitmap özelliğinden dokuyla dolgu) değerlerini alabilir.
  • Properties.ProgressBeginColor — ilerleme ölçeğinin başlangıç rengi.
  • Properties.ProgressEndColor — ilerleme ölçeğinin bitiş rengi.
  • Properties.ProgressBitmap — Properties.ProgressBarStyle = frpbsBitmap durumunda ilerleme ölçeğini doldurmak için doku.
  • Properties.ProgressCaption — Properties.CaptionType = frpbctCustom durumunda yazı metni.
  • ProgressChunkBorder — ana ölçeğin ve eşik değerlerinin gradyan dolgu stili için kontur çizgisinin görünürlüğünü yönetir.
  • Properties.ProgressMargin — ilerleme ölçeğinin bileşen kenarlarından girinti miktarı.
  • Properties.ShowAsLEDs — ilerleme ölçeğinin dikdörtgenlere görsel ayrımını açar ve kapatır.
  • Properties.Thresholds — eşik değerleri koleksiyonu (ayrıntılar — aşağıda).
  • Properties.OnGetDisplayText — ölçekte görüntülenen metni (AText parametresi) kodda, AValue parametresinin değerine bağlı olarak elle değiştirmeye izin veren olay.

 


 

Eşik değerleri: Properties.Thresholds koleksiyonu

Bu özelliklerin tümü, ilerleme ölçeğinin görüntülenme görsel stilini esnek biçimde ayarlamanızı ve gerektiğinde birkaç farklı değer aralığı ve işaretçi kullanmanızı sağlar:

İlerleme görselleştirmenin farklı stilleri

 

Properties.Thresholds koleksiyonundaki her eşik değeri şu özelliklere sahiptir:

  • Value — ölçeğin stili ve dolgu renklerinin, bu eşik değerinde belirtilenlere değişmeye başladığı ölçek değeri;
  • BeginColor — bu eşik değerinin dolgusunun başlangıç rengi;
  • EndColor — bu eşik değerinin dolgusunun bitiş rengi;
  • MarkerLineColor — Value'yu ölçekte işaretleyen işaret çizgisinin rengi;
  • MarkerLineSize — Value'yu ölçekte işaretleyen işaret çizgisinin kalınlığı;
  • MarkerLineVisible — işaret çizgisinin görünürlüğünü yönetir;
  • ProgressBarStyle — bu eşiğin ilerleme ölçeğinin dolgu stili;
  • ProgressBorderVisible — bu eşiğin kontur çizgisinin görünürlüğünü yönetir;
  • ProgressVisible — bu eşiğin ilerleme ölçeğinin görünürlüğünü yönetir (eşiğin ilerleme ölçeği görünür değilse, onun için ana ölçeğin parametreleri alınır — yalnızca işaret çizgisini göstermek gerekiyorsa bu kullanışlıdır).

 


 

TfrxProgressBar rapor bileşeni

Raporlarda sunulan özel TfrxProgressBar bileşeni de benzer bir özellik kümesine sahiptir. Onu raporunuza gömmek için:

1.    görsel olmayan TfrxProgressBarObject bileşenini forma yerleştirin — gerekli modülleri projenize otomatik olarak ekler;
2.    TfrxReport bileşenini kullanarak rapor tasarımcısını açın;
3.    bileşen panelinden ilerleme bileşenini seçin ve rapor sayfasına yerleştirin.

Raporda ilerleme gösterme bileşeni ve eşik değerlerini düzenleme penceresi

Arayüz bileşenine kıyasla rapor bileşeninin bir dizi özelliği vardır:

  • ShowGeneralBorder — nesnenin etrafına çerçeve göstermeyi veya gizlemeyi sağlar;
  • DataField ve DataSet — bileşeni veri kümesindeki alanlardan birine bağlamayı ve ilerleme değerlerini ondan otomatik olarak almayı sağlar;
  • ProgressCaptionExpression — veri alanından alınan ilerleme değerini elle biçimlendirmek için bir ifade tanımlamayı sağlar.

 


 

Kullanım örneği: eritme fırınının sıcaklık kontrolü

İlerleme gösterme bileşeni, değerlerin zaman içindeki dinamikte sınır ve eşik değerleriyle karşılaştırılarak görselleştirilmesi gereken uygulamalarda kullanışlıdır: proses kontrol sistemlerinde, KPI takibinde veya depo doluluğu denetiminde.
ProgressBar'ın yeteneklerini göstermek için metalürjiyi seçtik. Metalürjide tam da sıcaklık eşik değerleri ve teknolojik eritme sürecinin değişkenliği önemlidir; veri kesikleri ise baskıya uygundur. Başka bir deyişle, ProgressBar'ın iyi olduğu her şey buradadır.

Eritme sürecinin simülasyonu

Önce eritme fırınının çeşitli bölgelerindeki sıcaklık sensörlerinin salınımlarını taklit eden küçük bir yardımcı kod yazacağız: yükleme bölgesi, eritme bölgesi, aşırı ısınma bölgesi, boşaltma bölgesi ve fırın astarı. Her bölgede sıcaklık, sürecin şu aşamaları boyunca nominal değerler etrafında rastgele salınır: ısınma, eritme, aşırı ısıtma, düzeltme. Elbette bu, gerçek sürece karşılık gelmeyen çok basitleştirilmiş bir şemadır, ancak bileşenin yeteneklerini göstermek için böyle bir simülasyon mükemmel uygundur.

Simülasyonun kaynak kodunu FastGrid demo projesinde frFurnaceZones ve frFurnaceSimulator modüllerinde, bileşenle çalışmanın ana kodunu ise ProgressBarDemo modülünde bulabilirsiniz.

FastGrid sütununun ve ilerleme bileşenlerinin yapılandırılması

Bu projedeki ana iş OnShow ve UpdateUI olay işleyicilerinde gerçekleşir.

OnShow'da standart TClientDataSet bileşeni temelinde bir veri kümesi oluşturulur ve bu verilerin FastGrid'e bağlanması gerçekleştirilir. Elbette FastGrid verilerle DataSet biçiminde bir aracı olmadan doğrudan da çalışabilir, ancak bu projede ProgressBar ile biçimlendirilmiş verilerin baskı yeteneklerini hem kaynaktan hem de FastGrid üzerinden göstermek istedik. Bunun için TClientDataSet veya benzeri başka bir bileşen biçimindeki evrensel veri deposu daha uygundur.

Sonrasında OnShow işleyicisinde ilerlemenin görüntülenmesinden sorumlu FastGrid sütununun özellikleri ve eritme fırını şemasında yer alan ayrı TfrProgressBar bileşenlerinin özellikleri yapılandırılır:

gFurnaceTableView1.Columns.RetrieveMissingColumns;
LColumn := gFurnaceTableView1.Columns[0];
LColumn.Caption := 'Furnace Zone';
LColumn.Options.Editing := False;
LColumn.PropertiesClass := TfrEditProperties;
LColumn := gFurnaceTableView1.Columns[1];
LColumn.Caption := 'Temperature, C';
LColumn.Width := 300;
LColumn.PropertiesClass := TfrProgressBarProperties;
LProperties := TfrProgressBarProperties(LColumn.Properties);
LProperties.CaptionType := frpbctPosition;
LProperties.CaptionColor := clBlack;
LProperties.ProgressBarStyle := frpbsGradient;
LProperties.MaxValue := FConfig.ScaleMax;
LProperties.MinValue := FConfig.ScaleMin;
LProperties.MarkerLinesVisible := True;
LProperties.CaptionType := frpbctPosition;
LProperties.ProgressBeginColor := clWhite;
LProperties.ProgressEndColor := FConfig.Thresholds[0].Color;
LProperties.ProgressChunkBorder := False;
LProperties.OnGetDisplayText := DoGetDisplayText;
for J := 1 to Length(FConfig.Thresholds) - 1 do
begin
  LThresholdItem := LProperties.Thresholds.Add;
  LThresholdItem.MarkerLineVisible := False;
  LThresholdItem.ProgressBarStyle := frpbsGradient;
  LThresholdItem.MarkerLineVisible := FConfig.Thresholds[J].Caption = 'Overheat';
  LThresholdItem.MarkerLineSize := 2;
  LThresholdItem.Value := FConfig.Thresholds[J - 1].UpperBound;
  LThresholdItem.BeginColor := FConfig.Thresholds[J - 1].Color;
  LThresholdItem.EndColor := FConfig.Thresholds[J].Color;
end;
pbLoading.Properties.Assign(LProperties);
pbLoading.Properties.Thresholds.Assign(LProperties.Thresholds);
pbLoading.Properties.CaptionType := frpbctPercent;
pbMelting.Properties.Assign(LProperties);
pbMelting.Properties.Thresholds.Assign(LProperties.Thresholds);
pbMelting.Properties.CaptionType := frpbctPercent;
pbDischarge.Properties.Assign(LProperties);
pbDischarge.Properties.Thresholds.Assign(LProperties.Thresholds);
pbDischarge.Properties.Orientation := frpboVertical;
pbDischarge.Properties.CaptionType := frpbctPercent;
pbOverheat.Properties.Assign(LProperties);
pbOverheat.Properties.Thresholds.Assign(LProperties.Thresholds);
pbOverheat.Properties.Orientation := frpboVertical;
pbOverheat.Properties.CaptionType := frpbctPercent;
pbLining.Properties.Assign(LProperties);
pbLining.Properties.Thresholds.Assign(LProperties.Thresholds);
pbLining.Properties.Orientation := frpboVertical;
pbLining.Properties.CaptionType := frpbctPercent;

FastGrid bileşeniyle çalışma hakkında daha fazla bilgiyi «FastGrid kitaplığının yeteneklerine ayrıntılı genel bakış» makalesinde bulabilirsiniz.

 

Zamanlayıcı aracılığıyla verilerin güncellenmesi

UpdateUI olay işleyicisinde veri kümesindeki ve ayrı bileşenlerdeki değerler zamanlayıcıyla güncellenir:

procedure TfrmProgressBar.UpdateUI;
var
  I: Integer;
  LZoneRuntime: TFurnaceZoneRuntime;
  LControl: TfrProgressBar;
  LZoneName: string;
begin
  dmData.cdsZones.DisableControls;
  try
    dmData.cdsZones.First;
    for I := 0 to Length(FProcess.FRuntime) - 1 do
    begin
      LZoneRuntime := FProcess.FRuntime[I];
      dmData.cdsZones.Edit;
      dmData.cdsZones.FieldByName('Temperature').AsFloat := LZoneRuntime.CurrentTemp;
      dmData.cdsZones.Post;
      dmData.cdsZones.Next;
      LZoneName := LZoneRuntime.Zone.Name;
      if LZoneName = 'Loading zone' then
        LControl := pbLoading
      else if LZoneName = 'Melting zone' then
        LControl := pbMelting
      else if LZoneName = 'Overheat zone' then
        LControl := pbOverheat
      else if LZoneName = 'Discharge zone' then
        LControl := pbDischarge
      else
        LControl := pbLining;
      LControl.Value := LZoneRuntime.CurrentTemp;
    end;
  finally
    dmData.cdsZones.EnableControls;
  end;
  // General progress
  lOrders.Caption := ' Furnace Grid - Progress: ' +
    IntToStr(Round(FProcess.Progress01 * 100)) + ' % finished. ' +
    Format('Melting time: %s', [FormatDateTime('nn:ss', FProcess.TotalElapsed / SecsPerDay)]);
end;

 

Rapor bileşeninin yapılandırılması

Rapor bileşeninin yapılandırılması ve veriye bağlanması rapor tasarımcısında şu şekilde yapılır:

Rapor bileşeninin yapılandırılması ve veriye bağlanması

Sonuç olarak fırında ısınma ve eritme aşamalarını açıkça gösteren küçük bir uygulama elde ederiz:

Eritme sürecinin simülasyonu

Ayrıca herhangi bir anda sıcaklık verilerinin kesğini rapor biçiminde alabilirsiniz:

Rapor sayfasının görüntülenmesi

 


 

Sonuç

TfrProgressBar ve TfrxProgressBar bileşenleri — görsel ilerleme gösterimi yalnızca uygulamanızın kullanıcı arayüzüne değil, raporlara da eklemeye izin veren kullanışlı araçlardır. Verilere bağlanma, tablo hücrelerine gömme, ölçek ve metin stillerinin esnek ayarları — tüm bunlar bilgiyi kolayca algılanabilir biçimde sunmayı sağlar.

Görevleriniz arasında proses izleme, KPI panoları veya görev ilerleme raporları varsa — FastReport VCL Ultimate'ın en son sürümünü indirin, FastGrid demo projesini açın ve yeni ilerleme göstergesini kendi verileriniz üzerinde deneyin.

VCL FastReport Designer Delphi FastGrid
26 Ekim 2026, Pazartesi

TfrImageComboBox: FastReport VCL’de resim ve metin başlıklarını içeren bir açılır liste

FastEditors VCL'den TfrImageComboBox: FastReport VCL için simgeler ve etiketler içeren bir açılır liste. Delphi'de özellikler, olaylar ve kullanım örnekleri.
12 Ekim 2026, Pazartesi

FastReport .NET'ten Erişilebilir PDF'ye Bir Rapor Nasıl Dışa Aktarılır (PDF/UA-1)

FastReport .NET'ten bir raporu PDF/UA-1 uyumlu bir dosya olarak dışa aktarma: kullanıcı arayüzü ve C# kodu aracılığıyla yapılandırma, SemanticRole ve AltText rolleri ile doğrulama.
12 Ekim 2026, Pazartesi

GS1 DataBar Genişletilmiş Yığılmış: FastReport .NET'te Özellikler ve Yapılandırma

GS1 DataBar Expanded Stacked barkod kılavuzu: GTIN, son kullanma tarihleri, ağırlıklar ve parti numaralarının çok satırlı kodlaması. Veri yapısı, tarama ve FastReport .NET Segmentleri yapılandırması hakkında bilgi edinin.

© 1998-2026 Fast Reports Inc.