Delphi-PRAXiS
Seite 1 von 2  1 2      

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 im Array, aber nicht alle Eigenschaften verfügbar (https://www.delphipraxis.net/44107-komponente-im-array-aber-nicht-alle-eigenschaften-verfuegbar.html)

Net7 13. Apr 2005 18:47


Komponente im Array, aber nicht alle Eigenschaften verfügbar
 
Hi Leute,

ich habe folgendes Problem. Ich erstellte ein Array of TSpeedbutton um diese Komponente zur Laufzeit erstellen zu können. Ich benutze das Array deshalb weil es sehr viele TSpeedbutton werden. :)
Das funktioniert auch soweit.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GLScene, GLObjects, GLWin32Viewer, GLMisc, GLCadencer, StdCtrls,
  GLGraph, GLHUDObjects, ExtCtrls, Menus, GLSkydome, GLzBuffer, jpeg,
  GLVectorFileObjects, GLPortal, VectorTypes, Geometry,GLTexture, Buttons;

type
  TForm1 = class(TForm)
  //und so weiter
 
  private
    { Private-Deklarationen }
 

  public
    { Public-Deklarationen }
 
   Knopf: array [0..10] of TSpeedbutton;

  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);

Begin

   Knopf[0]:=Tspeedbutton.Create(self);
   Knopf[0].Name:='kleinerKnopf';
   Knopf[0].Width:=25;
   Knopf[0].Height:=25;
   Knopf[0].Glyph.  //jetzt müste LoadFromFile kommen, kommt aber nicht

  end;
end.
Was mache ich falsch??
Die SUFU bemühte ich schon seit Stunden , konnte aber nix brauchbares finden.

Deklariere ich den so:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GLScene, GLObjects, GLWin32Viewer, GLMisc, GLCadencer, StdCtrls,
  GLGraph, GLHUDObjects, ExtCtrls, Menus, GLSkydome, GLzBuffer, jpeg,
  GLVectorFileObjects, GLPortal, VectorTypes, Geometry,GLTexture, Buttons;

type
  TForm1 = class(TForm)
  //und so weiter
 
  private
    { Private-Deklarationen }
 

  public
    { Public-Deklarationen }
 
   
  end;

var
  Form2: TForm2;
  Knopf: TSpeedbutton;
implementation

{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);

Begin

   Knopf:=Tspeedbutton.Create(self);
   Knopf.Name:='kleinerKnopf';
   Knopf.Width:=25;
   Knopf.Height:=25;
   Knopf.Glyph.LoadFromFile('menu\rgrahmen.bmp') //jetzt gehts

  end;
end.
Warum funktioniert die Eigenschaft .LoadFromFile bei dem Array nicht?
Was übersehe ich da.

Bin für jeden Tip dankbar.

kiar 13. Apr 2005 18:51

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
und wenn du nur
Delphi-Quellcode:
 Knopf[0].Glyph.LoadFromFile(); machst
raik

Net7 13. Apr 2005 18:55

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Zitat:

Zitat von kiar
und wenn du nur
Delphi-Quellcode:
 Knopf[0].Glyph.LoadFromFile(); machst
raik

Die Auswahl .LoadFromFile habe ich ja nicht zur Verfügung. Nach Knopf[0].Glyph ist einfach schluss.

Khabarakh 13. Apr 2005 18:58

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Und wenn du es einfach von Hand einfügst?

marabu 13. Apr 2005 19:00

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Du bist Opfer einer Inkonsistenz von Code-Insight.
Der Parser weiss zwar, dass Knopf[0] vom Typ TSpeedButton ist, aber du wirst die Methode selbst hinschreiben müssen.
Oder mache es so:
Delphi-Quellcode:
with Knopf[0] do begin
  ...
  Glyph.
end;

Net7 13. Apr 2005 19:05

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Zitat:

Zitat von marabu
Du bist Opfer einer Inkonsistenz von Code-Insight.
Der Parser weiss zwar, dass Knopf[0] vom Typ TSpeedButton ist, aber du wirst die Methode selbst hinschreiben müssen.
Oder mache es so:
Delphi-Quellcode:
with Knopf[0] do begin
  ...
  Glyph.
end;



Delphi-Quellcode:
with Knopf[0] do begin
  ...
  Glyph.
end;
Vielen Dank!!! So geht es. :hello:

Net7 13. Apr 2005 19:10

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Zitat:

Zitat von Khabarakh
Und wenn du es einfach von Hand einfügst?

Dann gibt es einen Fehler.

Aber marabu´s Lösung funktioniert bestens.

Khabarakh 13. Apr 2005 19:20

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Zitat:

Zitat von Net7
Zitat:

Zitat von Khabarakh
Und wenn du es einfach von Hand einfügst?

Dann gibt es einen Fehler.

Aber marabu´s Lösung funktioniert bestens.

Dann wäre es aber ein Fehler im Compiler und nicht in CodeInsight. Ist es auch nicht, von Hand läuft es bei mir einwandfrei! Und Code-Vervollständigung funktioniert auch, man muss nach dem "glyph." einfach nochmal Strg+Space drücken (würde mich wundern, wenn das bei D7 nicht geht).

Net7 13. Apr 2005 19:27

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von Net7
Zitat:

Zitat von Khabarakh
Und wenn du es einfach von Hand einfügst?

Dann gibt es einen Fehler.

Aber marabu´s Lösung funktioniert bestens.

Dann wäre es aber ein Fehler im Compiler und nicht in CodeInsight. Ist es auch nicht, von Hand läuft es bei mir einwandfrei! Und Code-Vervollständigung funktioniert auch, man muss nach dem "glyph." einfach nochmal Strg+Space drücken (würde mich wundern, wenn das bei D7 nicht geht).

Hmm... Merkwürdig!

Schreibe ichs per Hand hin,
Knopf[0].Glyph.LoadFromFile('menu\rgrahmen.bmp');
gibt mir der Compiler einen Fehler raus. "nicht genügend Parameter"

Drücke ich so wie du sagst, Strg+Space hab ich auf einmal die Auswahl .LoadfromFile und dann geht es.
Knopf[0].Glyph.LoadFromFile('menu\rgrahmen.bmp');
läßst sich ohne Fehler compilieren.

Komisch, Komisch.

Waldteufel 13. Apr 2005 19:29

Re: Komponente im Array, aber nicht alle Eigenschaften verfü
 
Hi.

Wenn du's von Hand hinschreibst und der Compiler sagt "Zu wenige Parameter" werdens wohl auch zu wenige sein ;-) (Dateinamen vergessen?)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.
Seite 1 von 2  1 2      

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