ActivityFeed
TsgcHTMLComponent_ActivityFeed — affichez un flux d'activité en direct, du plus récent au plus ancien, avec horodatages relatifs et envoi WebSocket hors-bande, en Delphi, C++ Builder et .NET.
TsgcHTMLComponent_ActivityFeed — affichez un flux d'activité en direct, du plus récent au plus ancien, avec horodatages relatifs et envoi WebSocket hors-bande, en Delphi, C++ Builder et .NET.
Ajoutez des activités avec AddActivity, lisez HTML pour le premier affichage, puis poussez de nouveaux éléments en direct avec un fragment WebSocket.
TsgcHTMLComponent_ActivityFeed
Une liste Bootstrap 5 + CSS dédié + script de temps relatif en direct
Delphi, C++ Builder, .NET
Appelez AddActivity pour chaque entrée, lisez HTML pour la page initiale, puis poussez un nouvel élément en tant que fragment hors-bande via WebSockets avec GetLastItemFragmentHTML.
uses
sgcHTML_Enums, sgcHTML_Component_ActivityFeed;
var
oFeed: TsgcHTMLComponent_ActivityFeed;
begin
oFeed := TsgcHTMLComponent_ActivityFeed.Create(nil);
try
oFeed.FeedID := 'timeline';
oFeed.Title := 'Recent Activity';
oFeed.MaxItems := 30;
oFeed.AddActivity('Ana', 'closed', 'ticket #482', hcSuccess, 'bi bi-check-circle');
oFeed.AddActivity('Marc', 'commented on', 'invoice #1190', hcPrimary);
WebModule.Response := oFeed.HTML; // feed list + scoped CSS + live relative-time script
finally
oFeed.Free;
end;
end;
// Push a new item live to connected clients (out-of-band htmx fragment):
oFeed.AddActivity('Ana', 'approved', 'purchase order #77', hcSuccess);
Engine.BroadcastFragment(oFeed.GetLastItemFragmentHTML);
// includes: sgcHTML_Enums.hpp, sgcHTML_Component_ActivityFeed.hpp
TsgcHTMLComponent_ActivityFeed *oFeed = new TsgcHTMLComponent_ActivityFeed(NULL);
try
{
oFeed->FeedID = "timeline";
oFeed->Title = "Recent Activity";
oFeed->MaxItems = 30;
oFeed->AddActivity("Ana", "closed", "ticket #482", hcSuccess, "bi bi-check-circle");
oFeed->AddActivity("Marc", "commented on", "invoice #1190", hcPrimary);
String html = oFeed->HTML; // feed list + scoped CSS + live relative-time script
}
__finally
{
delete oFeed;
}
using esegece.sgcWebSockets;
var feed = new TsgcHTMLComponent_ActivityFeed();
feed.FeedID = "timeline";
feed.Title = "Recent Activity";
feed.MaxItems = 30;
feed.AddActivity("Ana", "closed", "ticket #482", TsgcHTMLColor.hcSuccess, "bi bi-check-circle");
feed.AddActivity("Marc", "commented on", "invoice #1190", TsgcHTMLColor.hcPrimary);
string html = feed.HTML; // feed list + scoped CSS + live relative-time script
// Push a new item live to connected clients (out-of-band htmx fragment):
feed.AddActivity("Ana", "approved", "purchase order #77", TsgcHTMLColor.hcSuccess);
engine.BroadcastFragment(feed.GetLastItemFragmentHTML());
Les membres que vous utilisez le plus souvent.
AddActivity(aActor, aAction, aTarget, aColor, aIcon, aActorAvatarURL) ajoute une entrée et renvoie le TsgcHTMLActivityItem.
MaxItems plafonne le nombre d'entrées conservées ; l'élément le plus ancien est supprimé automatiquement une fois la limite atteinte.
ShowRelativeTime affiche des horodatages de style « il y a 3 min » maintenus en direct côté client ; TimeFormat sert de repli lorsque c'est désactivé.
GetItemFragmentHTML / GetLastItemFragmentHTML construisent un fragment htmx hors-bande pour PushFragment / BroadcastFragment, afin qu'une nouvelle activité apparaisse sans rechargement.
EmptyText est l'espace réservé affiché tant que Items est vide ; GetEmptyFragmentHTML le redessine en tant que fragment poussé.
Title libelle le flux, Compact resserre l'espacement des lignes, et HTML renvoie le flux plus son CSS dédié et son script.
| Aide en ligneRéférence API complète et guide d’utilisation pour ce composant. | Ouvrir | |
| Tous les composants sgcHTMLParcourez la matrice complète des fonctionnalités de plus de 80 composants. | Ouvrir | |
| Télécharger la version d'essai gratuiteLa version d'essai de 30 jours fournit les projets de démonstration 60.HTML. | Ouvrir | |
| TarifsLicences Single, Team et Site avec code source complet. | Ouvrir |