Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - ListView -1 hatası
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

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.

ListView -1 hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
ErenTotan Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 29 Haziran 2026
Konum: Konya
Durum: Aktif Değil
Puanlar: 10
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı ErenTotan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: ListView -1 hatası
    Gönderim Zamanı: 2 Saat 13 Dakika Önce Saat 17:06
// manager.tro uses fonksiyonlar; var ManagerForm: TclForm; ScrollManager: TclVertScrollBox; FormPnl: TclProPanel; edtHocaName, edtHocaPass: TclProEdit;
edtBrans, edtTelefon, edtTC, edtMaas, edtTarih: TclProEdit; cbSurekli: TclCheckBox; btnSaveHoca: TclProButton; TeacherListView: TclListView; BackdropPnl, SheetPnl: TclProPanel; lblSheetTitle: TclProLabel; btnSheetClose, btnSheetDelete, btnCallTeacher, btnMsgTeacher: TclProButton; TeacherCodes: array[0..100] of String; TeacherNames: array[0..100] of String; TeacherPhones: array[0..100] of String; TotalTeachers: Integer; ClickedTeacherIndex: Integer; selectedTeacherCode: String; void CloseBottomSheet; { BackdropPnl.Visible = False; SheetPnl.Visible = False; } void OpenBottomSheet; { BackdropPnl.Visible = True; BackdropPnl.BringToFront; SheetPnl.Visible = True; SheetPnl.BringToFront; } void LoadTeachers; var clRest: TclRest; resp: String; idx, keyStart, keyEnd, braceCount: Integer; ch, hocaCode, hocaData, hocaName, hocaPass, instId: String; brans, telefon, tc, maas, tarih, surekli: String; urlStr, baseUrl, jsonList: String; { baseUrl = Trim(fonksiyonlar.FirebaseURL); if (Copy(baseUrl, Length(baseUrl), 1) == '/') { baseUrl = Copy(baseUrl, 1, Length(baseUrl) - 1); } urlStr = baseUrl + '/ogretmenler.json'; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.ContentType = 'application/json'; clRest.BaseURL = urlStr; clRest.Method = rmGET; clRest.Execute; resp = Trim(clRest.Response); if ((resp == 'null') || (Length(resp) == 0) || (resp == '{}')) { TeacherListView.clLoadListViewDataFromDataset(Clomosy.ClDataSetFromJSON('[]')); Exit; } jsonList = '['; TotalTeachers = 0; idx = 2; while (idx < Length(resp)) { keyStart = Pos('"', Copy(resp, idx, Length(resp))); if (keyStart == 0) { Break; } keyStart = idx + keyStart - 1; keyEnd = Pos('"', Copy(resp, keyStart + 1, Length(resp))); if (keyEnd == 0) { Break; } keyEnd = keyStart + 1 + keyEnd - 1; hocaCode = Copy(resp, keyStart + 1, keyEnd - keyStart - 1); idx = keyEnd + 1; while ((idx < Length(resp)) && (Copy(resp, idx, 1) <> '{')) { idx = idx + 1; } if (idx >= Length(resp)) { Break; } keyStart = idx; braceCount = 1; idx = idx + 1; while ((idx <= Length(resp)) && (braceCount > 0)) { ch = Copy(resp, idx, 1); if (ch == '{') { braceCount = braceCount + 1; } else if (ch == '}') { braceCount = braceCount - 1; } idx = idx + 1; } hocaData = Copy(resp, keyStart, idx - keyStart); if (Pos('"kurumKodu"', hocaData) > 0) { instId = Clomosy.CLParseJSON(hocaData, 'kurumKodu'); } else { instId = ''; } if (Pos('"hocaAdi"', hocaData) > 0) { hocaName = Clomosy.CLParseJSON(hocaData, 'hocaAdi'); } else { hocaName = 'İsimsiz'; } if (Pos('"sifre"', hocaData) > 0) { hocaPass = Clomosy.CLParseJSON(hocaData, 'sifre'); } else { hocaPass = ''; } if (Pos('"brans"', hocaData) > 0) { brans = Clomosy.CLParseJSON(hocaData, 'brans'); } else { brans = '-'; } if (Pos('"telefon"', hocaData) > 0) { telefon = Clomosy.CLParseJSON(hocaData, 'telefon'); } else { telefon = '-'; } if (Pos('"tc"', hocaData) > 0) { tc = Clomosy.CLParseJSON(hocaData, 'tc'); } else { tc = '-'; } if (Pos('"maas"', hocaData) > 0) { maas = Clomosy.CLParseJSON(hocaData, 'maas'); } else { maas = '-'; } if (Pos('"tarih"', hocaData) > 0) { tarih = Clomosy.CLParseJSON(hocaData, 'tarih'); } else { tarih = '-'; } if (Pos('"surekli"', hocaData) > 0) { surekli = Clomosy.CLParseJSON(hocaData, 'surekli'); } else { surekli = '-'; } if (instId == fonksiyonlar.SessionInstId) { if (TotalTeachers < 100) { TeacherCodes[TotalTeachers] = hocaCode; TeacherNames[TotalTeachers] = hocaName; TeacherPhones[TotalTeachers] = telefon; if (jsonList <> '[') { jsonList = jsonList + ','; } jsonList = jsonList + '{"MAIN_TEXT":"' + hocaName + ' (' + brans + ')", "SUB_TEXT":"Kod: ' + hocaCode + ' | Tip: ' + surekli + ' | Maas: ' + maas + ' | Baslama: ' + tarih + '"}'; TotalTeachers = TotalTeachers + 1; } } } jsonList = jsonList + ']'; TeacherListView.clLoadListViewDataFromDataset(Clomosy.ClDataSetFromJSON(jsonList)); } void SaveTeacher; var clRest: TclRest; jsonStr, hocaName, hocaPass, hocaCode, urlStr, baseUrl: String; randomNum: Integer; { hocaName = Trim(edtHocaName.Text); hocaPass = Trim(edtHocaPass.Text); if ((Length(hocaName) == 0) || (Length(hocaPass) == 0)) { ShowMessage('Lutfen en azindan ogretmen adi ve sifre alanlarini doldurun!'); Exit; } randomNum = Round(Random * 9000) + 1000; hocaCode = 'TCH' + IntToStr(randomNum); jsonStr = '{"hocaAdi":"' + hocaName + '","sifre":"' + hocaPass + '"'; jsonStr = jsonStr + ',"kurumKodu":"' + fonksiyonlar.SessionInstId + '"'; jsonStr = jsonStr + ',"brans":"' + Trim(edtBrans.Text) + '"'; jsonStr = jsonStr + ',"telefon":"' + Trim(edtTelefon.Text) + '"'; jsonStr = jsonStr + ',"tc":"' + Trim(edtTC.Text) + '"'; jsonStr = jsonStr + ',"maas":"' + Trim(edtMaas.Text) + '"'; jsonStr = jsonStr + ',"tarih":"' + Trim(edtTarih.Text) + '"'; if (cbSurekli.IsChecked) { jsonStr = jsonStr + ',"surekli":"Surekli Calisan"'; } else { jsonStr = jsonStr + ',"surekli":"Kisa Sureli"'; } jsonStr = jsonStr + '}'; baseUrl = Trim(fonksiyonlar.FirebaseURL); if (Copy(baseUrl, Length(baseUrl), 1) == '/') { baseUrl = Copy(baseUrl, 1, Length(baseUrl) - 1); } urlStr = baseUrl + '/ogretmenler/' + hocaCode + '.json'; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.ContentType = 'application/json'; clRest.BaseURL = urlStr; clRest.Method = rmPUT; clRest.Body = jsonStr; clRest.Execute; ShowMessage('Ogretmen basariyla eklendi! Hoca Giris Kodu: ' + hocaCode); edtHocaName.Text = ''; edtHocaPass.Text = ''; edtBrans.Text = ''; edtTelefon.Text = ''; edtTC.Text = ''; edtMaas.Text = ''; edtTarih.Text = ''; cbSurekli.IsChecked = False; LoadTeachers; } void DeleteTeacher; var clRest: TclRest; urlStr, baseUrl: String; { if (selectedTeacherCode == '') { Exit; } if (Ask(selectedTeacherCode + ' kodlu ogretmeni silmek istediginize emin misiniz?')) { baseUrl = Trim(fonksiyonlar.FirebaseURL); if (Copy(baseUrl, Length(baseUrl), 1) == '/') { baseUrl = Copy(baseUrl, 1, Length(baseUrl) - 1); } urlStr = baseUrl + '/ogretmenler/' + selectedTeacherCode + '.json'; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.ContentType = 'application/json'; clRest.BaseURL = urlStr; clRest.Method = rmDELETE; clRest.Execute; ShowMessage('Ogretmen basariyla silindi!'); CloseBottomSheet; LoadTeachers; } } void CallTeacher; var num: String; { num = Trim(TeacherPhones[ClickedTeacherIndex]); if ((num == '') || (num == '00000000000') || (num == '-')) { ShowMessage('Telefon numarasi kayitli degil!'); } else { TClomosyOS.Dial(num); } CloseBottomSheet; } void MsgTeacher; var num: String; { num = Trim(TeacherPhones[ClickedTeacherIndex]); if ((num == '') || (num == '00000000000') || (num == '-')) { ShowMessage('Telefon numarasi kayitli degil!'); } else { TClomosyOS.OpenURL('https://wa.me/90' + num); } CloseBottomSheet; } void OnItemClick; { ClickedTeacherIndex = TeacherListView.ItemIndex; selectedTeacherCode = TeacherCodes[ClickedTeacherIndex]; lblSheetTitle.Text = TeacherNames[ClickedTeacherIndex] + ' Islemleri'; OpenBottomSheet; } { ManagerForm = TclForm.Create(Self); ManagerForm.clSetWindowState(fwsMaximized); ManagerForm.SetFormColor('#0F172A', '', clGNone); ScrollManager = ManagerForm.AddNewVertScrollBox(ManagerForm, 'ScrollManager'); ScrollManager.Align = alClient; ScrollManager.Margins.Left = 10; ScrollManager.Margins.Right = 10; ScrollManager.Margins.Bottom = 10; FormPnl = ManagerForm.AddNewProPanel(ScrollManager, 'FormPnl'); FormPnl.Align = alTop; FormPnl.Height = 620; FormPnl.Margins.Top = 15; FormPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B'); FormPnl.clProSettings.RoundHeight = 15; FormPnl.clProSettings.RoundWidth = 15; FormPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#334155'); FormPnl.clProSettings.BorderWidth = 2; FormPnl.SetclProSettings(FormPnl.clProSettings); // 1. Ad Soyad edtHocaName = ManagerForm.AddNewProEdit(FormPnl, 'edtHocaName', 'Ogretmen Adi Soyadi...'); edtHocaName.Align = alTop; edtHocaName.Height = 45; edtHocaName.Margins.Top = 15; edtHocaName.Margins.Left = 15; edtHocaName.Margins.Right = 15; edtHocaName.clProSettings.FontColor = clAlphaColor.clWhite; edtHocaName.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtHocaName.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtHocaName.clProSettings.BorderWidth = 1; edtHocaName.clProSettings.RoundHeight = 8; edtHocaName.clProSettings.RoundWidth = 8; edtHocaName.SetclProSettings(edtHocaName.clProSettings); // 2. Şifre edtHocaPass = ManagerForm.AddNewProEdit(FormPnl, 'edtHocaPass', 'Giris Sifresi Belirleyin...'); edtHocaPass.Align = alTop; edtHocaPass.Height = 45; edtHocaPass.Margins.Top = 10; edtHocaPass.Margins.Left = 15; edtHocaPass.Margins.Right = 15; edtHocaPass.clProSettings.FontColor = clAlphaColor.clWhite; edtHocaPass.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtHocaPass.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtHocaPass.clProSettings.BorderWidth = 1; edtHocaPass.clProSettings.RoundHeight = 8; edtHocaPass.clProSettings.RoundWidth = 8; edtHocaPass.SetclProSettings(edtHocaPass.clProSettings); // 3. Branş edtBrans = ManagerForm.AddNewProEdit(FormPnl, 'edtBrans', 'Brans (Matematik, Fizik vs.)...'); edtBrans.Align = alTop; edtBrans.Height = 45; edtBrans.Margins.Top = 10; edtBrans.Margins.Left = 15; edtBrans.Margins.Right = 15; edtBrans.clProSettings.FontColor = clAlphaColor.clWhite; edtBrans.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtBrans.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtBrans.clProSettings.BorderWidth = 1; edtBrans.clProSettings.RoundHeight = 8; edtBrans.clProSettings.RoundWidth = 8; edtBrans.SetclProSettings(edtBrans.clProSettings); // 4. Telefon edtTelefon = ManagerForm.AddNewProEdit(FormPnl, 'edtTelefon', 'Telefon Numarasi (05XX)...'); edtTelefon.Align = alTop; edtTelefon.Height = 45; edtTelefon.Margins.Top = 10; edtTelefon.Margins.Left = 15; edtTelefon.Margins.Right = 15; edtTelefon.clProSettings.FontColor = clAlphaColor.clWhite; edtTelefon.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtTelefon.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtTelefon.clProSettings.BorderWidth = 1; edtTelefon.clProSettings.RoundHeight = 8; edtTelefon.clProSettings.RoundWidth = 8; edtTelefon.SetclProSettings(edtTelefon.clProSettings); // 5. TC Kimlik edtTC = ManagerForm.AddNewProEdit(FormPnl, 'edtTC', 'TC Kimlik Numarasi...'); edtTC.Align = alTop; edtTC.Height = 45; edtTC.Margins.Top = 10; edtTC.Margins.Left = 15; edtTC.Margins.Right = 15; edtTC.clProSettings.FontColor = clAlphaColor.clWhite; edtTC.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtTC.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtTC.clProSettings.BorderWidth = 1; edtTC.clProSettings.RoundHeight = 8; edtTC.clProSettings.RoundWidth = 8; edtTC.SetclProSettings(edtTC.clProSettings); // 6. Maaş edtMaas = ManagerForm.AddNewProEdit(FormPnl, 'edtMaas', 'Aylik Maas (TL)...'); edtMaas.Align = alTop; edtMaas.Height = 45; edtMaas.Margins.Top = 10; edtMaas.Margins.Left = 15; edtMaas.Margins.Right = 15; edtMaas.clProSettings.FontColor = clAlphaColor.clWhite; edtMaas.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtMaas.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtMaas.clProSettings.BorderWidth = 1; edtMaas.clProSettings.RoundHeight = 8; edtMaas.clProSettings.RoundWidth = 8; edtMaas.SetclProSettings(edtMaas.clProSettings); // 7. Tarih edtTarih = ManagerForm.AddNewProEdit(FormPnl, 'edtTarih', 'Ise Baslama Tarihi (GG/AA/YYYY)...'); edtTarih.Align = alTop; edtTarih.Height = 45; edtTarih.Margins.Top = 10; edtTarih.Margins.Left = 15; edtTarih.Margins.Right = 15; edtTarih.clProSettings.FontColor = clAlphaColor.clWhite; edtTarih.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtTarih.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtTarih.clProSettings.BorderWidth = 1; edtTarih.clProSettings.RoundHeight = 8; edtTarih.clProSettings.RoundWidth = 8; edtTarih.SetclProSettings(edtTarih.clProSettings); // 8. Checkbox cbSurekli = ManagerForm.AddNewCheckBox(FormPnl, 'cbSurekli', 'Surekli Calisan (Secilmezse Kisa Sureli)'); cbSurekli.Align = alTop; cbSurekli.Height = 30; cbSurekli.Margins.Top = 15; cbSurekli.Margins.Left = 20; cbSurekli.Margins.Right = 20; cbSurekli.TextSettings.FontColor = clAlphaColor.clWhite; // Kaydet Butonu btnSaveHoca = fonksiyonlar.CreateMyProButton(ManagerForm, FormPnl, 'btnSaveHoca', '[+] Ogretmen Kaydet', '#10B981', 45); btnSaveHoca.Align = alTop; btnSaveHoca.Margins.Top = 20; btnSaveHoca.Margins.Left = 15; btnSaveHoca.Margins.Right = 15; btnSaveHoca.Margins.Bottom = 20; ManagerForm.AddNewEvent(btnSaveHoca, tbeOnClick, 'SaveTeacher'); // Liste Başlığı fonksiyonlar.CreateSectionLabel(ManagerForm, ScrollManager, 'lblTitleList', 'KAYITLI OGRETMENLER LISTESI'); // Öğretmen Listesi TeacherListView = ManagerForm.AddNewListView(ScrollManager, 'TeacherListView'); TeacherListView.Align = alTop; TeacherListView.Height = 500; TeacherListView.Margins.Top = 5; TeacherListView.Margins.Left = 15; TeacherListView.Margins.Right = 15; TeacherListView.Margins.Bottom = 20; ManagerForm.AddNewEvent(TeacherListView, tbeOnClick, 'OnItemClick'); // --- POPUP MENU --- BackdropPnl = ManagerForm.AddNewProPanel(ManagerForm, 'BackdropPnl'); BackdropPnl.Align = alClient; BackdropPnl.clProSettings.IsTransparent = True; BackdropPnl.Visible = False; BackdropPnl.SetclProSettings(BackdropPnl.clProSettings); ManagerForm.AddNewEvent(BackdropPnl, tbeOnClick, 'CloseBottomSheet'); SheetPnl = ManagerForm.AddNewProPanel(BackdropPnl, 'SheetPnl'); SheetPnl.Align = alCenter; SheetPnl.Width = 340; SheetPnl.Height = 350; SheetPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B'); SheetPnl.clProSettings.RoundHeight = 20; SheetPnl.clProSettings.RoundWidth = 20; SheetPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); SheetPnl.clProSettings.BorderWidth = 2; SheetPnl.SetclProSettings(SheetPnl.clProSettings); lblSheetTitle = ManagerForm.AddNewProLabel(SheetPnl, 'lblSheetTitle', 'Ogretmen Islemleri'); lblSheetTitle.Align = alTop; lblSheetTitle.Height = 65; lblSheetTitle.Margins.Top = 15; lblSheetTitle.clProSettings.FontColor = clAlphaColor.clWhite; lblSheetTitle.clProSettings.FontSize = 18; lblSheetTitle.clProSettings.FontHorzAlign = palCenter; lblSheetTitle.clProSettings.TextSettings.Font.Style = [fsBold]; lblSheetTitle.SetclProSettings(lblSheetTitle.clProSettings); btnCallTeacher = fonksiyonlar.CreateMyProButton(ManagerForm, SheetPnl, 'btnCallTeacher', 'Ogretmeni Ara', '#2563EB', 45); btnCallTeacher.Align = alTop; btnCallTeacher.Margins.Left = 25; btnCallTeacher.Margins.Right = 25; btnCallTeacher.Margins.Bottom = 10; ManagerForm.AddNewEvent(btnCallTeacher, tbeOnClick, 'CallTeacher'); btnMsgTeacher = fonksiyonlar.CreateMyProButton(ManagerForm, SheetPnl, 'btnMsgTeacher', 'WhatsApp`tan Yaz', '#10B981', 45); btnMsgTeacher.Align = alTop; btnMsgTeacher.Margins.Left = 25; btnMsgTeacher.Margins.Right = 25; btnMsgTeacher.Margins.Bottom = 15; ManagerForm.AddNewEvent(btnMsgTeacher, tbeOnClick, 'MsgTeacher'); btnSheetDelete = fonksiyonlar.CreateMyProButton(ManagerForm, SheetPnl, 'btnSheetDelete', 'Ogretmeni Sistemden Sil', '#EF4444', 45); btnSheetDelete.Align = alTop; btnSheetDelete.Margins.Left = 25; btnSheetDelete.Margins.Right = 25; btnSheetDelete.Margins.Bottom = 15; ManagerForm.AddNewEvent(btnSheetDelete, tbeOnClick, 'DeleteTeacher'); LoadTeachers; ManagerForm.Run; }



RUNTIME ERROR
File library manager: Variant or safe array index out of bounds when evaluating instruction PushGlobalIdxVar ($14,$1,$0,$0,'TeacherCodes').
Stack content is: [OleStr:TCH1181,-1,2,(unknown)...].
Source position: 234,58
Position: 234, 58


//yapay zekanın düzenlediği kod hatayı kaldırdı//
/Standart TclListView bazen direkt satıra tam ortadan tıklanmadığında bize ItemIndex değerini -1 (yani bulunamadı) olarak döndürüyor. "Clomosy'deki standart liste (TclListView) elemanlarına tıklanıldığında bazen sistem ItemIndex olarak boşluğa tıklandığı varsayıp -1 değerini döndürüyor, bu da diziden yanlış kişi (veya boşluk) çağırmamıza yol açıyordu. Biz de bunu, tıklanan elemanın alt metnindeki (SUB_TEXT) 'TCH...' kodunu bularak (string parçalama ile) sistemi kendi veritabanı dizimizde (TeacherCodes) eşleştirip doğru sırayı güvenli bir şekilde bulacak şekilde değiştirdik."
ai hatanın ve çözümün bu olduğunu söylüyor!!!
/////////////////////////////////
// manager.tro uses fonksiyonlar; var ManagerForm: TclForm; ScrollManager: TclVertScrollBox; FormPnl: TclProPanel; edtHocaName, edtHocaPass: TclProEdit; edtBrans, edtTelefon, edtTC, edtMaas, edtTarih: TclProEdit; cbSurekli: TclCheckBox; btnSaveHoca: TclProButton; TeacherListView: TclListView; BackdropPnl, SheetPnl: TclProPanel; lblSheetTitle: TclProLabel; btnSheetClose, btnSheetDelete, btnCallTeacher, btnMsgTeacher: TclProButton; TeacherCodes: array[0..100] of String; TeacherNames: array[0..100] of String; TeacherPhones: array[0..100] of String; TotalTeachers: Integer; ClickedTeacherIndex: Integer; selectedTeacherCode: String; void CloseBottomSheet; { BackdropPnl.Visible = False; SheetPnl.Visible = False; } void OpenBottomSheet; { BackdropPnl.Visible = True; BackdropPnl.BringToFront; SheetPnl.Visible = True; SheetPnl.BringToFront; } void LoadTeachers; var clRest: TclRest; resp: String; idx, keyStart, keyEnd, braceCount: Integer; ch, hocaCode, hocaData, hocaName, hocaPass, instId: String; brans, telefon, tc, maas, tarih, surekli: String; urlStr, baseUrl, jsonList: String; { baseUrl = Trim(fonksiyonlar.FirebaseURL); if (Copy(baseUrl, Length(baseUrl), 1) == '/') { baseUrl = Copy(baseUrl, 1, Length(baseUrl) - 1); } urlStr = baseUrl + '/ogretmenler.json'; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.ContentType = 'application/json'; clRest.BaseURL = urlStr; clRest.Method = rmGET; clRest.Execute; resp = Trim(clRest.Response); if ((resp == 'null') || (Length(resp) == 0) || (resp == '{}')) { TeacherListView.clLoadListViewDataFromDataset(Clomosy.ClDataSetFromJSON('[]')); Exit; } jsonList = '['; TotalTeachers = 0; idx = 2; while (idx < Length(resp)) { keyStart = Pos('"', Copy(resp, idx, Length(resp))); if (keyStart == 0) { Break; } keyStart = idx + keyStart - 1; keyEnd = Pos('"', Copy(resp, keyStart + 1, Length(resp))); if (keyEnd == 0) { Break; } keyEnd = keyStart + 1 + keyEnd - 1; hocaCode = Copy(resp, keyStart + 1, keyEnd - keyStart - 1); idx = keyEnd + 1; while ((idx < Length(resp)) && (Copy(resp, idx, 1) <> '{')) { idx = idx + 1; } if (idx >= Length(resp)) { Break; } keyStart = idx; braceCount = 1; idx = idx + 1; while ((idx <= Length(resp)) && (braceCount > 0)) { ch = Copy(resp, idx, 1); if (ch == '{') { braceCount = braceCount + 1; } else if (ch == '}') { braceCount = braceCount - 1; } idx = idx + 1; } hocaData = Copy(resp, keyStart, idx - keyStart); if (Pos('"kurumKodu"', hocaData) > 0) { instId = Clomosy.CLParseJSON(hocaData, 'kurumKodu'); } else { instId = ''; } if (Pos('"hocaAdi"', hocaData) > 0) { hocaName = Clomosy.CLParseJSON(hocaData, 'hocaAdi'); } else { hocaName = 'İsimsiz'; } if (Pos('"sifre"', hocaData) > 0) { hocaPass = Clomosy.CLParseJSON(hocaData, 'sifre'); } else { hocaPass = ''; } if (Pos('"brans"', hocaData) > 0) { brans = Clomosy.CLParseJSON(hocaData, 'brans'); } else { brans = '-'; } if (Pos('"telefon"', hocaData) > 0) { telefon = Clomosy.CLParseJSON(hocaData, 'telefon'); } else { telefon = '-'; } if (Pos('"tc"', hocaData) > 0) { tc = Clomosy.CLParseJSON(hocaData, 'tc'); } else { tc = '-'; } if (Pos('"maas"', hocaData) > 0) { maas = Clomosy.CLParseJSON(hocaData, 'maas'); } else { maas = '-'; } if (Pos('"tarih"', hocaData) > 0) { tarih = Clomosy.CLParseJSON(hocaData, 'tarih'); } else { tarih = '-'; } if (Pos('"surekli"', hocaData) > 0) { surekli = Clomosy.CLParseJSON(hocaData, 'surekli'); } else { surekli = '-'; } if (instId == fonksiyonlar.SessionInstId) { if (TotalTeachers < 100) { TeacherCodes[TotalTeachers] = hocaCode; TeacherNames[TotalTeachers] = hocaName; TeacherPhones[TotalTeachers] = telefon; if (jsonList <> '[') { jsonList = jsonList + ','; } jsonList = jsonList + '{"MAIN_TEXT":"' + hocaName + ' (' + brans + ')", "SUB_TEXT":"Kod: ' + hocaCode + ' | Tip: ' + surekli + ' | Maas: ' + maas + ' | Baslama: ' + tarih + '"}'; TotalTeachers = TotalTeachers + 1; } } } jsonList = jsonList + ']'; TeacherListView.clLoadListViewDataFromDataset(Clomosy.ClDataSetFromJSON(jsonList)); } void SaveTeacher; var clRest: TclRest; jsonStr, hocaName, hocaPass, hocaCode, urlStr, baseUrl: String; randomNum: Integer; { hocaName = Trim(edtHocaName.Text); hocaPass = Trim(edtHocaPass.Text); if ((Length(hocaName) == 0) || (Length(hocaPass) == 0)) { ShowMessage('Lutfen en azindan ogretmen adi ve sifre alanlarini doldurun!'); Exit; } randomNum = Round(Random * 9000) + 1000; hocaCode = 'TCH' + IntToStr(randomNum); jsonStr = '{"hocaAdi":"' + hocaName + '","sifre":"' + hocaPass + '"'; jsonStr = jsonStr + ',"kurumKodu":"' + fonksiyonlar.SessionInstId + '"'; jsonStr = jsonStr + ',"brans":"' + Trim(edtBrans.Text) + '"'; jsonStr = jsonStr + ',"telefon":"' + Trim(edtTelefon.Text) + '"'; jsonStr = jsonStr + ',"tc":"' + Trim(edtTC.Text) + '"'; jsonStr = jsonStr + ',"maas":"' + Trim(edtMaas.Text) + '"'; jsonStr = jsonStr + ',"tarih":"' + Trim(edtTarih.Text) + '"'; if (cbSurekli.IsChecked) { jsonStr = jsonStr + ',"surekli":"Surekli Calisan"'; } else { jsonStr = jsonStr + ',"surekli":"Kisa Sureli"'; } jsonStr = jsonStr + '}'; baseUrl = Trim(fonksiyonlar.FirebaseURL); if (Copy(baseUrl, Length(baseUrl), 1) == '/') { baseUrl = Copy(baseUrl, 1, Length(baseUrl) - 1); } urlStr = baseUrl + '/ogretmenler/' + hocaCode + '.json'; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.ContentType = 'application/json'; clRest.BaseURL = urlStr; clRest.Method = rmPUT; clRest.Body = jsonStr; clRest.Execute; ShowMessage('Ogretmen basariyla eklendi! Hoca Giris Kodu: ' + hocaCode); edtHocaName.Text = ''; edtHocaPass.Text = ''; edtBrans.Text = ''; edtTelefon.Text = ''; edtTC.Text = ''; edtMaas.Text = ''; edtTarih.Text = ''; cbSurekli.IsChecked = False; LoadTeachers; } void DeleteTeacher; var clRest: TclRest; urlStr, baseUrl: String; { if (selectedTeacherCode == '') { Exit; } if (Ask(selectedTeacherCode + ' kodlu ogretmeni silmek istediginize emin misiniz?')) { baseUrl = Trim(fonksiyonlar.FirebaseURL); if (Copy(baseUrl, Length(baseUrl), 1) == '/') { baseUrl = Copy(baseUrl, 1, Length(baseUrl) - 1); } urlStr = baseUrl + '/ogretmenler/' + selectedTeacherCode + '.json'; clRest = TclRest.Create; clRest.Accept = 'application/json'; clRest.ContentType = 'application/json'; clRest.BaseURL = urlStr; clRest.Method = rmDELETE; clRest.Execute; ShowMessage('Ogretmen basariyla silindi!'); CloseBottomSheet; LoadTeachers; } } void CallTeacher; var num: String; { num = Trim(TeacherPhones[ClickedTeacherIndex]); if ((num == '') || (num == '00000000000') || (num == '-')) { ShowMessage('Telefon numarasi kayitli degil!'); } else { TClomosyOS.Dial(num); } CloseBottomSheet; } void MsgTeacher; var num: String; { num = Trim(TeacherPhones[ClickedTeacherIndex]); if ((num == '') || (num == '00000000000') || (num == '-')) { ShowMessage('Telefon numarasi kayitli degil!'); } else { TClomosyOS.OpenURL('https://wa.me/90' + num); } CloseBottomSheet; } void OnItemClick; var clickedText: String; startPos: Integer; tempStr: String; i: Integer; { clickedText = TeacherListView.clSelectedItemData('SUB_TEXT'); startPos = Pos('Kod: ', clickedText); if (startPos > 0) { tempStr = Copy(clickedText, startPos + 5, 20); selectedTeacherCode = Copy(tempStr, 1, Pos(' |', tempStr) - 1); ClickedTeacherIndex = -1; for i = 0 to TotalTeachers - 1 { if (TeacherCodes == selectedTeacherCode) { ClickedTeacherIndex = i; } } if (ClickedTeacherIndex <> -1) { lblSheetTitle.Text = TeacherNames[ClickedTeacherIndex] + ' Islemleri'; OpenBottomSheet; } } } { ManagerForm = TclForm.Create(Self); ManagerForm.clSetWindowState(fwsMaximized); ManagerForm.SetFormColor('#0F172A', '', clGNone); ScrollManager = ManagerForm.AddNewVertScrollBox(ManagerForm, 'ScrollManager'); ScrollManager.Align = alClient; ScrollManager.Margins.Left = 10; ScrollManager.Margins.Right = 10; ScrollManager.Margins.Bottom = 10; FormPnl = ManagerForm.AddNewProPanel(ScrollManager, 'FormPnl'); FormPnl.Align = alTop; FormPnl.Height = 620; FormPnl.Margins.Top = 15; FormPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B'); FormPnl.clProSettings.RoundHeight = 15; FormPnl.clProSettings.RoundWidth = 15; FormPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#334155'); FormPnl.clProSettings.BorderWidth = 2; FormPnl.SetclProSettings(FormPnl.clProSettings); // 1. Ad Soyad edtHocaName = ManagerForm.AddNewProEdit(FormPnl, 'edtHocaName', 'Ogretmen Adi Soyadi...'); edtHocaName.Align = alTop; edtHocaName.Height = 45; edtHocaName.Margins.Top = 15; edtHocaName.Margins.Left = 15; edtHocaName.Margins.Right = 15; edtHocaName.clProSettings.FontColor = clAlphaColor.clWhite; edtHocaName.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtHocaName.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtHocaName.clProSettings.BorderWidth = 1; edtHocaName.clProSettings.RoundHeight = 8; edtHocaName.clProSettings.RoundWidth = 8; edtHocaName.SetclProSettings(edtHocaName.clProSettings); // 2. Şifre edtHocaPass = ManagerForm.AddNewProEdit(FormPnl, 'edtHocaPass', 'Giris Sifresi Belirleyin...'); edtHocaPass.Align = alTop; edtHocaPass.Height = 45; edtHocaPass.Margins.Top = 10; edtHocaPass.Margins.Left = 15; edtHocaPass.Margins.Right = 15; edtHocaPass.clProSettings.FontColor = clAlphaColor.clWhite; edtHocaPass.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtHocaPass.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtHocaPass.clProSettings.BorderWidth = 1; edtHocaPass.clProSettings.RoundHeight = 8; edtHocaPass.clProSettings.RoundWidth = 8; edtHocaPass.SetclProSettings(edtHocaPass.clProSettings); // 3. Branş edtBrans = ManagerForm.AddNewProEdit(FormPnl, 'edtBrans', 'Brans (Matematik, Fizik vs.)...'); edtBrans.Align = alTop; edtBrans.Height = 45; edtBrans.Margins.Top = 10; edtBrans.Margins.Left = 15; edtBrans.Margins.Right = 15; edtBrans.clProSettings.FontColor = clAlphaColor.clWhite; edtBrans.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtBrans.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtBrans.clProSettings.BorderWidth = 1; edtBrans.clProSettings.RoundHeight = 8; edtBrans.clProSettings.RoundWidth = 8; edtBrans.SetclProSettings(edtBrans.clProSettings); // 4. Telefon edtTelefon = ManagerForm.AddNewProEdit(FormPnl, 'edtTelefon', 'Telefon Numarasi (05XX)...'); edtTelefon.Align = alTop; edtTelefon.Height = 45; edtTelefon.Margins.Top = 10; edtTelefon.Margins.Left = 15; edtTelefon.Margins.Right = 15; edtTelefon.clProSettings.FontColor = clAlphaColor.clWhite; edtTelefon.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtTelefon.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtTelefon.clProSettings.BorderWidth = 1; edtTelefon.clProSettings.RoundHeight = 8; edtTelefon.clProSettings.RoundWidth = 8; edtTelefon.SetclProSettings(edtTelefon.clProSettings); // 5. TC Kimlik edtTC = ManagerForm.AddNewProEdit(FormPnl, 'edtTC', 'TC Kimlik Numarasi...'); edtTC.Align = alTop; edtTC.Height = 45; edtTC.Margins.Top = 10; edtTC.Margins.Left = 15; edtTC.Margins.Right = 15; edtTC.clProSettings.FontColor = clAlphaColor.clWhite; edtTC.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtTC.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtTC.clProSettings.BorderWidth = 1; edtTC.clProSettings.RoundHeight = 8; edtTC.clProSettings.RoundWidth = 8; edtTC.SetclProSettings(edtTC.clProSettings); // 6. Maaş edtMaas = ManagerForm.AddNewProEdit(FormPnl, 'edtMaas', 'Aylik Maas (TL)...'); edtMaas.Align = alTop; edtMaas.Height = 45; edtMaas.Margins.Top = 10; edtMaas.Margins.Left = 15; edtMaas.Margins.Right = 15; edtMaas.clProSettings.FontColor = clAlphaColor.clWhite; edtMaas.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtMaas.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtMaas.clProSettings.BorderWidth = 1; edtMaas.clProSettings.RoundHeight = 8; edtMaas.clProSettings.RoundWidth = 8; edtMaas.SetclProSettings(edtMaas.clProSettings); // 7. Tarih edtTarih = ManagerForm.AddNewProEdit(FormPnl, 'edtTarih', 'Ise Baslama Tarihi (GG/AA/YYYY)...'); edtTarih.Align = alTop; edtTarih.Height = 45; edtTarih.Margins.Top = 10; edtTarih.Margins.Left = 15; edtTarih.Margins.Right = 15; edtTarih.clProSettings.FontColor = clAlphaColor.clWhite; edtTarih.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A'); edtTarih.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); edtTarih.clProSettings.BorderWidth = 1; edtTarih.clProSettings.RoundHeight = 8; edtTarih.clProSettings.RoundWidth = 8; edtTarih.SetclProSettings(edtTarih.clProSettings); // 8. Checkbox cbSurekli = ManagerForm.AddNewCheckBox(FormPnl, 'cbSurekli', 'Surekli Calisan (Secilmezse Kisa Sureli)'); cbSurekli.Align = alTop; cbSurekli.Height = 30; cbSurekli.Margins.Top = 15; cbSurekli.Margins.Left = 20; cbSurekli.Margins.Right = 20; cbSurekli.TextSettings.FontColor = clAlphaColor.clWhite; // Kaydet Butonu btnSaveHoca = fonksiyonlar.CreateMyProButton(ManagerForm, FormPnl, 'btnSaveHoca', '[+] Ogretmen Kaydet', '#10B981', 45); btnSaveHoca.Align = alTop; btnSaveHoca.Margins.Top = 20; btnSaveHoca.Margins.Left = 15; btnSaveHoca.Margins.Right = 15; btnSaveHoca.Margins.Bottom = 20; ManagerForm.AddNewEvent(btnSaveHoca, tbeOnClick, 'SaveTeacher'); // Liste Başlığı fonksiyonlar.CreateSectionLabel(ManagerForm, ScrollManager, 'lblTitleList', 'KAYITLI OGRETMENLER LISTESI'); // Öğretmen Listesi TeacherListView = ManagerForm.AddNewListView(ScrollManager, 'TeacherListView'); TeacherListView.Align = alTop; TeacherListView.Height = 500; TeacherListView.Margins.Top = 5; TeacherListView.Margins.Left = 15; TeacherListView.Margins.Right = 15; TeacherListView.Margins.Bottom = 20; ManagerForm.AddNewEvent(TeacherListView, tbeOnClick, 'OnItemClick'); // --- POPUP MENU --- BackdropPnl = ManagerForm.AddNewProPanel(ManagerForm, 'BackdropPnl'); BackdropPnl.Align = alClient; BackdropPnl.clProSettings.IsTransparent = True; BackdropPnl.Visible = False; BackdropPnl.SetclProSettings(BackdropPnl.clProSettings); ManagerForm.AddNewEvent(BackdropPnl, tbeOnClick, 'CloseBottomSheet'); SheetPnl = ManagerForm.AddNewProPanel(BackdropPnl, 'SheetPnl'); SheetPnl.Align = alCenter; SheetPnl.Width = 340; SheetPnl.Height = 350; SheetPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B'); SheetPnl.clProSettings.RoundHeight = 20; SheetPnl.clProSettings.RoundWidth = 20; SheetPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#475569'); SheetPnl.clProSettings.BorderWidth = 2; SheetPnl.SetclProSettings(SheetPnl.clProSettings); lblSheetTitle = ManagerForm.AddNewProLabel(SheetPnl, 'lblSheetTitle', 'Ogretmen Islemleri'); lblSheetTitle.Align = alTop; lblSheetTitle.Height = 65; lblSheetTitle.Margins.Top = 15; lblSheetTitle.clProSettings.FontColor = clAlphaColor.clWhite; lblSheetTitle.clProSettings.FontSize = 18; lblSheetTitle.clProSettings.FontHorzAlign = palCenter; lblSheetTitle.clProSettings.TextSettings.Font.Style = [fsBold]; lblSheetTitle.SetclProSettings(lblSheetTitle.clProSettings); btnCallTeacher = fonksiyonlar.CreateMyProButton(ManagerForm, SheetPnl, 'btnCallTeacher', 'Ogretmeni Ara', '#2563EB', 45); btnCallTeacher.Align = alTop; btnCallTeacher.Margins.Left = 25; btnCallTeacher.Margins.Right = 25; btnCallTeacher.Margins.Bottom = 10; ManagerForm.AddNewEvent(btnCallTeacher, tbeOnClick, 'CallTeacher'); btnMsgTeacher = fonksiyonlar.CreateMyProButton(ManagerForm, SheetPnl, 'btnMsgTeacher', 'WhatsApp`tan Yaz', '#10B981', 45); btnMsgTeacher.Align = alTop; btnMsgTeacher.Margins.Left = 25; btnMsgTeacher.Margins.Right = 25; btnMsgTeacher.Margins.Bottom = 15; ManagerForm.AddNewEvent(btnMsgTeacher, tbeOnClick, 'MsgTeacher'); btnSheetDelete = fonksiyonlar.CreateMyProButton(ManagerForm, SheetPnl, 'btnSheetDelete', 'Ogretmeni Sistemden Sil', '#EF4444', 45); btnSheetDelete.Align = alTop; btnSheetDelete.Margins.Left = 25; btnSheetDelete.Margins.Right = 25; btnSheetDelete.Margins.Bottom = 15; ManagerForm.AddNewEvent(btnSheetDelete, tbeOnClick, 'DeleteTeacher'); LoadTeachers; ManagerForm.Run; }
////////////////////
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">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 945
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 1 saat 46 Dakika Önce Saat 17:33
Tamamdır Veli 
Teşekkür ederimhttps://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">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,047 Saniyede Yüklendi.