Presence-component — sgcHTML | eSeGeCe

Presence

TsgcHTMLComponent_Presence — een "wie is online"-lijst, gerenderd als overlappende avatarstapel of lijst, met statusstippen en live WebSocket-updates, in Delphi, C++ Builder en .NET.

TsgcHTMLComponent_Presence

Voeg gebruikers toe met AddUser, begrens het aantal zichtbare met MaxVisible, en lees dan de HTML-eigenschap — of push een statuswijziging naar open clients met GetUserFragmentHTML.

Componentklasse

TsgcHTMLComponent_Presence

Rendert

Avatarstapel of lijst, plus scoped CSS

Familie

Chat en AI

Talen

Delphi, C++ Builder, .NET

Voeg gebruikers toe, render het, push statuswijzigingen

Roep AddUser aan voor elke persoon, lees HTML voor de eerste render, en roep dan SetUserStatus aan en push GetUserFragmentHTML zodra iemands status wijzigt.

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

Belangrijkste eigenschappen en methoden

De members die je het vaakst gebruikt.

Gebruikers toevoegen

AddUser(aId, aDisplayName, aStatus, aAvatarURL, aStatusText) voegt een lijstitem toe of werkt het bij: een bestaande Id wordt ter plekke bijgewerkt.

Status

TsgcHTMLPresenceStatuspsOnline, psAway, psBusy, psOffline. SetUserStatus(aId, aStatus, aStatusText) werkt alleen de statusstip en -tekst bij.

Layout

Layout kiest plAvatars (overlappende avatarstapel) of plList (naam- en statusrijen); AvatarSize bepaalt de avatardiameter in pixels.

Overflowbegrenzing

MaxVisible (standaard 5) begrenst hoeveel gebruikers worden getoond voordat een "+N"-chip verschijnt; elke gebruiker blijft in de markup staan zodat een latere push hem nog vindt.

Kop

Title en ShowCount renderen een kop met een online-aantal-badge; GetOnlineCount sluit psOffline-gebruikers uit.

Streaming-updates

GetUserFragmentHTML(aId) (stuurt ook een verwijdering zodra RemoveUser is aangeroepen), GetCountFragmentHTML en GetMoreFragmentHTML voeden TsgcHTMX_Engine_Server.PushFragment / BroadcastFragment.

Blijf ontdekken

Online helpVolledige API-referentie en gebruikshandleiding voor dit onderdeel.
Alle sgcHTML-componentenBlader door de volledige functiematrix van 80+ componenten.
Download gratis proefversieDe proefversie van 30 dagen bevat de 60.HTML-demoprojecten.
PrijzenSingle-, Team- en Site-licenties met volledige broncode.

Klaar om te beginnen?

Download de gratis proefversie en voeg een live presence-lijst toe aan je Delphi-, C++ Builder- of .NET-webapp.