IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Memo,code.foces,memo.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Здравствуйте!У меня 2-а вопроса:
1)Пользователь вводит в Memo команды паскаля(If x=1 then....)Надо,чтобы прога выполнила введённый в это поле код.
2)И меется 2-а мемо.И кнопка.Нужно,чтобы при на кнопку определённый текст добавлялся только в то мемо,на котором находится фокус.А если фокус ни на одном из них-текст не добавлялся никуда.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 10)
сообщение
Сообщение #2


Гость






DekaR, ты что, транслятор писАть собрался? Оставляй эту затею, это не на одну тысячу строк программы, тебе же придется делать полный синтаксический разбор введенного текста, потом еще его компилировать, выполнять, и получать результат ...

no1.gif Не для слабонервных, тем более, что ты не ограничил ничем входные данные, а в Паскале ой как много синтаксис позволяет...

Насчет второй задачи - Какая у тебя кнопка? Если обычный TButton, то в момент нажатия на него фокус, увы, не будет уже ни на первом мемо, ни на втором, он будет на самой кнопке.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Т.е. пидётся заново писать компилятор?Задача в том,что в одну программу пользователь вводит текст на дельфи,та записывает его в файл,а другая его выполняет по мере чтения из файла.

А с мемо мне нужен похожий результат как на форума(жмешь на смайлик,а в текстовое поле добаляется его код)Только у меня 2-а текстовых поля,и нужно добавлять в то,в которое пользователь писал до нажатия на кнопку
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






DekaR, стой, стой...
Ты не путай Компилятор (это то, чем является Паскаль) и Интерпретатор (типа Бейсика, например...) Вот насколько я помню, бейсиковские программы могли выполняться
Цитата
по мере чтения из файла
, а Паскаль-программа должна читаться полностью, компилироваться, и только потом выполняться... Но программка и там и там будет немаленькая smile.gif

Нечто подобное обсуждается, кстати, здесь: Свой компилятор
Загляни туда тоже, возможно, это тебя натолкнет на что-то...

А с мемо делай так: опиши глобальную переменную, скажем, указатель на TMemo, и потом при получении фокуса мемо (событие OnEnter, или OnClick, если я не ошибаюсь) присваивай этой переменной адрес самого объекта, то есть @Self... Таким образом, у тебя в этой переменной будет всегда адрес того мемо, у которого был последний фокус... Ну, и записывать в него, соответственно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Смотри в JEDI Visual Component Library
У них есть готовая компонента - интерпретатор Паскаля (с некоторыми оговорками). Когда-то давно пробовал - работает.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Цитата
опиши глобальную переменную, скажем, указатель на TMemo, и потом при получении фокуса мемо (событие OnEnter, или OnClick, если я не ошибаюсь) присваивай этой переменной адрес самого объекта, то есть @Self...

Господа.Я совершенноо непонимаю переменные типа поентер(указатель)можете в доступной форме описать что это,и с чем его едят?

Сообщение отредактировано: DekaR -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Так более понятно:
implementation

{$R *.dfm}

var
LastFocused: ^TMemo;

procedure TForm1.Memo1Click(Sender: TObject);
begin
LastFocused := @Memo1;
end;

procedure TForm1.Memo2Click(Sender: TObject);
begin
LastFocused := @Memo2;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
LastFocused^.Lines.Append(':)'); // Ну, или что там тебе надо ...
LastFocused^.SetFocus;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
LastFocused := @memo1;
end;

end.

?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Цитата(DekaR @ 1.03.2006 17:17) *

Господа.Я совершенноо непонимаю переменные типа поентер(указатель)можете в доступной форме описать что это,и с чем его едят?

Переменная, в которой содержится адрес другой переменной. Почитай про адрессацию в памяти и адресные регистры процессора.

Сообщение отредактировано: hiv -


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Да,так понятнее.Спасибо.Работает.Правда я ошибся.У меня не 2-а мемо,а 2-а рич эдита. НО!volvo по коду который ты дал, после щелчка по кнопке и добавления,фокус возвращается в самое начало текста рич эдита,а хотелось бы в самый конец(после кода,ктоторый добавился после щелчка).

Сообщение отредактировано: DekaR -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






DekaR, ты будешь смеяться, но у меня как раз курсор ставится туда, где ЗАКАНЧИВАЕТСЯ вставленный при щелчке текст... Хочешь, могу присоединить EXE-шник...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Я ещё раз попробовал.И у меня по непонятным причинам тоже правильно ставиться теперь. blink.gif smile.gif
Спасибо всем участникам обсуждения данной темы. give_rose.gif Благодаря ВАМ я наконец-то понял работу с указателями! smile.gif lol.gif lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.09.2025 0:39
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name