AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array aus TControl / TComponent, noch einmal...

Ein Thema von Joerginger · begonnen am 15. Mär 2011 · letzter Beitrag vom 16. Mär 2011
Antwort Antwort
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#1

Array aus TControl / TComponent, noch einmal...

  Alt 15. Mär 2011, 23:44
Delphi-Version: 7
Hallo liebe Delphianer,

bis jetzt hab' ich in diesem Forum sooo viele schöne Schnipsel - und auch großartige Hilfe - gefunden, aber jetzt steh' ich mit allem daneben. Vorgeschichte: Ich möchte einen Maskeneditor schreiben - und auch wenn mein Code seltsam aussieht, theoretisch kann ich ja schon ein bisschen programmieren

Zuallererst gibt's eine globale Variable
Code:
var
  arCtl: array of TControl;
und an beliebiger Stelle (derzeit zum testen in einer Listbox, später mal in einem Datenbanksatz oder WhatSoEver) stehen einzelne Sätze, die eben einzelne Controls/Komponenten abbilden sollten, mit deren Eigenschaften, wie z.B.
- Was ist es für ein Control (B=Button, E=Editfeld, L=Label, R=Radiobutton etc.)
- Die Bezeichnung auf der Maske (also quasi den Inhalt der Eigenschaft Caption)
- weiters (später) Position auf der Maske, Grösse, MaxLength, UpperCase etc...

Diese Werte lese ich sequentiell ein, interpretiere mir den Inhalt in Variablen und möchte dann daraus die Elemente darstellen, aber wie's bei Elementen so ist: es scheitert bereits am elementaren
Code:
begin
  iMaxA:=0;                                              //ARRAY HAT NULL SÄTZE
  SetLength(arCtl,0);                                           //ARRAY KNICKEN
  iMaxL:=Form1.lstCtl.Count-1;                             //ANZAHL SÄTZE LESEN
  for i:=0 to iMaxL do                //ALLE ZEILEN DURCHGEHEN, EGAL OB LISTBOX
  begin
    sI:=Form1.lstCtl.Items[i];           //INFO HOLEN, WIE DAS CONTROL AUSSIEHT
    cW:=sI[1];                               //CHAR: WAS IST ES FÜR EIN CONTROL
    sL:=Trim(Copy(sI,2,length(sI)-1));                        //LABEL FESTLEGEN
    Case cW of                                           //CASE ÜBER CONTROLTYP
    'E': //EDIT FELD
      begin
        if sL<>'' then                                   //WENN LABEL ANGEGEBEN
        begin
          iMaxA:=High(arCtl)+1;                          //ARRAY UM 1 ERWEITERN
          SetLength(arCtl,iMaxA+1);             //KANN MAN SICHER SCHÖNER LÖSEN
          arCtl[iMaxA]:=TLabel.Create(Self);                //DAS LABEL BASTELN
          arCtl[iMaxA].Parent:=Form1;                      //ALS KIND VON FORM1

          arCtl[iMaxA].Caption:=sL;       //<- GENAU HIER HAUT'S DAS SYSTEM AUF

          arCtl[iMaxA].Left:=20;
          arCtl[iMaxA].Top:=20+((arCtl[iMaxA].Height+10)*iMaxA);
        end;
        iMaxA:=High(arCtl)+1;                          //ARRAY UM 1 ERWEITERN
        SetLength(arCtl,iMaxA+1);
        arCtl[iMaxA]:=TEdit.Create(Self);
        arCtl[iMaxA].Parent:=Form1;
        arCtl[iMaxA].Left:=20;
        arCtl[iMaxA].Top:=20+((arCtl[iMaxA].Height+10)*i);
      end;
danach kommen die weiteren Controls in den einzelnen Case-Segmenten... Egal welche Eigenschaften ich übergeben möchte, es geht "Zack" und ich bekomme den Fehler
Undefinierter Bezeichner:Caption
Ich bin sicher dass ich da nur eine Kleinigkeit übersehe, aber ich find's heute einfach nimmer

Vielleicht hat's einer von Euch auf die schnelle? Bitte Danke! Und bevor ich mit dem Projekt all zu sehr in die Irre laufe bitte ich um Hinweise wenn jetzt schon was ganz arg verkehrt ist.

greetz, Joerginger
  Mit Zitat antworten Zitat
MondiBob

Registriert seit: 5. Jul 2010
23 Beiträge
 
#2

AW: Array aus TControl / TComponent, noch einmal...

  Alt 15. Mär 2011, 23:54
Für TControl gibts die Eigenschaft Caption nicht, deswegen gibts ne Fehlermeldung. Sag ihm einfach, dass du en Label benutzt: (arCtl[iMaxA] as TLabel).Caption:=sL;
  Mit Zitat antworten Zitat
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Array aus TControl / TComponent, noch einmal...

  Alt 16. Mär 2011, 00:37
Wow... so schnell. Ich danke Dir 1000x, jetzt kann ich ne ganze Menge wieder alleine in Angriff nehmen.

greetz, Joerginger
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:49 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