[Delphi] Code werkt niet goed

Pagina: 1
Acties:

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Ik ben naar aanleiding van mijn vorige topic gekomen tot het volgende:
procedure TForm1.Button2Click(Sender: TObject);
var
strm : TFileStream;
begin
strm := TFileStream.Create('Data.DAT', fmCreate);
strm.WriteComponent(ClientDataset1);
strm.WriteComponent(listbox1);
strm.WriteComponent(RichEdit1);
strm.WriteComponent(Outline1);
strm.Free;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
strm : TFileStream;
begin
if FileExists('Data.DAT') then begin
strm := TFileStream.Create('Data.DAT', fmOpenRead);
strm.ReadComponent(Clientdataset1);
strm.ReadComponent(listbox1);
strm.ReadComponent(RichEdit1);
strm.ReadComponent(Outline1);
strm.Free;
end;
end;
Dit werkt goed met uitzondering van ClientDataset. Deze wordt wel opgeslagen als ik het controleer in een editor. Na het loaden worden alle componenten weer gevuld met data met uitzondering van ClientDataSet1.

Wat doe ik hier fout??

ClientDataset vervangen door DBGrid werkt ook niet. Ligt het aan het feit dat ClientDataset een non visible component is?

Edit: quote's aangebracht

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Mmmmm, de Delphi guru's slapen nog .... ;)

Verwijderd

Ha die klaaz

net een dag ingeschreven als tweaker en gelijk gebombardeerd door guru, ik ben vereerd (bloos) ;)

ehrm, wat voor data ben je dan precies kwijt? een dataset is namelijk meer een doorvoer voor gegevens; een interface naar een database, het bevat zelf maar heel weinig gegevens.

Met de index bedoelde ik trouwens het volgende:
stel je hebt x memo's en y records,
als je gaat opslaan sla je ze gewoon achter elkaar op. Als je ze gaat uitlezen weet je alleen niet waar de memo's eindigen en de records beginnen zonder een index.

Ik hoop dat je er wat aan hebt...

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Ik snap het wel denk ik. Een beetje code echter zou het wat begrijpelijker maken. ;)

Ik ga wel ff klooien.

Verwijderd

Waar zou je precies de code voor willen hebben? de index of de database.

voor de database kan ik beter van jouw source uitgaan.

Als je hebt over de index:

type
TIndex = record
memocount: integer;
recordcount: integer;
end;

gewoon wegschrijven en lezen met

var
index: TIndex;
iMemo, iRec: integer;
begin
strm.read( index, sixeOf(index) );
for iMemo := 0 to index.memocount do
readmemo(strm);

for iRec := 0 to index.recordcount do
readrecord(strm);
end;

Dat zou alles moeten zijn, best wel simpel dus.

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Heb nu dit:
begin
strm := TFileStream.Create('Data.DAT', fmCreate);
strm.WriteComponent(listbox1);
strm.WriteComponent(RichEdit1);
strm.WriteComponent(Outline1);
strm.write( index, sizeOf(index) );
for iRec := 0 to index.recordcount do
writerecord(strm);
strm.Free;
end;
Maar Delphi reageert met:
[Error] main.pas(95): Undeclared identifier: 'writerecord'
(doet ie ook met readrecord)
Writerecord/readrecord is nergens gedeclareerd en is volgens mij geen functie in Delphi...

Het lukt dus nog niet helemaal ... Guru?? :* :* :* ????

  • MerijnB
  • Registratie: Oktober 2000
  • Laatst online: 10:10
hallo,

volgens mij bedoelt Guru dat je >zelf< de routines ReadRecord en WriteRecord moet schrijven.

A software developer is someone who looks both left and right when crossing a one-way street.


Verwijderd

jaaaaaah,

heel goed, jij komt er wel ;).

  • MerijnB
  • Registratie: Oktober 2000
  • Laatst online: 10:10
duh... :Z

A software developer is someone who looks both left and right when crossing a one-way street.


Verwijderd

Heeej, nog een delphi "guru"?? :)

  • MerijnB
  • Registratie: Oktober 2000
  • Laatst online: 10:10
Op maandag 05 maart 2001 20:25 schreef Mature het volgende:
Heeej, nog een delphi "guru"?? :)
hangt denk ik van je definitie van "guru" af :)

A software developer is someone who looks both left and right when crossing a one-way street.


Verwijderd

Op dinsdag 06 maart 2001 13:16 schreef MerijnB het volgende:

[..]

hangt denk ik van je definitie van "guru" af :)
Hehe, weet ik veel wie en wat ik een guru mag noemen. Ik ben denk ik niet echt een guru wat dat betreft...

check deze maar uit ;)
The Tao of programming

Dan weet je wat een guru is... Ik ben er nog nooit een tegengekomen... :)
Pagina: 1