Presence
TsgcHTMLComponent_Presence — une liste "qui est en ligne", affichée sous forme de pile d'avatars superposés ou de liste, avec points d'état et mises à jour WebSocket en direct, en Delphi, C++ Builder et .NET.
TsgcHTMLComponent_Presence — une liste "qui est en ligne", affichée sous forme de pile d'avatars superposés ou de liste, avec points d'état et mises à jour WebSocket en direct, en Delphi, C++ Builder et .NET.
Ajoutez des utilisateurs avec AddUser, plafonnez le nombre affiché avec MaxVisible, puis lisez la propriété HTML — ou poussez un changement d'état aux clients ouverts avec GetUserFragmentHTML.
TsgcHTMLComponent_Presence
Pile d'avatars ou liste, plus CSS dédié
Delphi, C++ Builder, .NET
Appelez AddUser pour chaque personne, lisez HTML pour le rendu initial, puis appelez SetUserStatus et poussez GetUserFragmentHTML lorsque l'état de quelqu'un change.
uses
sgcHTML_Component_Presence;
var
oPresence: TsgcHTMLComponent_Presence;
begin
oPresence := TsgcHTMLComponent_Presence.Create(nil);
try
oPresence.PresenceID := 'roster';
oPresence.Layout := plAvatars;
oPresence.MaxVisible := 5;
oPresence.Title := 'Online';
oPresence.AddUser('u1', 'Ana Torres', psOnline);
oPresence.AddUser('u2', 'Marc Bell', psAway, '', 'Back at 3pm');
oPresence.AddUser('u3', 'Kenji Ito', psBusy);
WebModule.Response := oPresence.HTML; // avatar stack + scoped CSS
finally
oPresence.Free;
end;
end;
// Push a status change to every connected client, no full re-render:
oPresence.SetUserStatus('u2', psOnline);
TsgcHTMX_Engine_Server.BroadcastFragment(oPresence.GetUserFragmentHTML('u2'));
// includes: sgcHTML_Component_Presence.hpp
TsgcHTMLComponent_Presence *oPresence = new TsgcHTMLComponent_Presence(NULL);
try
{
oPresence->PresenceID = "roster";
oPresence->Layout = plAvatars;
oPresence->MaxVisible = 5;
oPresence->Title = "Online";
oPresence->AddUser("u1", "Ana Torres", psOnline);
oPresence->AddUser("u2", "Marc Bell", psAway, "", "Back at 3pm");
oPresence->AddUser("u3", "Kenji Ito", psBusy);
String html = oPresence->HTML; // avatar stack + scoped CSS
// Push a status change to every connected client:
oPresence->SetUserStatus("u2", psOnline);
TsgcHTMX_Engine_Server::BroadcastFragment(oPresence->GetUserFragmentHTML("u2"));
}
__finally
{
delete oPresence;
}
using esegece.sgcWebSockets;
var presence = new TsgcHTMLComponent_Presence();
presence.PresenceID = "roster";
presence.Layout = TsgcHTMLPresenceLayout.plAvatars;
presence.MaxVisible = 5;
presence.Title = "Online";
presence.AddUser("u1", "Ana Torres", TsgcHTMLPresenceStatus.psOnline);
presence.AddUser("u2", "Marc Bell", TsgcHTMLPresenceStatus.psAway, "", "Back at 3pm");
presence.AddUser("u3", "Kenji Ito", TsgcHTMLPresenceStatus.psBusy);
string html = presence.HTML; // avatar stack + scoped CSS
// Push a status change to every connected client, no full re-render:
presence.SetUserStatus("u2", TsgcHTMLPresenceStatus.psOnline);
TsgcHTMX_Engine_Server.BroadcastFragment(presence.GetUserFragmentHTML("u2"));
Les membres que vous utilisez le plus souvent.
AddUser(aId, aDisplayName, aStatus, aAvatarURL, aStatusText) insère ou met à jour une entrée de la liste : un Id existant est mis à jour sur place.
TsgcHTMLPresenceStatus — psOnline, psAway, psBusy, psOffline. SetUserStatus(aId, aStatus, aStatusText) met à jour uniquement le point d'état et son texte.
Layout choisit plAvatars (pile d'avatars superposés) ou plList (lignes nom + état) ; AvatarSize définit le diamètre de l'avatar en pixels.
MaxVisible (5 par défaut) plafonne le nombre d'utilisateurs affichés avant qu'une puce « +N » apparaisse ; chaque utilisateur reste dans le balisage pour qu'un envoi ultérieur puisse toujours le retrouver.
Title et ShowCount affichent un en-tête avec un badge de nombre en ligne ; GetOnlineCount exclut les utilisateurs psOffline.
GetUserFragmentHTML(aId) (émet aussi une suppression une fois RemoveUser appelé), GetCountFragmentHTML et GetMoreFragmentHTML alimentent TsgcHTMX_Engine_Server.PushFragment / BroadcastFragment.
| 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 |