AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Komponente suchen und Caption ändern ?

Komponente suchen und Caption ändern ?

Ein Thema von Gandimann · begonnen am 1. Jan 2021 · letzter Beitrag vom 4. Jan 2021
Antwort Antwort
Seite 1 von 2  1 2   
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#1

Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 02:38
Hello Friends,
zuerst frohes 2021 wünsche ich allen

Mein Problem :
ich mochte gern auf ein Form platzierte mehrere Panels(mehr als 50) per Button-klick suchen und falls auf welche keine Caption vorhanden ist,ein neue caption zuweisen. Ich versuche mit follgende.... aber ohne Erfolg
Ich bitte um Hilfe !!

Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
 CNAME, CAP: string;
  i: Integer;
begin
  CNAME := 'pnl';
  CAP := 'LAST CHECK' ;
  for i := 1 to 4 do
  begin
      if (FindComponent((CNAME[i])) as TPanel).caption <> 'then
          (FindComponent((CNAME[i])) as TPanel).caption := CAP ;
  end;
end ;
end.
Ein TestProjekt habe ich hinzugefügt.
Angehängte Dateien
Dateityp: zip Test_Project.zip (157,7 KB, 4x aufgerufen)
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
53 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 06:31
Guten Morgen,
ich vermute, die Panels heißen pnl1...pnl4 , oder?
Dann müsste es lauten
Delphi-Quellcode:
if (FindComponent(CNAME + i.ToSting) as TPanel).caption <> 'then
...
Viele Grüße und allen ein gutes Neues Jahr
Harald
Harald
  Mit Zitat antworten Zitat
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
192 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 06:46
und nicht <> '' sondern = ''
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
59 Beiträge
 
#4

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 08:21
Um das überhaupt mit meinem Delphi 7 testen zu können, musste ich entsetzlich viel Müll entfernen.

Hier die Lösung:
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
 CNAME, CAP: string;
  i: Integer;
begin
  CNAME := 'pnl';
  CAP := 'LAST CHECK' ;
  for i := 1 to 4 do
  begin
      if (FindComponent(CNAME+intToStr(i)) as TPanel).caption = 'then
         (FindComponent(CNAME+intToStr(i)) as TPanel).caption := CAP;
  end;
end;
  Mit Zitat antworten Zitat
TKanne

Registriert seit: 6. Aug 2007
Ort: Berlin
21 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 14:10
Moin,

frohes Neues erst einmal.

oder, wenn es etwas flexibler sein soll (bei mir z.B. sind die Panels nicht mimmer nur durchnummeriert):

Code:
procedure TForm1.btn1Click(Sender: TObject);
var
  CAP: string;
  i: Integer;
begin
  CAP := 'LAST CHECK';
  for i := 0 to ComponentCount - 1 do
    if (Components[i] is TPanel) and ((Components[i] as TPanel).Caption = '') then
      (Components[i] as TPanel).Caption := CAP;

end;
  Mit Zitat antworten Zitat
EmWieMichael

Registriert seit: 28. Mär 2012
89 Beiträge
 
#6

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 16:15
Delphi-Quellcode:
if (FindComponent(CNAME+intToStr(i)) as TPanel).caption = 'then
   (FindComponent(CNAME+intToStr(i)) as TPanel).caption := CAP;
Das funktioniert zwar, allerdings ist der zweimalige Aufruf von FindComponent unnötig, nicht sonderlich elegant und wenig effektiv.
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
59 Beiträge
 
#7

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 16:19
Gut gebrüllt, Löwe. Dann mach's doch besser.

Ich hab mich nur an der Vorgabe orientiert und
den/die entsprechenden Fehler behoben.

Aber ich will mal nicht so sein:
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
 CNAME, CAP: string;
 p: TPanel;
 i: Integer;
begin
  CNAME := 'pnl';
  CAP := 'LAST CHECK' ;
  for i := 1 to 4 do
  begin
    p:= (FindComponent(CNAME+intToStr(i)) as TPanel);
    if p.caption = 'then p.caption := CAP ;
  end;
end;

Geändert von Delfiano ( 1. Jan 2021 um 16:47 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.540 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 17:03
Gut gebrüllt, Löwe. Dann mach's doch besser.

Ich hab mich nur an der Vorgabe orientiert und
den/die entsprechenden Fehler behoben.

Aber ich will mal nicht so sein:
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
 CNAME, CAP: string;
 p: TPanel;
 i: Integer;
begin
  CNAME := 'pnl';
  CAP := 'LAST CHECK' ;
  for i := 1 to 4 do
  begin
    p:= (FindComponent(CNAME+intToStr(i)) as TPanel);
    if p.caption = 'then p.caption := CAP ;
  end;
end;
Man sollte aber noch prüfen, ob es das Panel überhaupt gibt und nicht gleich das Caption zuweisen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
59 Beiträge
 
#9

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 17:19
Zitat:
Man sollte aber noch prüfen, ob es das Panel überhaupt gibt und nicht gleich das Caption zuweisen.
Prinzipiell korrekt. Aber selbst wenn es nicht existiert, also statt z.B 4 ein höherer Wert benutzt wird, kommt es zu keinem Fehler.

Etwas anderes ist viel problematischer. Der Themenersteller möchte ja die Änderungen nicht nur zur Laufzeit, sondern sie sollen dauerhaft übernommen werden.

Das aber ginge auf diese Weise so oder so nicht, sondern es müsste extern zugegriffen werden.

Zwar dürfte das auch nicht allzu schwierig sein, aber soll das ruhig wer anderes lösen.
  Mit Zitat antworten Zitat
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#10

AW: Komponente suchen und Caption ändern ?

  Alt 1. Jan 2021, 22:39
Thanks Friends for your kind help
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf