AGB  ·  Datenschutz  ·  Impressum  







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

Runtime Error bei PtInRegion

Ein Thema von arest · begonnen am 23. Dez 2012 · letzter Beitrag vom 23. Dez 2012
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#1

AW: Runtime Error bei PtInRegion

  Alt 23. Dez 2012, 13:16
Zerstörst Du die Regions denn auch wieder, wenn Du sie nicht mehr brauchst? Außerdem sollte man evtl. abprüfen, ob sie überhaupt erzeugt wurden.

[edit]
Zitat:
Return value

If the function succeeds, the return value is the handle to the region.

If the function fails, the return value is NULL.
Remarks

When you no longer need the HRGN object, call the DeleteObject function to delete it.

Region coordinates are represented as 27-bit signed integers.

Regions created by the Create<shape>Rgn methods (such as CreateRectRgn and CreatePolygonRgn) only include the interior of the shape; the shape's outline is excluded from the region. This means that any point on a line between two sequential vertices is not included in the region. If you were to call PtInRegion for such a point, it would return zero as the result.
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#2

AW: Runtime Error bei PtInRegion

  Alt 23. Dez 2012, 13:26
hast mit deiner aussage natürlich recht.. ich "zerstöre" sie nirgends wieder! wäre natürlich logisch das auch zu tun, angelegt sein müssten sie aber ja in jedem fall, da mir sonst doch auch nicht erstmal eine erfolgreiche textausgabe gelingen könnte oder?! also hat er ja schon mal festgestellt, dass der gerade aktuelle punkt in der region ist.. wie könnte denn eine solche abfrage aussehen? ich hab mich bisher wirklich noch nie mit dieser thematik beschäftigt :/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#3

AW: Runtime Error bei PtInRegion

  Alt 23. Dez 2012, 13:40
Da sich die Regions im Programmverlauf wohl nicht ändern werden, würde ich sie einmalig (z.B. im OnCreate) anlegen, mir das jeweilige Handle merken und sie im OnDestroy dann wieder zerstören. Beispielhaft mit einer einzelnen Region:
Delphi-Quellcode:
type
  TDeinForm = class(TForm)
  private
    FRgnSingle: hRgn;
    ...
  end;

procedure TDeinForm.FormCreate(Sender: TObject);
begin
  FRgnSingle := CreatePolygonRgn(...);
  if FRgnSingle = 0 then
    raise SomeException;
end;

procedure TDeinFom.FormDestroy(Sender: TObject);
begin
  DeleteObject(FRgnSingle);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#4

AW: Runtime Error bei PtInRegion

  Alt 23. Dez 2012, 14:08
okay, danke für die antwort! ich werde das dann mal versuchen einzuarbeiten, auch wenn es nicht die ursache für mein problem zu sein scheint.. ich habe das jetzt nochmal ein wenig genauer "untersucht" und festgestellt, dass das prog auch abkratzt, wenn ich gar nicht in eine der regionen komme. (sprich die maus im bereich des bildes bewege, aber nicht über eine definierte rgn komme) dies geschieht allerdings erst nach einer gewissen "strecke" die ich hin und her fahre, daher also die überlegung ob ich evtl eine variable belege, die nur eine gewisse länge haben kann?! oder anders gesagt die nur eine gewisse anzahl an werten beinhalten kann...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#5

AW: Runtime Error bei PtInRegion

  Alt 23. Dez 2012, 14:15
Du erzeugst im MouseMove immer neue Regions, ohne sie wieder freizugeben. Das ist ja unabhängig davon, ob sich der Mauszeiger innerhalb einer davon befindet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz