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
 
arest

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

Runtime Error bei PtInRegion

  Alt 23. Dez 2012, 13:07
hallo allerseits,
bin gerade dabei ein dart scoring programm zu schreiben.. fand die projekte, die bisher realisiert wurden optisch nicht sonderlich ansprechend und wollte mich daher selbst mal dran setzen. prinzip soll folgendes sein: im prog ist ein bild der dartscheibe eingebunden über das man mit der maus fährt und dann klickt man auf das gewünschte feld um seine score zu klicken. um das umzusetzen habe ich mich jetzt mal mit ptinregion befasst und das in zwei ereignisse eingebunden. erstens auf den mousemove, sodass einem per textausgabe angezeigt wird, über welchem feld ich mich aktuell befinde und zweitens dann auf mousedown, um den entsprechenden bereich zu bestätigen. beim ersten wird dann zum beispiel "double20" angezeigt und beim zweiten wird dann die score "40" eingetragen. ich habe das vom ansatz jetzt wie folgt gelöst

Delphi-Quellcode:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var rgn_s1_1, rgn_s1_2, rgn_d1, rgn_t1 : HRGN;
    plist_s1_1, plist_s1_2, plist_d1, plist_t1 : array [0..4] of TPoint;
begin
  label5.Caption:='X: ' + IntToStr(X) + 'Y: ' + IntToStr(Y); //aktuell nur drin um die koordinaten zu ermitteln
  
//***************************SINGLE 1******************************
  plist_s1_1[0] := Point(282,52);
  plist_s1_1[1] := Point(340,71);
  plist_s1_1[2] := Point(310,129);
  plist_s1_1[3] := Point(271,117);
  rgn_s1_1 := CreatePolygonRgn(plist_s1_1,4,Winding);
  if PtInRegion(rgn_s1_1, x, y)
  then StaticText4.Caption := '1';
  plist_s1_2[0] := Point(270,130);
  plist_s1_2[1] := Point(304,140);
  plist_s1_2[2] := Point(259,230);
  plist_s1_2[3] := Point(254,228);
  rgn_s1_2 := CreatePolygonRgn(plist_s1_2,4,Winding);
  if PtInRegion(rgn_s1_2, x, y)
  then StaticText4.Caption := '1';
//***************************DOUBLE 1******************************
  plist_d1[0] := Point(284,41);
  plist_d1[1] := Point(344,61);
  plist_d1[2] := Point(341,68);
  plist_d1[3] := Point(283,49);
  rgn_d1 := CreatePolygonRgn(plist_d1,4,Winding);
  if PtInRegion(rgn_d1, x, y)
  then StaticText4.Caption := 'D1';
//***************************TREBLE 1******************************
  plist_t1[0] := Point(272,120);
  plist_t1[1] := Point(308,132);
  plist_t1[2] := Point(305,137);
  plist_t1[3] := Point(271,126);
  rgn_t1 := CreatePolygonRgn(plist_t1,4,Winding);
  if PtInRegion(rgn_t1, x, y)
  then StaticText4.Caption := 'T1';

leider kommt es für mich nicht wirklich logisch zu einem runtime error... läuft erstmal ganz normal und das prinzip funktioniert auch einwandfrei, allerdings stirbt mir der mist nach ner weile hin und her bewegen der maus weg?!
Zitat:
"Im Projekt Project1.exe ist eine Exception der Klasse EOutOfResources aufgetreten. Meldung: 'Fehler beim Erstellen des Fenster-Gerätekontexts'. Prozeß wurde angehalten. ..."

ich gehe davon aus, dass es irgendwelche komplikationen bezüglich der regionen gibt?! wenn ich jetzt zum beispiel für sich überschneidende regionen zwei unterschiedliche ereignisse erwarte, ist es ja klar, dass nicht eindeutig ist, ob er jetzt "1" oder "D1" anzeigen soll... eigentlich dürften sich die regionen aber nicht überschneiden :O jemand eine idee woran das liegen könnte?!

vielen dank schonmal
  Mit Zitat antworten Zitat
 


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 16:38 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