AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Grafische Darstellung eines Bereichs

Ein Thema von Johannes013 · begonnen am 16. Jun 2009 · letzter Beitrag vom 16. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2      
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#1

Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 15:02
Hallo,

wie kann ich Delphi sagen, dass, wenn Shape1 über Shape2 "fährt", ein Event ausgelöst wird?


Egal wo sie sind.
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#2

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 15:05
machs doch mit drag over
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#3

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 15:30
Was heißt denn "fährt"? Programmatisches bewegen über Left/Top?
Das wirst du dann wohl selbst berechnen müssen, ob die Shapes sich schneiden.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 15:44
Wenn die beiden Shapes programmtechnisch bewegt werden kannst du ein überschneiden mit der folgenden Funktion prüfen.


function IntersectRect(out Rect: TRect; const R1, R2: TRect): Boolean; Rect ist der Bereich in dem sich die beiden anderen TRect´s sich überschneiden.
R1 und R2 sind die "Rechtecke" um die beiden Bereiche, die du prüfen möchtest.

Wenn die Shapes nicht rechteckig sind wird diese Funktion schon früher ein True zurückgeben.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#5

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 20:30
Das geht nicht:

Delphi-Quellcode:
if IntersectRect(out Shape3; Shape1, Shape2)=true then
   begin
      // Anweisungen
   end;

Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 20:36
Du rufst es auch falsch auf.
Delphi-Quellcode:
var
  IntersectShape : TShape;
begin
if IntersectRect(IntersectShape, Shape1, Shape2) then
begin
  //Anweisung
end;
Eventuell solltest du dich parallel mal mit den Grundlagen über die Benutzung von Funktionen und Prozeduren, Parametern usw. beschäftigen.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#7

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 20:48
Dann meldet er Fehler:

[Fehler] Unit1.pas(34): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
[Fehler] Unit1.pas(34): Inkompatible Typen: 'TRect' und 'TShape'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

unter dem Quelltext:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    Shape1: TShape;
    Shape2: TShape;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
var
  IntersectShape : TShape;
begin
   if IntersectRect(IntersectShape, Shape1, Shape2) then
      begin
         //Anweisung
         halt;
      end;
   Shape1.Left:=Shape1.Left+2;
end;

end.




Ich bin extrem neu......

Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 20:54
Ach, da hab ich selber nicht hingeschaut. War ja nur so im Browser getipselt
Es wird ein TRect erwartet, kein TShape. Daher, wir brauchen nur das Rect des Shapes (Wört sind englisch. Falls unklar nutze Wörterbuch ).

IntersectRect(r, Shape1.BoundsRect, Shape2.BoundsRect) ... Manchmal hilft es, die Methoden einer Klasse sich anzuschauen.

Zitat:
Ich bin extrem neu
Gerade da solltest du dich nicht scheuen, dir die Grundlagen anzueignen.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#9

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 21:07
Danke,


wo kann cih mir das denn anschauen?

Die Tutorails sind für Enterprise gemacht.

mfg Johannes013
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#10

Re: Grafische Darstellung eines Bereichs

  Alt 16. Jun 2009, 22:00
Welche Tutorials?
Grundsätzlich kann man glaube ich sagen, dass es bei den Dingen, mit denen du dich beschäftigen solltest, egal ist, für welche Version die geschrieben sind. Die Sprache ist überall (weitestgehend) die selbe, nur der Umfang der Komponenten/IDE/Installations-CD variiert zwischen den Versionen (grob gesagt).
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz