Results 1 to 11 of 11

Thread: Read Res file.. ik word gek

  1. #1
    Senior Member
    Join Date
    May 2009
    Location
    End of the Road
    Posts
    893

    Read Res file.. ik word gek

    ok, ik kom er niet uit, en geen idee waarom het soms niet werkt

    heb een Timagelist met 5000 icoontjes.

    Myimages is een Timagelist.

    ik save the Timagelist met
    Delphi Code:
    1. Writecomponentresfile ('C:\plaatjes.dat', myimages);
    Dan leest ik hem in
    als ik op een knop druk met
    Delphi Code:
    1. myimages := readcomponentresfile('c:\plaatjes.dat',nil) as Timagelist;
    dan zijn er maar een aantal icoontje goed en in het begin
    zijn ze allemaal hetzelfde.

    als ik dan opnieuw de plaatjes laad met de myimages.add ....
    dan zijn ze allemaal goed
    dus save ik de Res file en laad hem opnieuw, dan zijn ze weer fout.

    soms werkt het, en soms ook niet.
    't is meer van niet.

    krijg geen errors o.i.d. wat is hier nou mis mee?
    Last edited by GolezTrol; 04-Feb-10 at 19:06.

  2. #2
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Quote Originally Posted by organizer View Post
    ik save the Timagelist met
    Writecomponentresfile ('C:\plaatjes.dat', myimages);
    [...]
    als ik op een knop druk met
    myimages := readcomponentresfile('c:\plaatjes.dat',nil) as Timagelist;
    Uhm... welke knoppen/Delphi versie bedoel je?
    Het zegt me helemaal niets...

    Overigens kun je denk ik veel beter de ikoontjes gewoon opslaan als bitmap
    (in de resource) en dan weer in code inlezen; het lijkt me dat jouw manier
    de header van de bitmap vernaggelt (wat de images in een imagelist is eigenlijk
    gewoon één grote TBitmap).

    Greetz,

    Peter.
    TMemoryLeak.Create(Nil);

  3. #3
    Senior Member
    Join Date
    May 2009
    Location
    End of the Road
    Posts
    893
    Gebruik Delphi 2009. en knop is gewoon een Button op me form.

    Die grote bitmap, zorgt voor veel problemen. (out of resources en een hoop andere ellende, zie andere posts) (de code staat ook in die posts, denk dat je me destijds erook me geholpen had)

    last over dit, dat het een Resource file wegschrijft, dat was 1:1
    dus dacht, probeer dat eens.
    de code heb ik van verchillende sites gelezen, en is allemaal hetzelfde.
    Last edited by GolezTrol; 04-Feb-10 at 19:07.

  4. #4
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Dat had met handles te maken en hier wordt maar 1 bitmap ingelezen (dus maar 1 handle),
    het enige dat dan nog de oorzaak zou kunnen zijn is het gebruik van geheugen (-resources).

    Nu vind ik 5000 ikonen in een TImageList ook wel erg veel...

    Met Read- en Write-ComponentResFile schrijf je trouwens het hele TImageList component,
    inclusief al z'n properties, op als resource, dat lijkt me niet erg zinvol in dit geval.

    Ik zou alle images opslaan als een enkel bestand (vanuit de designer "Export" kiezen), in
    een losse resource zetten die je meelinkt of in een externe resource-DLL en dan met
    TImageList.FileLoad weer inladen... maar volgens mij moet het ook mogelijk zijn om die
    hele grote image gewoon als TBitmap in één keer in te lezen...
    Last edited by VideoRipper; 04-Feb-10 at 19:11.
    TMemoryLeak.Create(Nil);

  5. #5
    1+1=b

  6. #6
    Senior Member
    Join Date
    May 2009
    Location
    End of the Road
    Posts
    893
    Quote Originally Posted by VideoRipper View Post
    Dat had met handles te maken en hier wordt maar 1 bitmap ingelezen (dus maar 1 handle),
    het enige dat dan nog de oorzaak zou kunnen zijn is het gebruik van geheugen (-resources).

    Nu vind ik 5000 ikonen in een TImageList ook wel erg veel...

    Met Read- en Write-ComponentResFile schrijf je trouwens het hele TImageList component,
    inclusief al z'n properties, op als resource, dat lijkt me niet erg zinvol in dit geval.

    Ik zou alle images opslaan als een enkel bestand (vanuit de designer "Export" kiezen), in
    een losse resource zetten die je meelinkt of in een externe resource-DLL en dan met
    TImageList.FileLoad weer inladen... maar volgens mij moet het ook mogelijk zijn om die
    hele grote image gewoon als TBitmap in één keer in te lezen...

    die handle(s) had te maken met alle plaatjes laden en toewijzen aan 1 png file
    aangezien de plaatjes soms verandering, moet ik iedere keer een nieuwe file
    aanmaken.

    die Export waar je het over het, is toch hetselfde als wat ik gebruikte ?

    die grootte bitmap inlezen, geeft ook problemen met out of resources en handle errors. als die ik gewoon inlaad.
    dus vandaar dat ik er vanaf gestapt was.

  7. #7
    Senior Member
    Join Date
    May 2009
    Location
    End of the Road
    Posts
    893
    Zit met de ImagList te spelen en daar markeert niets aan.
    VirtualTrees doet iets niet goed.
    Als Ik hem aan een Imageviewer koppelt dan zie ik alles prima.
    Als Ik hem aan een VirtualTrees koppelt, dan wordt het Een puinhoop.
    Geen Idee of dat een bug met VirtualTrees is. (4.8.6)

  8. #8
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Begin eens met een simpel testproject te maken, en dat gezipped ergens te posten (zelfs 5000 icoontjes zijn gezipped niet zo groot).

    Ik ben op zich wel geinteresseerd in wat er aan de hand is.

  9. #9
    Senior Member
    Join Date
    May 2009
    Location
    End of the Road
    Posts
    893
    heb het probleem gevonden


    dit is de correct code voor de index event van VT


    Code:
    Data := Sender.GetNodeData(Node);
     case Kind of
        ikNormal, ikSelected:
          if (Column = 0) and (Node.Parent = Sender.RootNode) then ImageIndex :=strtoint(data.romscenenumber)-1;
        end;
    en niet dit


    Code:
     Data := Sender.GetNodeData(Node);
     if Column = 0 then imageindex:=strtoint(data.romscenenumber)-1;

  10. #10
    Waarom is Data.RomSceneNumber een string en niet een integer zoals de naam doet vermoeden?
    DeX 3 Delphi := The ease of VB with the power of C; Zoekt en gij zult vinden

  11. #11
    Senior Member
    Join Date
    May 2009
    Location
    End of the Road
    Posts
    893
    Omdat ik aan het testen was om te zien dat mijn data.image niet het probleem was. En dat is een Integer.

    Zie dat ik hem nog niet terug gezet had, nadat ik hier de oplossing had gepost.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •