AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Find Component

Ein Thema von Hellcat · begonnen am 26. Mär 2003 · letzter Beitrag vom 26. Mär 2003
Antwort Antwort
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#1

Find Component

  Alt 26. Mär 2003, 15:25
Zu welcher Unit gehört eigentlich FindComponent? Ich hab bei meiner eigenen Unit folgende uses-Zeile:
uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs; und erhalte beim Befehl 'FindComponent' immer die Meldung 'undeclared identifier';
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2
  Alt 26. Mär 2003, 15:27
FindComponent ist keine Funktion oder Prozedur, sondern eine Method von TComponent. Diese wiederum befindet sich in Classes.pas.
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 26. Mär 2003, 15:35
Aber warum spuckt er mir dann bei obriger Deklaration diese Meldung aus - denn Classes hab ich ja aufgeführt....
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 26. Mär 2003, 15:57
An welcher Stelle benutzt Du die Methode denn. Wahrscheinlich in einer Prozedur/Funktion ausserhalb einer Klasse, bzw. in einer Methode einer Klasse, welche nicht von TComponent abgeleitet wurde.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#5
  Alt 26. Mär 2003, 16:12
Ich poste hier mal die Unit:
Delphi-Quellcode:
unit UnitFunc;

interface

uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs; {Standard-Units auf die zurückgegriffen wird}

    procedure Farbewechseln (Sender: TPanel; Button: TMousebutton);
    function Zeitangabe:string;
    function THL (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    function Sound (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    function Schloss (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    procedure speichern;

implementation

procedure speichern;
var save: Textfile;
    Hname, Zeit, HFarbe, kette: string;
    Schl, THL, Sound:boolean;
    i: integer;
begin
  kette := '';
  for i := 1 to 35 do
  begin
    kette := kette + ((FindComponent('PanLab' + IntToStr(i)) as TLabel) .Caption,
                  (FindComponent('PanLabT' + Inttostr(i)) as TLabel).caption,
                  IntToHex(((FindComponent('PanHalle' + InttoStr(i))as TPanel).Color),6),
                  BoolToStr(bildTHL[i]), BoolToStr(bildSchl[i]),BoolToStr(bildSound[i]));
  end;
end;
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6
  Alt 26. Mär 2003, 17:48
FindComponent ist eine Methode von TComponent. Du kannst sie nur innerhalb einer Klasse bzw. Mit "IrgendeinObjekt.FindComponent" aufrufen.

Da ich annehme das die gesuchte Komponente auf dem Hauptformular liegt, kannst du mit Application.MainForm.FindComponent auf dieses zugreifen.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7
  Alt 26. Mär 2003, 17:49
du kannst auch der speichern prozedur als parameter das formular angeben! (alternative)

Delphi-Quellcode:
unit UnitFunc;

interface

uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs; {Standard-Units auf die zurückgegriffen wird}

    procedure Farbewechseln (Sender: TPanel; Button: TMousebutton);
    function Zeitangabe:string;
    function THL (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    function Sound (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    function Schloss (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    procedure speichern(formular: TForm);

implementation
procedure speichern(formular: Tform);
var save: Textfile;
    Hname, Zeit, HFarbe, kette: string;
    Schl, THL, Sound:boolean;
    i: integer;
begin
  kette := '';
  for i := 1 to 35 do
  begin
    kette := kette + ((Formular.FindComponent('PanLab' + IntToStr(i)) as TLabel) .Caption,
                  (Formular.FindComponent('PanLabT' + Inttostr(i)) as TLabel).caption,
                  IntToHex(((Formular.FindComponent('PanHalle' + InttoStr(i))as TPanel).Color),6),
                  BoolToStr(bildTHL[i]), BoolToStr(bildSchl[i]),BoolToStr(bildSound[i]));
  end;
end;
natürlich gehts auch mit Application.MainForm.FindComponent
David F.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 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