Просмотр полной версии : Delphida muammo!!!
Assalomu alaykum hurmatli forumdoshlar!
Men Delphida so`zlar bilan ishlaidigan dastur tuzayotgan edim, so`zlar shu darajada ko`payib ketdi-ki (massiv) kompilyator uni exe qilolmayapti. Ilgari Pascal bilan shunaqa muammo bo`lganida qandaydir bir yo`l bilan kompilyatorsiz exe fayl qilsa bo`lardi (hozir esimda yo`q, lekin bir necha bor qilganman), Delphida ham shunaqasi bormi? Bilsanglar maslahat beringlar.
Delphida ham shunaqasi bormi? Bilsanglar maslahat beringlar.Бошқачароқ йўли бор.
1) Агар сўзларнинг сони жудаям кўп бўлса .txt ёки биронта иккилик файлга ёзиб олишингиз мумкин. Лекин кодировка (UTF-8) билан муаммо чиқишига тайёр туринг.
2) Яхшиси тинчгина БД га ёзиб қўя қолинг. Барча муаммолардан биратўла қутуласиз. БД сифатида firebird ни тавсия қилган бўлардим.
Janbolat
04.04.2011, 17:04
Nima hato bervotti uzi?
German Stimban
04.04.2011, 18:04
Дастлабки код ва хато форумга ёзинг.
Nima hato bervotti uzi?
"Too many local constant. Use shorter procedure." Muammo shunda-ki kompimning hotirasi kam, kompilyatorda kompilyatsiya qilish uchun uning hotirasi yetmayapti, Pascalda ham shunaqa bo`lgan edi, nima qilganim esimda yo`q ancha bo`ldi, ammo bu muammo hal qilingan edi. Dastur tuzilaverardi-da, kompilyatordan chiqib DOSning o`zida Pascalning boshqa fayli bilan kompilyatsiya qilinar edi, menimcha Delphida ham buning iloji bo`lishi kerak deb o`ylayman, yoki osonroq qilib hotirani kengaytirib qo`taqolgan ma`qulmikan? ;)
Delphida ham shunaqasi bormi? Bilsanglar maslahat beringlar.Бошқачароқ йўли бор.
1) Агар сўзларнинг сони жудаям кўп бўлса .txt ёки биронта иккилик файлга ёзиб олишингиз мумкин. Лекин кодировка (UTF-8) билан муаммо чиқишига тайёр туринг.
2) Яхшиси тинчгина БД га ёзиб қўя қолинг. Барча муаммолардан биратўла қутуласиз. БД сифатида firebird ни тавсия қилган бўлардим.
Unaqa qilolmayman, men dasturchimasman, uni yaxshi tushunmayman, qachonlardir qolip qilib olib haligacha shu qolipning faqat matnini o`zgartirib yuribman, BD bilan ishlamoqchi bo`lganimda bu yaxshi fikr emasligini aytib massivlar bilan ishlashni maslahat berishgan edi, shu-shu massivlar bilan ishlayman.
BD bilan ishlamoqchi bo`lganimda bu yaxshi fikr emasligini aytib massivlar bilan ishlashni maslahat berishgan edi, shu-shu massivlar bilan ishlayman.:) massiv bilan BD ni solishtirish noo'rin. Dastur kodida judayam ko'p konstantalar bo'lgani uchun delphi kompilyatsiya qilolmayapti. Demak boshqa usulni qo'llash kerak. Source code ni ko'rsata olasizmi? Balki shu yerda birgalashib qilarmiz...
Масаланинг қўйилишини ёзсангиз бошқа усулда ҳал қилишга уриниб кўрамиз.
ПС: Дельфида ишламаганимгаям анча бўлди.
BD bilan ishlamoqchi bo`lganimda bu yaxshi fikr emasligini aytib massivlar bilan ishlashni maslahat berishgan edi, shu-shu massivlar bilan ishlayman.:) massiv bilan BD ni solishtirish noo'rin. Dastur kodida judayam ko'p konstantalar bo'lgani uchun delphi kompilyatsiya qilolmayapti. Demak boshqa usulni qo'llash kerak. Source code ni ko'rsata olasizmi? Balki shu yerda birgalashib qilarmiz...
Ilgari o`zim ozgina bol`sa ham tushunardim, hozir esa yetti yil bo`ldi, faqat matnni o`zgartirib dasturni yangilab o`tiraman. Mana ko`d:
procedure TDars_Form.FormShow(Sender: TObject);
begin
soz:='45';
{---------- 1 Dars --------}
Uzb[1,1]:='yutuq, muvaffaqiyat, g`alaba'; Eng[1,1]:='achievement';
Uzb[1,2]:='hayratlanarli, qoyilmaqom, ajoyib'; Eng[1,2]:='amazing';
Uzb[1,3]:='qadimgi, qadimiy, ko`hna'; Eng[1,3]:='ancient';
........
Dars_Max[1]:=100;
{---------- 2 Dars --------}
Uzb[2,1]:='1) hisobchi; 2) (yuridk) javobgar'; Eng[2,1]:='accountant';
Uzb[2,2]:='aerobika'; Eng[2,2]:='aerobics';
Uzb[2,3]:='ta`sirini o`tkazmoq, mug`ombirlik qilmoq';
.....
Dars_Max[2]:=126;
..... va hakazo
i:=1;
tj:=0;
Label3.Caption:=IntToStr(i)+'.';
label1.caption:=Uzb[Dars,i];
edit1.text:='';
end;
Mana shu va hakazosi ko`payib ketdi. Shu sababli hotira yetmayapti. Hurmatli Omon, agar iloji bo`lsa mummoni shunda hal qilsak-de, keyingi dasturlarimga boshqa ilojini topsak, yaxshi bo`lardi, chunki men buni bitirib olishim kerak. Bu tipdagi dasturlarim juda ko`p, boshida qilinayotganda albatta bunday kattalashib ketishi hech kimning hayoliga ham kelmagan, agar BD bilan ishlashning iloji bo`lsa o`zim ham yo`q demasdim, ammo BD bilan alohida ishlaymanu, Delphi bilan kelishtirolmayman.
Janbolat
06.04.2011, 17:38
bu dasturning vazifasi nima uzi?
Bu kursatgan kodingiz boyicha dars o'tasizmi?
bu dasturning vazifasi nima uzi?
Bu kursatgan kodingiz boyicha dars o'tasizmi?
Bu o`quvchilarning bilimini tekhiradigan dasturlardan faqat bittasi, ya`ni so`z boyligi bilan ishlaydi. Ekranda o`zbekcha so`z chiqadi, o`quvchi uning inglizchasini yozadi, bori shu. Bu kodning hammasi emas, hammasi juda katta, men faqat asosiysini berdim, ya`ni muammoni chiqarayotganini berdim holos.
Hurmatli OmonБуниси спорный масала :)
agar iloji bo`lsa mummoni shunda hal qilsak-de, keyingi dasturlarimga boshqa ilojini topsak, yaxshi bo`lardi, chunki men buni bitirib olishim kerak.Сизнинг дастурингизни Сизнинг услубингизда переделка қилдим. 2 та иккилик файл(uzb.lng, eng.lng)га сўзларни ёзиб чиқсангиз бўлди. Дастурга ўзгартириш киритмасангиз ҳам ишлайверади.
Ўзбекча сўзлар рўйхати (uzb.lng)
non
choy
qaymoq
futbolka
oyoq kiyimi
Инглизча сўзлар рўйхати (eng.lng)
bread
tea
cream
T shirt
shoe
agar BD bilan ishlashning iloji bo`lsa o`zim ham yo`q demasdim, ammo BD bilan alohida ishlaymanu, Delphi bilan kelishtirolmayman.БД билан ишлайдиган қилай десам компимга ҳали FireBird ни установка қилмаган эканман (аслида бу бир баҳона холос ;) БД билан қиладиган бўлсам иш кўпайиб кетади: 1) саволлар киритадиган/таҳрирлайдиган модул қилиш, 2) ўқувчилар рўйхатини киритадиган/таҳрирлайдиган модул қилиш, 3) ҳамма натижаларни сақлаш керак, 4) керак пайтда натижаларни ҳисобот кўринишида чиқариш керак, 5) ўқитувчилар рўйхатини киритадиган/таҳрирлайдиган модул, 6) ўқитувчилар паролини ўзгартирадиган модул, 7) авторизация, 8) администратор учун алоҳида модул, 9) мактабдаги синфлар рўйхати, ..... ишқилиб бугун эрталабгача ишласам ҳам улгурмасдим :))
https://img.uforum.uz/images/kuoxxbw8949432.jpg
ПС: Ҳурматли критиклар, бу усул нотўғрилигини ўзим ҳам биламан. Устознинг қилган ишини унинг услубида давом эттирдим холос.
Устоз, код тушунарли бўлса керак. Агар саволлар бўлса бемалол...
"Hurmatli" so`zi nega sporniy ekanligini tushunmadim, qolganini esa hali bemalol o`tirib tushunishga harakat qilib ko`raman. Savol chiqsa murojaat qilarman. Rahmat.
"Hurmatli" so`zi nega sporniy ekanligini tushunmadim,Ўша ерда смайлик(тиржайиб турган каллача) ҳам бор эди :)
qolganini esa hali bemalol o`tirib tushunishga harakat qilib ko`raman.Хўш, таассуротлар қалай :)
Janbolat
07.04.2011, 16:11
Хўш, таассуротлар қалай :)
Яхши уйлабсиз, факат кизикарлирок булиши учун Randomize килинса яхши буларди :buba:
Беш баҳо
Yo`q, Sizlar meni noto`g`ri tushunibsizlar, bu dasturlar allaqachondan beri ishlayapti, faqat shularning qolipi asosida men kattarog`ini qilayotgan edim. Bunda rendomize yo`qligining sababi bu darsga taalluqli so`z boyligini bola qanday o`zlashtirganini tekshirish va bilmasa xatosini ko`rsatishga mo`ljallangan. Aralashtirib chiqaradigani esa boshqa dasturda hamma darslarning so`zlari bira to`la beriladi (aynan mana shu xolatda katta bo`lib ketishi kutiladi).
Mendagi muammo hozir shu dasturimni bir amallab "exe" qilib olish, chunki DELPHI janobi oliylari uchun u kattalik qilyapti, exe qilib olinsa muammosiz ishlaydi. Pascalda bundan bir marta o`tdim. Tashqaridan faylni o`qiydigan dasturlar qilmaganimning sababi bor. U paytlarda litseyda ishlardim, tashqi faylni bolalar topib olib to`g`ri javobni ko`rib olgani mayli, faylni ham o`zgartirib tashlashgan xolatlari ham bo`lgan, shu sababli hammasini exe fayl ichiga joylashtirgan edim, albatta o`sha paytda katta bo`lib ketib bunaqa muammo bo`lishini o`ylamagan ekanman, bir marta duch kelgan bo`lsam ham.
Sizning bergan bu maslahatingizni umuman tushunmadim. Uni qanday ishlataman. Maslahat berayotganingizda mening dasturchi emas ingliz tili o`qituvchisi ekanimni ham hisobga oling, iltimos. :) Vaqtingizni ayamaganinigiz uchun rahmat.
Бўлмаса БД ишлатингда...
Лекин бунда иш кўпайиб кетади. Юқорида санаб ўтганларимдан ташқари яна анча иши бор. Қўшимча: Ўқитувчи учун алоҳида панел қилиб у ерда қайси фандан қайси мавзу бўйича, қайси синф имтиҳон топширилиши кераклигини ҳам ўрнатадиган қилишимиз керак бўлади. Шунда вапше даҳшат программа ҳосил бўлади. Агар ўқитувчи имтиҳонга доступ очмаса ўқувчи имтихон топширолмайдиган қилиб қўйиш керак ....Яна битта йўли бор. Сўзлар ёзилган файлларни res га тиқиш керак.
Бўлмаса БД ишлатингда...
Лекин бунда иш кўпайиб кетади. Юқорида санаб ўтганларимдан ташқари яна анча иши бор. Қўшимча: Ўқитувчи учун алоҳида панел қилиб у ерда қайси фандан қайси мавзу бўйича, қайси синф имтиҳон топширилиши кераклигини ҳам ўрнатадиган қилишимиз керак бўлади. Шунда вапше даҳшат программа ҳосил бўлади. Агар ўқитувчи имтиҳонга доступ очмаса ўқувчи имтихон топширолмайдиган қилиб қўйиш керак ....Яна битта йўли бор. Сўзлар ёзилган файлларни res га тиқиш керак.
Hop (desam qutilamanmi) :) , ammo qanday qilib, qaysi BDni taklif qilasiz? Bir marta BD bilan qildim, nima muammo bo`lgani esimda yo`q, menimcha, o`sha BDda tuzilayotgan fayllarning yo`nalishi eslab qolinib faqat o`sha "path" bo`yicha qidirardi va uni boshqa kompga o`tkazib bo`lmas, yoki huddi shu berilgan yonalish bo`yicha o`rnatish kerak edi, uni install qiladigan qilmoqchi bo`ldim, keyin to`xtatib qo`yaqoldim. Axir bekorga "Chumchuq so`ysa ham qassob so`ysin" deyishmaydi-ku.
Janbolat
08.04.2011, 16:04
Сузларнинг канчалигини билаолмасак, унда ушбу процедурани FormShow да эмас, балки бошка процедурага (масалан ButtonClick) кушиб курарсиз. Компиляция килишнинг яна йули Ctrl+F9, аммо бундаям барибир шу муаммо булса керак
Hop (desam qutilamanmi) , ammo qanday qilib, qaysi BDni taklif qilasiz?Ўзим ёзиб бермагунимча қутулмайман шекилли :) (кулиб турган смайлик - ҳазил деган маънони билдиради). FireBird ни тавсия қиламан.
o`sha BDda tuzilayotgan fayllarning yo`nalishi eslab qolinib faqat o`sha "path" bo`yicha qidirardi va uni boshqa kompga o`tkazib bo`lmas, yoki huddi shu berilgan yonalish bo`yicha o`rnatish kerak edi,Одатда бунақа пайтларда .ini файллардан фойдаланилади. Программа загрузка пайтида базанинг path ини ini файлдан ўқиб олади.
Axir bekorga "Chumchuq so`ysa ham qassob so`ysin" deyishmaydi-ku.Чумчуқ сўйса ҳам чумчуқ сўядиган қассоб сўйсин :)
Firebirdning qolgan BDlardan nima ustunligi bor?
Firebirdning qolgan BDlardan nima ustunligi bor?
1) Oracleга нисбатан - ҳажми кичик, кам ресурс талаб қилади. Сизнинг вазифангизни бажариш учун етарли имконияти бор.
2) Interbaseга нисбатан - аслида Interbaseнинг клони, лекин тезроқ ишлайди.
3) Yaffilга нисбатан - билмадим. Яффилни ишлатиб кўрмаганман.
4) Paradoxга нисбатан - тармоқдаям ишлайверади. Транзакцияларни бошқариш афзаллиги бор. Хранимые процедуралар ёзиш мумкин.
5) Access - га нисбатан - тармоқдаям ишлайверади. Транзакцияларни бошқариш афзаллиги бор. Хранимые процедуралар ёзиш мумкин.
6) MySQL га нисбатан - Хранимые процедуралар ёзиш мумкин. Балки MySQLда ҳам уже бу имкониятлар бордир лекин мен қараган пайтда йўқ эди. Бунинг устига MySQL га уланиш учун алоҳида драйверлар установка қилиб ODBC га қўшиш керак.
7) MS SQL га нисбатан - Ҳажми кичик, кам ресурс талаб қилади. MS SQL менга нимагадир умуман ёқмайди.
8) Текин
9) Асосийси менга ёқади :)
Menga ham yoqib qolar degan umiddaman. :)
Gap u menga yoqish-yoqmasligida emas, balki men uni tushunib olarman, ammo muammo ko`pincha yirik narsalardamas, mayda-chuydalarda chiqadi. Bitta kichkina misol keltirib shu yerda bersangiz nafaqat menga, balki boshqalarga ham foydasi tegarmidi. Menga dastur qiib bering demayapman, shuni ishlatishni amalda bir ko`rsatib bersangiz qolganini o`zimning maqsadimga ko`ra davom ettiraveraman. Mabodo bo`lmay qolsa, internet uzoqda emas-ku, yana so`rayverardim. ;)
Innaykeyin, men Firebirdni inetda qidirdim, allambalo narsalarni topdim, uni download qilib olish joyiga yo`nalish berib yuborolmaysizmi? Ahir kichkina deyapsiz-ku. Men topganimda ham hali hudo biladi nimani topaman.
Firebirdni ovomman, 2.5 versiyasi ekan, bo`ladimi?
Oops! Mani kompimda ishlamas ekan. Boshqasini ovomman. Mana shunaqa-de, bilmagan shahringning ko`chalarsi ko`p. :)
Gap u menga yoqish-yoqmasligida emas, balki men uni tushunib olarman, ammo muammo ko`pincha yirik narsalardamas, mayda-chuydalarda chiqadi. Bitta kichkina misol keltirib shu yerda bersangiz nafaqat menga, balki boshqalarga ham foydasi tegarmidi. Menga dastur qiib bering demayapman, shuni ishlatishni amalda bir ko`rsatib bersangiz qolganini o`zimning maqsadimga ko`ra davom ettiraveraman. Mabodo bo`lmay qolsa, internet uzoqda emas-ku, yana so`rayverardim.
Attachment дагини ишлатиб кўринг. Ҳозиргина қилиб тугатдим. Delphi 6 да ёзилган. Ҳеч қанақа ностандарт компонент ишлатилмаган.
БДни кўриш учу IBExpert ни ишлатсангиз бўлади. Уни мана бу ердан (http://www.ibexpert.com/rus/ibe_sfx.exe) скачать қилиб оласиз.
Innaykeyin, men Firebirdni inetda qidirdim, allambalo narsalarni topdim, uni download qilib olish joyiga yo`nalish berib yuborolmaysizmi? Ahir kichkina deyapsiz-ku. Men topganimda ham hali hudo biladi nimani topaman.
Мана бу (http://sourceforge.net/projects/firebird/files/firebird-win32/2.5-Release/Firebird-2.5.0.26074_1_Win32.exe/download) линкдан скачать қилиб кўринг. (2.5 версия).
1) FireBird ни установка қиласиз.
2) test.ini файлидаги DBPath га БД (test.gdb файли) турган жойни ёзиб, кейин программани ишга туширасиз. 6-синф учун 2 та мавзу ёзиб, ҳам бирига 3 тадан сўз киритиб қўйганман.
3) IBExpert ни установка қиласиз (агар базани кўрмоқчи бўлсангиз)
Базада 2 та таблица бор. Lessons(мавзулар) ва Words (сўзлар).
Konfiguratsiya fayli topilmadi deyapti. Yana o`sha men o`zim aytgan yo`nlaish bo`yicha faylni topish muammosi shekilli?
Firebirdni o`rnatayotganimda "Obnarujen zapushenniy server Firebird v1.0/Interbase." Hullas, uning ishini to`xtatib boshqatdan o`rnating deyapti, men esa hech qanday Firebirdni ilgari o`rrnatmaganman. Shunaqa gaplar. :)
Konfiguratsiya fayli topilmadi deyapti. Yana o`sha men o`zim aytgan yo`nlaish bo`yicha faylni topish muammosi shekilli?Бу нарса муаммо эмас. untDM.pas да
IniFileFullName := ExtractFilePath(Application.ExeName) + 'test.ini';қаторини кўрдингизми? Ўша қатор ини файлни ехе нинг ёнидан қидиради. test.exe нинг ёнида test.ini борми?
"Obnarujen zapushenniy server Firebird v1.0/Interbase." Hullas, uning ishini to`xtatib boshqatdan o`rnating deyapti, men esa hech qanday Firebirdni ilgari o`rrnatmaganman. Shunaqa gaplar.FireBirdни ўрнатмагансиз, лекин Delphi ни ўрнатаётганда InterBase ниям қўшиб ўрнатгансиз. FireBird билан InterBase "битта қориндан талашиб тушишган". Иккаласи бирга ишласа конфликт беради. Ё биттасини қолдириш керак ёки бошқа-бошқа портга настройка қилиш керак.
Konfiguratsiya fayli topilmadi deyapti. Yana o`sha men o`zim aytgan yo`nlaish bo`yicha faylni topish muammosi shekilli?Бу нарса муаммо эмас. untDM.pas да
IniFileFullName := ExtractFilePath(Application.ExeName) + 'test.ini';қаторини кўрдингизми? Ўша қатор ини файлни ехе нинг ёнидан қидиради. test.exe нинг ёнида test.ini борми?
"Obnarujen zapushenniy server Firebird v1.0/Interbase." Hullas, uning ishini to`xtatib boshqatdan o`rnating deyapti, men esa hech qanday Firebirdni ilgari o`rrnatmaganman. Shunaqa gaplar.FireBirdни ўрнатмагансиз, лекин Delphi ни ўрнатаётганда InterBase ниям қўшиб ўрнатгансиз. FireBird билан InterBase "битта қориндан талашиб тушишган". Иккаласи бирга ишласа конфликт беради. Ё биттасини қолдириш керак ёки бошқа-бошқа портга настройка қилиш керак.
Interbaseni o`chirolmadim, nima qilsam ham bez bo`lib turibdi, endi boshqa yo`l bilan o`chirib ko`raman. Rahmat, natijasi haqida ma`lum qilaman.
nterbaseni o`chirolmadim, nima qilsam ham bez bo`lib turibdi, endi boshqa yo`l bilan o`chirib ko`raman. Rahmat, natijasi haqida ma`lum qilaman.Омадс. Если че шу ердамиз :)
Firebirdni bribir o`rnatolmadim, Interbaseni uninstal ham qilib ko`rdim, PROWise manager bilan to`xtatib ham ko`rdim, o`chmayman deyapti, dasruringizni ko`rdim, manga yoqdi, ammo BDni o`zgartirolmasam, ozimga moslashtirolmasam, g`alati bo`larkan, internaseni olib tashlab, Firebirdni o`rnatish uchun nima qilish kerak?
internaseni olib tashlab, Firebirdni o`rnatish uchun nima qilish kerak?Аслида интербейзни олиб ташлаш шарт ҳам эмас :) Шуни айтиш эсимдан чиқибди. Программа интербейзда ҳам ишлайвериши керак. ФБ ИБнинг клони эканлигини айтибман-у, ИБни олиб ташламасангиз ҳам ишлаши мумкинлигини айтмабман. IBExpert ни ўрнатиб МБни рег-я қилганингизда сервер деган жойига ИБни кўрсатаверинг. Агар менинг программам ишлаган бўлса IBExpert да МБ ни бемалол кўриб, ўзгартира оласиз. Аслида IBExpertсиз ҳам МБга ўзгартириш киритиш ф-ясини программага қўшиш керак. Лекин айтганимдай иш кўпайиб кетади.
Interbaseni to`xtatdim (o`chirmadim, vaqtincha ishini to`xtatdim), Firebirdni o`rnatdim, yana kasha boshlandi, mana nima deyapti:
ISQL Version: WI-V2.5.0.26074 Firebird 2.5
Use CONNECT or CREATE DATABASE to specify a database
SQL>
chiqdi, man
SQL> c:\windows/system32
deb yozgandim keyin mana bunaqa yozuv chiqdi, uni tushunmadim
CON>
Haligacha baza dannihni ocholmay o`tiribman.
Haligacha baza dannihni ocholmay o`tiribman.IBExpert ни ўрнатдингизми? IBExpert ФБ ва ИБ лар билан ишлаш учун энг қулай инструмент.
Men ilgari ishlaganlarimdan bular keskin farq qilarkan, endi yaxshilab o`rganib chiqay-chi, keyin ko`rarmiz, maslahatlar uchun rahmat.
Men ilgari ishlaganlarimdan bular keskin farq qilarkan, endi yaxshilab o`rganib chiqay-chi, keyin ko`rarmiz, maslahatlar uchun rahmat.IBExpert ни интерфейси инглизча. Сиз яхши тушунасиз. Ишлатишни осон ўрганиб оласиз.
Hudoga shukur menda til muammosi yo`q, ammo tilni tushunib turib nima qilishni bilmay o`tirish ham mumkin ekan, masalan "Please, choose Server Version for the database!" degani nimaligini to`liq tushunvomman, ammo qanday versiya haqida gap ketyapganini tushunmayapman. :)
"Please, choose Server Version for the database!"Ўша жойда InterBase 6 ни кўрсатинг. БД ни кўрсатинг деган жойига мен юборган test.gdb ни кўрсатинг. Логин: SYSDBA Пароль: MASTERKEY.
Berilgan login bilan parol noto`g`ri, administratoringga murojaat qil devotti. :)
Berilgan login bilan parol noto`g`ri, administratoringga murojaat qil devotti.Не может быт :) untDM.pas ни қарасангиз программа худи ўша логин/пароль билан базага уланяпти.
IBExpert ни ишлатиш бўйича инструкция (ҳеч ким сўрамаган бўлсаям, бир мақтанволай дедимда :) ):
1) Register Database (чапдан биринчи) тугмасини босасиз
https://img.uforum.uz/images/ftebjcr5880867.jpg
2) Қуйидаги ойна очилади
https://img.uforum.uz/images/krrgvgy7363756.jpg
3) Серверни ва сервер версиясини танлайсиз. Агар сервер ишлаб ўтирган компьютерингизда бўлса Local ни танлайсиз. Сервернинг версияси компьютерингизга сервер сифатида нима ўрнатганингизга боғлиқ (Interbase ёки Firebird нинг версияларидан бири).
https://img.uforum.uz/images/qfddtrw6829806.jpg
4) БД файли (.gdb кенгайтмали файл) қаердалигини кўрсатасиз (папкани расми бор кнопкани боссангиз OpenDialog очилади), алиас ёзасиз (алиас ёзиш аслида шарт эмас), логин ва парольни киритасиз (SYSDBA/masterkey). "Register" кнопасини босиб регистрация қиласиз.
https://img.uforum.uz/images/tlzoyuj5371775.jpg
5) Базани регистрация қилиб бўлдик. База чап томондаги базалар рўйхатида пайда бўлади. Базага уланиш учун унинг устига икки марта босамиз (сичқонча билан).
https://img.uforum.uz/images/wtyxajb2792802.jpg
6) Базанинг ҳамма объектларининг рўйхати очилади. Бизда иккита таблица (LESSONS - мавзулар, WORDS - сўзлар), иккита триггер (таблицага маълумот қўшганда ID полясига автоинкримент қўшиш учун) ва иккита генератор (автоинкриментлар учун) бор. Керакли таблицани танлаб икки марта боссангиз ўнг томонда таблица очилади.
https://img.uforum.uz/images/pzmzpdf4493910.jpg
7) Data таби(расмда қизил билан ўралган)га ўтсангиз таблицадаги маълумотларни кўришингиз, таҳрири қилишингиз ва ўчиришингиз мумкин. Маълумотларни ўзгартиргандан кейин Commit қилиш эсдан чиқмасин (кўк ранг билан ўралган жойдаги қизил "галочка"). Агар нотўғри таҳрир қилган бўлсангиз Rollback қилишингиз мумкин (кўк ранг билан ўралган жойдаги қора "крест").
https://img.uforum.uz/images/osunyvu6668684.jpg
Mana faylni ochdim, endi ishlatib ko`raman. Rahmat.
Qoyilman! Ishlavotti.Ўзи ишлаши керак эди.
Rahmat, menimcha, mening dasturchi emasligimni hisobga olsak hali baribir muammo chiqib qolsa kerak. ;)
Rahmat, menimcha, mening dasturchi emasligimni hisobga olsak hali baribir muammo chiqib qolsa kerak.Шунинг учун хамма уз ишини килгани маъкулда :)
Qoyilman! Ishlavotti.Устоз, программача иш беряптими? То есть ишингизга яраяптими?
Qoyilman! Ishlavotti.Устоз, программача иш беряптими? То есть ишингизга яраяптими?
Aytishga uyalib o`tirgandim, yaxshi o`zingiz gap ochib qoldingiz, Siz bergan dastur yaxshimas zo`r ishlayapti, ammo men uni o`zimning talabim bo`yicha o`zgartiraman desam, hech narsa qilolmadim, masalan Siz raqamlar bilan belgilagan joyda men so`z yozishim kerak edi, yana, delphidan BDga murojaatni tushunolmadim, ya`ni mustaqil o`zim o`zgartirish kiritolmadim. Umuman dastur juda yaxshi, menikiga o`xshab yuklanayotganida kerak-kerakmas narsalarni miyasiga yuklab komp hotirasini "axlat" bilan to`ldirmaydi. Agar charchamagan bo`lsangiz BDning o`zida qanday qilib o`zgartirishlar kiritishni va unga Delphidan turib qanday murojaat qilishni shu yerda muhokama qilsak. :)
Ёзганларингизнинг ярмига тушунмадим десам алдамаган бўламан :)
ammo men uni o`zimning talabim bo`yicha o`zgartiraman desam, hech narsa qilolmadimталабингиз қанақа?
Siz raqamlar bilan belgilagan joyda men so`z yozishim kerak ediҚайси рақамни ўрнига сўз ёзмоқчисиз?
Агар синф номларини "Биринчи синф", "Иккинчи синф" деб ўзгартирмоқчи бўлсангиз Дельфида проектни очасиз. Формадаги cbClasses ни танлаб туриб Object Inspector(F11) ни қарасангиз Items деган property си бор. Шу пропертини очсангиз (3 та нуқтали кнопкача) алоҳида окнода синфлар рўйхати очилади. Биринчи турган (Синфингизни танланг) дан бошқа любойини ўзгартирсангиз программанинг ишлашига таъсир қилмайди. Лекин битта носи бор. Item нинг Id сини синф сифатида базага жўнатаман. Яъни рўйхатдаги 1 сўзни ("Синфингизни танланг"дан кейинги) 48-синф деб ёзиб қўйсангиз ҳам барибир базага биринчи синф сифатида кетади. Чунки унинг ID си 1. Шу жойларини сал тузукроқ қилиш мумкин эди, лекин дангасалигим панд берди.
delphidan BDga murojaatni tushunolmadim, ya`ni mustaqil o`zim o`zgartirish kiritolmadim.Базага мурожаат DataModul да(untDM.pas юнити). БДга тегишли ҳамма амаллар шу орқали бажарилади. DataModul да 4 та компонент бор.
1) DB (TIBDatabase): Базага уланиш учун асосий компонент. БД билан ишлайдиган бошқа компонентлар шу компонент орқали ишлайди.
2) TR (TIBTransaction): Транзакцияларни бошқариш учун хизмат қилади. БДдаги ёзувларга ўзгартириш киритилса (Insert, Update, Delete командалари орқали) бу компонент билан Commit (сақлаш, тасдиқлаш) ёки Rollback (отмена) қилинади.
Бу компонент бизнинг программамизда умуман ишлатилмаган. Чунки базага фақат select билан мурожаат қиламиз. Имтихон топширган ўқувчиларнинг балларини ҳам базага ёзиб боришни план қилгандим. Нима сабабдан балларни базага ёзадиган қилмаганимни топингчи :)
3) qrAny (TIBQuery): базага SQL запрос жўнатиш учун хизмат қилади (асосан DML). Агар select запрос жўнатилса TIBTransaction ишлатилмайди, қолганлари учун TIBTransaction ишлатилади.
4) dsAny (TDataSource): qrAny билан select запрос орқали базадан олинган маълумотларни ўзида жадвал кўринишида сақлаб туради. Бу компонент бизнинг программамизда умуман ишлатилмаган. Керак бўлиб қолар деб қўшгандим. Олиб ташлаш эсимдан чиқибди.
procedure TDM.DataModuleCreate(Sender: TObject);
begin
IniFileFullName := ExtractFilePath(Application.ExeName) + 'test.ini';
if not FileExists(IniFileFullName) then
begin
MessageDlg('Konfiguratsiya fayli topilmadi', mtError, [mbOk], 0);
Exit;
end;
DBPath := Trim(GetStringParametr(IniFileFullName, 'SYSTEM', 'DBPath', ''));
if DBPath = '' then
begin
MessageDlg('Konfiguratsiya faylida MB ga yo`l ko`rsatilmagan', mtError, [mbOk], 0);
Exit;
end;
DB.Close;
DB.DatabaseName := DBPath;
DB.Params.Clear;
DB.Params.Add('User_name=SYSDBA');
DB.Params.Add('Password=masterkey');
try
DB.Open;
except
MessageDlg('MB ga ulanish mumkin emas',mtError,[mbOK],0);
Application.Terminate;
end;
end;
DataModuleCreate процедураси DataModule яратилаётган пайтида DB компонентини базага улайди. Уланиш керак бўлган база қаердалигини .ini файлдан ўқиб олади. Кейин логин ва парол(sysdba, masterkey) билан ўша базага уланади.
procedure TDM.OpenQR(ds: TIBQuery; zapa: string; omode: smallint);
begin
ds.Close;
ds.SQL.Clear;
ds.SQL.Add(zapa);
case omode of
0: begin
ds.Open;
ds.FetchAll;
end;
1: begin
if not TR.Active then
TR.StartTransaction;
ds.ExecSQL;
TR.Commit;
end;
end;
end;
OpenQR процедураси орқали базага запрос жўнатаман (ўз ижодимдан :) )
Параметрлари:
1) ds: TIBQuery: TIBQuery тоифали компонент (бизда qrAny).
2) zapa: string: базага жўнатиладиган запрос.
3) omode: smallint: qrAny ни қандай ишлатиш кераклигини белгилайдиган параметр (0 ёки 1). Агар select запрос жўнатсангиз 0, insert, update, delete запрослар учун 1.
omode 0 бўлганда qrAny миз шунчаки "очилади". 1 бўлганда эса TR компонентида аввал транзакция бошланиди, qrAny запросимизни execute қилади. Охирида TR ни Commit қилади.
Agar charchamagan bo`lsangiz BDning o`zida qanday qilib o`zgartirishlar kiritishni va unga Delphidan turib qanday murojaat qilishni shu yerda muhokama qilsak.Биз ҳозирдан чарчасак Саксонбой, Тўқсонбойлар осмондан тушадими :)
БДга ўзгартириш IBExpert ёрдамида киритилади. Мазохистлар учун InterBase нинг стандартный программаси ҳам бор :) Базага қанақа ўзгартириш киритмоқчисиз ўзи? Дельфидан БДга қандай мурожаат қилишни менимча юқорида подробно тушунтириб бердим. Саволлар бўлса марҳамат.
ПС: Саволлар бўлса http://forum.dastur.uz да ҳам беришингиз мумкин. Дастурлашга тегишли янги форум. Ҳали фойдаланувчимиз кам. Лекин асосий аъзолар(саволларга жавоб берувчилар) бор. Короче ПСни шу форумга одам йиғиш учун ёздим :) Реклама. А так саволни любой жойда сўрасангиз ҳам жавоб беравераман.
Uzr, buni o`qib tushungunimcha ancha vaqt o`tdi (albatta bunda Sizning aybingiz yo`q :) ), bunaqa narsalardan ancha chiqib qolibman, albatta men maqsadimni Sizga noto`g`ri tushuntirganman, buni tan olaman. Endi batafsilroq tushuntirishga harakat qilaman.
1. Asosiy maqsadim, kerakli narsalar dasturdan tashqarida va o`quvchilarning qo`li yetmaydigan joyda bo`lsin (menimcha bu maqsad amalga oshdi);
2. Sinflar emas, masalan Beginner, Elementary va shunga o`xshagan so`zlar bilan yozilsin (buni ham tushuntirdingiz shekilli, agar to`g`ri tushungan bo`lsam)
3. Ballarni nima sababdan bazaga yoziladigan qilganingizning sababini bilmadimu, ammo shu ballarni kerak bo`lib qolganda umumlashtirish iloji bo`lsa, yaxshi bo`lar edi. Masalan bolani men 6 ta dars so`zlari bo`yicha tekshirmoqchiman, hozirgi dasturim buni *.txt faylga yozadi va keyin men o`zim ularni bir-biriga qo`shib umumiy ballni chiqaraman, hozirgi paytga bu to`g`ri kelmaydi, bazaga ball yozilayotgan ekan, shuni umumlashtirish imkoni ham bo`lishi kerak, ha aytgancha, mening dasturim har bir o`quvchining ismi bilan ballarni yozadi.
4. Keyin, zarur bo`lib qolsa kimdir eslatganiday "randomize" qilish iloji bo`lsa ham yaxshi bo`lar edi.
Hozircha shu, rahmat.
2. Sinflar emas, masalan Beginner, Elementary va shunga o`xshagan so`zlar bilan yozilsin (buni ham tushuntirdingiz shekilli, agar to`g`ri tushungan bo`lsam)Буни ҳалиги комбобоксни айтемларига ёзиб қўйсангиз бўлади.
3. Ballarni nima sababdan bazaga yoziladigan qilganingizning sababini bilmadimu,Дангасалик.
ammo shu ballarni kerak bo`lib qolganda umumlashtirish iloji bo`lsa, yaxshi bo`lar edi.Бунинг учун ўқувчилар рўйхатини киритадиган модул қилишим керак. Ўқувчилар рўйхатини любой одам киритавермаслиги учун логин ва пароль билан кирадиган қилишим керак. Логин ва пароль бўлганидан кейин парольни ўзгартирадиган ҳам қилишим керак. Шунча нарсани қилгандан кейин саволларни ҳам ўқитувчи программа орқали киритадиган қилиш керак бўлади. Шунча ишни қилган одамга баллар бўйича ҳисобот қилиш проблемами :)
4. Keyin, zarur bo`lib qolsa kimdir eslatganiday "randomize" qilish iloji bo`lsa ham yaxshi bo`lar edi.Аслида тўрт қатор ақлли код ёзилса буям ҳал бўлади :) Вақтимга қараб ҳал қилишга ҳаракат қиламан.
forum.dastur.uz da hech kim yo`q-ku. Ro`yhatdan o`taman desam pochtangizga yuvoramiz deyishdi, u yerdagi Delphida habar chiqarish usullarining ko`pligini ko`rib hayron bo`ldim. Bir ishlatib ko`rarman. Hozirgina ishlatib ham ko`rdim, har qanday buyuk narsa soddadir degan gapga yana bir bor iqor bo`ldim.
Oynachadagi "Yes" va "No"ni ham o`zimizning qadrdon "Ha" va "Yoq"qa alishtirsa bo`lmaydimi?
Oynachadagi "Yes" va "No"ni ham o`zimizning qadrdon "Ha" va "Yoq"qa alishtirsa bo`lmaydimi?
Bo'ladi, bemalol! O'zim bir marta shunaqa qilganman. Faqat Delphida emas, C++ Builderda. Delphidayam shunaqa joyi bo'lishi kerak. Qarab ko'raman, topsam yozib yuboraman!
Oynachadagi "Yes" va "No"ni ham o`zimizning qadrdon "Ha" va "Yoq"qa alishtirsa bo`lmaydimi?
Bo'ladi, bemalol! O'zim bir marta shunaqa qilganman. Faqat Delphida emas, C++ Builderda. Delphidayam shunaqa joyi bo'lishi kerak. Qarab ko'raman, topsam yozib yuboraman!
Alohida oyna ochib qilsa bo`ladi, unda hohlagan tilingizda qilaverasiz, men mana bunaqa yuqorida ko`rsatilgan usullarni nazarda tutayotgandim. Agar iloji bo`lsa yaxshi bo`lardi, sabr ila kutamiz.
Звук драйверни установка қилолмадим шуни яъна қандай йўли бўлса
Ustoz: qanaqa usulni nazarda tutganizni to'g'risi tushunmadim!
c:\Program Files\Borland\Delphi7\Source\Vcl\Dialogs.pas degan fayl bor. Shu faylning 1952-1953-1954-qatorlarda o'sha OK, Yes, No ... larning ekranda chiqishi keltirilgan. Massivdagi 'Yes' ning o'ringa 'Ha' deb qo'ysez bo'lgani. Keraklilarini o'zgartirib olaverasiz. Faqat menda kompilyatsiya bo'lmadi, shu .pas fayl. Biror bir proff.roq odamdan so'rab ko'rish kerak. OmoN aka bilsalar kerak. Nima deysiz?
Agar bazali qilmoqchi bo'lsez, shuni nazarda tutgan bo'lsangiz, unda bazaga tillar degan tablitsa qo'shasiz, kerakli til bilan kirilganda barcha tugmalardagi, ... lardagi so'zlarni bazadan olib qo'yasiz bo'ldi.
Ustoz: qanaqa usulni nazarda tutganizni to'g'risi tushunmadim!
c:\Program Files\Borland\Delphi7\Source\Vcl\Dialogs.pas degan fayl bor. Shu faylning 1952-1953-1954-qatorlarda o'sha OK, Yes, No ... larning ekranda chiqishi keltirilgan. Massivdagi 'Yes' ning o'ringa 'Ha' deb qo'ysez bo'lgani. Keraklilarini o'zgartirib olaverasiz. Faqat menda kompilyatsiya bo'lmadi, shu .pas fayl. Biror bir proff.roq odamdan so'rab ko'rish kerak. OmoN aka bilsalar kerak. Nima deysiz?
Agar bazali qilmoqchi bo'lsez, shuni nazarda tutgan bo'lsangiz, unda bazaga tillar degan tablitsa qo'shasiz, kerakli til bilan kirilganda barcha tugmalardagi, ... lardagi so'zlarni bazadan olib qo'yasiz bo'ldi.
Rahmat, buni men bilmagan edim, qilib ko`raman, men usul deganda, mana shunaqa bita ikkita komanda bilan beriladigan usulni aytuvdim. Aytganingizday o`zgartirb ko`raman.
Kompilyatsiya bolmaganida birorta habar chiqaradi-ku, nima degan habar oldingiz?
Oynachadagi "Yes" va "No"ni ham o`zimizning qadrdon "Ha" va "Yoq"qa alishtirsa bo`lmaydimi?
OmoN aka bilsalar kerak. Nima deysiz?Тўғрисини айтсам калламга бирон марта бунақа фикр келмаган экан :) Хабарни турли тилларда чиқариш керак бўлса ўз модулимизни ёзгандик(логотпимиз билан, чиройли қилиб). Лекин стандарт библиотекаларни ўзгартирмагандик.
O'sha dialogs.pas faylni keraklicha o'zgartirib, undan dcu - modul faylini olish kerak ekan. Yoki dcu fayllar turadigan joydan dialogs.dcu ni o'zgartirib qo'yib, keyin kompilyatsiya qilsa, o'sha yerda yangi, o'zgartirilgan dialogs.dcu hosil bo'ladi. Keyinchalik ham undan foydalanish mumkin.
O'z modulni yozishga kelsak, bu ham yaxshi. Menimcha, dialogs.pas ni o'zgartirib, "an'anaviy" MessageDlg ni argumentlarini ham o'zgartirib qo'ysa bo'ladi. Kerakli til uchun ham argument qo'shib. Bu ham modul hisoblanadi.
Bunday narsalarni tushunishim qiyin, ammo bir qilib ko`ray-chi, keyin habar qilarman. Omonning maslahati menga juda ham katta foyda berdi, endi keyingi dasturlarimda shuni ishlatmoqchiman, yana boshqa takliflar bo`lsa yaxshi bo`lardi, ammo mening dasturchi emasligimni unutmanglar. iltimos. Soddaroq qilib tushuntirsanglar menga o`xshaganlarning anchasiga foyda bo`lardi. Malahatlar uchun rahmat.
Menda bitta ilgari ham hal qilolmagan muammom bor. Masalan: bitta oynada bir topshiriq chiqdi va bahosini eslab qoldi, keyin boshqa oynada boshqa dastur va uning ham bahosi va yana Nta dasturning o`rtacha bahosi. Shuni hotirada saqlab hisoblaydigan qiluvdim, o`zim ham komp ham yanglishib qolib qotib qolaverardi, shuning osonroq yo`li bormi, faqat tashqi fayldan foydalanmasdan, hotiraning o`zida.
Menda bitta ilgari ham hal qilolmagan muammom bor. Masalan: bitta oynada bir topshiriq chiqdi va bahosini eslab qoldi, keyin boshqa oynada boshqa dastur va uning ham bahosi va yana Nta dasturning o`rtacha bahosi. Shuni hotirada saqlab hisoblaydigan qiluvdim, o`zim ham komp ham yanglishib qolib qotib qolaverardi, shuning osonroq yo`li bormi, faqat tashqi fayldan foydalanmasdan, hotiraning o`zida.Агар саволингизни тўғри тушунган бўлсам глобал ўзгарувчига ёзиб қўйинг.
Караоке прогмасси керак эди.
O'sha dialogs.pas faylni keraklicha o'zgartirib, undan dcu - modul faylini olish kerak ekan. Yoki dcu fayllar turadigan joydan dialogs.dcu ni o'zgartirib qo'yib, keyin kompilyatsiya qilsa, o'sha yerda yangi, o'zgartirilgan dialogs.dcu hosil bo'ladi. Keyinchalik ham undan foydalanish mumkin.
O'z modulni yozishga kelsak, bu ham yaxshi. Menimcha, dialogs.pas ni o'zgartirib, "an'anaviy" MessageDlg ni argumentlarini ham o'zgartirib qo'ysa bo'ladi. Kerakli til uchun ham argument qo'shib. Bu ham modul hisoblanadi.Агар программа бир нечта тилда ишлаши керак бўлсачи? Ёки кейинги программанинг интерфейси русча бўлиши керак бўлса. Ўша файлни яна қайта перекомпиляция қиласизми?
Караоке прогмасси керак эди.Дельфидами?
O'sha dialogs.pas faylni keraklicha o'zgartirib, undan dcu - modul faylini olish kerak ekan. Yoki dcu fayllar turadigan joydan dialogs.dcu ni o'zgartirib qo'yib, keyin kompilyatsiya qilsa, o'sha yerda yangi, o'zgartirilgan dialogs.dcu hosil bo'ladi. Keyinchalik ham undan foydalanish mumkin.
O'z modulni yozishga kelsak, bu ham yaxshi. Menimcha, dialogs.pas ni o'zgartirib, "an'anaviy" MessageDlg ni argumentlarini ham o'zgartirib qo'ysa bo'ladi. Kerakli til uchun ham argument qo'shib. Bu ham modul hisoblanadi.Агар программа бир нечта тилда ишлаши керак бўлсачи? Ёки кейинги программанинг интерфейси русча бўлиши керак бўлса. Ўша файлни яна қайта перекомпиляция қиласизми?
Караоке прогмасси керак эди.Дельфидами?
Ha
HaДельфида .midi файллар билан ишлаш ҳақида ўқиб кўринг. Бирон нима чиқиб қолар. .kar файллар билан қандай ишланади билмадим. Лекин мидилар билан ишлаш сал осонроқ (менимча). Яна битта йўли: медиаплеер ясайсизда, қўшиқнинг матнини бегущая строкага ўхшаб ўтказиб турасиз. Лекин бунда тезликни настройка қилиш проблема бўлади.
[/QUOTE]Дельфида .midi файллар билан ишлаш ҳақида ўқиб кўринг. Бирон нима чиқиб қолар. .kar файллар билан қандай ишланади билмадим. Лекин мидилар билан ишлаш сал осонроқ (менимча). Яна битта йўли: медиаплеер ясайсизда, қўшиқнинг матнини бегущая строкага ўхшаб ўтказиб турасиз. Лекин бунда тезликни настройка қилиш проблема бўлади.[/QUOTE]
Рахмат ака харакат қилиб кўрайчи
OmoN, ko'p tilli dastur qilib ko'rmaganman. Menimcha, ko'p tilli bo'lsa dialogs.pas ni ichida MessageDlg ni funksiyasiyam bo'ladiku, shuni o'zgartirish kerak degandim. Til uchun bitta atribut qo'shiladi, shunga qarab funksiyani ichida kerakli tilda qiymat oladi xolos. Masalan, MessageDlg("xabar","sarlavha",mtConfirmation,MbOk,0,'uzbek'); shaklida degandim.
OmoN, ko'p tilli dastur qilib ko'rmaganman. Menimcha, ko'p tilli bo'lsa dialogs.pas ni ichida MessageDlg ni funksiyasiyam bo'ladiku, shuni o'zgartirish kerak degandim. Til uchun bitta atribut qo'shiladi, shunga qarab funksiyani ichida kerakli tilda qiymat oladi xolos. Masalan, MessageDlg("xabar","sarlavha",mtConfirmation,MbOk, 0,'uzbek'); shaklida degandim.Кўп тилли дастурларда энг яхшиси кэпшинларни базага ёки ини файлга ёзиб қўйиш. Хабар чиқариш учун эса алоҳида форма яратган маъқул. Булар албатта менинг шахсий фикрларим.
Устоз, программага Сиз айтган қулайликларни қўшишни бошладим. Насиб қилса(чақалоқ рухсат берса :) ) бирор кун тугатарман.
Ilgari o`zim ozgina bol`sa ham tushunardim, hozir esa yetti yil bo`ldi, faqat matnni o`zgartirib dasturni yangilab o`tiraman. Mana ko`d:
procedure TDars_Form.FormShow(Sender: TObject);
begin
soz:='45';
{---------- 1 Dars --------}
Uzb[1,1]:='yutuq, muvaffaqiyat, g`alaba'; Eng[1,1]:='achievement';
Uzb[1,2]:='hayratlanarli, qoyilmaqom, ajoyib'; Eng[1,2]:='amazing';
Uzb[1,3]:='qadimgi, qadimiy, ko`hna'; Eng[1,3]:='ancient';
........
Dars_Max[1]:=100;
{---------- 2 Dars --------}
Uzb[2,1]:='1) hisobchi; 2) (yuridk) javobgar'; Eng[2,1]:='accountant';
Uzb[2,2]:='aerobika'; Eng[2,2]:='aerobics';
Uzb[2,3]:='ta`sirini o`tkazmoq, mug`ombirlik qilmoq';
.....
Dars_Max[2]:=126;
..... va hakazo
i:=1;
tj:=0;
Label3.Caption:=IntToStr(i)+'.';
label1.caption:=Uzb[Dars,i];
edit1.text:='';
end;
Mana shu va hakazosi ko`payib ketdi. Shu sababli hotira yetmayapti. Hurmatli Omon, agar iloji bo`lsa mummoni shunda hal qilsak-de, keyingi dasturlarimga boshqa ilojini topsak, yaxshi bo`lardi, chunki men buni bitirib olishim kerak. Bu tipdagi dasturlarim juda ko`p, boshida qilinayotganda albatta bunday kattalashib ketishi hech kimning hayoliga ham kelmagan, agar BD bilan ishlashning iloji bo`lsa o`zim ham yo`q demasdim, ammo BD bilan alohida ishlaymanu, Delphi bilan kelishtirolmayman.
Dasturni proceduralarga bo'lib tashlash kerak. Ya'ni, har bir prosedurada, masalan, 25 ta savol va javoblar beriladi.
Gap shundaki har bir prosedura o'z ishini yakunlagach hotirani bo'shatib chiqib ketadi.
Delphidan tashqarida turib dasturni kompilyatsiya qilish imkoni yo'q.
P.S. Bo'lib tashla va hukmronlik qil!
Dasturni proceduralarga bo'lib tashlash kerak. Ya'ni, har bir prosedurada, masalan, 25 ta savol va javoblar beriladi.
Gap shundaki har bir prosedura o'z ishini yakunlagach hotirani bo'shatib chiqib ketadi.
Delphidan tashqarida turib dasturni kompilyatsiya qilish imkoni yo'q.
P.S. Bo'lib tashla va hukmronlik qil!Бу фикрга қўшилмайман, лекин БД дан фойдаланишнинг иложи бўлмаган пайтларда шу усул билан эплаб турса бўлади.
Albatta, Ustoz uchun
БД дан фойдаланишнинг иложи бўлмаган пайтлар
o'tib ketdi... :-)
Устоз, программага Сиз айтган қулайликларни қўшишни бошладим. Насиб қилса(чақалоқ рухсат берса ) бирор кун тугатарман.
Omadingizni bersin! Chaqaloqqa bizning nomimizdan salom deb qo`ying. Olloh o`z panohida asrasin.
Sizlarning suhbatlaringizga "quloq solib" o`tirib bu narsalarni tushunmaydigan bitta o`zim ekanligimni tushundim, shuning uchun ancha payt aralashmadim, ammo juda ko`p foydali maslahatlar berdinglar, rahmat. Delphidan tashqarida kompilyatsiya qilish funksiyasi bor, ammo qanaqaligni bilmayman.Endi buning ahamiyati ham yo`q, Omon bergan maslahatlar menga ma`qul keldi, shu usulda ishlayman.
Omadingizni bersin!2 кунтунда программанинг ўқитувчи панели (таржима учун сўзлар, талабалар рўйхатини киритадиган қисми)ни қилиб тугатдим. Яна бир-икки тун ишласам имтихон оладиган қисминиям тугатворсам керак. Ишхонада (64 битли windows) файрбирд нормальный ишламаяпти...
2 кунтунда программанинг ўқитувчи панели (таржима учун сўзлар, талабалар рўйхатини киритадиган қисми)ни қилиб тугатдим. Яна бир-икки тун ишласам имтихон оладиган қисминиям тугатворсам керак. Ишхонада (64 битли windows) файрбирд нормальный ишламаяпти...
Juda ham o`zingizni urintirib qo`ymang, hech narsa sog`liqni yo`qotishga arzimaydi. Hali chaqaloqqa keraksiz :)
OmoN, faqat chaqaloqqa emas...
OmoN, faqat chaqaloqqa emas...
To`liq qo`shilaman :)
Ва ниҳоят программа тайёр бўлди.
Талабалар ва ўқитувчилар учун алоҳида авторизация.
https://img.uforum.uz/images/bsmwgbt4098533.jpg
Синфлар ва талабалар рўйхатини бошқариш учун қулай форма
https://img.uforum.uz/thumbs/jdfaqtp5132467.jpg (https://img.uforum.uz/images/jdfaqtp5132467.jpg)
Имтиҳонда сўраладиган сўзларни киритиш, таҳрирлаш
https://img.uforum.uz/thumbs/eepuoex4715096.jpg (https://img.uforum.uz/images/eepuoex4715096.jpg)
Имтиҳонлар ташкил қилиш, талабаларга имтиҳонга киришга рухсат бериш.
Имтиҳонда бериладиган сўзларни танлаш
https://img.uforum.uz/thumbs/useqzyf6468935.jpg (https://img.uforum.uz/images/useqzyf6468935.jpg)
Талабалар учун қулай имтиҳон ойнаси
https://img.uforum.uz/thumbs/leaejfb8089825.jpg (https://img.uforum.uz/images/leaejfb8089825.jpg)
Ажратилган вақт тугаши билан имтиҳон автоматик тарзда тўхтатилади.
Программага қўшимча равишда хелп ҳам ёздим. Устоз, хелп нима учун батафсилмаслигини топингчи :)
Ҳа айтганча. tester.ini файлда базанинг йўлини кўрсатиш эсингиздан чиқмасин. FireBird 1.5 ишлатилган. Менимча Interbase 6.0 ёки 7.0 даям ишласа керак.
Ўқитувчи учун логин: admin пароль: 1.
ПС: Программадан тижорий мақсадда фойдаланманглар, илтимос. Нақд тешиб чиқади-я :)
Дастурда ҳисобот ҳам бор. Синфдаги ўқувчиларнинг имтиҳон натижаларини кўрсатиш ва Excel га экспорт қилиш имконияти ҳам қўшилган.
Cал эртарок ҳаракат қилмайсизми? Best Soft Uzbekistan да роса омадингиз келарди-да... Халқ таълими вазирлиги реклама қилган Eduportal, веб-мактаб, веб-боғчадан кўра мана шунақа дастурлар кўпроқ бўлса нафи каттароқ бўларди.
Cал эртарок ҳаракат қилмайсизми? Best Soft Uzbekistan да роса омадингиз келарди-да... бу программачани бест софтга кўтариб боришга уяламан :) Илҳом ака келиб қолсалар программага тест имтиҳони олишниям қўшиб қўярдим.
бу программачани бест софтга кўтариб боришга уяламан
Shu o`zingizdgi uyatdan ba`zilarga ham ozgina bersangiz bo`larkan. Kamtarligingiz yaxshi, ammo Sizning bu kamtarligingizdan ish zarar ko`ryapti, menga o`xshagan chala dasturchilar bir nimalar qilib o`zimizni ham boshqalarni ham qiynab yuribmiz. :)
Hali to`liq ishlatolmadim, negadir kodi bilan qiynalvomman, tushuntirishingizni yana bir o`qib chiqay-chi, nimnanidir ahamiyatsiz qoldirib ketganga o`xshayman.
Hali to`liq ishlatolmadim, negadir kodi bilan qiynalvomman, tushuntirishingizni yana bir o`qib chiqay-chi, nimnanidir ahamiyatsiz qoldirib ketganga o`xshayman.Исходный кодни назарда тутмаяпсиз деб умид қиламан :)
Хелпни қарасангиз менимча бу ҳақида ёзилган.
Расмга қаранг:
https://img.uforum.uz/images/qzdnfip982200.jpg
Талабалардан Elementary exam 2 ни олмоқчи бўлсангиз:
1) Алиев Вали учун имтиҳон коди - 24
2) Ҳамидов Али учун имтиҳон коди - 21.
Бу кодни билмаган талаба имтиҳон топширолмайди. Буни аълочилар бошқа талабалар ўрнига имтиҳон топширмасликлари учун қилганман.
Имтиҳонни бир марта топширган талаба қайта топширолмайди. Агар қайта топшириши керак бўлса Сиз скриншотдаги ойнадан унинг натижасини бекор қилишингиз керак (имтиҳонда қатнашадиган талабалар рўйхатидан талабани танлаб туриб сичқончанинг ўнг томонини босасиз. контекст меню очилади).
Katta rahmat, albatta helpni o`qib chiqaman, Sizni shuncha ovora qilganimdan juda hijolatdaman, o`zi aslida kichkina muammo bilan murojaat qiluvdim, biryo`la hammasini hal qilib qo`yaqoldingiz. Rahmat.
o`zi aslida kichkina muammo bilan murojaat qiluvdim, biryo`la hammasini hal qilib qo`yaqoldingiz.Бу нарсаларни барибир тушунтириб беролмасдим. Шунинг учун ўзим қилиб қўя қолдим. Бошқаларгаям фойдаси тегиб қолар деб.
Исходный кодни назарда тутмаяпсиз деб умид қиламан :)
Илтимос, Омон, исходникни биздан дариғ тутманг. Это исключительно спортивный интерес. Элпочтамга жўнатишингиз мумкин: doctorhasanota@mail.ru.
Илтимос, Омон, исходникни биздан дариғ тутманг. Это исключительно спортивный интерес. Элпочтамга жўнатишингиз мумкин:Баъзи ишлар БД да хранимые процедуралар ёрдамида қилинган. БД ни очиб кўришингиз мумкин. Программанинг исходнигига келсак... Мен росаям қизғанчиқман :)
Мен росаям қизғанчиқман
To`g`ri qilasiz :)
To`g`ri qilasizПрограммани ишлатолдингизми? Таассуротлар қанақа?
Программанинг исходнигига келсак... Мен росаям қизғанчиқман :)
Мана шундоқ юмор дастурларингиз кодларида ҳам серобдир, деб ўйлайман. Масалан:
if Isxodnik = '' then OmonIsMiser := True;
Дастурда ҳисобот ҳам бор. Синфдаги ўқувчиларнинг имтиҳон натижаларини кўрсатиш ва Excel га экспорт қилиш имконияти ҳам қўшилган.
Omon aka ko'chirib oldim oshibka beryapti nima maslahat berasiz
Омон, Test.gdb таркибини янги Дельфи проектда очиб кўрмоқчиман. Қандай уланаман?
П.С. ФайрБирд ишлаб турибди.
Omon aka ko'chirib oldim oshibka beryapti nima maslahat berasizНима деган ошибка? Ошибкани тексти бордир?
Омон, Test.gdb таркибини янги Дельфи проектда очиб кўрмоқчиман. Қандай уланаман?Агар шунчаки базани кўрмоқчи бўлсангиз IBExpert (http://www.ibexpert.com/rus/) дан фойдаланинг. Interbase/Firebird базалари билан ишлаш учун мен билган энг яхши программа. Аввал ҳам айтганимдай мазохистлар учун интербейзнинг ўзини программаси ҳам бор. Номи ҳозир эсимда йўқ.
Агар шу база билан ишлайдиган программа тузмоқчи бўлсангиз дельфида Interbase нинг IBDataBase деган компоненти бор. Шу орқали уланасиз.
Мен программамда DataModule яратиб базага қуйидаги код орқали уланганман:
procedure TDM.DataModuleCreate(Sender: TObject);
var DBPath:string;
begin
IniFileFullName := ExtractFilePath(Application.ExeName) + 'tester.ini';
if not FileExists(IniFileFullName) then
begin
MessageDlg('Konfiguratsiya fayli topilmadi', mtError, [mbOk], 0);
Exit;
end;
DBPath := Trim(GetStringParametr(IniFileFullName, 'SYSTEM', 'DBPath', ''));
if DBPath = '' then
begin
MessageDlg('Konfiguratsiya faylida MB ga yo`l ko`rsatilmagan', mtError, [mbOk], 0);
Exit;
end;
DB.Close;
DB.DatabaseName := DBPath;
DB.Params.Clear;
DB.Params.Add('User_name=SYSDBA');
DB.Params.Add('Password=masterkey');
try
DB.Open;
If(frmLogin = nil)Then
Application.CreateForm(TfrmLogin, frmLogin);
frmLogin.ShowModal;
except
MessageDlg('MB ga ulanish mumkin emas',mtError,[mbOK],0);
Application.Terminate;
end;
end;
function TDM.GetStringParametr(AFileName, ASection, AIdent, ADefault: string): string;
begin
with TIniFile.Create(AFileName) do
try
Result := ReadString(ASection, AIdent, ADefault);
finally
Free;
end;
end;
Проблема по БД:
При добавлении новой записи в таблицу нажимается клавиша Insert и тогда чтобы окошко ввода появилась в конце списка DBGridа, что и где написать?
=====================
БД да муаммо:
Талицага янги запис қўшиш учун DBGrid да Insert клавиши босилади, шунда киритиш дарчаси DBGrid нинг энг пастки қаторида (рўйхатнинг охирида) пайдо бўлиши учун қаерда ва нима дейиш керак?
БД да муаммо:
Талицага янги запис қўшиш учун DBGrid да Insert клавиши босилади, шунда киритиш дарчаси DBGrid нинг энг пастки қаторида (рўйхатнинг охирида) пайдо бўлиши учун қаерда ва нима дейиш керак?DBGridда Insert кнопкаси босилганда курсор турган қатордан олдин бўш қатор пайдо бўлади. Бўш қатор охирида пайдо бўлиши учун энг охирги қаторга бориб кейин пастга стрелкани босиш керак.
Лекин
Бунинг учун DBGrid нинг DataSource ининг DataSet и албатта Table ёки бирон бир виртуальная таблица(стандарт компонентларда бунақаси йўқ) масалан RxMemoryData бўлиши керак.
Table орқали ишласангиз маълумот киритиш баъзи ҳолларда осон ишлайди (таблицада биронта ҳам foreign key бўлмаган ҳолларда) лекин маълумотни юклаб олиш через одно место ишлайди. SQL запрослар ишлатолмайсиз, фильтр жуда секин ишлайди. Виртуальная таблица билан ишласангиз бу усулда инсерт қилсангиз янги қўшилган ёзув DBGrid да пайдо бўлиши мумкин лекин базага бориб тушмайди.
Маслаҳат: Агар янги запись қўшиш керак бўлса DBGrid нинг ўзида қўшишни тавсия қилмайман. Янги запись қўшиш учун алоҳида форма ясаб ўша ердан базага инсерт қилишни тавсия қиламан.
DBGridда Insert кнопкаси босилганда курсор турган қатордан олдин бўш қатор пайдо бўлади. Бўш қатор охирида пайдо бўлиши учун энг охирги қаторга бориб кейин пастга стрелкани босиш керак.
Айнан шундоқ. Лекин мен айтгандек иложи борми? Query дан фойдаланяпман.
Маслаҳат: Агар янги запись қўшиш керак бўлса DBGrid нинг ўзида қўшишни тавсия қилмайман. Янги запись қўшиш учун алоҳида форма ясаб ўша ердан базага инсерт қилишни тавсия қиламан.
Албатта, кўп майдонли запислар учун алохида форма жуда тўғри, лекин майдонлар сони атиги 3 та ва улардан иккитаси автоматик хисоблаб қўйиладиган ва жадвалда (ДБГридда) акс этмаслиги керак бўлсачи?
Албатта, кўп майдонли запислар учун алохида форма жуда тўғри, лекин майдонлар сони атиги 3 та ва улардан иккитаси автоматик хисоблаб қўйиладиган ва жадвалда (ДБГридда) акс этмаслиги керак бўлсачи?Албатта битта майдон учун алоҳида форма яхшимас. Яхшиси мана бунақа қилиш керак:
IStr := InputBox('Ismingizni kiriting: ', 'Ism :','');
Query1.SQL.Add('insert into odamlar (ism) values ('''+IStr+''')');
Программани ишлатолдингизми? Таассуротлар қанақа?
Bir marta ishlatib ko`z yugurtirib chiqdim, ammo batafsil ko`rib chiqolmadim. Menga yoqdi, rahmat. Keyinroq savollar bo`lsa berarman (savol albatta bo`ladi deb o`ylayman :) )
Bir marta ishlatib ko`z yugurtirib chiqdimИшлаган бўлса бўлди. Программа айниб қолмасин дейманда :) Срок годности 1 месяц. Не употреблять после истечении срока
Нима учун ДБГридда ИНСЕРТ босилганда янги ёзув курсордан битта юкорида киритилади ва курсор силжиганда, хозиргина киритган ёзувинг рўйхатнинг энг охирига тушиб кетади? Бу ж-у-у-у-да ноқулай, фойдаланувчи учун. Нахотки, мумкин эмас, соддагина, инсонпарвар усул билан ДБГридга гап уқтиришнинг?!
Агар бу мумкин бўлмаса, у холда нима учун?
Нахотки, Андерс Хейлсберг бунга эътибор бермаган бўлса?
Нима учун ДБГридда ИНСЕРТ босилганда янги ёзув курсордан битта юкорида киритилади ва курсор силжиганда, хозиргина киритган ёзувинг рўйхатнинг энг охирига тушиб кетади? Бу ж-у-у-у-да ноқулай, фойдаланувчи учун.гридда инсерт(яъни орасига тиқиш) ўз вазифасини бажаради. фойдаланувчи учун ноқулай нарсани қулай қилиш программистнинг вазифаси.
"орасига тиқиш" деганга қўшилмайман. Қандай қилиб файлни "орасини йириб" ёзувни "тиқиб" қўйиш мумкин? Агар шундай бўлганда, юқоридагидек "нозик" сўзлар ва индекслаш деган "бало"ларга хожат қолмаган бўларди.
Менинг фикрим, ёки ниманидир хисобга олмаяпмиз ёки компоненти усталарча алдашимиз керак.
Савол:
а) Нимани хисобга олмаяпмиз?
б) Компонентни қандай алдаш мумкин?
Узр, канака файл хакида гап кетяпти? Индекснинг бунга нима алокаси бор?
а) дбгридни свойстваларини караб куринг. EhLib ни гридиниям ишлатиб куринг.
б) bookmark дан фойдаланинг.
Ишлаган бўлса бўлди. Программа айниб қолмасин дейманда Срок годности 1 месяц. Не употреблять после истечении срока
Men tayyor dasturlarni yoqtirmayman, chunki ming yaxshi ishlamasin, baribir mening talabimga javob bermasligi mumkin, shu sababdan ham Sizning dasturingizning ish prinsipini tushunib olib o`zimga moslab o`zgartirsam degandim, bunga ruxsat bordir axir. Aslida o`zi doim shunaqa qilib yuraman, unutmanglar men dasturchi emasman. :)
Ҳал бўлди.
DBGrid нинг dgEditing опцияси False турган холда Insert клавишасига хеч қандай реакция бўлмайди, шунинг учун Формага ActionList қўйдим. Унга янги ёзув қўшишга жавоб берувчи Акт (actNewExecute) ёздим. Бу актнинг ShortCut хусусиятига Ins клавишини боғладим.
Ёзув таблицанинг охирига қўшилиши учун Append қўлланиши керак экан.
Қуйида содда синов модулининг коди:
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Query1.Open;
end;
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN
then
begin
if Query1.State in [dsEdit, dsInsert]
then
Query1.Post;
end;
end;
procedure TForm1.Query1AfterPost(DataSet: TDataSet);
begin
DBGrid1.Options := DBGrid1.Options - [dgEditing, dgAlwaysShowEditor];
end;
procedure TForm1.Query1AfterCancel(DataSet: TDataSet);
begin
DBGrid1.Options := DBGrid1.Options - [dgEditing, dgAlwaysShowEditor];
end;
procedure TForm1.actNewExecute(Sender: TObject);
begin
DBGrid1.Options := DBGrid1.Options + [dgEditing, dgAlwaysShowEditor];
Query1.Append;
DBGrid1.SetFocus;
DBGrid1.Fields[1].FocusControl;
end;
end.
Рахмат, Омон. Агар сир бўлмаса, асосий дастурлаш инструментинигиз нима? Ва яна:
1) Дельфига Ўзбекистонда эътибор қандай?
2) Форумда делфинлар борми?
Форумда делфинлар борми?
Bu haqda boshqa forumlarda ham savollar berishgan, men Saidolim degan yigitni bilardim, hozir nima qilyapti bilmayman, ammo Delphini zo`r bilardi.MYPda tanishgandim. forum.dastur.uz da ham bir ko`rganday bo`luvdim.
Omon. Delphini bilgan odam mana shu BD bilan ihlashni qacha vaqtda o`rganib olishi mumkin, uning ustiga agar ilgari ozgina ishlagan bo`lsa. Bir o`rgatmaysizmi? Men Dbase da iashlagandim agar adashmasam, yo`nalishni ko`rsatish kerakligi menga yoqmagandi, baribir hammasida ham bir xil ekan-ku.
Рахмат, Омон. Агар сир бўлмаса, асосий дастурлаш инструментинигиз нима?Ҳозирда Java ва PL/SQL. 4 йилдан бери делфида биронта тузукроқ иш қилганим йўқ. Шароит шуни тақозо қилди. Ундан аввал асосан делфида ишлаганман(4 йил). Қолган саволларга жавоб беролмайман. Лекин делфи билан ҳам нон топса бўлади.
Delphini bilgan odam mana shu BD bilan ihlashni qacha vaqtda o`rganib olishi mumkin, uning ustiga agar ilgari ozgina ishlagan bo`lsa.Ҳамманинг ўзига боғлиқ. Масалан менга БД билан ишлай бошлаш учун 1 ой етарли бўлган. Лекин 8 йилдан бери тажрибамни тўлдириб бораман.
Bir o`rgatmaysizmi?Ҳаракат қиламиз. dastur.uz да МБ ҳайида умумий тушунчаларни 3 та мақола қилиб ёзгандим. Менимча БД билан танишишга ёрдам берса керак.
Men Dbase da iashlagandim agar adashmasam, yo`nalishni ko`rsatish kerakligi menga yoqmagandi, baribir hammasida ham bir xil ekan-ku.Базани қаердалигини автомат равишда топадиган қилсангиз йўл кўрсатиш шартмас :)
Men tayyor dasturlarni yoqtirmayman, chunki ming yaxshi ishlamasin, baribir mening talabimga javob bermasligi mumkin"Бирон ишнинг идеал бажарилишини хоҳласанг уни ўзинг бажар" деган экан машойихлар.
"Бирон ишнинг идеал бажарилишини хоҳласанг уни ўзинг бажар" деган экан машойихлар.
Siz bergan maslahatlarga baribir aqlim yetmadi, o`zim qo`limdan kelganicha qivomman, mana bugun ikkinchi kuni, judayam Siz qilganingizdakamasu ammo ishlavotti. Men faqat, DataBasedan foydalandim. Shu, hammasini bitta faylga joylashtirolmadim, har bir dars uchun alohida fayl ochyapman (bilaman Ayyayyay, ammo qo`limdan kelgani shu), baribir, maslahatlar uchun rahmat, bir uchrashib shular to`g`risida suhbatlashsak bo`larkan, manimcha mangayam 1-2 soat yetsa kerak bazibir narsalarni tushunib olish uchun.
Men faqat, DataBasedan foydalandim.DataBase деганда DataBase номли СУБДни назарда тутяпсизми (очиғини айтсам DataBase номли СУБД борлигини биринчи марта эшитишим) ёки "Маълумотлар базаси"ними?
DataBase деганда DataBase номли СУБДни назарда тутяпсизми (очиғини айтсам DataBase номли СУБД борлигини биринчи марта эшитишим) ёки "Маълумотлар базаси"ними?
Database Desktop - Delphining o`zi bilan install qilinarkan. Baribir, siznikiga o`xshab hammaini bitta faylga joylay olmayapman.
Database Desktop - Delphining o`zi bilan install qilinarkan. Baribir, siznikiga o`xshab hammaini bitta faylga joylay olmayapman.Paradox да бунинг иложи йўқ. Хоҳлайсизми йўқми барибир битта таблица битта файл бўлади. Тармоқда ишлаганда муаммо чиқишига тайёр туринг.
ПС: Менинг программамга ўхшатиш осон эканми :) (бу албатта ҳазил)
Baribir o`rgatmasangiz bo`lmaydi shekilli, mana ko`rasiz men tez o`rganaman. Agar Database Desktop to`g`ri kelmasa Firebirdni ishlataveramiz.Bugun BD haqida bir disk obkeldim Yangioboddan. Ichida mandan boshqa hamma narsa bor :)
Мана бу Agar Database Desktop to`g`ri kelmasa Firebirdni ishlataveramiz.Шу мавзудаги энг қимматли хабар :)
Шу мавзудаги энг қимматли хабар
Bo`pti, avval mustaqil u-bu narsa qilib ko`raman-de keyin Sizga murojaat qilaman (manimcha murojaat qilmaslikning iloji bo`lmasa kerak mening dasturlashdagi bunaqa "kuchli" bilimim bilan :) )
Bo`pti, avval mustaqil u-bu narsa qilib ko`raman-de keyin Sizga murojaat qilaman (manimcha murojaat qilmaslikning iloji bo`lmasa kerak mening dasturlashdagi bunaqa "kuchli" bilimim bilan )
Сиз учун http://dastur.uz да Delphi ва Firebird ёрдамида МБ билан ишлаш ҳақида "мақола" (http://dastur.uz/index.php?option=com_content&view=article&id=82:delphifirebird-boshlovchilar-uchun-likbez&catid=58:delphi) ёздим. Ўқиб кўринг. Балки ёрдам берар...
Проект основан на фреймах в которых должны отображаться данные. Таблицы БД расположены на модуле данных.
Как простым способом обрабатывать события открытия и закрытия Фрейма? Есть ли альтернатива?
Благодарю заранее за ответы.
Ta'lim sohasida qo'l keladimi tuzayotgan dasturiz ya'ni foydasi bormi
Bo`pti, avval mustaqil u-bu narsa qilib ko`raman-de keyin Sizga murojaat qilaman
Qildim-ey! O`zi endi qo`lim tegdi. O`sha Database Desktopda qildim. Ishladi, u ham men ham hursandmiz, ammo ... . Mana shu "ammo"si yomon-da. Ishlatib yurib-yurib, bir kuni OTni o`zgartirdim-da, dasturimni ishlatsam "He bor-e" deydi. Delphijonni ishlatib Aliaslar ochib bir nimalar qilib yo`nalishlarni berdim, hozir ham ishlayapti. Ammo, erta-indin boshqa kompga qo`yaman desam har safar Delphijon yoki Databas Desktopxon (yoki ikkovi)ni o`rnatib o`tirmayman-ku. Boshqa kompda ma`lumotlar ba`zasiga yo`l ko`rsatishning qanday yengilroq usuli bor?
Ta'lim sohasida qo'l keladimi tuzayotgan dasturiz ya'ni foydasi bormi
Albatta. Xudo xohlasa bu yil ingliz tili kompyuterda degan dars boshlash niyatidaman. O`shanda ishlataman. Mahalliy tarmoqda ishlaydigan dasturlar yaratishni boshlayman. Ana o`shanda rosa maslahatlar kerak bo`ladi.
Савоб ишни ҳар ким, ҳар куни қилиш керак деган пурмаъно гап бор. Шу десангиз, каминага блог (Блок деган шоир ёки блок ғишт билан адаштирилмасин) керак. Нима учун керак бўп қолди дейсизми? Унда эшитинг:
... Кеча биттаси (тўртта гапининг бирида лоф аралашмаса бўлмайдиган бу одам инсон сифатида тилло :) ) бир гурунгда "Блоги бўлмаган одам думи юлинган товуқ, йўғе, хўроз кабидир" деб қолди. Яна айтдики, бу блог орқали кўўп пул топиш мумкин экан. Рекламадан келадиган даромадники қўяверар экансиз. Исмиям кимийди-я, ҳа эсладим, Файзбекми, Фаёзбекми, Фейсбугми деган бир йигит шуни орқасидан "қора қозони"ни вақирлатиб қайнатаётганмиш. Бир қарасанг, кўнгли яримларга ёрдам, бир қарасанг, хайрия марафонлари ўтказаётганмишу, лекин пули, аксинча, кўпайиб кетаётганмиш. Тавба, бўлиши мумкинми-а, шу? Ниможит бит!
Биздан ҳам чиқсин энди блогчила, дунёни оғзи очилиб қолсин. Ривалдо келганда "ўххў" деганлар, "вўххў" деворсин :)
Бошқа бир илмдорроғи нима дейди денг? "Ука, санам манга ўхшаб шу форум аъзосисан. Сайтда ОмоН деган программист бор. Кимгадир текинга ҳам блог очиб берган деб эшитувдим. Блогспот.комга бирорта блог қўйиб берар, блоггер бўпкетсанг ҳақ-пақ берарсан".
Ўйланиб қолдим... Нима десам экан, модераторимизнинг мушуклари ҳам текинга офтобга чиқмаётган бу замонда, акамбойдан иккиланмасдан сўрасаммикан ёки Файзбекка ўхшаб миллионер бўлганимдан кейин ҳаққизни оласиз десаммикан?
Маслаҳатлариззи кутиб қолувчи Эштўхта Қўйбоқаров
BD bilan ishlamoqchi bo`lganimda bu yaxshi fikr emasligini aytib massivlar bilan ishlashni maslahat berishgan edi, shu-shu massivlar bilan ishlayman.:) massiv bilan BD ni solishtirish noo'rin. Dastur kodida judayam ko'p konstantalar bo'lgani uchun delphi kompilyatsiya qilolmayapti. Demak boshqa usulni qo'llash kerak. Source code ni ko'rsata olasizmi? Balki shu yerda birgalashib qilarmiz...
Ilgari o`zim ozgina bol`sa ham tushunardim, hozir esa yetti yil bo`ldi, faqat matnni o`zgartirib dasturni yangilab o`tiraman. Mana ko`d:
procedure TDars_Form.FormShow(Sender: TObject);
begin
soz:='45';
{---------- 1 Dars --------}
Uzb[1,1]:='yutuq, muvaffaqiyat, g`alaba'; Eng[1,1]:='achievement';
Uzb[1,2]:='hayratlanarli, qoyilmaqom, ajoyib'; Eng[1,2]:='amazing';
Uzb[1,3]:='qadimgi, qadimiy, ko`hna'; Eng[1,3]:='ancient';
........
Dars_Max[1]:=100;
{---------- 2 Dars --------}
Uzb[2,1]:='1) hisobchi; 2) (yuridk) javobgar'; Eng[2,1]:='accountant';
Uzb[2,2]:='aerobika'; Eng[2,2]:='aerobics';
Uzb[2,3]:='ta`sirini o`tkazmoq, mug`ombirlik qilmoq';
.....
Dars_Max[2]:=126;
..... va hakazo
i:=1;
tj:=0;
Label3.Caption:=IntToStr(i)+'.';
label1.caption:=Uzb[Dars,i];
edit1.text:='';
end;
Mana shu va hakazosi ko`payib ketdi. Shu sababli hotira yetmayapti. Hurmatli Omon, agar iloji bo`lsa mummoni shunda hal qilsak-de, keyingi dasturlarimga boshqa ilojini topsak, yaxshi bo`lardi, chunki men buni bitirib olishim kerak. Bu tipdagi dasturlarim juda ko`p, boshida qilinayotganda albatta bunday kattalashib ketishi hech kimning hayoliga ham kelmagan, agar BD bilan ishlashning iloji bo`lsa o`zim ham yo`q demasdim, ammo BD bilan alohida ishlaymanu, Delphi bilan kelishtirolmayman.
ini файл билан богланг!
ini файл билан богланг!
Koshki edi tushunsam. :)
ini файл билан богланг!
Koshki edi tushunsam. :)ini fayldan fiydalanishni maslahat berganimga 3 yil bo‘ldi...
vBulletin® v3.8.5, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot