Bildverschiebung
-
Ich habe ein Programm programmiert, bei dem man ein quadratisches Bild (TImage) mit einem Klick auf den Button "Nach link" um die Breite des Bildes nach links verschiebt.
Nun soll überprüft werden, ob bei der Linksverschiebung ein Image mit dem Name k* (also k1, k2, k3, .... bis k42) im weg ist. dann soll das bild nähmlich nicht verschoben werden.also ich will das ganze so programmieren:
wenn bei (BildImage1->Left - 56) ein K* Bild ist, nicht verschieben
(ungefähr so, 56 ist die Breite des Bildes, also eine ganze "bildverschiebung" nach links)doch wie mache ich das mit der überfrüfung? ich kann ja nicht 42 mal schreiben k1, k2, ... .
und wie erkenne ich, ob sich an dieser stelle das bild befindet?danke im voraus für antworten.
-
Ähm, mach doch einfach ein aus diesen K*'s einen Vektor (oder Array),
dann kannst du sie einfach in einer Schleife durchlaufen.
-
aber wie mach ich dann genau die überprüfung, ob sich in diesem "Feld" ein Image befinden?
-
Öhm, einfach überprüfen ob die linke obere / untere
Ecke drinliegt?!if(K1->Left+K1->Width > Image1->Left+verschiebung && // wenn der rechte rand von K1 > dem linken vom Image1 + verschiebung ist ((K1->Top > Image1->Top && // wenn Die linke obere Ecke von K1 > der von Image1 ist K1->Top+K1->Height < Image1->Top) || // wenn die linke untere Ecke kleiner der von linken oberen von Image 1 ist (K1->Top < Image1->Top+Image1->Height && // wenn die linke obere Ecke von K1 < der linken unteren von Image1 ist K1->Top+K1->Height > Image1->Top+Image1->Height))) // wenn die linke untere Ecke von K1 < der rechten unteren von Image1 ist { // dann liegts drin }
könnte so stimmen, jedenfalls auf die Art gehts, überleg dir was.
-
ok, danke.
werde das so mal versuchen