Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.03;
Скачать: CL | DM;

Вниз

Как обратится к компоненте не по имени, а по типу?   Найти похожие ветки 

 
Roki   (2003-03-20 17:15) [0]

Мастера, такая задачка. Есть несколько форм, на них лежат Edit-ы как вставить символ в активный на данный момент Edit? Т.е. не по имени, а по типу?


 
RoadStar ©   (2003-03-20 17:18) [1]

Поищи GetFocusedControl или шото типа этого.


 
Roki   (2003-03-20 17:29) [2]

Что-то такой функции я не нащел... Мастера помогите...


 
Mike Kouzmine   (2003-03-20 17:39) [3]

if ActiveControl is TEdit then TEdit(ActiveControl).Text := бла бла бла


 
Roki   (2003-03-20 17:52) [4]


> if ActiveControl is TEdit then TEdit(ActiveControl).Text
> := бла бла бла

ActiveControl метод какой-то формы? А если несколько окон?


 
Жук ©   (2003-03-20 17:55) [5]

TCustomForm


 
Mike Kouzmine   (2003-03-20 18:49) [6]

А это уже решай сам.


 
les ©   (2003-03-20 18:52) [7]


> ActiveControl метод какой-то формы? А если несколько окон?

TScreen.ActiveControl метод - есть такой класс. Дальше по help"у.


 
Roki   (2003-03-21 09:55) [8]

Если я при нажатии кнопки буду проверять такой код, то я потеряю фокус Edit... Как быть?


 
Roki   (2003-03-21 10:20) [9]

Война войной, а помочь кто-нибудь может?


 
Silver_   (2003-03-21 10:24) [10]

В общем так
TMainForm = Class(TForm)
...
published
Procedure aaa(Sender: TObject);
...
end;

Procedure TMainForm.aaa(Sender: TObject);
begin
if Screen.ActiveControl is TEdit then
TEdit(Screen.ActiveControl).Text:="bla bla bla";
end;

procedure TMainForm.OnCreate(Sender);
begin
TScreen.OnActiveControlChange:=aaa;
end;


Синтаксис проверь сам писал прямо тута НО ДОЛЖНО работать
сам пользую :) удачи.


 
Roki   (2003-03-21 14:34) [11]

глючит не реально, по 2 текста сразу добаляет и просто при фокусе...


 
les ©   (2003-03-21 14:39) [12]

Кажется понял что ти хочеш - TScreen.OnActiveControlChange - придется запиминать control имевший фокус перед тем как ти нажмешь кнопку. Так? Ну потом можно и фокус вернуть...


 
Silver_   (2003-03-21 14:53) [13]

не так
Screen.ActiveControl - активный на данный момент компонент
TEdit(Screen.ActiveControl).Text:="abc";
происходит вставка в текущий Edit "abc"

а чтоб все это работало при переходе на елемент
вышеуказаное присвоение делаешь в роцедуре "ааа"

Screen.OnActiveControlChange:=aaa;
будет выполнаться процедура "ааа" при каждом смене текущего обьекта и естессно если текущий обьект TEdit присваивает то че нада

поправь код в OnCreate формы и вышеуказанный код сделает ВСЁ.
Удачи!


 
Roki   (2003-03-21 16:24) [14]

2 Silver_
что-то не догоню, ты опять то же самое написал...

> поправь код в OnCreate формы и вышеуказанный код сделает
> ВСЁ.

что там надо поправить?


 
les ©   (2003-03-21 17:10) [15]

Roki еше раз только четко и ясно обясни что тебе нужно. Что значит "Т.е. не по имени, а по типу?"?


 
spogi   (2003-03-22 00:50) [16]

nu tam est ocen otlicniy moment napisal <Silver_> prosto skopiruy kod budet rabotat... no problemu s etim povtorom mojno reshat tak: var Mojno:Boolean;

Procedure TMainForm.aaa(Sender: TObject);
begin
if Screen.ActiveControl is TEdit then
if Mojno then
TEdit(Screen.ActiveControl).Text:="bla bla bla" else Exit;
Mojno:=False;
end;


a pri novom ActoveControl opyat:
mojno:=True;




Страницы: 1 вся ветка

Текущий архив: 2003.04.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.301 c
14-6708
NetBreaker666
2003-03-15 19:50
2003.04.03
Есть заказ, платят $1500.


6-6656
Junior
2003-02-05 14:35
2003.04.03
проблема с TCP client-server


14-6669
Jurd
2003-03-17 13:40
2003.04.03
Аспирантский реферат по философии


7-6824
Pakshin A. S.
2003-02-11 11:50
2003.04.03
Очистка корзины...


4-6852
}{enon
2003-02-01 19:05
2003.04.03
Хук на перерисовку окна