Presence Component — sgcHTML | eSeGeCe

Presence

TsgcHTMLComponent_Presence — un elenco "chi è online", renderizzato come pila di avatar sovrapposti o come lista, con indicatori di stato e aggiornamenti live via WebSocket, in Delphi, C++ Builder e .NET.

TsgcHTMLComponent_Presence

Aggiungi utenti con AddUser, limita quanti vengono mostrati con MaxVisible, quindi leggi la proprietà HTML — oppure invia una modifica di stato ai client aperti con GetUserFragmentHTML.

Classe del componente

TsgcHTMLComponent_Presence

Renderizza

Avatar stack or list, plus scoped CSS

Famiglia

Chat e IA

Linguaggi

Delphi, C++ Builder, .NET

Aggiungi utenti, renderizzalo, invia le modifiche di stato

Chiama AddUser per ogni persona, leggi HTML per il rendering iniziale, quindi chiama SetUserStatus e invia GetUserFragmentHTML quando lo stato di qualcuno cambia.

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

Proprietà e metodi principali

I membri che utilizzerai più spesso.

Aggiungere utenti

AddUser(aId, aDisplayName, aStatus, aAvatarURL, aStatusText) inserisce o aggiorna una voce dell’elenco: un Id già esistente viene aggiornato sul posto.

Stato

TsgcHTMLPresenceStatuspsOnline, psAway, psBusy, psOffline. SetUserStatus(aId, aStatus, aStatusText) aggiorna solo l’indicatore di stato e il testo.

Layout

Layout sceglie tra plAvatars (pila di avatar sovrapposti) o plList (righe nome + stato); AvatarSize imposta il diametro dell’avatar in pixel.

Limite di overflow

MaxVisible (predefinito 5) limita quanti utenti vengono mostrati prima che compaia un chip "+N"; ogni utente resta comunque nel markup, così un successivo invio lo trova ancora.

Intestazione

Title e ShowCount renderizzano un’intestazione con un badge del conteggio online; GetOnlineCount esclude gli utenti psOffline.

Aggiornamenti in streaming

GetUserFragmentHTML(aId) (emette anche una cancellazione dopo la chiamata a RemoveUser), GetCountFragmentHTML e GetMoreFragmentHTML alimentano TsgcHTMX_Engine_Server.PushFragment / BroadcastFragment.

Continua a esplorare

Guida in lineaRiferimento API completo e guida all’uso per questo componente.
Tutti i componenti sgcHTMLEsplora la matrice completa delle funzionalità di oltre 80 componenti.
Scarica la Prova GratuitaLa prova di 30 giorni include i progetti demo 60.HTML.
PrezziLicenze Single, Team e Site con codice sorgente completo.

Pronto a Iniziare?

Scarica la versione di prova gratuita e aggiungi un elenco di presenza live alla tua app web in Delphi, C++ Builder o .NET.