მეთოდის აღწერა სამწუხაროდ არ ყოფნის, შექმნილი კნოპკა არაფერს არ აკეთებს.
ანუ რა ხდება, დავუშვათ თავიდანვე მაქვს 1 კნოპკა (რომელიც არსებობს პროგრამის გაშვებამდე), ამაზე დაწკაპუნების შემთხვევაში შეიქმნას მეორე კნოპკა (ეს უკვე პროგრამის გაშვების შემდეგ). მეორე კნოპკის დაწკაპუნების შემთხვევაში მოხდეს რამე, მაგ.: დაიხუროს პროგრამა.
1-ის კოდში ვქმნი ახალ (მეორე) კნოპკას:
TButton* button2 = new TButton (Form1);
შემდეგ როცა ვწერ ამ მეთოდებს
.h
void __fastcall button2Click(TObject *Owner);
.cpp
void __fastcall Form1::button2Click(TObject *Owner)
{
Form1->Close();
სულერთია, ნებისმიერი მოქმედება
}
მეორე კნოპკა არაფერს არ აკეთებს.
ფორუმებში დინამიური კნოპკის შექმნასთან ერთად რაღაც ასეთსაც აკეთებენ:
TButton* button2 = new TButton (Form1);
button2.Click = button2Click;ან
button2 ->OnClick += new TMouseEvent (button2Click);აი კიდევ ერთი მაგალითი (C#):
აღწერა:
void button_Click(object sender, EventArgs e)
{
Button curBtn = (sender as Button);
curBtn.Text = "Текст";
}
და აღწერილის მინიჭება:
button2.Click += new EventHandler(button_Click);
და კიდე რამოდენიმე სხვადასხვა ვარიანტია, მაგრამ ბილდერი შეცდომას მიგდებს.
შეიძლება ეს კოდები რომელიმე სხვა პროგრამული ენისთვის იყოს დაწერილი, c++-ში როგორ კეთდება, თუ გქონიათ მსგავსი შემთხვევა?
უუუუფ, დამტანჯა რა...
* * *
აი, რამოდენიმე ლინკი ინგლისურ ენაზე.
სამწუხაროდ ამის გაგებაში არც ინგლისური მიწყობს ხელს, არც პროგრამირების ცოდნის დონე:
http://msdn.microsoft.com/en-us/library/dfty2w4e.aspxhttp://www.cplusplus.com/forum/beginner/13077/http://forums.devshed.com/delphi-programmi...ent-189039.html * * *
უუუუფ.... გამოვიდა!!!!
kaxa251მართალი იყავი, პრობლემა იმაში იყო რომ ევენტის აღწერას ჰეადერ ფაილის "__published:" ის მაგივრად "public:" სექციაში ვაკეთებდი...
ეხლა მაქვს ესე:
HEADER FILE:
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall event_name(TObject *Sender); // აქ უნდა იყოს
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
// და აქ ვტენიდი, მაგაში იყო შეცდომა
};
---------------------
CPP FILE:
void __fastcall TForm1::event_name(TObject *Sender)
{
// ევენტის კოდი
}და ესეც კნოპკა თავისი მინიჭებით:
TButton *btn = new TButton (Form1);
btn->Parent = Form1;
btn->OnClick = event_name; // აქ ბოლოში ფრჩხილებიც კი არ სდომებია, მითუმეტეს მთელი ობიექტების და მიმთითებლების გადაცემა - ტიპების გარდაქმნა და ერთი ამბავი )))))))
sabexakaxa251და ვინც შემოიხედა, მადლობა ყველას