![]() |
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:
Was mache ich falsch??
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. Die SUFU bemühte ich schon seit Stunden , konnte aber nix brauchbares finden. Deklariere ich den so:
Delphi-Quellcode:
Warum funktioniert die Eigenschaft .LoadFromFile bei dem Array nicht?
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. Was übersehe ich da. Bin für jeden Tip dankbar. |
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
und wenn du nur
Delphi-Quellcode:
raik
Knopf[0].Glyph.LoadFromFile(); machst
|
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Zitat:
|
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Und wenn du es einfach von Hand einfügst?
|
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; |
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Zitat:
Delphi-Quellcode:
Vielen Dank!!! So geht es. :hello:
with Knopf[0] do begin
... Glyph. end; |
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Zitat:
Aber marabu´s Lösung funktioniert bestens. |
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Zitat:
|
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Zitat:
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. |
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?) |
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Zitat:
|
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
Zitat:
kann nicht sein :wink: . Gleich kommt DP @ Home :duck: . |
Re: Komponente im Array, aber nicht alle Eigenschaften verfü
So habe Delphi mal neu gestartet. Nun funktionierts auch mit Hand.
Die Auswahl kommt trotzdem erst wenn ich Strg+Space drücke. Naja egal es funktioniert. Vielen Dank euch allen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 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