Ik ben bezig met een programma waarbij er een variabel aantal Richedits (een matrix) op een form staan. Het programma voegt deze samen en creeert 1 rtf bestand ervan. (ff in het heel kort dus, prog lijkt zo nergens op te slaan, maar goed)
Nu wil ik echter de mogelijkheid hebben om tussentijds op te slaan. Het programma moet de volgende dingen opslaan:
- Het aantal Richedits (het is een matrix dus het aantal in de x en y richting)
- De inhoud/tekst van de Richedits
- De captions van de bijbehorende labels
- en nog wat vergelijkbare data
Nu heb ik daar nog geen ervaring mee en ik heb wat zoekwerk gedaan en dan kom ik allemaal termen tegen die mij (nog) weinig zeggen. Wat mij nog het eenvoudigste leek was gebruik maken van een TFilestream en daarmee de data opslaan en inlezen (dan kan ik in ieder geval de opmaak van de Richedits behouden). Dus ik heb nu een procedure gemaakt die de boel wegschrijft in en bestand.
Op deze manier slaat hij dus alle info op van alle componenten die ik heb opgeslagen, in ieder geval dat denk ik.
Ik heb dus al een beginnetje, maar ik zou niet weten hoe ik nu verder moet. Ik heb dan ook de volgende vragen.
1) Hoe kan ik het aantal richedits opslaan, dus die X en Y waarde in de filestream
2) Slaat hij op deze manier allen info op van de componenten? Ik kan namelijk wel in de file terugvinden dat hij de dingen die ik typ in een Richedit opslaat, maar niet dat hij de caption van een Label opslaat.
3) Hoe pak ik het inlezen weer aan zodat ik weer alles kan creeren zoals het was? Ik wil die X en Y waarde opslaan zodat ik bij het inlezen weet dat de volgende X*Y streams van een richedit zijn. (ik neem aan dat dat handig is)
Nu wil ik echter de mogelijkheid hebben om tussentijds op te slaan. Het programma moet de volgende dingen opslaan:
- Het aantal Richedits (het is een matrix dus het aantal in de x en y richting)
- De inhoud/tekst van de Richedits
- De captions van de bijbehorende labels
- en nog wat vergelijkbare data
Nu heb ik daar nog geen ervaring mee en ik heb wat zoekwerk gedaan en dan kom ik allemaal termen tegen die mij (nog) weinig zeggen. Wat mij nog het eenvoudigste leek was gebruik maken van een TFilestream en daarmee de data opslaan en inlezen (dan kan ik in ieder geval de opmaak van de Richedits behouden). Dus ik heb nu een procedure gemaakt die de boel wegschrijft in en bestand.
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| procedure TfrFormulier.OpslaanClick(Sender: TObject); var i,j: integer; F: TextFile; oStream: TFileStream; begin // Initialiseer SaveDialog SaveDialog1.DefaultExt:='gra'; SaveDialog1.Filter:='(gra, *.gra)|*.gra;'; if (SaveDialog1.Execute) then begin oStream := TFileStream.Create(SaveDialog1.FileName,fmCreate); for i := 0 downto clLabels1.Count-1 do begin oStream.WriteComponent(clLabels1[i]); end; .... for i :=0 to clComboBoxen.Count-1 do begin oStream.WriteComponent(clComboBoxen[i]); end; oStream.Free; end; end; |
Op deze manier slaat hij dus alle info op van alle componenten die ik heb opgeslagen, in ieder geval dat denk ik.
Ik heb dus al een beginnetje, maar ik zou niet weten hoe ik nu verder moet. Ik heb dan ook de volgende vragen.
1) Hoe kan ik het aantal richedits opslaan, dus die X en Y waarde in de filestream
2) Slaat hij op deze manier allen info op van de componenten? Ik kan namelijk wel in de file terugvinden dat hij de dingen die ik typ in een Richedit opslaat, maar niet dat hij de caption van een Label opslaat.
3) Hoe pak ik het inlezen weer aan zodat ik weer alles kan creeren zoals het was? Ik wil die X en Y waarde opslaan zodat ik bij het inlezen weet dat de volgende X*Y streams van een richedit zijn. (ik neem aan dat dat handig is)