Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - shape verschwinden lassen


Zlatan - Do 27.01.11 18:46
Titel: shape verschwinden lassen
Ein Shape soll bei Berührung mit einem andereren Shape verschwinden.
Wie geht das??
Bitte antworten :wink:


Regan - Do 27.01.11 18:53

Du prüfst, ob du Shape1 und Shape2 übereinanderliegen (mit Width und Left und Top und Height) und rufst dann Shape.Hide(); auf.


Zlatan - Do 27.01.11 19:02

wie prüfe ich das?


bummi - Do 27.01.11 19:13


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  r:TRect;
begin
  if IntersectRect(r,Shape1.BoundsRect,Shape2.BoundsRect) then Shape2.Hide;

end;


Zlatan - Do 27.01.11 19:37

von was ist das die Procedur?
von FormCreate?
das funktioniert nicht


bummi - Do 27.01.11 19:42

Dein Ton macht richtig Spass ....
Wenn Du im Create prüfen willst ......


Zlatan - Do 27.01.11 19:58

Was meinst du damit?
Beantworte doch bitte meine Frage


bummi - Do 27.01.11 20:08


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Procedure PruefeUndVersteckeWennNoetig(Shape1,Shape2:TShape);
var
  r:TRect;
begin
  if IntersectRect(r,Shape1.BoundsRect,Shape2.BoundsRect) then Shape2.Hide;

end;


Wo und wann Du das ganze aufruft bleibt Dir überlassen


Zlatan - Do 27.01.11 20:13

geht irgendwie nicht
Das eine shape geht einfach unter das andere aber es verschwindet nicht


elundril - Do 27.01.11 21:41

Vielleicht hast du Shapes vertauscht und solltest eher shape1.hide; hinschreiben?

Vielleicht wären auch die zwei sachen ratsam für dich:
Christians Crashkurs [http://www.christian-stelzmann.de/index_tutorials_crashkurs.html]
Delphi-Wikibook [http://de.wikibooks.org/wiki/Programmierkurs:_Delphi]

lg elundril