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 Edit mit variabler Nummer (https://www.delphipraxis.net/35546-edit-mit-variabler-nummer.html)

traudl 8. Dez 2004 18:45


Edit mit variabler Nummer
 
[b]Hallo DPler. Ich hab da mal ne blöde Frage. Ich hab ein Projekt in VB programmiert und bi jetzt umgestiegen auf DP. Mein Problem: Ist es Möglich eine Edit komponente zu nummerieren? zB. Edit[1] anstatt Edit1. Habe schon die Edit komponente umgeschrieben damit ich den Text zentrieren kann, aber die Funktion wäre absolut hilfreich, da ich ca 40 Editfelder habe und diese teilweise gleich behandle wegen focus und keypress ereignissen und so.
Hat jemand eine Idee. Bin langsam echt am verzweifeln.

Danke
Gruß Udo :gruebel:

Maximus 8. Dez 2004 18:47

Re: Edit mit variabler Nummer
 
Erstell doch eine Array

Delphi-Quellcode:
Edit: array[1..40] of TEdit;
Dann kannst dein edit immer mit
Delphi-Quellcode:
Edit[Nummer]
ansprechen

//Edit: Hups syntax Fehler :wall: - korriegiert!

MFG
Maximus

Luckie 8. Dez 2004 18:48

Re: Edit mit variabler Nummer
 
Entweder mit einem Array of TEdit oder in einer Schleife und dann mittels FindComponent draufzugreifen.

sakura 8. Dez 2004 18:50

Re: Edit mit variabler Nummer
 
Dieses visuelle erstellen eines Arrays, wie dieses unter VB möglich ist, geht in Delphi nicht. Irgendwann habe ich mal eine einleuchtende Erklärung dazu gelesen, leider diese aber nicht parat.

Wie dem auch sei, erstelle die Komponenten im Form-OnCreate Ereignis dynamisch und schiebe sie dann in ein Array. Das ist ohnehin die elegantere Lösung ;)

Ansonsten kannst Du beim Start Dein Array auch nachträglich mit Hilfe einer Schleife und Hier im Forum suchenFindComponent füllen.

...:cat:...

traudl 8. Dez 2004 19:12

Re: Edit mit variabler Nummer
 
Also ich erstelle alle Editfelder mit dem OnCreate Ereignis und bilde daraus einen Array und greife darauf zu. Jetzt habe ich den Fehler Undefinierter Bezeichner: 'Edit'
Ich hoffe ich peil das mal noch.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TEditNew = class(TEdit)
    public
      procedure CreateParams(var Params: TCreateParams); override;
    end;
var
  Form1: TForm1;
  Edit5: TEditNew;
  Edit6: TEditNew;
  Edit7: TEditNew;

implementation

{$R *.dfm}

{ Editfeld zentriert Ausgerichtet }
procedure TEditNew.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or ES_CENTER
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    Edit5 := TEditNew.Create(Self);
    Edit5.Parent := Self;
    Edit5.Text := '100';
    Edit5.SetBounds(184,96,45,24);
    Edit5.Font.Style := [fsBold];
    Edit5.Font.Name := 'Arial';
    Edit5.Font.Height := 15;
    Edit5.TabStop := True;
    Edit5.TabOrder := 0;
    Edit6 := TEditNew.Create(Self);
    Edit6.Parent := Self;
    Edit6.Text := '10';
    Edit6.SetBounds(184,120,45,24);
    Edit6.Font.Style := [fsBold];
    Edit6.Font.Name := 'Arial';
    Edit6.Font.Height := 15;
    Edit6.TabStop := True;
    Edit6.TabOrder := 0;
    Edit7 := TEditNew.Create(Self);
    Edit7.Parent := Self;
    Edit7.Text := '20';
    Edit7.SetBounds(184,144,45,24);
    Edit7.Font.Style := [fsBold];
    Edit7.Font.Name := 'Arial';
    Edit7.Font.Height := 15;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
    Edit: Array[5..7] of TEditNew;

end;

end.
Was mache ich falsch. Muss ich Edit noch als var definieren, wenn ja als was ?

glkgereon 8. Dez 2004 19:18

Re: Edit mit variabler Nummer
 
mach bitte die code-klammern auch wieder zu ;)

zudem ginge das so:

Delphi-Quellcode:
Edit: array[5..7] of TEditNew;
implementation

procedure onFormCreate;
begin
Edit[5]:=TEditNew.Create;
Edit[5].Text:='ich bin edit5';
end;

traudl 8. Dez 2004 19:22

Re: Edit mit variabler Nummer
 
Hey supii, Danke
Das ist ja gar nicht so umständlich. Hey Danke echt super von Euch.
Danke auch für den Tip mit der Code Klammer


Gruß Udo

:wall: :dancer2:

glkgereon 8. Dez 2004 19:24

Re: Edit mit variabler Nummer
 
die geht mit [./code.] wieder zu, net mit [.code.]

;)

die buttons zu benutzen is einfacher....

Luckie 8. Dez 2004 19:26

Re: Edit mit variabler Nummer
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to length(EditArray) - 1 do
  begin
    EditArray[i] := TEdit.Create(Form1);
    EditArray[i].Parent := Form1;
    EditArray[i].Name :='Edit'+IntToStr(i);
    EditArray[i].Left := 10;
    EditArray[i].Top := i*(EditArray[i].Height+10)+10;
    EditArray[i].Text := EditArray[i].Name;
  end;
end;

traudl 8. Dez 2004 19:26

Re: Edit mit variabler Nummer
 
Habs schon Danke.

Aber du weist ja aller Anfang ist schwer und manchmal dauert der Anfang auch länger.

:hi:


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