title: Mustahkamlash uchun savollar
text: Mustahkamlash uchun savollar.
  1.
  C++ Builderda grafik imkoniyatlarni tashkil qilib beruvchi bo`lim bormi?
  2.
  VCL ning vazifasi nima ?
  3.
  Pen va TCanvas elementi qanday element?
  4.
  Color xususiyatining vazifasini ayting.
  5.
  Tbrush elementining style xossasining qanday qiymatlarini bilasiz ?
  6.
  LineTo ning vazifasini ayting.
  7.
  Tpoint nima uchun ishlatiladi ?
  316
  8.
  Grafik matnlar bilan ishlovchi protseduralarni ayting.
  9.
  Egri chiziqni qanday chizish mumkin ?
  10.
  Draw nima ?
  6.7.
  Bеrilgаnlаrni fаyllаrdа sаqlаsh.
  Muhim so`zlar:
  LoadFromFile, SaveFromFile, TMemo, TStringList,
  TlistBox, TComboBox, TRichEdit, delete, insert, add, count, TFileStream.
  Bilib olasiz:
  Fayllar bilan ishlash, ma`lumot o`qish, yozish, qo`shish,
  o`chirish, LoadFromFile, SaveFromFile protseduralar bilan ishlash, TMemo,
  TStringList, TlistBox, TComboBox, TRichEdit elementlarda matnlarni yozish,
  qo`shish, o`chirish qulayliklari, TFileStream sinfi bilan tanishish.
  Juda ko`p visual elementlar va ba`zi sinflar fayllar bilan ishlash
  imkoniyatiga egadir. Asosan fayllar bilan ishlaganda quyidagi ikkita visual
  funksiyalardan foydalanamiz
  LoadFromFile("Fayl nomi");
  Faylni o`qish
  SaveToFile("Fayl nomi ");
  Faylni saqlash
  Bu funksiyalar matnli fayllar bilan ishlash uchun qulaydir. Masalan,
  6.7-listing.Faylni yuklash va saqlash.
  TMemo elementi yordamida faylni yuklash va saqlash.
  Memo1->Lines->Clear();
  Memo1->Lines->LoadFromFile("a.txt");
  ......
  Memo1->Lines->SaveToFile("a.txt");
  ......
  TStringList elementi yordamida faylni yuklash va saqlash.
  TStringList * ptStrintList;
  ptStrintList->Clear();
  ptStrintList=new TStringList();
  317
  6.7-listing.Faylni yuklash va saqlash.
  ptStrintList->LoadFromFile("a.txt");
  ......
  ptStrintList->SaveToFile("a.txt");
  ......
  ptStrintList->Free();
  TListBox elementi yordamida faylni yuklash va saqlash.
  ListBox1->Items->Clear();
  ListBox1->Items->LoadFromFile("a.txt");
  ......
  ListBox1->Items->SaveToFile("a.txt");
  TComboBox elementi yordamida faylni yuklash va saqlash.
  ComboBox1->Items->Clear();
  ComboBox1->Items->LoadFromFile("a.txt");
  ......
  ComboBox1->Items->SaveToFile("a.txt");
  TRichEdit elementi yordamida faylni yuklash va saqlash.
  RichEdit1->Lines->Clear();
  RichEdit1->Lines->LoadFromFile("a.txt");
  .....
  RichEdit1->Lines->SaveToFile("a.txt");
  Bu elementlardan tashqari C++ Builder da bir nechta elementlar borki,
  ulardan ham fayllarni yuklash va saqlashda foydalanish mumkin.
  SaveToFile funksiyasidan foydalanilganda fayl bo`lmasa, funksiya bu faylni
  darhol yaratib beradi. Barcha fayllar matnli fayl bo`lib yaratiladi. Faqatgina
  TRichEdit elementi yordamida *.rtf kengaytmali fayl bilan ishlash mumkin.
  Shuning uchun mantiqiy yozish maqsadga muvofiqdir.
  RichEdit1->Lines->SaveToFile("a.rtf");
  318
  Matnli fayllar bilan ishlaganda foydalaniladigan funksiya va ularning
  xossalari qatorning sonini hisoblaydi. Masalan,
  Memo1->Lines->Count;
  RichEdit1->Lines->Count;
  ptStrintList->Count;
  ListBox1->Items->Count;
  ComboBox1->Items->Count;
  Barcha elementlar qator qo`shish, o`chirish imkoniyatlarini bajaradi.
  Masalan, elementning ikkinchi qatorini o`chirib, o`rniga yangi matnni qo`yish va
  matn oxirida qo`shishni olaylik.
  6.8-listing. Matn qo`shish
  AnsiString vasS="Yes";
  TMemo elementi
  if(Memo1->Lines->Count >= 2) {
  Memo1->Lines->Delete(1);
  Memo1->Lines->Insert(1,vasS); }
  Memo1->Lines->Add(vasS);
  TRichEdit elementi
  if(RichEdit1->Lines->Count >= 2) {
  RichEdit1->Lines->Delete(1);
  RichEdit1->Lines->Insert(1,vasS); }
  RichEdit1->Lines->Add(vasS);
  TStrintList
  elementi
  if(ptStrintList->Count >= 2) {
  ptStrintList->Delete(1);
  ptStrintList->Insert(1,vasS); }
  ptStrintList->Add(vasS);
  319
  6.8-listing. Matn qo`shish
  TListBox
  elementi
  if(ListBox1->Items->Count >= 2) {
  ListBox1->Items->Delete(1);
  ListBox1->Items->Insert(1,vasS); }
  ListBox1->Items->Add(vasS);
  TComboBox
  elementi
  if(ComboBox1->Items->Count >= 2) {
  ComboBox1->Items->Delete(1);
  ComboBox1->Items->Insert(1,vasS); }
  ComboBox1->Items->Add(vasS);
  Matnni saqlovchi qator soni bo`yicha ham saralash mumkin. Masalan,
  AnsiString vasS;
  vasS=Memo1->Lines->Strings[n];
  vasS=RichEdit1->Lines->Strings[n];
  vasS=ptStrintList->Strings[n];
  vasS=ListBox1->Items->Strings[n];
  vasS=ComboBox1->Items->Strings[n];
  Keltirilgan elementlar va ularning xossalari matnli fayllar bilan ishlash
  imkoniyatini yaratib beradi. Eng ko`p ishlatiladigan elementlarga TMemo
  TrichEdit va sinflardan TStringList bilan ishlash tavsiya etiladi.
  TFileStream sinfi ham borki, u yordamida matnli fayllar bilan ishlashda juda
  ko`p imkoniyatlar bor. Masalan, TFileStream sinfida matnli fayl bilan ishlash
  ancha qulayliklarni beradigan listingni keltiramiz.
  6.9-listing
  //yangi oqim yaratamiz va unga faylni o`qish va yozish uchun yuklaymiz.
  TFileStream * tfile=new TFileStream("b.txt",fmOpenReadWrite);
  //kursorni (0,0) ga joylashtiramiz.
  320
  6.9-listing
  tfile->Seek(0,0);
  //bufferni tanlash.
  char *vchrgBuf;
  //buffer uchun xotira olinadi.
  if ((vchrgBuf = (char *) malloc(tfile->Size)) == NULL) {
  // buffer uchun olingan xotiraning mavjud emasligi haqidagi xabarni yozish
  // mumkin.
  return; }
  //buferdan axborotni o`qiymiz.
  tfile->Read(vchrgBuf,tfile->Size);
  // bufferda axborotni o`zgaruvchi o`qib olamiz.
  AnsiString vasS=vchrgBuf;
  //har ehtimolga qarshi
  vasS.SetLength(tfile->Size);
  //xotirani tozalash
  free(vchrgBuf);
  //oqimni tozalash
  tfile->Size=0;
  // TMemo elementiga axborotni ko`rish uchun yozamiz
  //Memo1->Lines->Clear();
  Memo1->Lines->Add(vasS);
  //axborotni o`zgartirmiz
  if(Memo1->Lines->Count >= 2) {
  Memo1->Lines->Delete(1);
  String vasS1="Salom Buxoro !!!";
  Memo1->Lines->Insert(1,vasS1); }
  //AnsiString ga TMemo ning ma`lumotini olamiz
  321
  6.9-listing
  vasS=Memo1->Lines->GetText();
  // buffer uchun xotira olinadi.
  if ((vchrgBuf = (char *) malloc(vasS.Length())) == NULL) {
  // // buffer uchun olingan xotiraning mavjud emasligi haqidagi xabarni yozish
  // mumkin.
  return; }
  //matnni buferga olish.
  vchrgBuf=vasS.c_str();
  tfile
  -
  >Write(vchrgBuf,vasS.Length());
  //oqimni tozalaymiz
  tfile->Free();
  //xotirani tozalaymiz.
  free(vchrgBuf);
  Yuqorida keltirilgan imkoniyatlar C++ Builderda matnli fayllarga
  ma`lumotlarni yozish, o`qish, o`zgartirish bilan ishlash juda ko`p qulayliklarni
  yaratib beradi. Bundan tashqari C++ Builderda tipli fayllari bilan ham ishlash
  mumkin.
  |