![]() |
Komponente in anderer Form finden
hi,
mein problem ist folgendes: ich versuche ein edit in form1 zu finden, um den inhalt auszulesen. die procedure findet in form2 statt. ich bekomme allerdings immer eine fehlermeldung. folgende varianten habe ich probiert:
Code:
name --> string
with form1 do name:=TEdit(findcomponent('name'+inttostr(j))).text;
... name:=form1.TEdit(findcomponent('name'+inttostr(j))).text; j --> laufvariable, hier 1 das editfenster heißt name1 da ich mehrere edits auslesen muss, die alle nameX heißen, wollte ich das mit einer schleife und findcomponent machen, aber es geht noch nicht. habt ihr eine idee? danke im voraus |
Re: Komponente in anderer Form finden
Zitat:
|
Re: Komponente in anderer Form finden
Bei der ersten Variante bekomme ich das:
Code:
Anm.: "Chievo Verona" ist der Inhalt von form1.name1.text
Benachrichtigung über Debugger-Exception
Im Projekt Project1.exe ist eine Exception der Klasse EComponentError aufgetreten. Meldung: '"Chievo Verona" ist kein gültiger Komponentenname'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. Bei der zweiten Variante meckert der Compiler:
Code:
(Fehler) Unit2.pas(88): Undefinierter Bezeichner: 'TEdit'
|
Re: Komponente in anderer Form finden
Du hast aber die Unit stdctrls in Form2 eingebunden?
|
Re: Komponente in anderer Form finden
zum zweiten problem:
Delphi-Quellcode:
form1.TEdit würde bedeuten du würdest auf die komponente TEdit im form1 zugreifen, da dies nicht existiert meckert der compiler.
name:=TEdit(form1.findcomponent('name'+inttostr(j))).text;
|
Re: Komponente in anderer Form finden
@DeddyH: mit dem header kenne ich mich nicht so aus. in form1 und form2 steht jeweils oben folgendes:
Code:
die units sind auch miteinander verknüpft etc.
...
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Grids, Math; ... oder fehlt da noch was? @M.Hassmann: habe ich mir gedacht. hast du vielleicht eine idee? |
Re: Komponente in anderer Form finden
Steht doch da: das Form1 vor das FindComponent setzen.
|
Re: Komponente in anderer Form finden
genau das sollte doch die lösung deines problems sein:
Delphi-Quellcode:
name:=TEdit(form1.findcomponent('name'+inttostr(j))).text;
|
Re: Komponente in anderer Form finden
1.) "Name" gibts auch als Eigenschaften von Form. Ich würde daher keine Variable nehmen, die "Name" heisst und dann mit "with Form do ..." arbeiten. Woher weißt du, dass du durch "Name := ..." nicht den Namen der Form ansprichst? Deswegen meckert er auch, dass "Chievo Verona" kein gültiger Komponentenname ist.
2.) Eigentlich müßte ...
Delphi-Quellcode:
... funzen. Darfst halt nur nicht "Name" verwenden. Nimm lieber "strName".
strName := TEdit (Form1.FindComponent ('Name' + inttostr (j))).Text;
|
Re: Komponente in anderer Form finden
bin blind^^
habe die zeile gar nicht wahrgenommen^^ es klappt. vielen dank :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz