sgcHTML'in 25 yeni bileşenini ele alan bu dizinin üçüncü yazısı. Bu sefer konumuz formlar: elle inşa etmek zorunda kaldığınız hemen her yönetim ekranında karşınıza çıkan altı girdi — bir etiket seçici, bir renk paleti, bir aralık kaydırıcısı, bir saat alanı, bir imza yakalama alanı ve çift listeli bir rol atayıcı. Her biri sıradan bir Delphi/C++Builder/.NET bileşenidir: yapılandırın, HTML özelliğini okuyun, ve diğer her form alanıyla aynı istek döngüsü üzerinden geri gönderilsin.
MultiSelect — çiplerle çalışan bir etiket seçici
TsgcHTMLComponent_MultiSelect, ziyaretçinin birden çok değeri kaldırılabilir çipler olarak seçmesine olanak tanıyan, aranabilir bir açılır listedir; isteğe bağlı bir MaxSelections sınırı da eklenebilir. Seçenekleri tek tek ekleyebilir veya doğrudan bir veri kümesi bağlayabilirsiniz.
uses
sgcHTML_Component_MultiSelect;
var
oMulti: TsgcHTMLComponent_MultiSelect;
begin
oMulti := TsgcHTMLComponent_MultiSelect.Create(nil);
try
oMulti.FieldName := 'tags';
oMulti.Placeholder := 'Select tags';
oMulti.MaxSelections := 3;
oMulti.Size := mssLarge;
oMulti.AddOption('js', 'JavaScript', True);
oMulti.AddOption('py', 'Python');
oMulti.AddOption('pas', 'Pascal');
WebModule.Response := oMulti.HTML; // dropdown + chips + hidden inputs
finally
oMulti.Free;
end;
end;
// Or fill it straight from a dataset:
oMulti.LoadFromDataSet(qryTags, 'Code', 'Name', 'IsSelected');
ColorPicker — yerel giriş alanı ve tek tıkla seçilen hazır renkler
TsgcHTMLComponent_ColorPicker, isteğe bağlı bir onaltılık (hex) metin alanı ve tek tıkla seçilen bir sıra hazır renk örneğiyle yerel HTML5 renk girişini sarmalar — marka rengi ayarından takvim etkinliği etiket rengine kadar her şey için kullanışlıdır.
uses
sgcHTML_Component_ColorPicker;
var
oColor: TsgcHTMLComponent_ColorPicker;
begin
oColor := TsgcHTMLComponent_ColorPicker.Create(nil);
try
oColor.FieldName := 'brand_color';
oColor.LabelText := 'Brand color';
oColor.Value := '#0d6efd';
oColor.ShowValueInput := True;
oColor.Swatches.Add('#0d6efd');
oColor.Swatches.Add('#198754');
oColor.Swatches.Add('#dc3545');
WebModule.Response := oColor.HTML; // color input + hex field + swatches
finally
oColor.Free;
end;
end;
// Or the static one-liner (field name, value, label):
Result := TsgcHTMLComponent_ColorPicker.Build('brand_color', '#0d6efd', 'Brand color');
Slider — canlı değer rozetli bir aralık girişi
TsgcHTMLComponent_Slider, min/max etiketlerine ve sürüklendikçe geçerli değeri izleyen, temanızla eşleşecek renkte bir rozete sahip bir Bootstrap aralık kaydırıcısıdır.
uses
sgcHTML_Enums, sgcHTML_Component_Slider;
var
oSlider: TsgcHTMLComponent_Slider;
begin
oSlider := TsgcHTMLComponent_Slider.Create(nil);
try
oSlider.FieldName := 'volume';
oSlider.LabelText := 'Volume';
oSlider.Min := 0;
oSlider.Max := 100;
oSlider.Step := 5;
oSlider.Value := 50;
oSlider.ShowMinMax := True;
oSlider.ColorStyle := hcSuccess;
WebModule.Response := oSlider.HTML; // form-range + live value badge
finally
oSlider.Free;
end;
end;
TimePicker — sınırlı saat girişi
TsgcHTMLComponent_TimePicker, yapılandırılabilir MinTime/MaxTime sınırlarına sahip yerel bir saat girişidir — randevu alma, çalışma saatleri, vardiya planlama alanı. Statik bir Build yardımcı metodu da mevcuttur.
uses
sgcHTML_Component_TimePicker;
var
oTime: TsgcHTMLComponent_TimePicker;
begin
oTime := TsgcHTMLComponent_TimePicker.Create(nil);
try
oTime.FieldName := 'appointment_time';
oTime.LabelText := 'Appointment time';
oTime.MinTime := '08:00';
oTime.MaxTime := '18:00';
oTime.Required := True;
WebModule.Response := oTime.HTML; // <input type="time">
finally
oTime.Free;
end;
end;
// Or the static one-liner (field name, label, value):
Result := TsgcHTMLComponent_TimePicker.Build('appointment_time', 'Appointment time');
SignaturePad — canvas üzerinde imza yakalama
TsgcHTMLComponent_SignaturePad, Clear, Undo ve Save düğmeleri, yapılandırılabilir kalem rengi ve kalınlığı ile yakalanan görüntünün gönderileceği bir UploadURL içeren, işaretçi olaylarını (pointer-events) destekleyen bir canvas oluşturur. Teslimat onayları, sözleşme imzalama, feragatname formları — ıslak imzanın bir ekran dokunuşuna dönüştüğü her yer.
uses
sgcHTML_Component_SignaturePad;
var
oPad: TsgcHTMLComponent_SignaturePad;
begin
oPad := TsgcHTMLComponent_SignaturePad.Create(nil);
try
oPad.FieldName := 'signature';
oPad.Width := 500;
oPad.Height := 220;
oPad.PenColor := '#1a1a2e';
oPad.PenWidth := 3;
oPad.UploadURL := '/api/signatures/upload';
WebModule.Response := oPad.HTML; // <canvas> + Clear/Undo/Save buttons
finally
oPad.Free;
end;
end;
Transfer — çift listeli rol atayıcı
TsgcHTMLComponent_Transfer, öğeleri "mevcut" ve "atanmış" arasında taşımak için kullanılan klasik iki panelli bileşendir — izinler, roller, grup üyeliği. ShowFilter her panele bir arama kutusu ekler ve FieldName, atanmış tarafın gizli girdiler olarak geri gönderilmesini sağlar; böylece form gönderimi sorunsuz çalışır.
uses
sgcHTML_Component_Transfer;
var
oTransfer: TsgcHTMLComponent_Transfer;
begin
oTransfer := TsgcHTMLComponent_Transfer.Create(nil);
try
oTransfer.TransferID := 'roles';
oTransfer.FieldName := 'roles';
oTransfer.TitleSource := 'Available roles';
oTransfer.TitleTarget := 'Assigned roles';
oTransfer.ShowFilter := True;
oTransfer.Height := '260px';
oTransfer.AddItem('admin', 'Administrator');
oTransfer.AddItem('editor', 'Editor', True);
oTransfer.AddItem('viewer', 'Viewer');
WebModule.Response := oTransfer.HTML; // dual panels + buttons + script
finally
oTransfer.Free;
end;
end;
// Or bind it straight to a dataset:
oTransfer.LoadFromDataSet(qryRoles, 'RoleId', 'RoleName', 'IsAssigned');
Deneyin
Tam dokümantasyon, temel özellik referansları ve Delphi/C++Builder/.NET kod örnekleri her bileşenin kendi sayfasında yer alır: MultiSelect, ColorPicker, Slider, TimePicker, SignaturePad ve Transfer. Sırada: rozetler, PDF görüntüleme ve yoğun bir ekranı duyarlı hissettiren bileşenler.
Sorularınız, geri bildiriminiz mi var ya da geçiş konusunda yardıma mı ihtiyacınız var? Bize ulaşın — yanıtı kodu yazan kişilerden alacaksınız.
