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 Komponente erstellt --> Name der Komponente ermitteln wie? (https://www.delphipraxis.net/47812-komponente-erstellt-name-der-komponente-ermitteln-wie.html)

Schuster 16. Jun 2005 16:41


Komponente erstellt --> Name der Komponente ermitteln wie
 
Hallo Leute

bin am erstellen div. Komponente für Delphi 2005 PE und MySql.

Habe folgende Componenten: TMaxMySqlCon, TMaxMySqlQuery und TMaxMySqlGrid.

Nun hab ich folgendes Problem:
Damit das Grid befüllt wird möchte ich anhand der Query-Componente feststellen welches Grid mit dem
Query verbunden ist, damit ich nachher bei Abfragen über dieses Query die Daten an das Grid übertragen kann.

Nur wie bekomme ich den Namen des Grid heraus??
Hab mir das in etwa so vorgestellt das es funktionieren könnte:

Delphi-Quellcode:
function TMaxMySqlQuery.FsucheGridKomponente():String;
var x : Integer;
begin
    for x:=0 to Self.Owner.ComponentCount-1 do     //Anzahl der Komponenten feststellen
      if Self.Owner.Components[x] is TMaxMySqlGrid then  //Prüfen welche v. meinen Grid sind
         if string((Self.Owner.Components[x] as TMaxMySqlGrid).Datasource) = Self.name then //irgenwas falsch
           result:= Self.Owner.Components[x].Name
         else
           result:= 'NULL';
end;
Leider funktioniert es so nicht mir wird immer NULL zurückgeliefert.
Habe es auch schon in Einzelschritten durchgemacht nur bekomm ich aus irgeneinen Grund nicht vom
Grid die Datasource heraus. :wall:

100nF 16. Jun 2005 17:57

Re: Komponente erstellt --> Name der Komponente ermitteln
 
hi,

probiers mal so:
Delphi-Quellcode:
function TMaxMySqlQuery.FsucheGridKomponente():String;
var x : Integer;
begin
  result:= 'NULL';
  for x:=0 to Self.Owner.ComponentCount-1 do     //Anzahl der Komponenten feststellen
    if Self.Owner.Components[x] is TMaxMySqlGrid then  //Prüfen welche v. meinen Grid sind
       if string((Self.Owner.Components[x] as TMaxMySqlGrid).Datasource) = Self.name then
       begin
         result:= Self.Owner.Components[x].Name ;
         break;
       end;        
end;
MFG
urbanbruhin

alcaeus 16. Jun 2005 17:59

Re: Komponente erstellt --> Name der Komponente ermitteln
 
Kann ja sein dass ich einen Denkfehler habe, aber das hier
Delphi-Quellcode:
if string((Self.Owner.Components[x] as TMaxMySqlGrid).Datasource) = Self.name then
sieht mir nicht ganz sauber aus. Wie waers denn hiermit:
Delphi-Quellcode:
if (Self.Owner.Components[x] as TMaxMySqlGrid).Datasource.name = Self.name then
Eine DataSource auf String casten um den Namen zu ermitteln...das kann irgendwie nicht gut gehn :gruebel:

Greetz
alcaeus

Schuster 17. Jun 2005 09:41

Re: Komponente erstellt --> Name der Komponente ermitteln
 
Zitat:

if (Self.Owner.Components[x] as TMaxMySqlGrid).Datasource.name = Self.name then
Danke genau das war es :-D

Das ich da nicht selbst draufgekommen bin :wall:


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