დავთესოთ ერთხელ, მოვიმკათ მრავალჯერ
ნიადაგი კომპინფოს ერთერთ ნომერში ჩვენ შევეხეთ ვინდოუს-კონტროლებზე შრიფტის და ფანჯრის ფერის დაყენების საკითხს ოღონდ იქ მოყვანილი იყო ძირითადი მომენტები ანუ ის თუ როგორ შეიძლება საერთოდ განხორცილელებულიყო ეს სისტემა MFC, WinAPI ტიპის პროექტებში, შესაბამისად კოდის დონეზეც მისი გაკეთება წარმოადგენდა საკმაოდ დამღლელ პროცესს გამოუცდელი პროგრამერისათვის და არა მარტო მათთვის, რადგან იმ შემთხვევაშიც კი როდესაც წინასწარ მზად გვაქვს ყველა მახასიათებელი პარამეტრი, სტრუქტურა თუ ცვლადი და ყოველ ახალ პროექტში ვახდენთ მათ უბრალო კოპირებას, თითოეული ვინდოუს-კონტროლისათვის თუნდაც ორი-სამი საკუთარი პარამეტრის და ფუნქციის ბლოკის შექმნა საკმაოდ მოუხერხებელია. while( (აღარ_გახსოვთ_ის_სტატია) ან (არ_იცით_რაზეა_ლაპარაკი) ) მოკლედ, რა ხდება: თუ უკვე შეასრულეთ ზემოთ მოყვანილი პროცედურა მაშინ მინდა მოგახსენოთ რომ ამჯერად საქმეს მივიყვანთ იქამდე, რომ ყოველი ახალი პროექტის შექმნისას ვინდოუს-კონტროლის გრაფიკული მახასიათებლების შესაცვლელად პროექტის ძირითად ფაილებში, მხოლოდ და მხოლოდ დაგვჭირდება ასეთი სახის კონსტრუქცია, მაგ:
და საქმეც დამთავრებულია ! აქ ნუ, ახლა მთლად ასეც არ არის, რომ დედიშობილა პროექტში ავკრიფოთ ეს ელეგანტური კონსტრუქცია და ყველაფერი თავისით გაკეთდეს, ცხადია ამისათვის ჩვენც რაღაც მსხვერპლი უნდა გავიღოთ, მაგრამ გაგახარებთ და გეტყვით, რომ მისი გაღება მოგიხდებათ ცხოვრებაში მხოლოდ ერთხელ, მერე კი იმკით და იმკით მიღებულ მოსავალს; მიხვდით ალბათ რომ ლაპარაკია გარკვეული კოდის h და cpp ფაილებში განთავსებაზე. ახლა, რა კოდია ეს ? რა კოდია ეს ! თუ ცოტათი მაინც გამოცდილი პროგრამერი ბრძანდებით ალბათ ერთხელ მაინც შეგიქმნიათ საკუთარი ფუნქცია და განგითავსებიათ საკუთარსავე ბიბლიოთეკაში. შევქმნათ უბრალოდ MFC ტიპის “დიალოგ-ბეიზდ” პროექტი, ყოველგვარი ზედმეტი კომპონენტებით გადატვირთვის გარეშე, როგორიცაა “აქტივიქსები”, “ებაუთები” და ასე შემდეგ, თუმცა არც ისინი დაგვიშავებენ რამეს. პროექტის სახელი იყოს TestColors. იმედია ვიზარდ-კლასთუხუცეს-მაიკროსოFტელთან ურთიერთობის ამბავში უკვე საკმაოდ დაოსტატდით. როგორც ამ ტიპის პროექტებს სჩვევიათ, დეFოლტად დაჯდება ორიოდე ღილაკი და ერთიც სტატიკ-კონტროლი. დავტოვოთ თითოეული მათგანი ხელუხლებელი, ოღონდ სტატიკის იდენტიფიკატორი IDC_STATIC შევცვალოთ IDC_STATIC1-ით. შემდეგ მივყვეთ მენიუს: Project --> Add class. . . ამოვირჩიოთ პუნქტი Generic C++ Class და დავაყენოთ პარამეტრები შემდეგი სახით მე ვიყენებ სტუდიოს 7.0 ვერსიას, თუ თქვენ გაქვთ უფრო ადრეული ან უფრო გვიანეული ვერსია მაშინ ალბათ გასაგებია რომ აქ არასტანდარტული არაფერი კეთდება და იგივეს გაკეთება თქვენს კომპილატორში არ გაგიჭირდებათ, იმ შემთხვევაშიც კი თუ ინტერფეისი ცოტათი განსხვავებულია. მოკლედ, პროექტში შეიქმნება კლასი სახელად CMyStatic, რომელიც არის CStatic-ის მემკვიდრე-შვილობილი.
ხოლო mystatic.cpp ფაილში კი შემდეგნაირად:
ყოველ შემთხვევაში მიაკომპილეთ და გაუშვით რათა წინასწარ აღვკვეთოთ ყოველგვარი პარაზიტული შეცდომები. შევქმნათ ფანჯარაზე ღილაკი სახელად “Set Color” და დავაორმაგწკაპუნოთ, შეიქმნება შესაბამისი ფუნქცია-მეთოდი. ჩავწეროთ მასში შემდეგი კოდი:
მივაკომპილოთ და გავუშვათ; დააჭირეთ Set Color ღილაკს და თუ ყველაფერი სწორედ გააკეთეთ, თქვენთითონ ნახავთ იმ მშვენიერ შედეგს რისთვისაც ამდენი ვიშრომეთ. :-) ასე რომ ყოველი ახალი პროექტის შექმნისას საჭიროა, მხოლოდ პროექტში ჩართოთ თქვენი h-cpp ბიბლიოთეკა და შესაბამისი ცვლადის ტიპად არჩიოთ არა სტანდარტული MFC კლასი, არამედ თქვენს მიერ შექმნილი შვილობილი კლასი. ცხადია, იგივე შეიძლება გაკეთდეს ედით-ბოქსისათვისაც. ეს უკვე თქვენთვის მომინდვია. რაღა თქმა უნდა საორგანიზაციო საკითხებიც ბიბლიოთეკებთან დაკავშირებით თქვენი გადასაწყვეტია. . . . არა, მაინც რა უცნაური ვინმეა ეს Microsoft-ი . . . აი, სულ ეს იყო . . . რეზიუმე "ის ურჩევნია მამულსა . . . "
ავტორი : გიორგი ბაწაშვილი (G3B) |
|
მიყვარხარ ვიღაც ხარ! :D:D