class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TEdit *Edit2;
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall EditEnter(TObject *Sender);
private: // User declarations
public: // User declarations
TObject *Prev;
__fastcall TForm1(TComponent* Owner);
};
компонент в фокусе
Как сделать так чтобы текст печатался с кнопок только в том из двух Edite, который активен в данный момент?
Цитата:
Originally posted by vpdt
Как сделать так чтобы текст печатался с кнопок только в том из двух Edite, который активен в данный момент?
Как сделать так чтобы текст печатался с кнопок только в том из двух Edite, который активен в данный момент?
а текст и так будет печататься только в активном компоненте
Цитата:
Originally posted by Admin_Locky
а текст и так будет печататься только в активном компоненте
а текст и так будет печататься только в активном компоненте
Нет Кнопка(Button) должна печатать только в той из Еdit , которая в фокусе ;)
Цитата:
Originally posted by vpdt
Нет Кнопка(Button) должна печатать только в той из Еdit , которая в фокусе ;)
Нет Кнопка(Button) должна печатать только в той из Еdit , которая в фокусе ;)
хммм... действительно траблы...
Button снимает фокус с поля... поэтому нифига и не выйдет...
попробуй повесить код на SpeedButton:
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
if (Edit1->Focused()) ShowMessage("Фокус в первом поле");
else ShowMessage("Фокус не первом поле (фокус не удался :) )");
}
тогда edTemp будет указывать на Edit активный в последний момент до потери фокуса, и кнопки будут вбивать текст в него, даже если фокус уже будет на самих кнопках
сам не пробовал, но вроде логично
Цитата:
Originally posted by _kolyan
Заведи себе указатель TEdit *edTemp а в обоих Edit'ах на событие OnEnter (должно вызываться при получении фокуса контролом) сделай присвоение edTemp = Sender
тогда edTemp будет указывать на Edit активный в последний момент до потери фокуса, и кнопки будут вбивать текст в него, даже если фокус уже будет на самих кнопках
сам не пробовал, но вроде логично
Заведи себе указатель TEdit *edTemp а в обоих Edit'ах на событие OnEnter (должно вызываться при получении фокуса контролом) сделай присвоение edTemp = Sender
тогда edTemp будет указывать на Edit активный в последний момент до потери фокуса, и кнопки будут вбивать текст в него, даже если фокус уже будет на самих кнопках
сам не пробовал, но вроде логично
ага
и выглядит примерно так
Код:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
((TEdit *)Prev)->Text="Button1";
}
void __fastcall TForm1::EditEnter(TObject *Sender)
{
Prev=Sender;
}
{
((TEdit *)Prev)->Text="Button1";
}
void __fastcall TForm1::EditEnter(TObject *Sender)
{
Prev=Sender;
}
Спасибо за помощь:)