AGB  ·  Datenschutz  ·  Impressum  







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

try...except problem

Ein Thema von Hybrid666 · begonnen am 10. Jan 2007 · letzter Beitrag vom 10. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#1

try...except problem

  Alt 10. Jan 2007, 20:14
Hi

ich hab folgendes problem:

ich nutze eine komponente um bestimmte devices zu suchen, die hat jedoch keine funktion um zu sagen ist das device da oder nicht, drum will ich das über try except machen.
Ist das Devicer (oder mehrere) da, so werden sie einer liste hinzugefügt, ist es nicht da soll ein error kommen...ich habe das so gemacht:

Delphi-Quellcode:
  try
    joy := TGamePad.Create(0);
    for i := 0 to GamePadCount - 1 do
    begin
      joy.ID := i;
      cbpads.Items.Add(joy.InstanceName);
    end;
  except
    showmessage('No Joystick/Gamepad found');
  end;
Ohne das try except würde kommen: List index out of bounds (-1), das sollte ja nun nicht mehr kommen...das problem: es kommt trotzdem...und das except wird NICHT ausgeführt...

was kann ich tun?

MfG Hybrid666
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: try...except problem

  Alt 10. Jan 2007, 20:20
Kann es sein, daß es sein, daß joy := TGamePad.Create(Nil); heißen müßte?
Wo Testet es du es in der IDE oder außerhalb? (In der IDE wird Exception trotzdem ausgelöst)
Markus Kinzler
  Mit Zitat antworten Zitat
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#3

Re: try...except problem

  Alt 10. Jan 2007, 20:25
Zitat von mkinzler:
Kann es sein, daß es sein, daß joy := TGamePad.Create(Nil); heißen müßte?
Wo Testet es du es in der IDE oder außerhalb? (In der IDE wird Exception trotzdem ausgelöst)
Also ja ich teste es in der IDE, mein problem hab ich aber glaub wohl unverständlich daargestellt, das problem ist das except in GARKEINEM fall ausgelöst ist, weder wenn das device da ist oder nicht...und das 0 ist die device ID, also der erste angeschlossene joystick
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: try...except problem

  Alt 10. Jan 2007, 20:34
Hast du in den Debugger-Optionen die Sprach-Exceptions auch ausgeschalten? Denn sonst meldet Delphi das weiterhin.

Teste es doch mal, deine Anwendung aus dem Explorer heraus zu starten und sage uns dann, was du dort siehst. Kommt auch die Access-Violation, dann liegt's am Code, kommt deine Meldung, dann stelle in den Optionen um, dass dich Delphi selbst nicht benachrichtigen soll.

Edit: Tools - Debugger-Optionen - Sprach Exceptions: Haken weg bei "bei Delphi-Exceptions stoppen"
  Mit Zitat antworten Zitat
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#5

Re: try...except problem

  Alt 10. Jan 2007, 20:38
Zitat von Matze:
Hast du in den Debugger-Optionen die Sprach-Exceptions auch ausgeschalten? Denn sonst meldet Delphi das weiterhin.

Teste es doch mal, deine Anwendung aus dem Explorer heraus zu starten und sage uns dann, was du dort siehst. Kommt auch die Access-Violation, dann liegt's am Code, kommt deine Meldung, dann stelle in den Optionen um, dass dich Delphi selbst nicht benachrichtigen soll.

Edit: Tools - Debugger-Optionen - Sprach Exceptions: Haken weg bei "bei Delphi-Exceptions stoppen"
hab ich schon probiert ausm explorer raus, da kommt der fehler der nicht kommen sollte (list index out of bounds)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: try...except problem

  Alt 10. Jan 2007, 20:40
Versuch mal
Delphi-Quellcode:
except
    on Exception do
    showmessage('No Joystick/Gamepad found');
...
Markus Kinzler
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: try...except problem

  Alt 10. Jan 2007, 20:45
Benutzt Du diese Unit -> http://www.delphipraxis.net/internal...ct.php?t=85712
Dann bringt TGamePad.create keine Exception wenn kein GamePort da ist.
Das Objekt wird einfach erstellt.
Du müsstest dann die DeviceNr abfragen, wenn die 0 ist, sit kein GamePort da.

Wenn es eine andere Unit sein sollte, post sie doch bitte mal.

Ansonsten kannst Du Deinen Code auch so ändern, das Du abfragst
ob etwas in der Liste ist:
Delphi-Quellcode:
    joy := TGamePad.Create(0);
    if GamePadCount > 0 then
    for i := 0 to GamePadCount - 1 do
      begin
        joy.ID := i;
        cbpads.Items.Add(joy.InstanceName);
      end
    else
      showmessage('No Joystick/Gamepad found');
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#8

Re: try...except problem

  Alt 10. Jan 2007, 20:45
Zitat von mkinzler:
Versuch mal
Delphi-Quellcode:
except
    on Exception do
    showmessage('No Joystick/Gamepad found');
...
wird immernoch nur der try teil abgewarbeitet, das iss so wie wenn kein try dastehen würde...
  Mit Zitat antworten Zitat
paritycheck

Registriert seit: 8. Feb 2005
51 Beiträge
 
Delphi 2009 Professional
 
#9

Re: try...except problem

  Alt 10. Jan 2007, 21:14
Ich kenne die Komponente leider nicht aber was ich mich gefragt hab ist wo GamePadCount herkommt? Ist das ein von Dir definierter Wert oder müsste es nicht eher joy.GamePadCount heissen?

Ansonsten vielleicht so:
Delphi-Quellcode:
cbpads.clear;
for i := 0 to GamePadCount - 1 do
    try
      joy.ID := i;
      cbpads.Items.Add(joy.InstanceName);
    except
    end;
if cbPads.Items.count = 0 then
Showmessage('Kein Joystick bla bla');
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: try...except problem

  Alt 10. Jan 2007, 22:00
Wenn hier ständig behauptet wird, dass der Except Teil nicht durchlaufen wird und immer trotzdem die EBoundsError Exception ausgelöst wird, dann würde ich hier ganz frech behaupten: Die Exception wird nicht in dem hier gezeigten Codestück ausgelöst sondern an einer anderen Stelle in der App. Also überprüfe z.B. mal ein mögliches OnChange Event der ListBox oder sonstige Events, wo der Index beim Zugriff auf Listenelemente zu gross sein könnte/ist.
  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 09:55 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