Toon posts:

[Delphi]Runtime created TImage niet weergegeven

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik een array of TImage om tijdens Runtime een onbepaald aantal Images weer te geven.
Een simpele code als
code:
1
2
ImageArray[0].Create(Main.MyPanel);
ImageArray[0].Picture.LoadFromFile('C:\Windows\setup.bmp');

werkt echter niet... er word gewoon niets weergegeven.
Ook iets als
code:
1
ImageArray[0].Show;


biedt hier geen oplossing.
Ik snap er niets meer van, suggesties?

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Hoe heb je die array gedefinieerd dan?

Verwijderd

Topicstarter
code:
1
Images : array of TImage;

Ik heb natuurlijk wel de SetLength() functie gebruikt, dus daar kan het ook niet aan liggen.

Verwijderd

Topicstarter
code:
1
ImageArray : array of TImage;

Ik heb natuurlijk wel de SetLength() functie gebruikt, dus daar kan het ook niet aan liggen.

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Was het niet iets als:
code:
1
ImageArray[0]:=TImage.Create(geblaat);

Kep al een tijdje niet meer gedelphied

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 09-09 17:08

Knutselsmurf

LED's make things better

Op zondag 21 april 2002 18:48 schreef /dev/null het volgende:
Was het niet iets als:
code:
1
ImageArray[0]:=TImage.Create(geblaat);

Kep al een tijdje niet meer gedelphied
Deze constructie komt mij wel bekend voor. Volgens mij is dit de juiste manier.
Verder is het misschien handig om een TList te gebruiken ipv een Array en zelf steeds setlength te gebruiken. Zeker als er regelmatig elementen toegevoegd worden. Intern heeft een TList exact dezelfde contructie, maar je bent af van het steeds zelf instellen van de juiste afmeting. Bovendien Wordt niet bij het toevoegen van ieder element je array vergroot, maar dat gebeurt in stappen. Kijk voor de gein maar eens in de code daarvan. Zitten wel leuke geintjes in.

- This line is intentionally left blank -


Verwijderd

vergeet vooral niet de
code:
1
form1.insertControl(ImageArray[0]);

waarbij de form1 natuurlijk ook een ander type derived van TComponent kan zijn.

edit:
[quote]
Verder is het misschien handig om een TList te gebruiken ipv een Array en zelf steeds setlength te gebruiken.
[/quote]

Moet je wel de hele tijd typecasten, mijn persoonlijke mening is dat dat nogal lelijk staat en de code onleesbaarder maakt.

Verwijderd

Topicstarter
Op zondag 21 april 2002 20:07 schreef Materie het volgende:
vergeet vooral niet de
code:
1
form1.insertControl(ImageArray[0]);

waarbij de form1 natuurlijk ook een ander type derived van TComponent kan zijn.

edit:

[..]

Moet je wel de hele tijd typecasten, mijn persoonlijke mening is dat dat nogal lelijk staat en de code onleesbaarder maakt.
Ik heb geen idee wat het precies doet, want in de help word het vaag uitgelegd, 'But it did magic' :)
thx bunches!

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 06:09

Tomatoman

Fulltime prutser

Waarom zou je het wiel opnieuw willen uitvinden? Hiervoor is TImageList bedoeld.

Een goede grap mag vrienden kosten.


  • Elissen
  • Registratie: Januari 2000
  • Laatst online: 27-07 15:54
code:
1
form1.insertControl(ImageArray[0]);

Het kan ook zo (ik zeg niet dat het beter is).
code:
1
ImageArray[0].Parent := Form1;

----
Op zondag 21 april 2002 21:40 schreef tomatoman het volgende:
Waarom zou je het wiel opnieuw willen uitvinden? Hiervoor is TImageList bedoeld.
In een TImageList kan je alleen maar afbeeldingen van hetzelfde type & formaat kwijt.
Pagina: 1