|
Ýyi çalýþmalar dilerim var MembersForm : TclForm; ScrollBox : TCLVertScrollBox; ShellContainer : TclLayout; // Layouts de la page (Déclarés dans l'ordre inverse pour le rendu alTop) UserListContainer : TclLayout; FilterLayout : TclLayout; SearchLayout : TclLayout; HeaderLayout,HeaderLayoutactif,layout2,layout3,layout4 : TclLayout; StatusBarLayout : TclLayout;
// Éléments du Header BtnBack : TclProButton; BtnAddUser : TclProButton; LblHeaderTitle,label1,label2,label3,label4 : TclProLabel; DotCyan, DotGreen, DotOrange : TclProPanel; TimerPulsation : TclTimer; PulsationState : Boolean; // Variable pour suivre l'état de l'effet de respiration
// Zone de recherche SearchEdit : TclProEdit;
// Filtres BtnFilterAll, BtnFilterAdmin, BtnFilterDepot, BtnFilterSekreter : TclProButton;
// Cartes Utilisateurs UserCard1, UserCard2, UserCard3 : TclProPanel; // Barre de navigation inférieure (Tab Bar) TabBarLayout : TclLayout; BtnTabDash, BtnTabUsers, BtnTabStock, BtnTabReports, BtnTabSettings : TclProButton;
// --------------------------------------------------------- // COMPOSANT MODULAIRE : GÉNÉRATEUR DE CARTES UTILISATEUR (UserCard) // --------------------------------------------------------- function CreateUserCard(AParent : TObject; AName, AFullName, ARole, AInitials, AStatusColor, AAvatarBgColor : String) : TclProPanel; var CardPanel, AvatarPanel, StatusDot : TclProPanel; LblInitials, LblName, LblRole : TclProLabel; TextLayout : TclLayout; BtnDelete : TclProButton; { CardPanel = MembersForm.AddNewProPanel(AParent, AName); CardPanel.Align = alTop; CardPanel.Height = 72; CardPanel.Margins.Left = 4; CardPanel.Margins.Right = 4; CardPanel.Margins.Top = 8; // Styles de la carte (Navy dark, bordure acier) CardPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); CardPanel.clProSettings.BorderColor = clAlphaColor.clHexToColor('#1a2d42'); CardPanel.clProSettings.BorderWidth = 1; CardPanel.clProSettings.RoundWidth = 14; CardPanel.clProSettings.RoundHeight = 14; CardPanel.SetclProSettings(CardPanel.clProSettings);
// 1. Avatar de l'utilisateur (Rond à gauche) AvatarPanel = MembersForm.AddNewProPanel(CardPanel, AName + '_Avatar'); AvatarPanel.Align = alLeft; AvatarPanel.Width = 44; AvatarPanel.Height = 44; AvatarPanel.Margins.Left = 12; AvatarPanel.Margins.Top = 14; AvatarPanel.Margins.Bottom = 14; AvatarPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(AAvatarBgColor); AvatarPanel.clProSettings.RoundWidth = 22; AvatarPanel.clProSettings.RoundHeight = 22; AvatarPanel.SetclProSettings(AvatarPanel.clProSettings);
LblInitials = MembersForm.AddNewProLabel(AvatarPanel, AName + '_Initials', AInitials); LblInitials.Align = alCenter; LblInitials.Width = 22; LblInitials.Height = 20; LblInitials.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblInitials.clProSettings.FontSize = 14; LblInitials.clProSettings.TextSettings.Font.Style = [fsBold]; LblInitials.SetclProSettings(LblInitials.clProSettings);
// 2. Zone des textes (Nom & Rôle) TextLayout = MembersForm.AddNewLayout(CardPanel, AName + '_TextLay'); TextLayout.Align = alLeft; TextLayout.Width = 160; TextLayout.Margins.Left = 12;
LblName = MembersForm.AddNewProLabel(TextLayout, AName + '_Name', AFullName); LblName.Align = alTop; LblName.Height = 20; LblName.Margins.Top = 16; LblName.clProSettings.FontColor = clAlphaColor.clHexToColor('#e8eef5'); LblName.clProSettings.FontSize = 14; LblName.clProSettings.TextSettings.Font.Style = [fsBold]; LblName.SetclProSettings(LblName.clProSettings);
LblRole = MembersForm.AddNewProLabel(TextLayout, AName + '_Role', ARole); LblRole.Align = alTop; LblRole.Height = 16; LblRole.clProSettings.FontColor = clAlphaColor.clHexToColor('#6b8aaa'); LblRole.clProSettings.FontSize = 11; LblRole.SetclProSettings(LblRole.clProSettings);
// 3. Bouton d'action à droite (Corbeille de suppression) BtnDelete = MembersForm.AddNewProButton(CardPanel, AName + '_BtnDel', ''); BtnDelete.Align = alRight; BtnDelete.Width = 30; BtnDelete.Height = 30; BtnDelete.Margins.Right = 12; BtnDelete.Margins.Top = 21; BtnDelete.Margins.Bottom = 21; BtnDelete.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ff4d6a15'); // Fond rouge transparent BtnDelete.clProSettings.RoundWidth = 8; BtnDelete.clProSettings.RoundHeight = 8; // Icône de suppression blanche/rouge MembersForm.SetImage(BtnDelete, ' https://raw.githubusercontent.com/Barthez2023/Artificial_Intelligence/main/clomosyImage/img10.png" rel="nofollow - https://raw.githubusercontent.com/Barthez2023/Artificial_Intelligence/main/clomosyImage/img10.png '); BtnDelete.SetclProSettings(BtnDelete.clProSettings);
// 4. Point indicateur de statut en ligne / hors ligne (Glow Dot) StatusDot = MembersForm.AddNewProPanel(CardPanel, AName + '_StatusDot'); StatusDot.Align = alRight; StatusDot.Width = 8; StatusDot.Height = 8; StatusDot.Margins.Right = 16; StatusDot.Margins.Top = 32; StatusDot.Margins.Bottom = 32; StatusDot.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(AStatusColor); StatusDot.clProSettings.RoundWidth = 4; StatusDot.clProSettings.RoundHeight = 4; StatusDot.SetclProSettings(StatusDot.clProSettings);
Result = CardPanel; }
// --------------------------------------------------------- // ACTIONS & ÉVÉNEMENTS // --------------------------------------------------------- void OnBackClick; { MembersForm.Close; }
void OnAddUserClick; { ShowMessage('Ouverture du formulaire d''ajout de membre...'); }
void OnTimerRespiration; { if (PulsationState) { // Étape basse : On atténue la luminosité en ajoutant de la transparence ('40' à la fin du code Hexa) DotCyan.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#00d4ff40'); DotGreen.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4ade8040'); DotOrange.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#fb923c40'); PulsationState = False; } else { // Étape haute : On restaure la pleine opacité d'origine DotCyan.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#00d4ff'); DotGreen.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4ade80'); DotOrange.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#fb923c'); PulsationState = True; }
// Mise à jour indispensable du rendu visuel de chaque point DotCyan.SetclProSettings(DotCyan.clProSettings); DotGreen.SetclProSettings(DotGreen.clProSettings); DotOrange.SetclProSettings(DotOrange.clProSettings); }
// --------------------------------------------------------- // INITIALISATION DE LA PAGE GESTION DES MEMBRES // --------------------------------------------------------- { MembersForm = TclForm.Create(Self); MembersForm.SetFormColor('#080d14', '#080d14', clGVertical);
ScrollBox = MembersForm.AddNewVertScrollBox(MembersForm, 'ScrollBox'); ScrollBox.Align = alClient;
ShellContainer = MembersForm.AddNewLayout(ScrollBox, 'ShellContainer'); ShellContainer.Align = alTop; ShellContainer.Height = 812; ShellContainer.Margins.Left = 16; ShellContainer.Margins.Right = 16; ShellContainer.Margins.Top = 10;
// ========================================================================= // ORDRE DE RENDU INVERSÉ ALTOP (Du bas vers le haut) // =========================================================================
// [ ÉTAPE 4 : LISTE DES UTILISATEURS (User List Container) ] UserListContainer = MembersForm.AddNewLayout(ShellContainer, 'UserListContainer'); UserListContainer.Align = alTop; UserListContainer.Height = 400; UserListContainer.Margins.Top = 10;
// Injection des membres avec notre générateur modulaire UserCard1 = CreateUserCard(UserListContainer, 'UserAli', 'Ali Yýlmaz', 'Administrateur', 'AY', '#22c55e', '#1d4ed8'); UserCard2 = CreateUserCard(UserListContainer, 'UserAyse', 'Ayþe Demir', 'Dépôt Sorumlusu', 'AD', '#22c55e', '#a855f7'); UserCard3 = CreateUserCard(UserListContainer, 'UserMehmet', 'Mehmet Kaya', 'Secrétaire', 'MK', '#ff4d6a', '#dd7b40');
// [ ÉTAPE 3 : BARRE DE FILTRES RAPIDES ] FilterLayout = MembersForm.AddNewLayout(ShellContainer, 'FilterLayout'); FilterLayout.Align = alTop; FilterLayout.Height = 40; FilterLayout.Margins.Top = 12;
BtnFilterAll = MembersForm.AddNewProButton(FilterLayout, 'BtnFilterAll', 'Tous'); BtnFilterAll.Align = alLeft; BtnFilterAll.Width = 65; BtnFilterAll.Height = 32; BtnFilterAll.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#00d4ff'); // Filtre Actif BtnFilterAll.clProSettings.FontColor = clAlphaColor.clHexToColor('#080d14'); BtnFilterAll.clProSettings.FontSize = 11; BtnFilterAll.clProSettings.TextSettings.Font.Style = [fsBold]; BtnFilterAll.clProSettings.RoundWidth = 8; BtnFilterAll.clProSettings.RoundHeight = 8; BtnFilterAll.SetclProSettings(BtnFilterAll.clProSettings);
BtnFilterAdmin = MembersForm.AddNewProButton(FilterLayout, 'BtnFilterAdmin', 'Admins'); BtnFilterAdmin.Align = alLeft; BtnFilterAdmin.Width = 75; BtnFilterAdmin.Height = 32; BtnFilterAdmin.Margins.Left = 6; BtnFilterAdmin.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnFilterAdmin.clProSettings.BorderColor = clAlphaColor.clHexToColor('#1a2d42'); BtnFilterAdmin.clProSettings.BorderWidth = 1; BtnFilterAdmin.clProSettings.FontColor = clAlphaColor.clHexToColor('#6b8aaa'); BtnFilterAdmin.clProSettings.FontSize = 11; BtnFilterAdmin.clProSettings.RoundWidth = 8; BtnFilterAdmin.clProSettings.RoundHeight = 8; BtnFilterAdmin.SetclProSettings(BtnFilterAdmin.clProSettings);
BtnFilterDepot = MembersForm.AddNewProButton(FilterLayout, 'BtnFilterDepot', 'Dépôt'); BtnFilterDepot.Align = alLeft; BtnFilterDepot.Width = 75; BtnFilterDepot.Height = 32; BtnFilterDepot.Margins.Left = 6; BtnFilterDepot.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnFilterDepot.clProSettings.BorderColor = clAlphaColor.clHexToColor('#1a2d42'); BtnFilterDepot.clProSettings.BorderWidth = 1; BtnFilterDepot.clProSettings.FontColor = clAlphaColor.clHexToColor('#6b8aaa'); BtnFilterDepot.clProSettings.FontSize = 11; BtnFilterDepot.clProSettings.RoundWidth = 8; BtnFilterDepot.clProSettings.RoundHeight = 8; BtnFilterDepot.SetclProSettings(BtnFilterDepot.clProSettings);
BtnFilterSekreter = MembersForm.AddNewProButton(FilterLayout, 'BtnFilterSekreter', 'Secrétaires'); BtnFilterSekreter.Align = alClient; BtnFilterSekreter.Height = 32; BtnFilterSekreter.Margins.Left = 6; BtnFilterSekreter.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnFilterSekreter.clProSettings.BorderColor = clAlphaColor.clHexToColor('#1a2d42'); BtnFilterSekreter.clProSettings.BorderWidth = 1; BtnFilterSekreter.clProSettings.FontColor = clAlphaColor.clHexToColor('#6b8aaa'); BtnFilterSekreter.clProSettings.FontSize = 11; BtnFilterSekreter.clProSettings.RoundWidth = 8; BtnFilterSekreter.clProSettings.RoundHeight = 8; BtnFilterSekreter.SetclProSettings(BtnFilterSekreter.clProSettings);
// [ ÉTAPE 2 : BARRE DE RECHERCHE (SearchEdit) ] SearchLayout = MembersForm.AddNewLayout(ShellContainer, 'SearchLayout'); SearchLayout.Align = alTop; SearchLayout.Height = 46; SearchLayout.Margins.Top = 12;
SearchEdit = MembersForm.AddNewProEdit(SearchLayout, 'SearchEdit', 'Rechercher un membre...'); SearchEdit.Align = alClient; SearchEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); SearchEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#1a2d42'); SearchEdit.clProSettings.BorderWidth = 1; SearchEdit.clProSettings.FontColor = clAlphaColor.clHexToColor('#e8eef5'); SearchEdit.clProSettings.FontSize = 12; SearchEdit.clProSettings.RoundWidth = 10; SearchEdit.clProSettings.RoundHeight = 10; SearchEdit.SetclProSettings(SearchEdit.clProSettings);
// [ ÉTAPE 1 : HEADER GESTION DES MEMBRES ] HeaderLayout = MembersForm.AddNewLayout(ShellContainer, 'HeaderLayout'); HeaderLayout.Align = alTop; HeaderLayout.Height = 55;
// Bouton Retour (Gauche) label1 = MembersForm.AddNewProLabel(HeaderLayout, 'label1', 'GESTIONNAIRES DES UTILISATEURS'); label1.Align = alTop; label1.Margins.Left = 14; label1.Margins.Top = 16; label1.clProSettings.FontColor = clAlphaColor.clHexToColor('#446580'); label1.clProSettings.FontSize = 12; label1.clProSettings.TextSettings.Font.Style = [fsBold]; label1.SetclProSettings(label1.clProSettings);
// Titre "MEMBRES" (Centre) LblHeaderTitle = MembersForm.AddNewProLabel(HeaderLayout, 'LblHeaderTitle', 'Utilisateurs & roles'); LblHeaderTitle.Align = alTop; LblHeaderTitle.Margins.Left = 14; LblHeaderTitle.Height = 40; LblHeaderTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#e8eef5'); LblHeaderTitle.clProSettings.FontSize = 30; LblHeaderTitle.clProSettings.TextSettings.Font.Style = [fsBold]; LblHeaderTitle.SetclProSettings(LblHeaderTitle.clProSettings); // [ ÉTAPE x : HEADER GESTION DES MEMBRES actifs ] HeaderLayoutactif = MembersForm.AddNewLayout(ShellContainer, 'HeaderLayoutactif'); HeaderLayoutactif.Align = alTop; HeaderLayoutactif.Height = 55; // ====================================================== // LAYOUT 2 (Toplam Kullanýcý) - KUSURSUZ HÝZALAMA VE NOKTA // ====================================================== layout2 = MembersForm.AddNewLayout(HeaderLayoutactif, 'layout2'); layout2.Align = alLeft; layout2.Height = 55; layout2.Width = 120; layout2.Margins.Left = 14; // Mavi Nokta DotCyan = MembersForm.AddNewProPanel(layout2, 'DotCyan'); DotCyan.Align = alLeft; DotCyan.Width = 8; DotCyan.Height = 8; DotCyan.Margins.Right = 6; DotCyan.Margins.Top = 24; // Dikey ortalama için üst boþluk DotCyan.Margins.Bottom = 23; // UZAMAYI ENGELLEYEN ALT BOÞLUK (55-24-23 = 8px yükseklik) DotCyan.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#00d4ff'); DotCyan.clProSettings.RoundWidth = 4; DotCyan.clProSettings.RoundHeight = 4; DotCyan.SetclProSettings(DotCyan.clProSettings); label2 = MembersForm.AddNewProLabel(layout2, 'label2', '10 Kullanýcý'); label2.Align = alLeft; label2.Width = 90; label2.Height = 20; label2.Margins.Top = 18; // Metin dikey merkezleme label2.Margins.Bottom = 17; // Metin dikey merkezleme alt sýnýr label2.clProSettings.FontColor = clAlphaColor.clHexToColor('#00d4ff'); label2.clProSettings.FontSize = 14; label2.clProSettings.TextSettings.Font.Style = [fsBold]; label2.SetclProSettings(label2.clProSettings);
// ====================================================== // LAYOUT 3 (Aktif Kullanýcý) - KUSURSUZ HÝZALAMA VE NOKTA // ====================================================== layout3 = MembersForm.AddNewLayout(HeaderLayoutactif, 'layout3'); layout3.Align = alLeft; layout3.Height = 55; layout3.Width = 110; layout3.Margins.Left = 14; // Yeþil Nokta (Önce nokta, sonra yazý eklendi) DotGreen = MembersForm.AddNewProPanel(layout3, 'DotGreen'); DotGreen.Align = alLeft; DotGreen.Width = 8; DotGreen.Height = 8; DotGreen.Margins.Right = 6; DotGreen.Margins.Top = 24; // Dikey ortalama için üst boþluk DotGreen.Margins.Bottom = 23; // UZAMAYI ENGELLEYEN ALT BOÞLUK (55-24-23 = 8px yükseklik) DotGreen.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4ade80'); DotGreen.clProSettings.RoundWidth = 4; DotGreen.clProSettings.RoundHeight = 4; DotGreen.SetclProSettings(DotGreen.clProSettings);
label3 = MembersForm.AddNewProLabel(layout3, 'label3', '5 Aktif'); label3.Align = alLeft; label3.Width = 80; label3.Height = 20; label3.Margins.Top = 18; // Metin dikey merkezleme label3.Margins.Bottom = 17; // Metin dikey merkezleme alt sýnýr label3.clProSettings.FontColor = clAlphaColor.clHexToColor('#4ade80'); label3.clProSettings.FontSize = 14; label3.clProSettings.TextSettings.Font.Style = [fsBold]; label3.SetclProSettings(label3.clProSettings);
// ====================================================== // LAYOUT 4 (Ýnaktif Kullanýcý) - KUSURSUZ HÝZALAMA VE NOKTA // ====================================================== layout4 = MembersForm.AddNewLayout(HeaderLayoutactif, 'layout4'); layout4.Align = alLeft; layout4.Height = 55; layout4.Width = 110; layout4.Margins.Left = 14; // Turuncu Nokta (Önce nokta, sonra yazý eklendi) DotOrange = MembersForm.AddNewProPanel(layout4, 'DotOrange'); DotOrange.Align = alLeft; DotOrange.Width = 8; DotOrange.Height = 8; DotOrange.Margins.Right = 6; DotOrange.Margins.Top = 24; // Dikey ortalama için üst boþluk DotOrange.Margins.Bottom = 23; // UZAMAYI ENGELLEYEN ALT BOÞLUK (55-24-23 = 8px yükseklik) DotOrange.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#fb923c'); DotOrange.clProSettings.RoundWidth = 4; DotOrange.clProSettings.RoundHeight = 4; DotOrange.SetclProSettings(DotOrange.clProSettings);
label4 = MembersForm.AddNewProLabel(layout4, 'label4', '5 Ýnaktif'); label4.Align = alLeft; label4.Width = 80; label4.Height = 20; label4.Margins.Top = 18; // Metin dikey merkezleme label4.Margins.Bottom = 17; // Metin dikey merkezleme alt sýnýr label4.clProSettings.FontColor = clAlphaColor.clHexToColor('#fb923c'); label4.clProSettings.FontSize = 14; label4.clProSettings.TextSettings.Font.Style = [fsBold]; label4.SetclProSettings(label4.clProSettings);
// --- CONFIGURATION DU TIMER DE RESPIRATION --- PulsationState = True; TimerPulsation = MembersForm.AddNewTimer(MembersForm, 'TimerPulsation', 750); // Toutes les 750ms pour une transition douce TimerPulsation.Enabled = True; MembersForm.AddNewEvent(TimerPulsation, tbeOnTimer, 'OnTimerRespiration');
// [ ÉTAPE 0 : BARRE D'ÉTAT SYSTÈME (Status Bar) ] StatusBarLayout = MembersForm.AddNewLayout(ShellContainer, 'StatusBarLayout'); StatusBarLayout.Align = alTop; StatusBarLayout.Height = 35;
// ========================================================================= // BARRE DE NAVIGATION INFÉRIEURE (Tab Bar Active sur "Users") // ========================================================================= TabBarLayout = MembersForm.AddNewLayout(MembersForm, 'TabBarLayout'); TabBarLayout.Align = alBottom; TabBarLayout.Height = 58; BtnTabDash = MembersForm.AddNewProButton(TabBarLayout, 'BtnTabDash', 'Dashboard'); BtnTabDash.Align = alLeft; BtnTabDash.Width = 74; BtnTabDash.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnTabDash.clProSettings.FontColor = clAlphaColor.clHexToColor('#3d5a7a'); BtnTabDash.clProSettings.FontSize = 9; BtnTabDash.SetclProSettings(BtnTabDash.clProSettings);
BtnTabUsers = MembersForm.AddNewProButton(TabBarLayout, 'BtnTabUsers', 'Membres'); BtnTabUsers.Align = alLeft; BtnTabUsers.Width = 74; BtnTabUsers.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnTabUsers.clProSettings.FontColor = clAlphaColor.clHexToColor('#00d4ff'); // Actif (Bleu Glowing) BtnTabUsers.clProSettings.FontSize = 9; BtnTabUsers.clProSettings.TextSettings.Font.Style = [fsBold]; BtnTabUsers.SetclProSettings(BtnTabUsers.clProSettings);
BtnTabStock = MembersForm.AddNewProButton(TabBarLayout, 'BtnTabStock', 'Stock'); BtnTabStock.Align = alLeft; BtnTabStock.Width = 74; BtnTabStock.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnTabStock.clProSettings.FontColor = clAlphaColor.clHexToColor('#3d5a7a'); BtnTabStock.clProSettings.FontSize = 9; BtnTabStock.SetclProSettings(BtnTabStock.clProSettings);
BtnTabReports = MembersForm.AddNewProButton(TabBarLayout, 'BtnTabReports', 'Reports'); BtnTabReports.Align = alLeft; BtnTabReports.Width = 74; BtnTabReports.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnTabReports.clProSettings.FontColor = clAlphaColor.clHexToColor('#3d5a7a'); BtnTabReports.clProSettings.FontSize = 9; BtnTabReports.SetclProSettings(BtnTabReports.clProSettings);
BtnTabSettings = MembersForm.AddNewProButton(TabBarLayout, 'BtnTabSettings', 'Settings'); BtnTabSettings.Align = alClient; BtnTabSettings.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0d1520'); BtnTabSettings.clProSettings.FontColor = clAlphaColor.clHexToColor('#3d5a7a'); BtnTabSettings.clProSettings.FontSize = 9; BtnTabSettings.SetclProSettings(BtnTabSettings.clProSettings);
MembersForm.Run; }
https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|