COMPINFO - კომპიუტერული ინფორმაცია - სტატიები » პროგრამირება » უნიკალური ჰიბრიდი

http://compinfo.ge/index.php?type=preview&area=1&p=articles&id=19


ადგილმდებარეობა  მთავარი » სტატიები » პროგრამირება
უნიკალური ჰიბრიდი

    ერთ მშვენიერ ზაფხულის დღეს, როცა ჩიტები საამურად ჭიკჭიკებდნენ და “ბოროტი” მზე კი ცივი ჩაით მჭყიპავდა გადავწყვიტე, რომ ჩემს სანუკვარ MSDN-ში შემევლო და ბოლოს და ბოლოს ვინმესთვის მეკითხა თუ რას წარმოადგენდა ეს ყბადაღებული HTML. იქ ერთმა “ბიძიამ” ყოველგვარი ენაწყლიანობის გარეშე მირჩია რომ შემექმნა უბრალო ტექსტური ფაილი, მასში რამოდენიმე ფორმალობის დაცვის შემდეგ ჩამეწერა რაიმე სიტყვა და თავში და ბოლოში გამეკეთებინა მაგალითად ასეთი ჭდეები: <b>. . .</b>. ბოლოს ეს ფაილი შემენახა htm გაფართოებით და დამედუბლიქლიქებინა.

    პატიოსნად დავიცავი რა წესები. . .

    ჰოი საოცრებავ! ! !   Iamge at : www.g3b.ge

    ჩემს წინ იდგა სახელოვანი Internet Explorer-ი მთელი თავისი დიდებულებით და მასში ამაყად წამოჭიმული სიტყვით. მაგრამ ეს კიდევ არაფერი, უფრო დიდი სიურპრიზი წინ მელოდა:
    ეს ისტყვა იყო გაბოლდებული!

    ვააააა . . . ! მართლა!?!!?!!?? - შეიძლება თქვას მკითხველმა და პროგრამირებისგანყოფილებაიმედგაცრუებული გადავიდეს კომპინფოს სხვა სტატიაზე, მაგრამ

STOP ! 

Image at : www.g3b.ge

    ისეთი კატეგორიის პროგრამისტისათვის რომლებიც ერთ დროს შავ და ორაზროვან DOS-ში აპროგრამებდა, დოკუმენტების ისეთი სახით შენახვა, რომ ის იყოს ერთდროულად მცირე ზომის და თან გაფორმებული სურვილისამებრ, ნამდვილად ძვირფასი საჩუქარია და ამას ვერც Notepad-ში და ვერც WordPad-ში სრულად ვერ მიაღწევ. ხოლო, რაც შეეხება მის უდიდებულესობა Word-ს ის მაგალითად ჩემს ნერვებ მოსაშლელად არის მოფიქრებული და როცა ჯერ მარტო ცარიელი დოკუმენტი იწონის 11 კილოს რათქმა უნდა განკიცხვის ღირსია...

    ცხადია, ეს ხუმრობით, მაგრამ აქ მთავარი ის არის, რომ ასე დაიწყო რა ჩემი ნაცნობობა HTML- თან ამას პროგრამირების სამყაროშიც უკვალოდ არ ჩაუვლია. შემდეგ ერთმა ღვთისნიერმა ამიხსნა თუ როგორ უნდა გამოვიყენო ქართული უნიკოდი ვებ-სისტემებში და ამით საქმეც აეწყო.

    შესავალი გვეყოფა, შევუდგეთ საქმეს.

    როცა Visual Studio.NET 7.0 დავაყენე და დავიწყე მასში დიალოგური ფანჯრების კეთება ყოველი ახალი კლასის შექმნისას იგი მთავაზობდა ასეთ უცნაურ მშობელ კლასს CHtmlDialog. ცხადია თავიდან მას ყურადღებას არ ვაქცევდი მშვიდად ვცვლიდი რა უკვე კარგად გამოცდილ CDialog-ით, მაგრამ ერთხელ როცა უკვე მეცნო მასში სიტყვა Html გადავწყვიტე დავთანხმებულიყავი სტუდიოს შემოთავაზებას და . . .

    ჰოი მეორე საოცრებავ ! ! !  Iamge at : www.g3b.ge  Image at : www.g3b.ge

    ჩემს წინ იდგა დიალოგური ფანჯარა ზედ გაკრული Html გვერდით.

    მააშ!, მივყვეთ ინსტრუქციებს:


   1. გავუშვათ Visual Studio.NET 7.0.
   2. შევქმნათ ახალი პროექტი სახელით TestHTML. (ცხადია MFC Based)
   3. გამოვა ნაცნობი ვიზარდ-კლასთუხუცეს- მაიკროსოფტელი და თავაზიანად შემოგვთავაზებს თავის მენიუს; იქ განყოფილებაში Aplication Type ამოვირჩიოთ Dialog based და მოვნიშნოთ Use HTML dialog (ეს მნიშვნელოვანია).
   4. ბოლოს Finish.

    შეიქმნება პროექტი. თქვენც მეტი რა დაგრჩენიათ მიაკომპილეთ და გაუშვით:

Image at : www.g3b.ge 

    შედეგად რა: ნაცნობი დილოგური ფანჯარა ოღონდ მასზე განთავსებული არა სტანდარტული MFC არამედ HTML კონტროლებით ანუ ე.წ. ფორმებით: ტექსტი და ორი ღილაკი (სხვათაშორის ფერიც და მოხაზულობაც ცოტა განსხვავებულია).

    ახლა ვნახოთ რა ხდება თვითონ პროექტში. ალბათ შეამჩნევდით რომ იქ რესურსებს დაემატა ერთი ასეთი ფაილი სახელით TestHTML.htm, და იდენტიფიკატორით IDR_HTML_TESTHTML_DIALOG, ჰოდა სწორედ ის აგებს პასუხს ფანჯრის გაფორმებაზე. ვიცით რა ენა HTML, შეგვიძლია გარდავქმნათ ეს ფაილი სურვილისამებრ და განვათავსოთ იგი დიალოგურ ფანჯარაზე. მას თითქმის ყველა სახის ვებ კომპონენტების მხარდაჭერა გააჩნია, მათ შორის ე.წ. Frame-ებისაც. მაშ, შექმნის ტექნოლოგია გასაგებია, ხოლო დანარჩენი უკვე ლოგიკის საქმეა.

    ახლა, რაც მთავარია HTML კონტროლისა და ჩვენს პროგრამას შორის კავშირი. ამისათვის არსებობენ ასეთი კატეგორის ფუნქციები: DDX_DHtml_.

    მაგალითად:

    void CTestHTMLDlg::DoDataExchange(CDataExchange* pDX)    
    {    
       CDHtmlDialog::DoDataExchange(pDX);    
       DDX_DHtml_Img_Src(pDX,_T("ANY_1"),sANY_1);    
    }

    ახდენს ინფორმაციის გაცვლას HTML კონტროლის ID-ისა (“ANY_1”) და ჩვენს მიერ შექმნილი CString ტიპის ცვლადს (sANY_1) შორის, ცნობილი ფუნქციით UpdateData(bool);

    ასევე უკავშირდება ერთმანეთს ივენთებიც:

    BEGIN_DHTML_EVENT_MAP(CLabDemoDlg)
       DHTML_EVENT_ONCLICK(_T("Button_1"), OnButton1)
    END_DHTML_EVENT_MAP()

    აქ "Button_1" არის HTML ღილაკის იდენტიფიკატორი, ხოლო OnButton1 კი ფუნქცია რომელიც ამ ღილაკზე დაჭერისას იმუშავებს.

    მოკლედ, პრინციპში ინფორმაცის გაცვლის ეს სიტემა იძლევა ყველაფრის საშუალებას, მგალითად მაგალითად C++ კოდიდან დავაყენოთ სასურველი ანიმაცია ან HTML Frame-ის სასურველი ვებ გვერდი.

    მაშ ასე მეგობრებო თქვენს ხელთ უძლიერესი იარაღია და დაე ღმერთმა მშივიდობაში მოგახმაროთ.

    აი, სულ ეს იყო რაც მინდოდა მეთქვა.

რეზიუმე

კაი ყმა სხვაზედ არ ჰბრაზობს,
აზრებ არ მასდის ცუდიო,
ისეც ბევრ სურპრიზს სთავაზობს,
MS Visual Studio!

 ავტორი: გიორგი ბაწაშვილი(G3B)

  
ინფორმაცია


თემატური სტატიები






გამოხმაურება

აღდგენილია სტატიის საწყისი ვარიანტი
07-02-2010, 12:44:19 | G3B

მაგარია რა ძააააააან მალადეც რა გავიგუდე სიცილით ამას რო ვკითხულობდი
04-09-2008, 23:49:31 | classical

უფრო დაწვრილებით მაინტერესებს სტატია და მაილზე ხომ ვერ გამომიგზავნიდით gioandgio@mail.ru
18-06-2008, 13:21:06 | giona


კომენტარის დატოვება
თქვენ არ შეგიძლიათ კომენტარების დატოვება.