Sayfayý Yazdýr | Pencereyi Kapat

syntax error satir 193

Nereden Yazdýrýldýðý: Clomosy | Forum
Kategori: Genel Programlama
Forum Adý: Genel Ýþlemler
Forum Tanýmlamasý: TRObject dili ile programlama yaparken karþýlaþýlan genel iþlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1624
Tarih: 21 Temmuz 2026 Saat 21:45
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: syntax error satir 193
Mesajý Yazan: Barthe_dev
Konu: syntax error satir 193
Mesaj Tarihi: 21 Temmuz 2026 Saat 15:04
var
  MyForm: TclForm;
  mainLayout, headerLayout, switcherLayout: TclLayout;
  scrollBody: TclVertScrollBox;
  
  // Header
  lblKicker, lblTitle: TclProLabel;
  btnSwitchEntry, btnSwitchExit: TclProButton;
  
  // Formulaire de Saisie (Entrée / Sortie)
  formPanel: TclProPanel;
  lblFormTitle: TclProLabel;
  edtProduct, edtLot, edtBloc, edtQty, edtUnit: TclProEdit;
  btnSubmitMvt: TclProButton;
  
  // Historique local / Journal de l'entrepôt
  historyPanel: TclProPanel;
  lblHistoryTitle: TclProLabel;
  mvtQuery: TclJsonQuery;
  mvtJson: String;
  
  // Navigation / TabBar
  tabBarPanel: TclProPanel;
  btnTabStock, btnTabScan, btnTabSettings: TclProButton;
  
  // Variables globales de contrôle
  currentMvtType: String; // 'entrée' ou 'sortie'
  i: Integer;
  tempPanel: TclProPanel;
  tempLayout: TclLayout;
  tempLabel, tempLabel2: TclProLabel;
  tempTypeIcon: TclProPanel;
  rowQtyLayout: TclLayout;
  Obj : TCLJSONObject;
  //donnes pour l'enreigistremnet en data base 
  Rest : TclRest;
  Json : String;
  Result,role : String;
  
  //creation de la procedure pour la creation dynamique des blocs produit
  historyScrollBox: TclVertScrollBox;
  btnSeeMore: TclProButton;
  isExpandedList: Boolean;
  lastMvtCount: Integer;
  historyContainerPanel: TclProPanel;
  refreshIndex: Integer;

// ============================================================
// BASCULE ENTRÉE / SORTIE DE STOCK
// ============================================================
void SetModeEntry
{
  currentMvtType = 'entrée';
  lblFormTitle.Text = '📥 NOUVELLE ENTRÉE DE STOCK';
  lblFormTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#4ade80');
  lblFormTitle.SetclProSettings(lblFormTitle.clProSettings);
  
  btnSubmitMvt.Caption = 'Valider l''Entrée (+)';
  clComponent.SetupComponent(btnSubmitMvt, '{"BackgroundColor":"#22c55e20", "TextColor":"#4ade80", "RoundHeight":12, "RoundWidth":12, "BorderColor":"#22c55e50", "BorderWidth":1}');
  
  clComponent.SetupComponent(btnSwitchEntry, '{"BackgroundColor":"#0d1520", "TextColor":"#4ade80", "RoundHeight":10, "RoundWidth":10, "BorderColor":"#22c55e40", "BorderWidth":1}');
  clComponent.SetupComponent(btnSwitchExit, '{"BackgroundColor":"#080d14", "TextColor":"#4a6580", "RoundHeight":10, "RoundWidth":10, "BorderColor":"#1a2d42", "BorderWidth":1}');
}

void SetModeExit
{
  currentMvtType = 'sortie';
  lblFormTitle.Text = '📤 NOUVELLE SORTIE DE STOCK';
  lblFormTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#fb923c');
  lblFormTitle.SetclProSettings(lblFormTitle.clProSettings);
  
  btnSubmitMvt.Caption = 'Valider la Sortie (-)';
  clComponent.SetupComponent(btnSubmitMvt, '{"BackgroundColor":"#f9731620", "TextColor":"#fb923c", "RoundHeight":12, "RoundWidth":12, "BorderColor":"#f9731650", "BorderWidth":1}');
  
  clComponent.SetupComponent(btnSwitchEntry, '{"BackgroundColor":"#080d14", "TextColor":"#4a6580", "RoundHeight":10, "RoundWidth":10, "BorderColor":"#1a2d42", "BorderWidth":1}');
  clComponent.SetupComponent(btnSwitchExit, '{"BackgroundColor":"#0d1520", "TextColor":"#fb923c", "RoundHeight":10, "RoundWidth":10, "BorderColor":"#f9731640", "BorderWidth":1}');
}
// N'oubliez pas d'ajouter "lastMvtCount: Integer;" dans vos variables globales 'var' en haut du projet !

void RefreshMovementsHistory
var
  Rest: TclRest;
  apiUrl: String;
  totalCardsHeight, i: Integer; // Localisation de 'i'
{
  // ============================================================
  // 1. Destruction propre du conteneur précédent
  // ============================================================
  if (historyContainerPanel <> nil) {
    historyContainerPanel.Free;
    historyContainerPanel = nil; // Réinitialisation du pointeur
  }
  // Génération d'un nom de composant UNIQUE pour éviter le conflit dans MyForm
  refreshIndex = refreshIndex + 1;
  // Recrée un panneau conteneur avec un nom unique
  historyContainerPanel = MyForm.AddNewProPanel(historyScrollBox, 'historyContainerPanel_' + IntToStr(refreshIndex));
  historyContainerPanel.Align = alTop;
  clComponent.SetupComponent(historyContainerPanel, '{"BackgroundColor":"#00000000", "BorderWidth":0}');
  // ============================================================
  // 2. Chargement de l'API REST
  // ============================================================
  if (isExpandedList) {
    apiUrl = ' http://192.168.25.6/clomosyProject/Api/get_movements.php" rel="nofollow - http://192.168.25.6/clomosyProject/Api/get_movements.php ';
  }
  else {
    apiUrl = ' http://192.168.25.6/clomosyProject/Api/get_movements.php?limit=3" rel="nofollow - http://192.168.25.6/clomosyProject/Api/get_movements.php?limit=3 ';
  }
  Rest = TclRest.Create;
  try
    Rest.BaseURL = apiUrl;
    Rest.Method = rmGET;
    Rest.Accept = 'application/json';
    Rest.Execute;
    if (Rest.Response <> '') 
    {
      mvtQuery = Clomosy.ClDataSetFromJSON(Rest.Response);
      mvtQuery.First;
      i = 0;
      totalCardsHeight = 0;
      while (not mvtQuery.Eof)
      {
        // Création de la carte dans le conteneur dynamique
        tempPanel = MyForm.AddNewProPanel(historyContainerPanel, 'mvtCard_' + IntToStr(refreshIndex) + '_' + IntToStr(i));
        tempPanel.Align = alTop;
        tempPanel.Height = 62;
        tempPanel.Margins.Left = 4; 
        tempPanel.Margins.Right = 4; 
        tempPanel.Margins.Bottom = 8;
        clComponent.SetupComponent(tempPanel, '{"BackgroundColor":"#080d14", "RoundHeight":10, "RoundWidth":10, "BorderColor":"#1a2d42", "BorderWidth":1}');
        // Icône d'indicateur
        tempTypeIcon = MyForm.AddNewProPanel(tempPanel, 'mvtIcon_' + IntToStr(refreshIndex) + '_' + IntToStr(i));
        tempTypeIcon.Align = alLeft; 
        tempTypeIcon.Width = 36;
        tempTypeIcon.Margins.Left = 8; 
        tempTypeIcon.Margins.Top = 10; 
        tempTypeIcon.Margins.Bottom = 10;
        if (mvtQuery.FieldByName('type').AsString == 'entrée') {
          clComponent.SetupComponent(tempTypeIcon, '{"BackgroundColor":"#22c55e18", "BorderColor":"#22c55e30", "BorderWidth":1, "RoundHeight":8, "RoundWidth":8}');
        }
        else {
          clComponent.SetupComponent(tempTypeIcon, '{"BackgroundColor":"#f9731618", "BorderColor":"#f9731630", "BorderWidth":1, "RoundHeight":8, "RoundWidth":8}');
        }
        // Détails Produit & Heure
        tempLayout = MyForm.AddNewLayout(tempPanel, 'mvtTextLayout_' + IntToStr(refreshIndex) + '_' + IntToStr(i));
        tempLayout.Align = alClient;
        tempLayout.Margins.Left = 10; 
        tempLayout.Margins.Top = 10;
        tempLabel = MyForm.AddNewProLabel(tempLayout, 'mvtLblProd_' + IntToStr(refreshIndex) + '_' + IntToStr(i), mvtQuery.FieldByName('product').AsString);
        tempLabel.Align = alTop;
        tempLabel.clProSettings.FontSize = 12;
        tempLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#e2eaf5');
        tempLabel.clProSettings.TextSettings.Font.Style = [fsBold];
        tempLabel.SetclProSettings(tempLabel.clProSettings);
        tempLabel2 = MyForm.AddNewProLabel(tempLayout, 'mvtLblSub_' + IntToStr(refreshIndex) + '_' + IntToStr(i), mvtQuery.FieldByName('time').AsString + ' · ' + mvtQuery.FieldByName('bloc').AsString);
        tempLabel2.Align = alTop;
        tempLabel2.clProSettings.FontSize = 10;
        tempLabel2.clProSettings.FontColor = clAlphaColor.clHexToColor('#4a6580');
        tempLabel2.Margins.Top = 2;
        tempLabel2.SetclProSettings(tempLabel2.clProSettings);
        // Quantité
        tempLayout = MyForm.AddNewLayout(tempPanel, 'mvtQtyLayout_' + IntToStr(refreshIndex) + '_' + IntToStr(i));
        tempLayout.Align = alRight; 
        tempLayout.Width = 80;
        tempLayout.Margins.Right = 10; 
        tempLayout.Margins.Top = 10;
        tempLabel = MyForm.AddNewProLabel(tempLayout, 'mvtLblQty_' + IntToStr(refreshIndex) + '_' + IntToStr(i), mvtQuery.FieldByName('qty').AsString + ' ' + mvtQuery.FieldByName('unit').AsString);
        tempLabel.Align = alTop;
        tempLabel.clProSettings.FontSize = 12;
        if (mvtQuery.FieldByName('qty').AsInteger > 0) {
          tempLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#4ade80');
        }
        else {
          tempLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#fb923c');
        }
        tempLabel.clProSettings.TextSettings.Font.Style = [fsBold];
        tempLabel.SetclProSettings(tempLabel.clProSettings);
        totalCardsHeight = totalCardsHeight + 70; 
        i = i + 1;
        mvtQuery.Next;
      }
      // Ajustement dynamique de la hauteur
      historyContainerPanel.Height = totalCardsHeight;
    }
  finally
    Rest.Free;
  }
 

// ============================================================
// ENVOI DU MOUVEMENT AU BACKEND (API REST)
// ============================================================
//mettre la liste qutomatiquement a jour apres auel 'on a ajouter un nouveau element'
void SubmitMovement;
var
  Rest: TclRest;
  payloadJson, responseStr: String;
  resObj: TclJSONObject;
{
  if ((edtProduct.Text == '') || (edtQty.Text == '') )
  {
    ShowMessage('Veuillez renseigner au moins le produit et la quantité.');
    Exit;
  }

  payloadJson = '{"type":"' + currentMvtType + '","product":"' + edtProduct.Text + '","lot":"' + edtLot.Text + '","bloc":"' + edtBloc.Text + '","qty":' + edtQty.Text + ',"unit":"' + edtUnit.Text + '"}';

  Rest = TclRest.Create;
  try
    Rest.BaseURL = ' http://192.168.25.6/clomosyProject/Api/add_movement.php" rel="nofollow - http://192.168.25.6/clomosyProject/Api/add_movement.php ';
    Rest.Method = rmPOST;
    Rest.Accept = 'application/json';
    Rest.Body = payloadJson;
    Rest.Execute;

    responseStr = Rest.Response;
    if (responseStr <> '')
    {
      resObj = TclJson.ParseToJSONObject(responseStr);
      if ((resObj <> nil) &&  (resObj.GetValue('success').AsBoolean)) 
      {
        ShowMessage('Mouvement enregistré avec succès !');
        
        // Réinitialisation des champs
        edtProduct.Text = '';
        edtLot.Text = '';
        edtQty.Text = '';
        // 💡 RAFRAÎCHISSEMENT IMMÉDIAT DE LA LISTE
        RefreshMovementsHistory;
      }
      else{
        ShowMessage('Erreur lors de l''enregistrement.');
      }
    }
  finally
    Rest.Free;
  }
  }

void TabClick
{
  ShowMessage('Navigation : ' + TclProButton(MyForm.ClSender).Caption);
}
// Clic sur "Voir plus / Réduire"
void  ToggleSeeMore;
{
  isExpandedList = not isExpandedList;
  
  if (isExpandedList)
  {
    historyPanel.Height = 420; // Agrandi le panneau
    btnSeeMore.Caption = 'Réduire la liste ▲';
   }
  else
  {
    historyPanel.Height = 290; // Hauteur par défaut pour 3 cartes
    btnSeeMore.Caption = 'Voir plus (Aujourd''hui) ▼';
  }
  
  RefreshMovementsHistory;
}























// ============================================================
// PROGRAMME PRINCIPAL
// ============================================================
{
  MyForm = TclForm.Create(Self);
  MyForm.SetFormColor('#080d14', '#0d1520', clGVertical);

  if (not Clomosy.PlatformIsMobile) {
    MyForm.clSetWindowState(fwsMaximized);
  }
  currentMvtType = 'entrée';

  // --- Main Layout ---
  mainLayout = MyForm.AddNewLayout(MyForm, 'mainLayout');
  mainLayout.Align = alClient;
  mainLayout.Margins.Bottom = 60;

  // --- En-tête / Header ---
  headerLayout = MyForm.AddNewLayout(mainLayout, 'headerLayout');
  headerLayout.Align = alTop;
  headerLayout.Height = 70;
  headerLayout.Margins.Left = 16;
  headerLayout.Margins.Right = 16;
  headerLayout.Margins.Top = 10;

  lblKicker = MyForm.AddNewProLabel(headerLayout, 'lblKicker', 'ESPACE GÉRANT D''ENTREPÔT');
  lblKicker.Align = alTop;
  lblKicker.Height = 14;
  lblKicker.clProSettings.FontColor = clAlphaColor.clHexToColor('#00d4ff');
  lblKicker.clProSettings.FontSize = 10;
  lblKicker.clProSettings.TextSettings.Font.Style = [fsBold];
  lblKicker.SetclProSettings(lblKicker.clProSettings);

  lblTitle = MyForm.AddNewProLabel(headerLayout, 'lblTitle', 'Gestion des Stocks');
  lblTitle.Align = alTop;
  lblTitle.Height = 32;
  lblTitle.Margins.Top = 2;
  lblTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#e2eaf5');
  lblTitle.clProSettings.FontSize = 24;
  lblTitle.clProSettings.TextSettings.Font.Style = [fsBold];
  lblTitle.SetclProSettings(lblTitle.clProSettings);

  // --- Selecteur d'Action (Entrée / Sortie) ---
  switcherLayout = MyForm.AddNewLayout(mainLayout, 'switcherLayout');
  switcherLayout.Align = alTop;
  switcherLayout.Height = 44;
  switcherLayout.Margins.Left = 16;
  switcherLayout.Margins.Right = 16;
  switcherLayout.Margins.Bottom = 10;

  btnSwitchEntry = MyForm.AddNewProButton(switcherLayout, 'btnSwitchEntry', '📥 Réception (Entrée)');
  btnSwitchEntry.Align = alLeft;
  btnSwitchEntry.Width = 165;
  clComponent.SetupComponent(btnSwitchEntry, '{"BackgroundColor":"#0d1520", "TextColor":"#4ade80", "RoundHeight":10, "RoundWidth":10, "BorderColor":"#22c55e40", "BorderWidth":1}');
  MyForm.AddNewEvent(btnSwitchEntry, tbeOnClick, 'SetModeEntry');

  btnSwitchExit = MyForm.AddNewProButton(switcherLayout, 'btnSwitchExit', '📤 Expédition (Sortie)');
  btnSwitchExit.Align = alRight;
  btnSwitchExit.Width = 165;
  clComponent.SetupComponent(btnSwitchExit, '{"BackgroundColor":"#080d14", "TextColor":"#4a6580", "RoundHeight":10, "RoundWidth":10, "BorderColor":"#1a2d42", "BorderWidth":1}');
  MyForm.AddNewEvent(btnSwitchExit, tbeOnClick, 'SetModeExit');

  // --- ScrollBox pour le formulaire et le journal ---
  scrollBody = MyForm.AddNewVertScrollBox(mainLayout, 'scrollBody');
  scrollBody.Align = alClient;
  scrollBody.Margins.Left = 16;
  scrollBody.Margins.Right = 16;

  // ============================================================
  // FORMULAIRE DE SAISIE DE STOCK
  // ============================================================
  formPanel = MyForm.AddNewProPanel(scrollBody, 'formPanel');
  formPanel.Align = alTop;
  formPanel.Height = 310;
  formPanel.Margins.Bottom = 16;
  clComponent.SetupComponent(formPanel, '{"BackgroundColor":"#0d1520", "RoundHeight":16, "RoundWidth":16, "BorderColor":"#1a2d42", "BorderWidth":1}');

  lblFormTitle = MyForm.AddNewProLabel(formPanel, 'lblFormTitle', '📥 NOUVELLE ENTRÉE DE STOCK');
  lblFormTitle.Align = alTop;
  lblFormTitle.Height = 30;
  lblFormTitle.Margins.Left = 14; lblFormTitle.Margins.Top = 10;
  lblFormTitle.clProSettings.FontSize = 12;
  lblFormTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#4ade80');
  lblFormTitle.clProSettings.TextSettings.Font.Style = [fsBold];
  lblFormTitle.SetclProSettings(lblFormTitle.clProSettings);

  edtProduct = MyForm.AddNewProEdit(formPanel, 'edtProduct', 'Nom ou référence du produit...');
  edtProduct.Align = alTop; edtProduct.Height = 40;
  edtProduct.Margins.Left = 14; edtProduct.Margins.Right = 14; edtProduct.Margins.Top = 6;
  clComponent.SetupComponent(edtProduct, '{"BackgroundColor":"#080d14", "TextColor":"#e2eaf5", "RoundHeight":8, "RoundWidth":8, "BorderColor":"#1e3552", "BorderWidth":1}');

  edtLot = MyForm.AddNewProEdit(formPanel, 'edtLot', 'Numéro de Lot (ex: LOT-2026-A)...');
  edtLot.Align = alTop; edtLot.Height = 40;
  edtLot.Margins.Left = 14; edtLot.Margins.Right = 14; edtLot.Margins.Top = 8;
  clComponent.SetupComponent(edtLot, '{"BackgroundColor":"#080d14", "TextColor":"#e2eaf5", "RoundHeight":8, "RoundWidth":8, "BorderColor":"#1e3552", "BorderWidth":1}');

  edtBloc = MyForm.AddNewProEdit(formPanel, 'edtBloc', 'Département / Bloc (ex: Bloc A)...');
  edtBloc.Align = alTop; edtBloc.Height = 40;
  edtBloc.Margins.Left = 14; edtBloc.Margins.Right = 14; edtBloc.Margins.Top = 8;
  clComponent.SetupComponent(edtBloc, '{"BackgroundColor":"#080d14", "TextColor":"#e2eaf5", "RoundHeight":8, "RoundWidth":8, "BorderColor":"#1e3552", "BorderWidth":1}');

  rowQtyLayout = MyForm.AddNewLayout(formPanel, 'rowQtyLayout');
  rowQtyLayout.Align = alTop; rowQtyLayout.Height = 40;
  rowQtyLayout.Margins.Left = 14; rowQtyLayout.Margins.Right = 14; rowQtyLayout.Margins.Top = 8;

  edtQty = MyForm.AddNewProEdit(rowQtyLayout, 'edtQty', 'Quantité (ex: 50)');
  edtQty.Align = alLeft; edtQty.Width = 160;
  clComponent.SetupComponent(edtQty, '{"BackgroundColor":"#080d14", "TextColor":"#e2eaf5", "RoundHeight":8, "RoundWidth":8, "BorderColor":"#1e3552", "BorderWidth":1}');

  edtUnit = MyForm.AddNewProEdit(rowQtyLayout, 'edtUnit', 'Unité (kg, pcs, L)');
  edtUnit.Align = alRight; edtUnit.Width = 140;
  clComponent.SetupComponent(edtUnit, '{"BackgroundColor":"#080d14", "TextColor":"#e2eaf5", "RoundHeight":8, "RoundWidth":8, "BorderColor":"#1e3552", "BorderWidth":1}');

  btnSubmitMvt = MyForm.AddNewProButton(formPanel, 'btnSubmitMvt', 'Valider l''Entrée (+)');
  btnSubmitMvt.Align = alTop; btnSubmitMvt.Height = 44;
  btnSubmitMvt.Margins.Left = 14; btnSubmitMvt.Margins.Right = 14; btnSubmitMvt.Margins.Top = 14;
  clComponent.SetupComponent(btnSubmitMvt, '{"BackgroundColor":"#22c55e20", "TextColor":"#4ade80", "RoundHeight":12, "RoundWidth":12, "BorderColor":"#22c55e50", "BorderWidth":1}');
  MyForm.AddNewEvent(btnSubmitMvt, tbeOnClick, 'SubmitMovement');

  // ============================================================
  // JOURNAL DES MOUVEMENTS RÉCENTS (DYNAMIQUE)
  // ============================================================
  historyPanel = MyForm.AddNewProPanel(scrollBody, 'historyPanel');
  historyPanel.Align = alTop;
  historyPanel.Height = 290;
  historyPanel.Margins.Bottom = 16;
  clComponent.SetupComponent(historyPanel, '{"BackgroundColor":"#0d1520", "RoundHeight":16, "RoundWidth":16, "BorderColor":"#1a2d42", "BorderWidth":1}');

  lblHistoryTitle = MyForm.AddNewProLabel(historyPanel, 'lblHistoryTitle', '📋 Mouvements récents de votre département');
  lblHistoryTitle.Align = alTop;
  lblHistoryTitle.Height = 34;
  lblHistoryTitle.Margins.Left = 14; 
  lblHistoryTitle.Margins.Top = 8;
  lblHistoryTitle.clProSettings.FontSize = 12;
  lblHistoryTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#e2eaf5');
  lblHistoryTitle.clProSettings.TextSettings.Font.Style = [fsBold];
  lblHistoryTitle.SetclProSettings(lblHistoryTitle.clProSettings);

  // Bouton "Voir plus" en bas du panneau
  btnSeeMore = MyForm.AddNewProButton(historyPanel, 'btnSeeMore', 'Voir plus (Aujourd''hui) ▼');
  btnSeeMore.Align = alBottom;
  btnSeeMore.Height = 32;
  btnSeeMore.Margins.Left = 12; 
  btnSeeMore.Margins.Right = 12; 
  btnSeeMore.Margins.Bottom = 8;
  clComponent.SetupComponent(btnSeeMore, '{"BackgroundColor":"#080d14", "TextColor":"#00d4ff", "RoundHeight":8, "RoundWidth":8, "BorderColor":"#1a2d42", "BorderWidth":1}');
  MyForm.AddNewEvent(btnSeeMore, tbeOnClick, 'ToggleSeeMore');

  // Sous-conteneur défilant pour la liste dynamique des cartes
  historyScrollBox = MyForm.AddNewVertScrollBox(historyPanel, 'historyScrollBox');
  historyScrollBox.Align = alClient;
  historyScrollBox.Margins.Left = 8;
  historyScrollBox.Margins.Right = 8;
  // Premier chargement au démarrage (Mode réduit : 3 éléments)
  isExpandedList = False;
  RefreshMovementsHistory;






































  // ============================================================
  // TAB BAR INFÉRIEURE
  // ============================================================
  tabBarPanel = MyForm.AddNewProPanel(MyForm, 'tabBarPanel');
  tabBarPanel.Align = alBottom;
  tabBarPanel.Height = 58;
  clComponent.SetupComponent(tabBarPanel, '{"BackgroundColor":"#07101c", "BorderColor":"#1a2d42", "BorderWidth":1}');

  btnTabStock = MyForm.AddNewProButton(tabBarPanel, 'btnTabStock', 'Saisie Stock');
  btnTabStock.Align = alLeft; btnTabStock.Width = 115;
  clComponent.SetupComponent(btnTabStock, '{"BackgroundColor":"#07101c", "TextColor":"#00d4ff", "RoundHeight":0, "RoundWidth":0}');
  MyForm.AddNewEvent(btnTabStock, tbeOnClick, 'TabClick');

  btnTabScan = MyForm.AddNewProButton(tabBarPanel, 'btnTabScan', 'Scanner QR');
  btnTabScan.Align = alLeft; btnTabScan.Width = 115;
  clComponent.SetupComponent(btnTabScan, '{"BackgroundColor":"#07101c", "TextColor":"#4a6580", "RoundHeight":0, "RoundWidth":0}');
  MyForm.AddNewEvent(btnTabScan, tbeOnClick, 'TabClick');

  btnTabSettings = MyForm.AddNewProButton(tabBarPanel, 'btnTabSettings', 'Profil');
  btnTabSettings.Align = alClient;
  clComponent.SetupComponent(btnTabSettings, '{"BackgroundColor":"#07101c", "TextColor":"#4a6580", "RoundHeight":0, "RoundWidth":0}');
  MyForm.AddNewEvent(btnTabSettings, tbeOnClick, 'TabClick');

  MyForm.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">



Cevaplar:
Mesajý Yazan: Emr.Erkmn
Mesaj Tarihi: 21 Temmuz 2026 Saat 15:27
Merhaba Barthez 

RefreshMovementsHistory prosedürün de 
193. satýr da bir tane kapanýþ parantezin eksik
Eklediðin de hata çözülecek  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">



Sayfayý Yazdýr | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net