AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem: DBEdit/Edit Felder per Knopfdruck generieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: DBEdit/Edit Felder per Knopfdruck generieren

Ein Thema von ShortyHL · begonnen am 7. Mär 2008 · letzter Beitrag vom 11. Mär 2008
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
ShortyHL

Registriert seit: 27. Feb 2008
Ort: Lübeck
29 Beiträge
 
Delphi 6 Enterprise
 
#41

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 17:38
Die ist etwas länger: Soll ich sie trotzdem posten?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#42

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 17:43
Da werden wir nicht drum herum kommen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
ShortyHL

Registriert seit: 27. Feb 2008
Ort: Lübeck
29 Beiträge
 
Delphi 6 Enterprise
 
#43

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 18:10
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] = 'Artikelthen 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] = 'GPthen 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] = 'Artikelthen 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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#44

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 18:17
2 Dinge fallen mir spontan auf:for x := 1 to (Length(LabelArray) + 1) do begin Du liest hier über das Array hinaus.

Delphi-Quellcode:
DLabel.Left := DLeft;
DTop := DTop + 48;
Und was, wenn es kein DLabel gibt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
ShortyHL

Registriert seit: 27. Feb 2008
Ort: Lübeck
29 Beiträge
 
Delphi 6 Enterprise
 
#45

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 18:49
Zitat von DeddyH:
2 Dinge fallen mir spontan auf:for x := 1 to (Length(LabelArray) + 1) do begin Du liest hier über das Array hinaus.
Ja, weil sonst ist die Ausgabe "komisch"... Erstellte das Array mit "Artikel", "Anzahl", "EP" und "GP" und ausgegbeen wird es in einer anderen Reihenfolge, bzw. es werden "komische" Zeichen angezeigt.

Zitat von DeddyH:
Delphi-Quellcode:
DLabel.Left := DLeft;
DTop := DTop + 48;
Und was, wenn es kein DLabel gibt?
DLabel muss es in jedem Fall geben, da mit dem Aufruf der Funktion sowohl DEdit, DLabel, DMemo und DBEdit erstellt wird. Da gibt es eigentlich keinen Sonderfall.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#46

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 18:54
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
ShortyHL

Registriert seit: 27. Feb 2008
Ort: Lübeck
29 Beiträge
 
Delphi 6 Enterprise
 
#47

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 20:21
TObjectList sagt mir nun gar nichts. Find ich dafür eine Komponente im Programm?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#48

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 20:23
Eine TObjectList verwaltet eine Liste von (T)Object)en)
Markus Kinzler
  Mit Zitat antworten Zitat
ShortyHL

Registriert seit: 27. Feb 2008
Ort: Lübeck
29 Beiträge
 
Delphi 6 Enterprise
 
#49

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 20:48
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 ^^.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#50

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren

  Alt 11. Mär 2008, 20:51
http://www.delphi-treff.de/tutorials...t/katalog/182/
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
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