Delphi-PRAXiS
Seite 2 von 3     12 3      

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 Auf Komponenten zugreifen (https://www.delphipraxis.net/70224-auf-komponenten-zugreifen.html)

skunker 27. Mai 2006 01:13

Re: Auf Komponenten zugreifen
 
ja ich seh se ja und kann auch was eingeben.

_frank_ 27. Mai 2006 01:15

Re: Auf Komponenten zugreifen
 
also bei funktioniert es...(da ich d3 habe, mach ich das mal als statisches array)

Delphi-Quellcode:
var
  Form1: TForm1;
  editlist:array[1..5]of Tedit;

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
  for i:=low(editlist) to high(editlist) do
  begin
    editlist[i] := TEdit.Create(self);
    editlist[i].Parent := self;
    editlist[i].Align := alTop;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  editlist[3].text:='blah';
end;
mit nem dynamischen müsste es dann so etwa aussehen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
const c=5;
begin
  setlength(editlist,c);
  for i:=0 to c-1 do
  begin
    editlist[i] := TEdit.Create(self);
    editlist[i].Parent := self;
    editlist[i].Align := alTop;
  end;
end;
(ich habe die Vermutung, dass du die edits immer mit dem gleichen array-index erzeugst...)
HTH Frank

pacman1986 27. Mai 2006 01:16

Re: Auf Komponenten zugreifen
 
hab was Übersehen :P

Delphi-Quellcode:
Inc(i);
setlength(editlist,i);
editlist[i-1] := TEdit.Create(self);
editlist[i-1].Parent := self;
editlist[i-1].Align := alTop;
so muss es aussehen

skunker 27. Mai 2006 01:19

Re: Auf Komponenten zugreifen
 
funktioniertauch nicht.

@frank
deine methode ist aber nur für 5 edits limitiert oder ?

_frank_ 27. Mai 2006 01:23

Re: Auf Komponenten zugreifen
 
also die Statische Variante funktioniert 100% , hab ich getested...die dynamische kann ich hier nicht testen.
richtig, aber brauchst ja die 5 nur in ne 10 ändern ;)

HTH

skunker 27. Mai 2006 01:25

Re: Auf Komponenten zugreifen
 
schon, aber ich will ja pro klick auf den button1 ein weitere edit erzeugen.

pacman1986 27. Mai 2006 01:33

Re: Auf Komponenten zugreifen
 
dann mach doch var und nicht const

_frank_ 27. Mai 2006 01:36

Re: Auf Komponenten zugreifen
 
ahja...
i darf aber nicht lokal sein bzw. in buttonxclick nicht auf 0 oder so gesetzt werden

zeig mal kompletten code, sonst kommen wir nicht weiter...

skunker 27. Mai 2006 02:05

Re: Auf Komponenten zugreifen
 
sorry für die späte Antwort. Hier der komplette Sourcecode:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ValEdit, ExtCtrls, ButtonGroup, StdCtrls, CategoryButtons,
  ImgList, ComCtrls, XPMan,ShellApi;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
  edits: TEdit;
  editlist : array[1..10] of TEdit;
  i:Integer;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Inc(i);
//setlength(editlist,i);
editlist[i] := TEdit.Create(self);
editlist[i].Parent := self;
editlist[i].Align := alTop;
editlist[i].Visible := true;


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i := 0;
end;

end.

_frank_ 27. Mai 2006 02:30

Re: Auf Komponenten zugreifen
 
also so funktioniert es bei mir...

in nem 2.buttonclick setze ich den text...

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  if assigned(editlist[3]) then
    editlist[3].text:='Blah'
  else
    showmessage('not assigned');
end;
wo ist jetzt das problem?


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

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