TEdit has no component named text

Rund um die LCL und andere Komponenten
Antworten
hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

TEdit has no component named text

Beitrag von hde »

Da ich ein Problem hatte mit der Übernahme von Strings aus einem externen Programm via Variant/OleVariant (anderer Thread) habe ich dies Problem durch die Übergabe per Clipboard umgangen (das externe Prog läuft eh nur unter Windows).

Ein nonvisible Edit übernimmt den String und gibt ihn weiter.

In einem Prog läuft das einwandfrei, in einem zweiten nicht. Auch das wird kompiliert und läuft, aber Edit.Text bleibt leer. Ich kann's umgehen und das TEdit visible schalten, aber .. wieso verhalten sich beide Programme unterschiedlich und seltsam ist die Fehlermeldung per debugger:

suchEdit.Text = Type TEDIT has no component named TEXT
published property, TEdit.text:TCaption

Code: Alles auswählen

suchEdit.Text:='';
    suchEdit.PasteFromClipboard;
    suchFeld:=suchEdit.Text;
OK, kein echtes Prob, aber schon seltsam

hde
Dateianhänge
screen2.pdf
(10.14 KiB) 75-mal heruntergeladen

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: TEdit has no component named text

Beitrag von Antrepolit »

hde hat geschrieben:Da ich ein Problem hatte mit der Übernahme von Strings aus einem externen Programm via Variant/OleVariant (anderer Thread) habe ich dies Problem durch die Übergabe per Clipboard umgangen (das externe Prog läuft eh nur unter Windows).
Und was für probleme waren das genau?
Ein nonvisible Edit übernimmt den String und gibt ihn weiter.
Und was bringt dieses unschöne Konstrukt? Wie wäre es mit einer Variablen und einer Zuweisung von Clipboard.Text?
In einem Prog läuft das einwandfrei, in einem zweiten nicht.

Auch das wird kompiliert und läuft(...)
Sind diese Programme also beide von dir? Es gibt mehrere Möglichkeiten, einem Programm Daten aus einem anderen heraus zu schicken. Allem voran Window-Messages und Pipes, aber IPC unter Lazarus hatte bei Windows bei mir bisher nicht funktioniert. Mit der aktuellen Version hab ich es noch nicht probiert.

Und dein seltsames PDF - was ist das, was stellt das dar? Es ist kaum lesbar und voll mit Artefakten.
Grüße, Antrepolit

care only if your os is really burning

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: TEdit has no component named text

Beitrag von hde »

Antrepolit hat geschrieben:Und was für probleme waren das genau?
http://www.lazarusforum.de/viewtopic.php?f=10&t=6011" onclick="window.open(this.href);return false;
Antrepolit hat geschrieben:Wie wäre es mit ... einer Zuweisung von Clipboard.Text?
kannte ich nicht. Clipboard ist in welcher unit definiert?
Antrepolit hat geschrieben:Es gibt mehrere Möglichkeiten, einem Programm Daten aus einem anderen heraus zu schicken. Allem voran Window-Messages und Pipes
Gehr leider nicht, da das externe Programm nur als bin/Exe vorliegt und per OLE gesteuert wird. Da sind die Möglichkeiten der Übergabe leider begrenzt.
Antrepolit hat geschrieben:Sind diese Programme also beide von dir?
ja, zwei fast identische Programme. In dem einen darf TEdit nonvisible sein, im anderen muss es visible sein. Aber beide werden fehlerfrei kompiliert und laufen ohne Fehler.
Antrepolit hat geschrieben:Und dein seltsames PDF
Das ist die Meldung des debuggers wenn ich's einzeln verfolge

Aber macht euch keine Mühe, ich kann das Prob umgehen, kann mir das Verhalten von Lazarus nur nicht erklären.

hde

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: TEdit has no component named text

Beitrag von theo »

hde hat geschrieben: kannte ich nicht. Clipboard ist in welcher unit definiert?
Clipbrd

hde hat geschrieben: Das ist die Meldung des debuggers wenn ich's einzeln verfolge
Das war schon klar, aber warum du ein unleserliches JPEG daraus machst, und das dann auch noch in ein PDF verpackst, ist nicht ganz klar.

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: TEdit has no component named text

Beitrag von hde »

theo hat geschrieben:warum du ein unleserliches JPEG daraus machst, und das dann auch noch in ein PDF
sry, Prog und Laz läuft unter Windoof, Screenshot war Linux, daraus Ausschnitt (blöd, ich weiß ..) :|

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: TEdit has no component named text

Beitrag von hde »

theo hat geschrieben:Clipbrd
danke @theo,

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: TEdit has no component named text

Beitrag von Antrepolit »

hde hat geschrieben:
Antrepolit hat geschrieben:Und was für probleme waren das genau?
http://www.lazarusforum.de/viewtopic.php?f=10&t=6011" onclick="window.open(this.href);return false;
Offensichtlich hast du die eigentlichen Probleme nicht gelöst. Evtl. haben das TypeCast-Problem und das TEdit-Problem die gleiche Ursache.

Und OLE ist mittlerweile COM. Und bei COM gibt es Mechanismen zum Datenaustausch - dafür wurde (ehemals) OLE entwickelt.
Grüße, Antrepolit

care only if your os is really burning

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: TEdit has no component named text

Beitrag von hde »

So .. schließen wir den Thread, da es per clipboard funktioniert und ich damit erst mal weiterkomme.

was ich trotzdem nicht verstehe, und auch hier offenbar niemand weiß,
a) warum Laz/fpc bei zwei gleichen Programmabläufen unterschiedlich reagiert,
b) was diese seltsame Meldung im debugger soll:

Code: Alles auswählen

Edit1.Text = Type TEDIT has no component named TEXT
published property TEdit.Text:TCaption
Antrepolit hat geschrieben:Und OLE ist mittlerweile COM. Und bei COM gibt es Mechanismen zum Datenaustausch
@Antrepolit,
ja, es ist schon ein ComObject und es läuft seit vielen Jahren in etlichen Programmen unter mehrern DelphiVersionen einwandfrei. Unter Delphi kann man direkt Strings zuweisen, Laz/fpc verlangt zwingend ein Variant sonst gibts direkt beim Compilieren den Typecast Error. Aber dafür läuft ja der Thread http://www.lazarusforum.de/viewtopic.php?f=10&t=6011" onclick="window.open(this.href);return false; und das erklärt weder die seltsame debugger Meldung noch das unterschiedliche Verhalten.

Vielleicht bin ich zu dumm es zu verstehn aber es reicht mir (vorerst) wenn das Prog jetzt irgendwie tut was es soll :wink:
hde

Antworten