AGB  ·  Datenschutz  ·  Impressum  







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

D7 FindComponent über .tag und Caption

Ein Thema von beanbear6 · begonnen am 3. Jun 2016 · letzter Beitrag vom 7. Jun 2016
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#1

D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 17:16
Delphi-Version: 7
Hallo Profis,
ich finde leider keine Lösung - auch nicht in den mir bekannten foren. Ich habe 10 Panels mit den Tags 1 bis 10. Nun möchte ich über einen Zähler (1-10) die Compos (über den tag) finden und dann aber die Caption ändern... Ich krieg das nicht hin.. Wer kann mir helfen? Vielen Dank gleich mal an alle unterstützer.
Beanbear
Reiner
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#2

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 17:42
Hallo,

du kannst über ComponentCount die einzelnen TPanels suchen und dann dementsprechend darauf zugreifen.

Z. B.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  MyPanel: TPanel;

begin
  for i := 0 to Pred(ComponentCount) do
    If Components[i].ClassName = 'TPanelthen
      begin
        MyPanel := TPanel(Components[i]);

        ShowMessage(Format('Panelname: %s, Tag: %d', [MyPanel.Name, MyPanel.Tag]));
      end;
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 17:46
Oder alternativ sowas?
(nur hingedaddelt und nicht getestet)
Delphi-Quellcode:
for i := 0 to ComponentCount - 1 do begin
  if Components[i] is TPanel then begin
    case TPanel(Components[i]).Tag of
      1 : TPanel(Components[i]).Caption := '1';
      2 : TPanel(Components[i]).Caption := '2';
...
    end;
  end;
end;
oder
Delphi-Quellcode:
for i := 0 to ComponentCount - 1 do begin
  if Components[i] is TPanel then begin
    with Components[i] as TPanel do begin
      case Tag of
        1 : Caption := '1';
        2 : Caption := '2';
...
      end;
    end;
  end;
end;
  Mit Zitat antworten Zitat
beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 17:46
Hi,
äh also i glaub da ist meine Frage nicht ganz rüber gekommen also ich suche mit einem Zähler x von 1 bis 10 die Komponente TPanel über die Eigenschaft .tag. Wenn z.B. Panel mit tag 3 gefunden wurde, dann möchte ich diese Caption ändern...
Gruß Reiner
Reiner
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#5

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 17:49
Hi,
äh also i glaub da ist meine Frage nicht ganz rüber gekommen also ich suche mit einem Zähler x von 1 bis 10 die Komponente TPanel über die Eigenschaft .tag. Wenn z.B. Panel mit tag 3 gefunden wurde, dann möchte ich diese Caption ändern...
Dann zeig doch mal deinen Code, wenn wir dich falsch verstanden haben
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 17:53
Hallo,
ich versuche das mal so darzustellen:

Delphi-Quellcode:
  for x := 1 to 10 do begin
   // If TPanel(Findcomponent('Panel'+IntToStr(x))).Tag = x then
   // TPanel[x].Caption = 'bla bla';
    end;
  end;
Ich weiß, dass das so nicht geht, es soll nur son Anhaltspunkt sein, wie ich das lösen möchte. Das Problem ist dabei noch, dass sich die Anzahl der Panels eventuell auf 100 erhöhen kann. Wenn ich das mit Case mache muss ich ja 100 cases abfragen oder?
Gruß Reiner
Reiner
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#7

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 18:00
So etwa?

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  Component: TComponent;

begin
  for i := 1 to 10 do
    begin
      Component := Findcomponent('Panel'+ IntToStr(i));

      If Assigned(Component) then
        If Component.ClassType = TPanel then
          If TPanel(Component).Tag = i then
            TPanel(Component).Caption := Format('Ich bin Panel-Nr. %d', [i]);
    end;
end;
oder:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  Component: TComponent;
  TempPanel: TPanel;

begin
  for i := 1 to 10 do
    begin
      Component := Findcomponent('Panel'+ IntToStr(i));

      If Assigned(Component) then
        If Component.ClassType = TPanel then
          begin
            TempPanel := TPanel(Component);

            If TempPanel.Tag = i then
              TempPanel.Caption := Format('Ich bin Panel-Nr. %d', [i]);
          end;
    end;
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi ( 3. Jun 2016 um 18:03 Uhr)
  Mit Zitat antworten Zitat
beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 18:24
Hi Helmi,

im prinzip gehts, nur macht er das nur beim ersten Panel... (habs mit erstem Beispiel versucht)
Gruß Reiner
Reiner

Geändert von beanbear6 ( 3. Jun 2016 um 18:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#9

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 18:28
wie heissen die Panels?

Sind das spezielle Panels die du da finden willst, oder alle Panels die auf der Form liegen?

Ansonsten zeig nochmal deinen jetzigen Code
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 18:30
Hi,
es liegen alle 10 Panels auf einer form. Die Namen sind einfach panel1 panel2 usw. Hab den Eindruck, dass der nicht weiterzählt...
Gruß Reiner
Reiner
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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:46 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