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

Вниз

Про переменную типа 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.025 c
9-1068383106
G A M E R
2003-11-09 16:05
2004.05.02
LOD


14-1081173350
Vlad
2004-04-05 17:55
2004.05.02
Защита программы от несанкционированного копирования


1-1082109570
Ruslan
2004-04-16 13:59
2004.05.02
Подскажите как использовать компонет RxTrayIcon!!!


6-1078708961
Greenpeace
2004-03-08 04:22
2004.05.02
Вопрос новичка: где поискать информацию?


11-1063023330
Ал
2003-09-08 16:15
2004.05.02
Как изменить иконку в окне MessageBox