Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi zahl auf verschiedene kompos ausgeben (https://www.delphipraxis.net/34105-zahl-auf-verschiedene-kompos-ausgeben.html)

glkgereon 17. Nov 2004 16:00


zahl auf verschiedene kompos ausgeben
 
also, ich will eine zahl auf eine compo ausgeben...

da ich nicht weiss ob dies ein Label oder ein Edit sein soll (oder noch was anderes) möchte ich diese als TComponent deklarieren

frage 1: kann ich einer TComponent ein TEdit zuweisen?

daraus ergibt sich die frage:

wenn ich was ausgeben will muss ich in einem fall auf Caption zugreifen, in einem anderen aut Text, oder event. sogar auf Value
wie krieg ich das raus?
denn ich will net mit einer
if Output is TEdit - Abfrage alle möglichen compos durchrasseln....

gibt es da eine möglichkeit das einfach ohne großen aufwand zu bewerkstelligen?

Sprint 17. Nov 2004 16:10

Re: zahl auf verschiedene kompos ausgeben
 
Zitat:

Zitat von glkgereon
gibt es da eine möglichkeit das einfach ohne großen aufwand zu bewerkstelligen?

Die Antwort hast du doch schon selber gepostet.

ibp 17. Nov 2004 16:10

Re: zahl auf verschiedene kompos ausgeben
 
imho nein!

Nils_13 17. Nov 2004 16:11

Re: zahl auf verschiedene kompos ausgeben
 
Ich kann dir leider nicht folgen, :dp: wären nötig

glkgereon 17. Nov 2004 16:17

Re: zahl auf verschiedene kompos ausgeben
 
@nils

ich hab da sone klasse...die soll was ausgeben
ich möchte das man sagen kann "gib das einfach über die und die compo aus"
für diesen zweck habe ich mir eine variable "Output" angelegt vom typ TComponent
nun soll der user da zb edits, labels, und so reinschmeissen können...
wie kann ich jetzt das ausgeben, obwohl ein edit .Text hat,. und ein label .Caption


also ihr meint das müsste ich mit if/is-abfragen machen..

aber wenn da noch die jv-compos bei sind, die sind ja teilweise von Tedit zb abgeleitet...kann ich das irgendwie erfassen?


kann ich diese TComponent in eine property packen? (wie)

Kedariodakon 17. Nov 2004 16:24

Re: zahl auf verschiedene kompos ausgeben
 
So in der Art:

Delphi-Quellcode:
If     lala Is TEdit Then lala.Text   := 'Edit'
Else If lala Is TLabel Then lala.Caption := 'Label';

:zwinker:


Bye

shmia 17. Nov 2004 16:25

Re: zahl auf verschiedene kompos ausgeben
 
Zitat:

Zitat von glkgereon
also, ich will eine zahl auf eine compo ausgeben...

da ich nicht weiss ob dies ein Label oder ein Edit sein soll (oder noch was anderes) möchte ich diese als TComponent deklarieren

Du kannst nur auf Controls (= visuelle Steuerelemente) etwas ausgeben.
Also ist die Basisklasse TControl.
Zitat:

Zitat von glkgereon
wenn ich was ausgeben will muss ich in einem fall auf Caption zugreifen, in einem anderen aut Text, oder event. sogar auf Value
wie krieg ich das raus?
denn ich will net mit einer
if Output is TEdit - Abfrage alle möglichen compos durchrasseln....

gibt es da eine möglichkeit das einfach ohne großen aufwand zu bewerkstelligen?

Du könntest deinen Text auf Verdacht hin auf das Property Text und Caption zuweisen:
Delphi-Quellcode:
uses TypInfo;
procedure SetControlText(AControl: TControl; const s:string);
begin
   if IsPublishedProp(AControl, 'Caption') then
      SetStringProp(AControl, 'Caption', s)
   else if IsPublishedProp(AControl, 'Text') then
      SetStringProp(AControl, 'Text', s);
end;

glkgereon 17. Nov 2004 16:27

Re: zahl auf verschiedene kompos ausgeben
 
:thumb: shmia...

auf die idee TControl zu nehmen bin ich noch gar net gekommen...und dies lösung mit isProbPublished sieht suuuuper aus

THX


EDIT: in welcher unit sind die methoden?

jfheins 17. Nov 2004 16:30

Re: zahl auf verschiedene kompos ausgeben
 
Zitat:

Zitat von glkgereon
und dies lösung mit isProbPublished sieht suuuuper aus

Und wenn etwas beide Eigenschaften haben sollte ??? (z.B. TLabeledEdit)

glkgereon 17. Nov 2004 16:46

Re: zahl auf verschiedene kompos ausgeben
 
ich glaub net das die function das label findet
ein LabeledEdit hat nur text ;)
caption is erst in TLabeledEdit.EditLabel dran....

und somit für mich eh uninteressant....


aber gibt es auch was womit ich integer-werte setze?


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