AGB  ·  Datenschutz  ·  Impressum  







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

Herausfinden ob Komponente vorhanden

Ein Thema von Jerry · begonnen am 12. Apr 2006 · letzter Beitrag vom 12. Apr 2006
Antwort Antwort
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#1

Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 11:16
Hallo zusammen

Ich habe folgede Aufgabe zu lösen:

Auf einem Panel hat es jeweils eine GroupBox von 6 möglichen GroupBoxen.
Wie finde ich in einer Schleife heraus welche GroupBox momentan auf dem Panel ist?

Mit FindComponent komme ich irgendwie nicht weiter...

Hat jemand einen Tipp?

Habe das mit diesem Code versucht, das klappt aber nicht:

Delphi-Quellcode:
begin
  // prüfen ob bereits GroupBox auf Panel ist
  if PanelEx1.FindComponent(TGroupBox) then // das hier gibt logischerweise den Fehler Inkomtatible Typen....
  showmessage('Eine GroupBox gefunden');
end;
Danke!
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 11:24
Die Frage ist, wie du die GroupBoxen auf das panel plazierst und wieder runternimmst? Vielleicht mit Visible. Dann kannst du mit PanelEx1.Components alle GroupBoxen durchgehen und schauen, bei welcher Visible=true ist.

Vielleicht ist es auch einfacher dir irgendwo eine Variable zu setzen, in der erkennbar ist, welche GroupBox aktiv ist.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 11:29
Hallo Platziert werdendie GroupBoxen mit Drag und Drop. Ich muss also feststellen können welche GroupBox von welchem Panel kommt, damit ich die GroupBoxen "tauschen" kann.

Deine Input wäre ne Möglichkeit, gibt es aber noch andere Ansätze?

danke für weitere Inputs!
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#4

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 11:33
Achso. Drag'n'Drop ... Mmh. Hast du mal geschaut ob in TGroupBox.Parent das richtige Panel drin ist. Da a (davon gehe ich mal aus) bei dem Drag'n'Drop Event die Groupbox bekannt ist, dürfetest du über das Parent rausbekommen, auf welchen Panel das liegt. Nach dem Drag'n'Drop muss ja das Parent angepasst werden, da sonst die GroupBox nicht im neuen Panel liegen würde.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 11:38
Und wie wäre es, wenn du den Namen verwendest?
Delphi-Quellcode:
For i := 1 to 6 do
  If PanelEx1.FindComponent('GroupBox' + IntToStr(i)) <> nil Then
    MessageBox('GroupBox' + IntToStr(i) + ' ist auf Panel1');
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 11:43
Danke für Deine Antwort.

Leider heissen die GroupBoxen nicht gb_1 / gb_2 usw.

Die haben andere Namen, wie z.B: gb_Bewilligung / oder gb_Fahrzeuge / gb_Vermerke usw.

Gibt es da noch andere Möglichkeiten?
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#7

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 11:46
wieso läufst du nicht einfach über alle Komponenten die auf dem Panel sind:

Delphi-Quellcode:
  for i := 0 to Panel.ComponentCount - 1 do begin
    if Panel.ControlCount[i] is TGroupbox then
      with TGroupbox(Panel.Controls[i]) do
        DoSomething;
  end;

//EDIT: ComponentCount/Components auf ControlCount/Controls geändert (Danke @Hawkeye219)
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 13:18
Hallo,

die Verwendung von Panel.ComponentCount und Panel.Components[] dürfte hier nicht zum Ziel führen, da bei allen Controls normalerweise das Formular als Besitzer eingetragen ist und nicht ein spezielles Control auf dem Formular. So wie ich das verstanden habe, ist Jerry an der z-Reihenfolge interessiert, die über TPanel.ControlCount und Panel.Controls[] erfragt werden kann. Aus Sicht einer GroupBox kanne man über GroupBox.Parent das übergeordnete Panel erfragen, so wie es jim_raynor auch schon beschrieben hat.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Herausfinden ob Komponente vorhanden

  Alt 12. Apr 2006, 13:29
Vielen Danke für Eure Inputs!

Mit diesen Lösungsvorschlägen, kann ich mir das nötige zusammenbauen!

Danke an alle!

Grüsse vom Bodensee, Jerry
  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 15: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