Sayfayı Yazdır | Pencereyi Kapat

Farklı Unitten fonksiyon kullanımı

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Clomosy ile değişken kullanımı
Forum Tanımlaması: TRObject dili ile değişken tanımlaması ve ekranda gösterme
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1220
Tarih: 10 Kasım 2025 Saat 16:16
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Farklı Unitten fonksiyon kullanımı
Mesajı Yazan: M-Guney
Konu: Farklı Unitten fonksiyon kullanımı
Mesaj Tarihi: 10 Kasım 2025 Saat 10:42
Main'imde bulunan IsArrayContain fonksiyonundan aldığım boolean değerini değişkene atamak istiyorum fakat ne hata veriyor ne de değişkene yeni veeriyi yazıyor. Fakat showmessage içinde verdiğimde başarılı bir şekilde True yazısı geliyor değişkene ise atayamıyorum.

Boolean gelen veriyi boolean'a atamk istiyorum fakat atayamadım.




void GetUserPrivilegesCompletedV
var
  jsonResponse: String;
  Arr : TCLJSONArray;
  I: Integer;
  hasViewOrders, hasTakePayment: Boolean;
{
  jsonResponse = TCRest.Response;
 ShowMessage('query completed');
  //ShowMessage(jsonResponse);
  Arr = TCLJSONArray.Create;
Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
  if(jsonResponse == ''){
    ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.')
  }else{
      ShowMessage('Privileges output: '+ jsonResponse);
      ShowMessage( Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS'));
      hasViewOrders = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS');
      ShowMessage('hasViewOrders: '+ hasViewOrders);
      hasTakePayment = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT');
      ShowMessage('hasTakePayment: '+ hasTakePayment);
      
      //ShowMessage('Table Tag: ' + TClProButton(MainForm.Clsender).clTagInt); // clTagStr
      if (hasViewOrders && hasTakePayment)
      {
        Clomosy.RunUnit('SelectRoleV');
      }
      else if (hasViewOrders)
      {
        Clomosy.RunUnit('uWaiterAndChefDetails');
      }
      else if (hasTakePayment)
      {
        Clomosy.RunUnit('uCashierDetails');
      }
      else
      {
        ShowMessage('Uyarı: Gereken yetki bulunamadı!');
      }
  }
  
}

// MAIN CODE



function IsArrayContain(FArr: TCLJSONArray; FJson: String; FArrayItem: String; FLookingStr: String): Boolean
var
  I: Integer;
  currentValue: String;
{
  Result = False;
  
  Try
    if (FArr == nil)
    {
      ShowMessage('Array is nil return back.');
      Result = False;
      Exit;
    }
    
    if (FJson == '')
    {
      ShowMessage('Array is empty return back.');
      Result = False;
      Exit;
    }
    
    for (I = 0 to (FArr.Count - 1))
    {
      Try
        currentValue = Clomosy.CLParseJSON(FJson, IntToStr(I) + '.' + FArrayItem);
        
        
        if (currentValue == FLookingStr)
        {
          Result = True;
          ShowMessage('Find Item in Array.' + FLookingStr);
          Exit; 
        }
      except
      }
  }
  except
    Result = False;
  }
}
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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: M-Guney
Mesaj Tarihi: 10 Kasım 2025 Saat 11:21
Ek olarak farklı unitteki fonksiyonu çağırıp title ı değiştirmek istiyorum 
if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){
        //ShowMessage('Table Tag: ' + TClProButton(MainForm.Clsender).clTagStr); // clTagStr
        uWaiterAndChefDetails.SetTitleV(TClProButton(MainForm.Clsender).clTagStr);
        Clomosy.RunUnit('uWaiterAndChefDetails');
      }
  Tag doğru string olarak gelmesine rağmen değiştiremiyorum.
ve o unit açılmıyor.
void SetTitleV(FTableName : String)
{
  TitleLbl.Text = FTableName + 'Sipariş';
}
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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">


Mesajı Yazan: M-Guney
Mesaj Tarihi: 10 Kasım 2025 Saat 13:34
clSender dan aldığım veriyi farklı bir değişkene atayınca problemi gidersim fakat hata mesajı döndürmeden direk kodun çalışmaması nedeniyle anlamam biraz uzun sürdü.

void GetUserPrivilegesCompletedV
var
  jsonResponse, TableName: String;
  Arr : TCLJSONArray;
  I, OrderID: Integer;
  hasViewOrders, hasTakePayment: Boolean;
{
  jsonResponse = TCRest.Response;
  //ShowMessage(jsonResponse);
  Arr = TCLJSONArray.Create;
Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
  if(jsonResponse == ''){
    ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.')
  }else{
      
      if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){
        TableName = TClProButton(MainForm.Clsender).clTagStr;
        OrderID = TClProButton(MainForm.Clsender).clTagInt;
        //ShowMessage(TableName);
        Clomosy.RunUnit('uWaiterAndChefDetails');
        uWaiterAndChefDetails.SetTitleV(TableName);
        uWaiterAndChefDetails.SetOrderIDV(OrderID);

https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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">


Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 10 Kasım 2025 Saat 14:14
Merhaba Güney, galiba sorunu çözdün, şu an için mevcut bir hata var mı?
https://www.docs.clomosy.com/Global_Variables " rel="nofollow - https://www.docs.clomosy.com/Global_Variables  ;
Docs te yer alan linki bıraktım. Sana faydalı olacağını düşünüyorum inceler misin?
Ayrıca fonksiyonları başka birimden uses ile mi çağrıyorsun  https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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