Composant Presence — sgcHTML | eSeGeCe

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

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.

Classe du composant

TsgcHTMLComponent_Presence

Produit

Pile d'avatars ou liste, plus CSS dédié

Famille

Chat & IA

Langages

Delphi, C++ Builder, .NET

Ajoutez des utilisateurs, affichez-le, poussez les changements d'état

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"));

Propriétés & méthodes clés

Les membres que vous utilisez le plus souvent.

Ajout d'utilisateurs

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.

État

TsgcHTMLPresenceStatuspsOnline, psAway, psBusy, psOffline. SetUserStatus(aId, aStatus, aStatusText) met à jour uniquement le point d'état et son texte.

Mise en page

Layout choisit plAvatars (pile d'avatars superposés) ou plList (lignes nom + état) ; AvatarSize définit le diamètre de l'avatar en pixels.

Plafond d'affichage

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.

En-tête

Title et ShowCount affichent un en-tête avec un badge de nombre en ligne ; GetOnlineCount exclut les utilisateurs psOffline.

Mises à jour en streaming

GetUserFragmentHTML(aId) (émet aussi une suppression une fois RemoveUser appelé), GetCountFragmentHTML et GetMoreFragmentHTML alimentent TsgcHTMX_Engine_Server.PushFragment / BroadcastFragment.

Continuez l'exploration

Aide en ligneRéférence API complète et guide d’utilisation pour ce composant.
Tous les composants sgcHTMLParcourez la matrice complète des fonctionnalités de plus de 80 composants.
Télécharger la version d'essai gratuiteLa version d'essai de 30 jours fournit les projets de démonstration 60.HTML.
TarifsLicences Single, Team et Site avec code source complet.

Prêt à démarrer ?

Téléchargez la version d'essai gratuite et ajoutez une liste de présence en direct à votre application web Delphi, C++ Builder ou .NET.