Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FindComponent und TCheckBox (https://www.delphipraxis.net/163024-findcomponent-und-tcheckbox.html)

FriendOfDelphi 13. Sep 2011 11:49

Delphi-Version: 5

FindComponent und TCheckBox
 
Hallo Allerseits,

ich habe eine Frage zu der Funktion FindComponent in Verbindung mit Checkboxen.
Bisher habe ich FindComponent in Verbindung mit Edit-Feldern verwendet:
Delphi-Quellcode:
MyText:=(AParent.FindComponent(sName) as TEdit).Text;
Das funktioniert prima. Ich übergebe mit "sName" den Namen der Komponente und lese dann den Inhalt.

Nun möchte ich das Ganze um Checkboxen erweitern.
Und zwar möchte ich wieder die entsprechende Checkbox über ihren Namen im Form finden und dann abfragen, ob diese ab-/angehakt ist.
Ich habe es mit
Delphi-Quellcode:
MyCheckbox:=(AParent.FindComponent(sName) as TCheckBox).checked;
probiert, aber der Compiler meldet den Fehler "Operator ist auf diesen Operandentyp nicht anwendbar" und zeigt auf den Punkt vor ".checked".
Verwende ich die falsche Syntax oder geht das nicht?

Butch87 13. Sep 2011 11:51

AW: FindComponent und TCheckBox
 
Was für ein Typ ist "MyCheckbox"?

FriendOfDelphi 13. Sep 2011 11:53

AW: FindComponent und TCheckBox
 
Zitat:

Zitat von Butch87 (Beitrag 1123960)
Was für ein Typ ist "MyCheckbox"?

"MyCheckbox" ist vom Typ "Boolean".

DeddyH 13. Sep 2011 12:03

AW: FindComponent und TCheckBox
 
StdCtrls ist eingebunden? Bei mir (Delphi 2007) habe ich keine Probleme feststellen können:
Delphi-Quellcode:
function GetChecked(const AParent: TWinControl; const AName: string): Boolean;
begin
  Result := (AParent.FindComponent(AName) as TCheckBox).Checked;
end;

FriendOfDelphi 13. Sep 2011 12:14

AW: FindComponent und TCheckBox
 
Zitat:

Zitat von DeddyH (Beitrag 1123962)
StdCtrls ist eingebunden? Bei mir (Delphi 2007) habe ich keine Probleme feststellen können:
Delphi-Quellcode:
function GetChecked(const AParent: TWinControl; const AName: string): Boolean;
begin
  Result := (AParent.FindComponent(AName) as TCheckBox).Checked;
end;

Ja, die Unit "StdCtrls" ist eingebunden. Der Compiler meckert auch nicht über die Checkboxen.
Was ist anders, wenn man die Abfrage über eine Funktion und nicht direkt macht?

DeddyH 13. Sep 2011 12:23

AW: FindComponent und TCheckBox
 
Zitat:

Zitat von FriendOfDelphi (Beitrag 1123963)
Was ist anders, wenn man die Abfrage über eine Funktion und nicht direkt macht?

Im Prinzip nichts. Ich denke, der Fehler liegt woanders, zeig doch mal etwas mehr Code.

FriendOfDelphi 13. Sep 2011 12:50

AW: FindComponent und TCheckBox
 
Zitat:

Zitat von DeddyH (Beitrag 1123966)
Zitat:

Zitat von FriendOfDelphi (Beitrag 1123963)
Was ist anders, wenn man die Abfrage über eine Funktion und nicht direkt macht?

Im Prinzip nichts. Ich denke, der Fehler liegt woanders, zeig doch mal etwas mehr Code.

Eigentlich mache ich nichts weiter als oben beschrieben.
Hier mal die Prozedur mit den wichtigsten Teilen:
Delphi-Quellcode:
procedure TMyClass.Check(sName: String);
var
  sWert: string;
  MyCheckbox: Boolean;
begin
    [...]
    sWert:=(FForm.FindComponent(sName) as TEdit).Text; //das funktioniert problemlos
    MyCheckbox:=(FForm.FindComponent(sName) as FCheckBox).checked; //hier meldet der Compiler den o.g. Fehler
    [...]
end;

DeddyH 13. Sep 2011 12:53

AW: FindComponent und TCheckBox
 
Was ist denn FCheckbox?

FriendOfDelphi 13. Sep 2011 13:43

AW: FindComponent und TCheckBox
 
Zitat:

Zitat von DeddyH (Beitrag 1123976)
Was ist denn FCheckbox?

Oh Mann, dass ist jetzt aber peinlich :oops:
Das muss natürlich TCheckbox heißen.
Ein klassischer copy'n'paste-Fehler.
Problem ist damit gelöst :-D
Manchmal muss eben auch mal jemand anderes auf den Quellcode schauen.
Danke DeddyH!

DeddyH 13. Sep 2011 13:47

AW: FindComponent und TCheckBox
 
Keine Ursache, gern geschehen ;)


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