![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по TKOLMemo (MCK) [Delphi, Windows]
Maloric © (2006-03-02 01:01:00)При добавлении строки в Memo1:TKolMemo, например, Memo1.Add(s); она добавляеться к последней строке, приходиться добавлять s+#13#10, можно ли обойтись без этого добавления?
И еще один вопросик, вчера написал программу на KOL/MCK, и помоему я стер нужный файл, теперь при запуске проект появляеться ошибка Access violation at adress 77D5B14F in module 'user32.dll'. Можно ли это излечить.
Заранее спасибо.
Я новенький, всего второй день изучаю библиотеку KOL/MCK, не ругайте сильно.
p.s. Прогресс на лицо, переписал программу на KOL, она уменьшилась в размерах в 18 раз!!!
BaryVetaL (2006-03-16 09:41:00) [1]
> or a small new memo like this:
>
> interface
>
> Type
> PExtMemo = ^TExtMemo;
> TExtMemo = object(Tcontrol)
> public
> procedure AddLine(const Str: String);
> end;
>
> function NewExtMemo( AParent: PControl; Options: TEditOptions
> ):PExtMemo;
>
> implementation
>
> function NewExtMemo( AParent: PControl; Options: TEditOptions
> ):PExtMemo;
> begin
> Result := PExtMemo(NewEditBox(aParent, Options);
> end;
>
> procedure TExtMemo.AddLine(const str:string);
> begin
> Add(str+#13#10);
> end;
2Thaddy: I think this сan make is better so (I think it will work):
interface
Type
PExtMemo = ^TExtMemo;
TExtMemo = object(Tcontrol)
public
procedure Add(const Str: String);
end;
function NewExtMemo( AParent: PControl; Options: TEditOptions ):PExtMemo;
implementation
function NewExtMemo( AParent: PControl; Options: TEditOptions ):PExtMemo;
begin
Result := PExtMemo(NewEditBox(aParent, Options);
end;
procedure TExtMemo.Add(const str:string);
begin
inheritedAdd(str+#13#10);
end;
Vladimir Kladov (2006-03-02 15:21:00) [2]MCK при установке и при переустановке (обновлении)надо делать build, а не compile. Иначе ошибки лезут как из горшка невзгод.
Thaddy (2006-03-02 13:34:00) [3]or a small new memo like this:
interface
Type
PExtMemo = ^TExtMemo;
TExtMemo = object(Tcontrol)
public
procedure AddLine(const Str: String);
end;
function NewExtMemo( AParent: PControl; Options: TEditOptions ):PExtMemo;
implementation
function NewExtMemo( AParent: PControl; Options: TEditOptions ):PExtMemo;
begin
Result := PExtMemo(NewEditBox(aParent, Options);
end;
procedure TExtMemo.AddLine(const str:string);
begin
Add(str+#13#10);
end;
ECM (2006-03-02 11:47:00) [4]Тогда сказать сложно... Попробуйте заново переустановить KOL...
Если не спасет - запакуйте проект (без exe и dcu) и мне в мыло
Могу проверить у себя (но только D6 или D7)
Maloric (2006-03-02 10:51:00) [5]
> > ошибка Access violation at adress 77D5B14F in module 'user32.
>
> > dll'. Можно ли это излечить
>
> Можно как и любую другую такого рода - пройдите в отладчике
> запуск программы - ищите причину - какой именно участок
> кода вызывает падение.
> А так, вообще - сказать из-за чего невозможно... надо быть
> телепатом :))
Да нет, это ошибка при открытии проекта, запускаешь главный файл проекта, появляеться ошибка и Delphi сам закрывается. Если сначала запустить Delphi, а затем через меню открыть проект, также появляеться ошибка, а затем все работает. И так каждый раз только с одним проектом.
ECM (2006-03-02 10:45:00) [6]
> приходиться добавлять s+#13#10, можно ли обойтись без этого
> добавления?
Вообще без него - нет. Так уж устроен Win32 edit control (multiline).
Но никто не запретит Вам создать свою процедуру и ей пользоваться :
procedure MemoAddLine(const Str: String; Memo: PControl);
begin
Memo.Add(Str+#13#10);
end;
> ошибка Access violation at adress 77D5B14F in module 'user32.
> dll'. Можно ли это излечить
Можно как и любую другую такого рода - пройдите в отладчике запуск программы - ищите причину - какой именно участок кода вызывает падение.
А так, вообще - сказать из-за чего невозможно... надо быть телепатом :))