"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
kijken op :
- www.torry.net ( The Best )
- www.delphipages.com
Succes
En hij weet volgens mij vrij veel van delphi dus die standaard pages kent ie mij wel... volgens mij is ie op zoek naar iets speciaals of is daar gewoon niets te vinden. Correct me if I'm wrongAantal posts: 6362
"Everything I've ever done or said is the complete opposite of what I've wanted" -- George
Klopt, ken die 2 site hierboven allang. Maar weet je wat het is met dit soort dingen. Ervaring van andere mensen is altijd leuk, en het scheelt toch een hoop werk om de verschillende componenten te testen. Als iemand anders allang heeft gevonden wat ik zoek.Op maandag 08 oktober 2001 16:30 schreef Marv het volgende:
jelmervos is geen newbie hoor
[..]
En hij weet volgens mij vrij veel van delphi dus die standaard pages kent ie mij wel... volgens mij is ie op zoek naar iets speciaals of is daar gewoon niets te vinden. Correct me if I'm wrong
Maar wat idd wel een idee is, is gewoon zelf maken, waarom niet. Alleen heb ik weinig ervaring met het maken van zulk soort grafische dingen.
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
Wat je kan doen is een TImage gebruiken en daar zelf de pixels in te tekenen. Gebruik geen paintbox want als er een ander form overheen gaat ben je alles kwijt dus een TImage is dan het beste.
1
2
3
| image1.Canvas.LineTo image1.Canvas.Polygon image1.Canvas.Pixels |
Ga met bovenstaande code eens wat proberen dan komt er een tof ding uit.
"The shell stopped unexpectedly and Explorer.exe was restarted."
Wat is er met je icoon gebeurd?
"Everything I've ever done or said is the complete opposite of what I've wanted" -- George
"The shell stopped unexpectedly and Explorer.exe was restarted."
Maar anders kan je wel gemakkelijk lijntjes tekenen, dat neemt zeker weten een stuk minder resources in beslag.
Gewoon een leeg rechthoekje maken.
1. copyrect gebruiken, om de meuk 1 pixel op te schuiven
2. nieuw lijntje erbij tekenen helemaal rechts.
Met doublebuffering kan je knipperen tegengaan.
klaaros!
Siditamentis astuentis pactum.
"The shell stopped unexpectedly and Explorer.exe was restarted."
Volgens mij is de makkelijkste manier om onzichtbaar een tweede image te tekenen, en op het moment dat die klaar is die tweede image in de plaats van de oorspronkelijke image te zetten.Op woensdag 31 oktober 2001 16:10 schreef jelmervos het volgende:
En hoe doe ik het dan met het schuiven van het geheel zonder dat het schokt of knipperd?
Dit is in principe double buffering, maar door het zelf te implementeren( wat beslist niet moeilijk is) heb je zelf het moment van het update van de display in de hand. Een stringlist heeft bijvoorbeeld beginupdate en endupdate methodes, waarmee dit voor een stringlist te regelen is, maar helaas heeft een image deze methodes niet.
- This line is intentionally left blank -
Met het knipperen valt het nog wel mee, maar misschien dat het op een tragere machine erger is. Daarom wil ik toch proberen een Double Buffering methode toe te passen. Is dit moeilijk?
"The shell stopped unexpectedly and Explorer.exe was restarted."
In een offscreen buffer maak je je tekening, die je dan in 1 keer over de andere heenzet..
Geheugen kopieren gaat erg snel, veel sneller als elke keer een paar pixels veranderen en je ziet dan geen flikkeringen
hoe het in Delphi moet
Dan is er nog een probleem, het resizen van de grafiek. Als deze wordt geresized moet de inhoud worden aangepast dmv zoom/scaling denk ik. Iemand hier een goeie oplossing voor?
"The shell stopped unexpectedly and Explorer.exe was restarted."
weet je hoe het in Java moet? op dezelfde manier kan het ook ongeveer in Delphi!Op woensdag 31 oktober 2001 16:43 schreef wasigh het volgende:
dubbelbuffering
...
hoe het in Delphi moet![]()
AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!
Verwijderd
Hou een object met een Canvas in het geheugen, hier maak je alle veranderingen op. Na een paint event van windows doe je een StretchBlt [zie windows API]Op woensdag 31 oktober 2001 16:48 schreef jelmervos het volgende:
Oke, da's makkelijk uit te zoeken.
Dan is er nog een probleem, het resizen van de grafiek. Als deze wordt geresized moet de inhoud worden aangepast dmv zoom/scaling denk ik. Iemand hier een goeie oplossing voor?
..of je gebruikt TCanvas.CopyRect die weer StretchBlt aanroept.
Verwijderd
