Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FindComponent (https://www.delphipraxis.net/119175-findcomponent.html)

rich123 21. Aug 2008 14:22


FindComponent
 
Hallo zusammen,

Wenn ich eine Komponente auf der gleichen Form liegt benutze ich

Delphi-Quellcode:
TEdit(FindComponent('Edit'+IntToStr(varzaehler))).Text := 'muh';
Wenn die Komponente aber auf einer anderen Form liegt, habe ich ein Problem:

Delphi-Quellcode:
TEdit(FindComponent('Form2.Edit'+IntToStr(varzaehler))).Text := 'muh';
funktioniert leider nicht.

Wie muss ich das machen?

Danke

Fussball-Robby 21. Aug 2008 14:27

Re: FindComponent
 
Ich habe gerade kein Delphi zur Hand, aber es müsste so gehen:
Delphi-Quellcode:
TEdit(Form2.FindComponent('Edit'+IntToStr(varzaehler))).Text := 'muh';

rich123 21. Aug 2008 14:28

Re: FindComponent
 
jup, funktioniert, danke

mkinzler 21. Aug 2008 14:30

Re: FindComponent
 
Aber besser Softcast verwenden:
Delphi-Quellcode:
(Form2.FindComponent('Edit'+IntToStr(varzaehler)) as TEdit).Text := 'muh';

taaktaak 21. Aug 2008 14:36

Re: FindComponent
 
Warum besser Softcast? Hab' mir die andere Form angewöhnt, weil kürzer. Ist das gefahrgeneigt?

mkinzler 21. Aug 2008 14:54

Re: FindComponent
 
Da da er ungeprüft auf den Speicherbereich zugreift und nicht geprüft wird, ob der Typ stimmt.

taaktaak 21. Aug 2008 15:22

Re: FindComponent
 
Na, dann sollte man diese Möglichkeit tatsächlich sehr zurückhaltend verwenden!
Danke!

Apollonius 21. Aug 2008 17:45

Re: FindComponent
 
Allerdings würde ich davon ausgehen, dass eine Komponente, deren Name mit 'Edit' beginnt, auch ein TEdit ist.

mkinzler 21. Aug 2008 18:03

Re: FindComponent
 
Ich würde von Nichts ausgehen...

FAlter 21. Aug 2008 18:46

Re: FindComponent
 
Hi,

es gibt Leute, die benennen ihre Komponenten. Ich zum Beispiel in etwa so:

NameEdit, BirthdayEdit --> z. B. Edit, MaskEdit, SpinEdit (letzteres nehm ich aber eigentlich nicht)
NamesBox, DoItNowBox, WuppdiBox --> ListBox, GroupCox, CheckBox, ...

Wie man sieht, kann man aus dem Namen nicht unbedingt auf die Komponente schließen, aber ich habe keine Lust, in meinem Code "DoItNowCheckBox" auszuschreiben. Das ist mir zu lang. Andererseits sagt mir ein "CheckBox1" im Code rein gar nix. Wasn datt für eine von den 24 CheckBoxen auf dem Form?

Mfg
FAlter

Apollonius 21. Aug 2008 19:46

Re: FindComponent
 
Ich möchte hier keine Diskussion vom Zaun brechen, aber normalerweise sind meine Lösungen auf das Formular zugeschnitten. Dann weiß ich, welche Komponenten welche Namen haben.

rich123 25. Aug 2008 09:50

Re: FindComponent
 
huhu,

wieder frage zur FindComponent...


Hier funktioniert .AddXY nicht, warum??

Delphi-Quellcode:
(Form6.FindComponent('Series'+IntToStr(i)) as TChart).AddXY(1,1,'',clRed);
Gruß

DeddyH 25. Aug 2008 10:00

Re: FindComponent
 
Was heißt "funktioniert nicht"? Compilerfehler oder tut sich zur Laufzeit nichts?

rich123 25. Aug 2008 10:02

Re: FindComponent
 
Undefinierter Bezeichner AddXY.

Funktioniert aber ohne FindComponent einwandfrei

DeddyH 25. Aug 2008 10:06

Re: FindComponent
 
Ich habe hier gerade nur Delphi 5 zur Hand, da hat das TChart keine Methode "AddXY". Daher kann ich das im Moment nicht nachvollziehen.

rich123 25. Aug 2008 10:08

Re: FindComponent
 
ich habe was gefunden, dass es mit TLineSeries funktionieren sollte aber dann kommt:

Undefinierter Bezeichner : TLineSeries

Gruß

DeddyH 25. Aug 2008 10:11

Re: FindComponent
 
Weiß ich jetzt nicht, aber ein Test mit
Delphi-Quellcode:
(Form1.FindComponent('Chart' + Inttostr(1)) as TChart).AllowZoom := true;
war erfolgreich.

rich123 25. Aug 2008 10:12

Re: FindComponent
 
jup, aber in welchem Objekt ist dann AddXY?

DeddyH 25. Aug 2008 10:14

Re: FindComponent
 
Laut meiner Hilfe in TChartSeries.

rich123 25. Aug 2008 10:15

Re: FindComponent
 
Super Danke, habs!!

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 15: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