AGB  ·  Datenschutz  ·  Impressum  







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

Findcomponent löst Exception aus???

Ein Thema von Thorben86 · begonnen am 13. Okt 2004 · letzter Beitrag vom 13. Okt 2004
Antwort Antwort
Seite 1 von 2  1 2      
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#1

Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 18:37
Hi,
Ich will auf eine Image-Komponente mit Findcomponent zugreifen. Da dies jedoch immer eine Exception ausgelöst hat, hab ich 2 Showmessages an den Anfang gesetzt. Die erste wird angezeigt und dann kommt ne Exception(Ungültige Typenumwandlung)

Der Name der Komponente ist im_st1nr1.
Stapel[1].Anzahl ist auch 1.
Hab ich irgend einen Fehler übersehen?, oder warum klappt das nicht?
Delphi-Quellcode:
showmessage('s');
showmessage((Findcomponent('im_st'+ InttoStr(1) + 'nr1'+ InttoStr(Stapel[1].Anzahl) ) as TImage).name);
Edit: Es kommt Ne Exception(Ungültige Typenumwandlung), nicht zugriffsverletzung
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 18:54
Moin,

wenn FindComponent die Komponente nicht findet, wird ein nil-Zeiger zurückgegeben.
Du solltest also immer prüfen, ob FindComponent auch eine Komponente liefert.

also...

Delphi-Quellcode:
var Image:TImage;
begin
  Image:=Findcomponent('im_st'+ InttoStr(1) + 'nr1'+ InttoStr(Stapel[1].Anzahl)) as TImage;
  if assigned(Image) then
    showmessage(Image.name);
end;
Ausserdem solltest du, wenn du schon Text mit einer ShowMessage ausgibst vielleicht den String ausgeben, den du an FindComponent übergibst, dann würdest du nämlich auch bestimmt sehen, dass die Komponente du du finden möchtest nicht existiert.

MfG
Thorsten
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 19:40
Ja, das könnt ich machen, aber das hilft mir bei meinem problem auch nicht, da die Komponente ja vorhanden ist.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 19:44
Hi Thorben86,

showmessage((Findcomponent('im_st'+ InttoStr(1) + 'nr1'+ InttoStr(Stapel[1].Anzahl) ) as TImage).name); Überprüf mal ob die Kompo überhaupt ein Image ist, also z.B. so:
Delphi-Quellcode:
var
  c: TObject;
begin
  c := Findcomponent('im_st'+ InttoStr(1) + 'nr1'+ InttoStr(Stapel[1].Anzahl));
  if c is TImage then
    ShowMessage(TImage(c).Name);
end;
Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 19:50
Thx @ alcaeus: Ich hab jetzt das Problem gefunden, ich hatte die Images durch Shapes ersetzt

  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 19:54
Aber jetzt klappt es irgendwie nicht, den Namen davon dann umzuändern.
Klappt das generell nicht oder hab ich schon wieder nen Fehler eingebaut?

(Findcomponent('im_st'+ InttoStr(Startstapel) + 'nr' + InttoStr(Stapel[Startstapel].Anzahl)) as TShape).Name := 'im_st'+ InttoStr(Zielstapel) + 'nr' + InttoStr(Stapel[Zielstapel].Anzahl + 1);
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 19:55
Hi Thorben86,

sag mal was denn nicht funktioniert. Gibts eine Fehlermeldung? AV?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 20:02
Sry, es kommt ne Exception, dass es eine Zugriffsverletzung gibt.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#9

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 20:05
Hi Thorben86,

versuch mal, das Ergebnis von FindComponent in einer Variable abzuspeichern und anschließend den Namen zu ändern. Vielleicht gibts Probleme, weil du ja indirekt der Funktion was zuweist.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Findcomponent löst Exception aus???

  Alt 13. Okt 2004, 20:08
Ahmm, könntest du vielleicht mal en beispiel machen, wie ich das mache, weil wenn ich den dateinamen auf ner Variable hab, kann ich den zwwar auf der variable ändern, aber wie änder ich den dann bei der Kompo
  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 23:07 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