AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Panel inkl. Labels zur Laufzeit erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Panel inkl. Labels zur Laufzeit erstellen

Ein Thema von Sascha L · begonnen am 6. Feb 2005 · letzter Beitrag vom 11. Nov 2005
Antwort Antwort
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#1

Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 13:02
Hallo,

ich möchte zur Laufzeit mehre Panels erstellen, auf denen sich Labels mit derselben Bezeichnung befinden.

Ich könnte natürlich nun zur Laufzeit ein Panel erstllen (TPanel.Create), dann alle Labels, dann die Caption für die Labels angeben und die Positionen für die Labels einstellen und und und...

Das ist sehr aufwendig, da es immer dasselbe ist.

Gibt es da nicht einen kürzeren Weg? Könnte ich nicht irgendwie mit "type" und irgendeiner Art von Vererbeung soetwas erstellen?

ich habe schon folgendes probiert:

Delphi-Quellcode:
type
TMeinPanel = class(TPanel)
Label1 : TLabel;
end;
Das klappt auch recht gut, nur muss ich dennoch das Label createn, es aufs Panel setzen, Caption angeben, usw.

Ich möchte einfach nur ein Panel haben, wo ein paar Labels drauf sind, von denen einige schon Werte bei "Caption" haben und andere nicht, da diese erst bei der Nutzung des Programmes Werte für Caption bekommen.

Das ganze möchte ich dann gerne mit TMeinPanel.Create erstellen ohne viel Theater.

Gibt es da was, wie man das am besten machen kann, ohne dies über eine function zu machen? Ich möchte nämlich mit einer Variable arbeiten (x := TMainPanel.Create), um so ganz einfach die Captions von den einzelnen Labels ändern zu können.

Gruß
Sascha
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 13:12
Hallo Sascha,

sieh dir mal TFrame an. Es ist so wie ein Form, du kannst Komponenten etc. drauftun, und das ganze zur Laufzeit erstellen und auf ein Panel setzen. Ist fuer dich wohl die einfachste Loesung.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 13:26
super, genau das, was ich wollte!!

Aber irgendwie bin ich zu blöd, meinen Frame zur Laufzeit auf meinem Form1 sichtbar zu machen
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 13:35
Hallo Sascha,

dann will ich mal wieder IE-Coden

Delphi-Quellcode:
var
  DeinFrame: TDeinFrame;
begin
  // Frame erstellen
  DeinFrame := TDeinFrame.Create(Self);
  // Einstellungen vornehmen
  DeinFrame.Visible := True;
  DeinFrame.Align := alClient;
  // Dem Frame einen Parent geben, und somit die Anzeige veranlassen
  DeinFrame.Parent := Panel1;
end;
Wichtig: Ich habe keine Resourcenschutzbloecke verwendet, da ich die Variable ja nur lokal deklariert habe. Deklariere die Variable fuer das Form private in TForm1, erstelle das Frame im OnCreate. Um das Freigeben musst du dich nicht kuemmern, das Frame wird automatisch freigegeben, sobald Form1 freigegeben wird (durch die Angabe von "Self" als Owner).

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 13:42
Ah danke, ich hatte nicht Visible auf true gesetzt, alles andere hatte ich soweit
Sascha
  Mit Zitat antworten Zitat
m.wollert

Registriert seit: 18. Aug 2003
Ort: Heilbronn
92 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 14:08
Und wenn Du alles anstelle eines Frames als "Klasse" machen möchtest, empfehle ich Dir GExperts. Mit diesem Tool kannst Du unter anderem auf dem Formular alles Designen wie Du es später haben möchtest und dann die Komponenten markieren. Ein Rechtsklick und "Components to Code" generiert Dir einen Source in der Zwischenablage. Anbei ein Beispiel:

Delphi-Quellcode:
var
  BitBtn3: TBitBtn;
  DelFilesB: TBitBtn;
  ImportFilesB: TBitBtn;
  InFilesLV: TListView;

  BitBtn3 := TBitBtn.Create(Self);
  DelFilesB := TBitBtn.Create(Self);
  ImportFilesB := TBitBtn.Create(Self);
  InFilesLV := TListView.Create(Self);
  with BitBtn3 do
  begin
    Name := 'BitBtn3';
    Parent := FilesTopP;
    Left := 216;
    Top := 224;
    Width := 97;
    Height := 25;
    Caption := 'BitBtn3';
    TabOrder := 3;
  end;
  with DelFilesB do
  begin
    Name := 'DelFilesB';
    Parent := FilesTopP;
    Left := 112;
    Top := 224;
    Width := 97;
    Height := 25;
    Caption := 'DelFilesB';
    TabOrder := 2;
  end;
  with ImportFilesB do
  begin
    Name := 'ImportFilesB';
    Parent := FilesTopP;
    Left := 8;
    Top := 224;
    Width := 97;
    Height := 25;
    Caption := 'ImportFilesB';
    TabOrder := 1;
  end;
  with InFilesLV do
  begin
    Name := 'InFilesLV';
    Parent := FilesTopP;
    Left := 7;
    Top := 16;
    Width := 730;
    Height := 201;
    Anchors := [akLeft, akTop, akRight, akBottom];
    with Columns.Add do begin
      Caption := 'Verzeichnis';
      Width := 200;
    end;
    with Columns.Add do begin
      Caption := 'Datei';
      Width := 100;
    end;
    with Columns.Add do begin
      Caption := 'Ausgabe';
      Width := 250;
    end;
    with Columns.Add do begin
    end;
    TabOrder := 0;
    ViewStyle := vsReport;
  end;
Änderungen am Code sind dann leider jedoch nicht mehr soo einfach durchzuführen, wie in der IDE.

Michael:)
Michael
  Mit Zitat antworten Zitat
m.wollert

Registriert seit: 18. Aug 2003
Ort: Heilbronn
92 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 14:09
Ok, das Klassentypische musst Du natürlich noch drumherumstricken ;)
Michael
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 6. Feb 2005, 14:17
Danke,aber ich glaube die Sache mit den Frames ist bei meiner Andwendung einfacher
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von BrinkschulteManfred
BrinkschulteManfred

Registriert seit: 23. Sep 2003
Ort: Menden
97 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Panel inkl. Labels zur Laufzeit erstellen

  Alt 11. Nov 2005, 09:37
Hallo zusammen,

bis hierhin bin ich nun auch gekommen, aber wenn ich nun ein Label auf dem Frame verändern will, bekomme ich beim Compilieren die Fehlermeldung

Zitat:
Undefinierter Bezeichner: 'LabelFirma'
Mein Code dazu sieht so aus:

Delphi-Quellcode:
procedure TFormMain.FirmaAnzeigen;
begin
  if Assigned(FrameInhalt) then FrameInhalt.Destroy;
  FrameInhalt := TFrameFirma.Create(self);
  FrameInhalt.Parent := FormMain;
  FrameInhalt.Align := alClient;
  FrameInhalt.LabelFirma.Caption := '1232131';
  FrameInhalt.Show;
end;
Was habe ich dabei übersehen?

Gruß
Manfred
  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 14:28 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