Merhabalar
Syntax hatalarına baktım and yerine && or yerine ||kullanmakla gerekli if koşulunda then kullanmaman gerekli
StringReplace yerine de ClGetStringReplace kullanman gerekli
var MainForm, YeniKayitForm, OnayForm : TclForm; LblBaslik, LblStokBilgi, LblBarkodSonuc : TclLabel; BtnOku, BtnCikis, BtnSil, BtnGitYeniKayit : TclProButton; QRGen : TClQRCodeGenerator; LytQR : TclLayout; ShareService : TclShareService; AktifBarkod, StokJSON, StokDosyaYolu : string; EdtBarkod, EdtIsim, EdtAdet, EdtFiyat : TclProEdit; BtnKaydet : TclProButton; BtnEvet, BtnHayir, BtnDisaAktar : TclProButton; LblOnaySoru : TclLabel;
function PosEx(SubStr, S: string; Offset: Integer): Integer; var TempStr: string; FoundPos: Integer; { TempStr = Copy(S, Offset, Length(S)); FoundPos = Pos(SubStr, TempStr); if (FoundPos > 0) { Result = FoundPos + Offset - 1; } else { Result = 0; } }
function JSONGetField(jsonText, fieldName: string): string; var startTag: string; startPos, endPos: integer; { startTag = '"' + fieldName + '": "'; startPos = Pos(startTag, jsonText); if (startPos > 0) { startPos = startPos + Length(startTag); endPos = PosEx('"', jsonText, startPos); Result = Copy(jsonText, startPos, endPos - startPos); } else { Result = ''; } }
function JSONGetNumber(jsonText, fieldName: string): string; var startTag, c: string; startPos, endPos : integer; { startTag = '"' + fieldName + '": '; startPos = Pos(startTag, jsonText); if (startPos > 0) { startPos = startPos + Length(startTag); endPos = startPos; while (endPos <= Length(jsonText)) { c = Copy(jsonText, endPos, 1); if (((c >= '0') && (c <= '9')) || (c == '.')) { endPos = endPos + 1; } else { break; } } Result = Copy(jsonText, startPos, endPos - startPos); } else { Result = '0'; } }
void VeritabaniKaydet; { clSaveToFile(StokDosyaYolu, StokJSON); }
void VeritabaniYukle; { StokDosyaYolu = clPathCombine('stok_listesi.json', Clomosy.AppFilesPath); if (clFileExists(StokDosyaYolu)) { StokJSON = clLoadFromFile(StokDosyaYolu); } else { StokJSON = '{}'; } }
void BarkodOkundu; var ham, barkodNo, urunBlok, isim, adet, fiyat : string; startPos, endPos : integer; blokTag : string; { ham = LblBarkodSonuc.Text; if (ham == '') { Exit; } barkodNo = clGetStringReplace(ham, 'CELIK-STOK-', ''); AktifBarkod = barkodNo; blokTag = '"' + barkodNo + '": {'; startPos = Pos(blokTag, StokJSON); if (startPos > 0) { endPos = PosEx('}', StokJSON, startPos); urunBlok = Copy(StokJSON, startPos, endPos - startPos + 1); isim = JSONGetField(urunBlok, 'isim'); adet = JSONGetNumber(urunBlok, 'adet'); fiyat = JSONGetNumber(urunBlok, 'fiyat'); LblStokBilgi.Text = 'Ürün: ' + isim + #13#10 + 'Adet: ' + adet + #13#10 + 'Fiyat: ' + fiyat + ' TL'; } else { LblStokBilgi.Text = 'Barkod: ' + barkodNo + #13#10 + 'Kayıtlı değil.'; } }
void SilmeIsleminiGerceklestir; var blokTag: string; startPos, endPos: integer; { blokTag = '"' + AktifBarkod + '":'; startPos = Pos(blokTag, StokJSON); if (startPos > 0) { endPos = PosEx('}', StokJSON, startPos); Delete(StokJSON, startPos, endPos - startPos + 1); StokJSON = clGetStringReplace(StokJSON, ',,', ','); StokJSON = clGetStringReplace(StokJSON, '{,', '{'); StokJSON = clGetStringReplace(StokJSON, ',}', '}'); VeritabaniKaydet; LblStokBilgi.Text = 'Ürün silindi.'; AktifBarkod = ''; OnayForm.Close; ShowMessage('Ürün silindi.'); } }
void OnayEkraniKapat; { OnayForm.Close; }
void UrunSilClick; { if (AktifBarkod == '') { ShowMessage('Önce barkod okutun.'); Exit; } OnayForm = TclForm.Create(Self); OnayForm.SetFormColor('#0D1B2A', '', clGNone); LblOnaySoru = OnayForm.AddNewLabel(OnayForm, 'LblOnaySoru', AktifBarkod + ' barkodlu ürün silinsin mi?'); LblOnaySoru.Align = alTop; LblOnaySoru.Height = 80; LblOnaySoru.TextSettings.FontColor = clAlphaColor.clWhite; LblOnaySoru.TextSettings.HorzAlign = palCenter; BtnEvet = OnayForm.AddNewProButton(OnayForm, 'BtnEvet', 'EVET, SİL'); BtnEvet.Align = alTop; BtnEvet.Height = 50; BtnEvet.Margins.Top = 10; BtnEvet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#B71C1C'); BtnEvet.SetclProSettings(BtnEvet.clProSettings); OnayForm.AddNewEvent(BtnEvet, tbeOnClick, 'SilmeIsleminiGerceklestir'); BtnHayir = OnayForm.AddNewProButton(OnayForm, 'BtnHayir', 'HAYIR, İPTAL ET'); BtnHayir.Align = alTop; BtnHayir.Height = 50; BtnHayir.Margins.Top = 10; BtnHayir.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#455A64'); BtnHayir.SetclProSettings(BtnHayir.clProSettings); OnayForm.AddNewEvent(BtnHayir, tbeOnClick, 'OnayEkraniKapat'); OnayForm.Run; }
void GercekKaydiYap; var yeniSatir, qrMetni : string; { if ((EdtBarkod.Text == '') || (EdtIsim.Text == '')) { ShowMessage('Eksik bilgi!'); Exit; } yeniSatir = '"' + EdtBarkod.Text + '": {"isim": "' + EdtIsim.Text + '", "adet": ' + EdtAdet.Text + ', "fiyat": ' + EdtFiyat.Text + '}'; if (StokJSON == '{}') { StokJSON = '{' + yeniSatir + '}'; } else { StokJSON = clGetStringReplace(StokJSON, '}', ',' + yeniSatir + '}'); } VeritabaniKaydet; qrMetni = 'CELIK-STOK-' + EdtBarkod.Text; QRGen.Text = qrMetni; LytQR.Visible = True; ShowMessage('Kayıt Eklendi!'); YeniKayitForm.Close; BarkodOkundu; }
void YeniKayitEkraniAc; { YeniKayitForm = TclForm.Create(Self); YeniKayitForm.SetFormColor('#0D1B2A', '', clGNone); EdtBarkod = YeniKayitForm.AddNewProEdit(YeniKayitForm, 'EdtBarkod', 'Barkod No'); EdtBarkod.Align = alTop; EdtBarkod.Margins.Top = 20; EdtIsim = YeniKayitForm.AddNewProEdit(YeniKayitForm, 'EdtIsim', 'Ürün Adı'); EdtIsim.Align = alTop; EdtIsim.Margins.Top = 10; EdtAdet = YeniKayitForm.AddNewProEdit(YeniKayitForm, 'EdtAdet', 'Adet'); EdtAdet.Align = alTop; EdtAdet.Margins.Top = 10; EdtAdet.Text = '1'; EdtFiyat = YeniKayitForm.AddNewProEdit(YeniKayitForm, 'EdtFiyat', 'Fiyat'); EdtFiyat.Align = alTop; EdtFiyat.Margins.Top = 10; EdtFiyat.Text = '0.0'; BtnKaydet = YeniKayitForm.AddNewProButton(YeniKayitForm, 'BtnKaydet', 'KAYDET VE QR ÜRET'); BtnKaydet.Align = alTop; BtnKaydet.Margins.Top = 20; BtnKaydet.Height = 50; BtnKaydet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E7D32'); BtnKaydet.SetclProSettings(BtnKaydet.clProSettings); YeniKayitForm.AddNewEvent(BtnKaydet, tbeOnClick, 'GercekKaydiYap'); YeniKayitForm.Run; }
void BarkodOkuClick; { MainForm.CallBarcodeReader(LblBarkodSonuc); }
void DisaAktarClick; { ShareService = TclShareService.Create; ShareService.AddFile(StokDosyaYolu); ShareService.Share; }
void CikisClick; { MainForm.Close; }
void FormKurulum; var LytAlt : TclLayout; { LblBaslik = MainForm.AddNewLabel(MainForm, 'LblBaslik', 'CELİKLER MOTOR STOK'); LblBaslik.Align = alTop; LblBaslik.Height = 50; LblBaslik.TextSettings.Font.Size = 18; LblBaslik.TextSettings.FontColor = clAlphaColor.clWhite; LblBarkodSonuc = MainForm.AddNewLabel(MainForm, 'LblBarkodSonuc', ''); LblBarkodSonuc.Visible = False; MainForm.AddNewEvent(LblBarkodSonuc, tbeOnChange, 'BarkodOkundu'); LblStokBilgi = MainForm.AddNewLabel(MainForm, 'LblStokBilgi', 'Barkod okutun.'); LblStokBilgi.Align = alTop; LblStokBilgi.Height = 120; LblStokBilgi.TextSettings.FontColor = clAlphaColor.clHexToColor('#E0E0E0'); BtnOku = MainForm.AddNewProButton(MainForm, 'BtnOku', '📷 BARKOD OKU'); BtnOku.Align = alTop; BtnOku.Height = 60; BtnOku.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1565C0'); BtnOku.SetclProSettings(BtnOku.clProSettings); MainForm.AddNewEvent(BtnOku, tbeOnClick, 'BarkodOkuClick'); BtnGitYeniKayit = MainForm.AddNewProButton(MainForm, 'BtnGitYeniKayit', '➕ YENİ KAYIT'); BtnGitYeniKayit.Align = alTop; BtnGitYeniKayit.Height = 60; BtnGitYeniKayit.Margins.Top = 10; BtnGitYeniKayit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E7D32'); BtnGitYeniKayit.SetclProSettings(BtnGitYeniKayit.clProSettings); MainForm.AddNewEvent(BtnGitYeniKayit, tbeOnClick, 'YeniKayitEkraniAc'); LytQR = MainForm.AddNewLayout(MainForm, 'LytQR'); LytQR.Align = alTop; LytQR.Height = 160; LytQR.Visible = False; QRGen = MainForm.AddNewQRCodeGenerator(LytQR, 'QRGen', ''); QRGen.Align = alCenter; QRGen.Width = 150; QRGen.Height = 150; LytAlt = MainForm.AddNewLayout(MainForm, 'LytAlt'); LytAlt.Align = alBottom; LytAlt.Height = 60; BtnSil = MainForm.AddNewProButton(LytAlt, 'BtnSil', '🗑 SİL'); BtnSil.Align = alLeft; BtnSil.Width = 100; BtnSil.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#B71C1C'); BtnSil.SetclProSettings(BtnSil.clProSettings); MainForm.AddNewEvent(BtnSil, tbeOnClick, 'UrunSilClick'); BtnDisaAktar = MainForm.AddNewProButton(LytAlt, 'BtnDisaAktar', '📤 AKTAR'); BtnDisaAktar.Align = alClient; MainForm.AddNewEvent(BtnDisaAktar, tbeOnClick, 'DisaAktarClick'); BtnCikis = MainForm.AddNewProButton(LytAlt, 'BtnCikis', '❌ ÇIKIŞ'); BtnCikis.Align = alRight; BtnCikis.Width = 100; MainForm.AddNewEvent(BtnCikis, tbeOnClick, 'CikisClick'); }
{ MainForm = TclForm.Create(Self); MainForm.SetFormColor('#0D1B2A', '', clGNone); VeritabaniYukle; FormKurulum; MainForm.Run; }
https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" 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">
|