Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизПро переменную типа TStrings Найти похожие ветки
← →
IraiZor © (2004-04-13 11:59) [0]У мя есть на форме Richedit , мне нужно , чтобы при нажатии на кнопку(допустим loadchatlog1) появлялся диалог выбора файла, затем из этого файла грузился текст и вставлялся перед уже существующим.Файлы я выбрал RTF , тоесть там есть и цвета и размеры...
я это сделал так :
procedure TForm1.LoadChatlog1Click(Sender: TObject);
var f1:tstrings;
begin
if opendialog1.Execute then
begin
f1.LoadFromFile(opendialog1.FileName);
richedit1.Lines.AddStrings(f1);
end;
end;
Компилятор говорит , что все верно , а вот когда проверяю на деле , то выдает ошибку и показывает на строчку
f1.LoadFromFile(opendialog1.FileName);
← →
serge35 (2004-04-13 12:00) [1]А что пишет?
← →
Семен Сорокин © (2004-04-13 12:01) [2]забыл
f1 := TStringList.Create;
try
// ...
finally
f1.Free
end;
но не сохранишь форматирования, используй лучше TMemoryStream
← →
panov © (2004-04-13 12:02) [3]procedure TForm1.LoadChatlog1Click(Sender: TObject);
var f1:tstrings;
begin
f1 := TStringList.Create;
try
if opendialog1.Execute then
begin
f1.LoadFromFile(opendialog1.FileName);
richedit1.Lines.AddStrings(f1);
end;
finaly
f1.Free;
end;
end;
← →
serge35 (2004-04-13 12:08) [4]У тебя в f1 есть уже один файл, второй в него никак не положишь.
Надо либо еще переменную f2 или освобождать f1, только что делать
с первым файлом - непонятно.
← →
IraiZor © (2004-04-13 12:13) [5]
project chat.exe raised exception class EAccess violation with message: "Access violation at address 0046aa5d in module "chat.exe" Read of address 00000000 ".Process stopped. Use step or run to continue.
← →
IraiZor © (2004-04-13 12:19) [6]serge35]
нету у мя файла f1 =)
← →
Serge © (2004-04-13 12:23) [7]А что - [3] не помогло ?
← →
IraiZor © (2004-04-13 12:23) [8]Я поставил что мне написали ( f1 := TStringList.Create; и f1.Free;) Дык мне теперь другую ошибку выдает (компилятор по прежнему говорит , что все верно):
...with message : "RichEdit insertion error"...
o_O ?
← →
IraiZor © (2004-04-13 12:25) [9]Удалено модератором
Примечание: Да, но это Оффтопик.
← →
panov © (2004-04-13 12:35) [10]А ты уверен, что у тебя в OpenDialog1.FileName правильное имя?
← →
IraiZor © (2004-04-13 12:50) [11]panov
Да , я даже вместо opendialog1.filename указывал конкретный существующий файл , все равно говорил то же.
В принципе можно сделать и другим способом лишь бы работало :D(что-то сказал Семен Сорокин про TMemoryStream , но с этим я НИкогда еще не работал)
← →
TButton © (2004-04-13 13:02) [12]иттересно...
>panov © (13.04.04 12:02) [3]
>
>procedure TForm1.LoadChatlog1Click(Sender: TObject);
>var f1:tstrings;
>begin
> f1 := TStringList.Create;
> try
>if opendialog1.Execute then
>begin
> f1.LoadFromFile(opendialog1.FileName);
> richedit1.Lines.AddStrings(f1);
>end;
>finaly
> f1.Free;
>end;
>end;
эт ничего?
← →
panov © (2004-04-13 13:13) [13]>TButton © (13.04.04 13:02) [12]
TStrings - абстрактный класс, TStringList - его потомок,
Поэтому вполне можно описать в var - TStrings, а создавать его потомка - TStringList.
У себя в программах я всегда пишу
var
TStringList;
-------------
← →
TButton © (2004-04-13 13:19) [14]а у мну со стрингсом по началу проблемы были, а потом я узнал про стринглист и проблем больше не возникало =)
← →
Владислав © (2004-04-13 13:22) [15]А к чему такой геморрой? А если просто RichEdit1.Lines.LoadFromFile(...)? Или религия не позволяет?
← →
panov © (2004-04-13 13:22) [16]>IraiZor
А какое количество строк ты хочешь добавить, и сколько в TRichEdit уже существует?
← →
Владислав © (2004-04-13 13:27) [17]Сорри за невнимательность.
← →
IraiZor © (2004-04-13 13:47) [18]Сейчас все разьясню =)
Делаю чат , я хочу создать в нем такии функции - Сохранить лог чата ,и загрузить лог чата. Только т.к. загруженный лог как бы предшествующий ,то нужно его запихать до того что юзер уже успел накалякать в чате.
ре16
неизвестно =) все зависит от юзера.
RichEdit1.Lines.LoadFromFile
помоему удаляет все что было раньше а этого нельзя допустить.
ПС у меня в чате как в БК мессаги опускаются вниз , а не как распространено - на верх.
ППС я пытался сделать с помощью длинной строки (то есть уже написанное в чате заносится в строку , а лог loadfromfile , но от этого теряется цвет, конечно можно перед строкой вписать цвет, потом разбирать эту строку .....но тк нет strtocolor , то разбор 14 цветов будет тупым и долгим ... хотелось бы покрасивее =)
← →
Владислав © (2004-04-13 14:06) [19]Ну тогда в [3] уже ответили.
← →
IraiZor © (2004-04-13 14:12) [20]Я ж написал , таким методом тоже ошибку выдает =((( я просто перекопировал
← →
panov © (2004-04-13 14:53) [21]>IraiZor © (13.04.04 12:23) [8]
придется тебе пошагово отладку делать.
Без дополнительного кода больше нечего сказать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.037 c