31. juli 2009 - 15:12Der er
9 kommentarer og 1 løsning
Knap med TImage. Kan koden fylde mindre?
Jeg har et program med en del knapper, som jeg har lavet med en TImage, så jeg kan lave billeder til dem. og bruger det her kode til at laver mouse over/down/out. det er der så til alle de forskellige knapper.
Det virker fint, men jeg synes bare det fylder meget i koden, for meget lidt kode xD så tænkte på om man kunne lave det mere kompakt, måske i en anden Unit fil, eller en anden måde :)
Hej, Bliver dit Measure_over image ikke loaded et utal af gange ? Du skal bare lave lidt logik, der sørger for at det ikke loades hvis det er inde i forvejen. mvh
Har du skrevet denne kode til hver af knapperne? Hvad med at saette alle dine Images til at kalde den samme event, og saa bruge Sender til at finde ud af, hvilken knap (Image), som har kaldt eventen?
I stedet for: ibtnCharHeight.Picture.LoadFromFile('Images\measure_down.bmp'); kunne du saa skrive: TImage(Sender).Picture.LoadFromFile('Images\measure_down.bmp');
Som det er nu, har du sikkert alle dine events oprettet; 3 events for hver knap. Proev i stedet at oprette OnMouseDown (fra Object Inspectoren), men kun for Image ibtnCharHeight, og skriv denne kode:
I Object Inspectoren for dine oevrige Images skriver du saa navnet paa OnMouseDown eventen for Image ibtnCharHeight i OnMouseDown event feltet for disse Images.
Lige gyldig hvilket af dine Images du nu trykker paa, bliver den samme event fyret af. Koden kan saa se ud fra Sender, hvilket Image, der skal skiftes billede paa.
OK, jeg forstaar. En nem loesning kunne vaere at kalde billederne det samme som dine Images. Saa kunne man ligeledes bruge Sender til at lokalisere det rigtige billede. Hvad siger du til det?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.