![]() |
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
Die ist etwas länger: Soll ich sie trotzdem posten?
|
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
Da werden wir nicht drum herum kommen :)
|
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
Delphi-Quellcode:
function Create_Fields(Mode, DLeft, DTop, DWidth, DHeight: Integer; DText: String): TDBEdit;
var DBE: TDBEdit; var DLabel: TLabel; var DMemo: TMemo; var DEdit: TEdit; var i, x, y, LabelNum, DLeft_Counter: Integer; begin LabelNum := 1; DLeft_Counter := 0; for x := 1 to (Length(LabelArray) + 1) do begin if LabelArray[x] = 'Artikel' then begin DMemo := TMemo.Create(Form1); with DMemo do begin Name := 'Memo_' + IntToStr(Save_NumFields); Parent := Form1.ScrollBox1; Left := Left + DLeft + DLeft_Counter; if x <= Length(LabelArray) then Top := Top + DTop + 16; Width := DWidth; Height := DHeight + 20; ScrollBars := ssVertical; Text := ''; end; end else begin if x <= Length(LabelArray) then begin DEdit := TEdit.Create(Form1); with DEdit do begin Name := 'Edit_' + IntToStr(Save_NumFields); Parent := Form1.ScrollBox1; Left := Left + DLeft + DLeft_Counter; if x <= Length(LabelArray) then Top := DTop + 32 else Top := DTop + 16; if (LabelArray[x] = 'EP') OR (LabelArray[x] = 'GP') then begin Width := DWidth - 80; Text := '0,00' end else begin Width := DWidth; Text := ''; end; Height := DHeight; if LabelArray[x] = 'GP' then Enabled := false; end; DBE := TDBEdit.Create(Form1); with DBE do begin Name := 'DBEdit_' + IntToStr(Save_NumFields); Parent := Form1.ScrollBox1; Left := Left + DLeft + DLeft_Counter; if x <= Length(LabelArray) then Top := DTop + 32 else Top := DTop + 16; if (LabelArray[x] = 'EP') OR (LabelArray[x] = 'GP') then Width := DWidth - 80 else Width := DWidth; Height := DHeight; Text := DText; Visible := false; end; end; DLabel := TLabel.Create(Form1); with DLabel do begin Name := 'Label_' + IntToStr(Save_NumFields); Parent := Form1.ScrollBox1; Left := Left + DLeft + DLeft_Counter; if x <= Length(LabelArray) then begin if LabelArray[x] = 'Artikel' then Top := DTop - 56 else TLabel(DLabel).Top := DTop + 16; end else Top := DTop - 16; Caption := LabelArray[x]; end; end; LabelNum := LabelNum + 1; if Mode = 0 then Save_NumFields := Save_NumFields + 1 else Save_NumFields := Save_NumFields - 1; DLeft_Counter := DLeft_Counter + 136; end; DLabel.Left := DLeft; DTop := DTop + 48; end; |
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
2 Dinge fallen mir spontan auf:
Delphi-Quellcode:
Du liest hier über das Array hinaus.
for x := 1 to (Length(LabelArray) + 1) do begin
Delphi-Quellcode:
Und was, wenn es kein DLabel gibt?
DLabel.Left := DLeft;
DTop := DTop + 48; |
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
Zitat:
Zitat:
|
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
Schau Dir mal TObjectList an, die dürfte einfacher sein als ein dynamisches Array und ist ja eigentlich genau für solche Fälle gemacht.
|
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
TObjectList sagt mir nun gar nichts. Find ich dafür eine Komponente im Programm?
|
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
Eine TObjectList verwaltet eine Liste von (T)Object)en)
|
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
Puuh, damit schmeißt ihr mich aber ins kalte Wasser :)... Kann mir darunter gerade gar nichts vorstellen. Hab zwar gerade einwenig gegoogelt, aber zurzeit weiß ich noch nicht, wie ich das wo in meinen bestehenden Code einbaue ^^.
|
Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 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