Обсуждение программирования на Delphi в конференции ru.delphi
Чтение компонента из потока (TMemoryStream)
From: "aleXander Olegovich Fedorov" <xof [@] email.su>
Hi,
Помогите понять, почему чтение компонента из потока не получается,
хотя запись в поток проходит нормально.
У меня есть компонент, унаследованный от TComponent, к которому
добавлено несколько свойств (строки, целые числа, и тп)
Чтение выдает ошибку Read error. Вот примерный код:
TQuality = (qUnknown, qGood, qBad);
TMyComp = class(TComponent)
protected
FQuality:TQuality;
FNotes:string;
FNumber:Integer;
published
property Quality:TQuality read FQuality write FQuality;
property Notes:string read FNotes write FNotes;
property Number:Integer read FNumber write FNumber;
end;
Пишу так:
for i:=0 to MCList.Count-1 do ....
MemStream.WriteComponent(TMyComp);
MemStream.SaveToFile('C:\_stream');
А читаю так (выдается EClassNotFound "Class TMyComp not found"):
MemStream.LoadFromFile('C:\_stream');
MemStream.Seek( 0, soFromBeginning);
MyComp := TMyComp( MemStream.ReadComponent(nil) );
while assigned(MyComp) do MCList.AddObject( GetID(MyComp), TObject(MyComp));
Что это значит? Как прочитать потомка TComponent?
Если пишу вместо nil
MyComp := TMyComp( MemStream.ReadComponent(MyComp) );
то выдает ошибку EReadError "Property Quality does not exists".
:(
есть у кого-нибудь примерчик чтения потомка TComponent с добавленными свойствами, которые сохраняются?
xof
* Origin: Demos online service (2:5020/400)
Word Excel
Здравствуй, Dmitry Starostov.
DS> Как при распечатке XLS или DOC добавить имя файла на первом листе в
DS> верху ? Причем не сдвигая текста ?
Просто поместить имя файла в документ, в нужное место. В worde для этого даже макросы существуют, а вот "чтобы не сдвигать текст" - это или в колонтитулы или в рамочку с текстом, но не забыть указать для нее нужные параметры обтекания текста и т.п.
Roman Kanygin
* Origin: Altair Station (2:5030/809)
ReadOnly на все контpолы на фоpме
Здравствуй, Rouslan Ibraguimov.
RI> Каким обpазом сделать чтобы все Edit'ы, Memo и пpоч. компоненты стали
RI> ReadOnly? Пpосто у меня их на фоpме штук 20 и писать на все ReadOnly
RI> := True (или Enabled := False) немного сложно...
Можно примерно так:
procedure SetReadOnly_Test(Form:TForm; Flag:boolean);
var
i:integer;
begin
with Form do
For i:=0 to ComponentCount-1 do
begin
if Components[i] is TCustomEdit then
TCustomEdit(Components[i]).ReadOnly:=Flag;
end;
end;
Roman Kanygin
* Origin: Altair Station (2:5030/809)
Чтение компонента из потока (TMemoryStream)
From: "Anthony Volkov" <lab531 [@] dst.khv.ru>
Доброго здоровья, aleXander!
Помнится, Вы писали когда-то Mon, 5 Sep 2005 21:19:58 +0000 (UTC):
aOF> Помогите понять, почему чтение компонента из потока не получается,
aOF> хотя запись в поток проходит нормально.
aOF> У меня есть компонент, унаследованный от TComponent, к которому
aOF> добавлено несколько свойств (строки, целые числа, и тп)
aOF> Чтение выдает ошибку Read error. Вот примерный код:
Пропустим для ясности...
aOF> for i:=0 to MCList.Count-1 do ....
aOF> MemStream.WriteComponent(TMyComp);
aOF> ....
aOF> MemStream.SaveToFile('C:\_stream');
Снова пропустим...
aOF> MemStream.LoadFromFile('C:\_stream');
aOF> MemStream.Seek( 0, soFromBeginning);
aOF> MyComp := TMyComp( MemStream.ReadComponent(nil) );
aOF> while assigned(MyComp) do MCList.AddObject( GetID(MyComp),
aOF> TObject(MyComp));
А зачем такие сложности?
Hе работает что-то вроде нижеследующего?
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
FS : TFileStream;
begin
FS := TFileStream.Create('Test.txt', fmCreate);
FS.WriteComponent(Form1);
FS.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
FS : TFileStream;
begin
FS := TFileStream.Create('Test.txt', fmOpenRead);
FS.ReadComponent(Form1);
FS.Free;
end;
Естественно, перед WriteComponent и ReadComponent компонент Form1 должен
быть создан.
С наилучшими пожеланиями, Anthony Volkov.
E-mail: lab531 собачучка dst точечка khv еще одна ru
"Глупость не освобождает от необходимости думать."
Станислав Ежи Лец
* Origin: REDCOM News Server (2:5020/400)
Чтение компонента из потока (TMemoryStream)
From: "Anthony Volkov" <lab531 [@] dst.khv.ru>
Доброго здоровья, aleXander!
Помнится, Вы писали когда-то Mon, 5 Sep 2005 21:19:58 +0000 (UTC):
aOF> есть у кого-нибудь примерчик чтения потомка TComponent с добавленными
aOF> свойствами, которые сохраняются?
А вот еще ссылка:
www.codenet.ru/progr/delphi/stat/XML-Serialize-Delphi.php
С наилучшими пожеланиями, Anthony Volkov.
E-mail: lab531 собачучка dst точечка khv еще одна ru
"Глупость не освобождает от необходимости думать."
Станислав Ежи Лец
* Origin: REDCOM News Server (2:5020/400)
Re: Как следить за диpектоpией?
From: "Youra G." <y [@] ves-kyiv.com.ua>
Eugene Kasnerik wrote:
> RTFM FindFirstChangeNotification, FindNextChangeNotification
>
> WBR, Eugene mailto: www.tld.by [@] gmail*com
Всем большое спасибо. Это именно то, что нужно.
* Origin: Unknown (2:5020/400)
Модемный конект
Приветствую тебя, All!!!
Требуется организовать связь используя
модемный прозвон, наподобие как это реализовано
в стандартном HyperTerminal.
Каким образом это можно осуществить?
Существуют ли какие-либо компоненты?
Буду также признателен _работающим_ ссылкам
на исходники, документацию и компоненты по данной части.
Заранее благодарен.
PS: Господа! Hе надо посылать меня гуглить
и яндексить - так как у меня в данное
время нет возможности вылезти самому в интернет.
Удачи тебе, All, я ещё вернусь!
--
С уважением,
Макс Комогоров
Я и мои соседи слyшаем: *_Жасмин - Долгие Дни_*
Web: web-script.narod.ru ICQ: 278514048
* Origin: Hе стоит жить пошло. (2:5038/51.75)
TServersocket & TClientSocket
Приветствую тебя, All!!!
В Delphi 7, как известно, эти компоненты бесследно исчезли.
Существует ли их старая/новая реализация для Delphi 7?
Если у кого есть этот компонент, большая просьба
прислать его мне нетмылом.
Заранее благодарен.
Удачи тебе, All, я ещё вернусь!
--
С уважением,
Макс Комогоров
Я и мои соседи слyшаем: *_On Line - Едy Я Hа Моpе_*
Web: web-script.narod.ru ICQ: 278514048
* Origin: Думать вредно только дуракам. (2:5038/51.75)
FAQ-Сервера.
Приветствую тебя, All!!!
Существуют ли в FIDO тематические FAQ-Серверы
посвященные Delphi?
Можно в студейу адреса всех около-delphi`йских
ресурсов в FIDO.
Удачи тебе, All, я ещё вернусь!
--
С уважением,
Макс Комогоров
Я и мои соседи слyшаем: *_Жасмин - Индийское Диско_*
Web: web-script.narod.ru ICQ: 278514048
* Origin: Hе стоит жить пошло. (2:5038/51.75)
Системное расширение - Шпион
Приветствую тебя, All!!!
Моё почтение, ещё раз.
Можно ли реализовать клавиатурный шпион
посредством внедрения в систему одной библиотеки,
и регистрации ее в качестве расширения системы?
Если да, то можно подробнее описать как это сделать?
Hамёк на функцию не актуален, требуется обьяснение.
Удачи тебе, All, я ещё вернусь!
--
С уважением,
Макс Комогоров
Я и мои соседи слyшаем: *_Аpиана - Двадцать Минyт До Рассвета_*
Web: web-script.narod.ru ICQ: 278514048
* Origin: Думать вредно только дуракам. (2:5038/51.75)