![]() |
| Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
if döngüsünde kontrol etme |
Yanıt Yaz
|
| Yazar | |
M-Guney
Deneyimli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 79 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: if döngüsünde kontrol etmeGönderim Zamanı: 7 Saat 17 Dakika Önce Saat 11:46 |
|
IsArrayContain fonksiyonum bana boolean bir değer döndürüyor eğer ki benim iki yetkim de olursa sorunsuzca istiefğim sayfaya yönelendiriyor fakat eğer ki benim bu yetkilerden birine sahipsem yönlendirme yapmıyor. ShowMessage('Privileges output: '+ jsonResponse); if((Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')) && (Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT'))) { Clomosy.RunUnit('SelectRoleV'); } else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){ Clomosy.RunUnit('uWaiter&ChefDetails'); } else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT')){ Clomosy.RunUnit('uCashierDetails'); } 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">
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 391 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 4 Saat 36 Dakika Önce Saat 14:27 |
|
Merhaba Güney,
Muhtemel hata, Boolean döndürmüyor, else if koşullarını yanlış değerlendiriyor olabilir ya da JSON parsing hatası olabilir. 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"> |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 391 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 4 Saat 29 Dakika Önce Saat 14:34 |
|
Kodun bir önce ki ve kalan kısmını da paylaşabilir misin?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">
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 391 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 4 Saat 24 Dakika Önce Saat 14:39 |
|
void CheckPrivileges var hasViewOrders: Boolean; hasTakePayment: Boolean; { Try ShowMessage('Privileges output: ' + jsonResponse); hasViewOrders = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS'); hasTakePayment = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT'); if (hasViewOrders && hasTakePayment) { Clomosy.RunUnit('SelectRoleV'); } else if (hasViewOrders) { Clomosy.RunUnit('uWaiter&ChefDetails'); } else if (hasTakePayment) { Clomosy.RunUnit('uCashierDetails'); } else { ShowMessage('Hiçbir yetki bulunamadı'); } except ShowMessage('Exception: ' + LastExceptionMessage); } } 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">
inceleyip dener misin |
|
![]() |
|
M-Guney
Deneyimli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 79 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 3 Saat 29 Dakika Önce Saat 15:34 |
|
Kodun bulundguğu kısım void GetUserPrivilegesCompletedV var jsonResponse: String; Arr : TCLJSONArray; I: Integer; { jsonResponse = TCRest.Response ShowMessage(jsonResponse); Arr = TCLJSONArray.Create; Arr = TCLJSONArray.CreateFromJSON(jsonResponse); if(jsonResponse == ''){ ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.') }else{ //ShowMessage('Privileges output: '+ jsonResponse); if((Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')) && (Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT'))) { Clomosy.RunUnit('SelectRoleV'); } else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){ ShowMessage(TClProButton(MainForm.Clsender).clTagStr); Clomosy.RunUnit('uWaiterAndChefDetails'); //uWaiterAndChefDetails.SetTitleV(); } else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT')){ Clomosy.RunUnit('uCashierDetails'); } /* for (I=0 to Arr.Count -1) { } if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'VIEW_ORDERS'){ if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'TAKE_PAYMENT'){ Clomosy.RunUnit('SelectRoleV');} else { Clomosy.RunUnit('uWaiterAndChefDetails');} } else if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'TAKE_PAYMENT'){ if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'VIEW_ORDERS'){ Clomosy.RunUnit('SelectRoleV');} else { Clomosy.RunUnit('uCashierDetails');} } } */ } } 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">
Maindeki fonksiyonum function IsArrayContain(FArr : TCLJSONArray; FJson, FArrayItem, FLookingStr : String): Boolean; var I : Integer; IsValid : Boolean; { if((Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> '') || (Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> nil)) { IsValid = true } if(IsValid){ for(I=0 to FArr.Count-1) { if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) == FLookingStr) { Result = True; } } }else Result = False; } |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 391 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 2 Saat 34 Dakika Önce Saat 16:29 |
|
Güney tespit ettiğim problemler;
Result başlangıçta False olarak ayarlanmamış Döngü içinde Exit komutu yok , bu yüzden gereksiz yere tüm döngüyü dolaşıyor || yerine && kullanman 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">
function IsArrayContain(FArr: TCLJSONArray; FJson: String; FArrayItem: String; FLookingStr: String): Boolean var I: Integer; currentValue: String; { Result = False; Try if (FArr == nil) { Result = False; Exit; } if (FJson == '') { Result = False; Exit; } for (I = 0 to (FArr.Count - 1)) { Try currentValue = Clomosy.CLParseJSON(FJson, IntToStr(I) + '.' + FArrayItem); if (currentValue == FLookingStr) { Result = True; Exit; } except } } except Result = False; } } void GetUserPrivilegesCompletedV var jsonResponse: String; Arr: TCLJSONArray; I: Integer; hasViewOrders: Boolean; hasTakePayment: Boolean; { Try jsonResponse = TCRest.Response; ShowMessage('Privileges JSON: ' + jsonResponse); Arr = TCLJSONArray.Create; Arr = TCLJSONArray.CreateFromJSON(jsonResponse); if (jsonResponse == '') { ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.'); } else { hasViewOrders = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS'); hasTakePayment = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT'); ShowMessage(hasViewOrders); // debug ShowMessage(hasTakePayment); // debug if (hasViewOrders && hasTakePayment) { Clomosy.RunUnit('SelectRoleV'); } else if (hasViewOrders) { Clomosy.RunUnit('uWaiterAndChefDetails'); } else if (hasTakePayment) { ShowMessage('→ uCashierDetails sayfasına yönlendiriliyor'); Clomosy.RunUnit('uCashierDetails'); } else { ShowMessage('Uyarı: Hiçbir yetki bulunamadı!'); } } if (Arr <> nil) { Try Arr.Free; Arr = nil; except } } except ShowMessage('Exception Class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage); } } kodunla karşılaştırıp bakabilir misin |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 391 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(1)
Alıntı Cevapla
Gönderim Zamanı: 2 Saat 31 Dakika Önce Saat 16:32 |
|
if((Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> '') || (Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> nil)) { IsValid = true } 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">
burada ki kontrolün her zaman true dönüyor mu? |
|
![]() |
|
M-Guney
Deneyimli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 79 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 1 saat 32 Dakika Önce Saat 17:31 |
|
Hayır eğer ki iki yetkiye de sahipse yönlendirebiliyorum fakat tek bir yetkiye sahipse herhangi bir şekilde yönlendirme yapamıyorum.
Fakat eğer ki sadece birine sahipse problem olmuyor. |
|
![]() |
|
M-Guney
Deneyimli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 79 |
Mesaj Seçenekleri
Teşekkürler(1)
Alıntı Cevapla
Gönderim Zamanı: 1 saat 29 Dakika Önce Saat 17:34 |
|
Sizin kodunuzla beraber kontolu doğru şekilde yapabildim teşekkürler.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">
|
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |