AGB  ·  Datenschutz  ·  Impressum  







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

Eigene Klasse: Panel mit Edit drauf

Ein Thema von glunzl · begonnen am 12. Aug 2006 · letzter Beitrag vom 13. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#1

Eigene Klasse: Panel mit Edit drauf

  Alt 12. Aug 2006, 14:26
Hallo!

Ich versuche mich gerade an eigenen Klassen, komme aber nicht so recht weiter.
Ich möchte ein Panel mit einem Edit drauf erzeugen. Dazu habe ich eine eigene Unit angefangen, TDatPanel.

In dem Tutorial Komponente TSwitch wird schön erklärt, wie man ein Panel als Switch "umbaut". Hier wird die Panelfäche "niedergedrückt" gehalten. Leider wird nicht gezeigt, wie man eine andere Komponente auf das Panel einbindet udndarauf zugreift.

Weiß jemand ein paar hilfreiche Links zu dem Thema?

Gruß und Dank
glunzl
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 12. Aug 2006, 16:47
Links? Nein.

Delphi-Quellcode:
type
  TDatPanel = class(TPanel)
  private
    fEdit: TEdit;
  public
    constructor Create; override;
  end;

implementation

procedure TDatPanel.Create;
begin
  inherited;

  fEdit := TEdit.Create(self);
  fEdit.Parent := self; //zuweisung des parent extrem wichtig!
  fEdit.Align := alTop; //damit erspar ich mit die ganze left,top,width,height tipperei... is ja nur ein beispiel
end;
aber dieses Schnipsel sollte dir helfen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#3

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 12. Aug 2006, 17:19
Wunderbar, Danke!

glunzl
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#4

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 12. Aug 2006, 23:34
Ich nochmal ...

Ich habe das ganze versuchweise mal in einer Unit zusammengeschrieben, aber bekomme immer Fehlermeldungen. Die habe ich als Kommentar in den Quelltext geschrieben.
Delphi-Quellcode:
unit Unit1;

interface

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

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

type
  TDatPanel = class(TPanel)
  private
    fEdit: TEdit;
  public
    constructor Create; override; // Deklaration von 'Create' unterscheidet sich von vorheriger Deklaration
                                   // Ungenügende Forward- oder External-Deklaration: 'TDatPanel.Create'
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TDatPanel.Create; // Deklaration von 'Create' unterscheidet sich von vorheriger Deklaration
begin
  inherited; // Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt

  fEdit := TEdit.Create(self); // Undefinierter Bezeichner: 'fEdit'
  fEdit.Parent := self; // Operator oder Semikolon fehlt
  fEdit.Align := alTop; // Operator oder Semikolon fehlt
end;

procedure TForm1.Button1Click(Sender: TObject);
var MyPanel : TDatPanel ;
begin
  MyPanel := TDatPanel.Create ;
  MyPanel.Parent := Form1 ;
end;

end.
Asterix lief zwar gerade, aber ich bin mit meinem Latein mal wieder am Ende ...

Gruß
glunzl
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 12. Aug 2006, 23:38
Muß .Create (AOwner: TComponent); heißen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#6

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 12. Aug 2006, 23:47
Hallo!

Wo muß es so heißen? Im OnClick Event des Buttons?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyPanel : TDatPanel ;
begin
  MyPanel := TDatPanel.Create(Form1) ; // Hier geändert, brachte keine Änderung der Fehlermeldungen
  MyPanel.Parent := Form1 ;
end;
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 12. Aug 2006, 23:55
In der definition der Klasse, den der Konstruktor einer Komponentenklasse hat diese Signatur.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#8

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 13. Aug 2006, 00:06
Axo. Jetzt ist schonmal ein Fehler weg ...

Delphi-Quellcode:
type
  TDatPanel = class(TPanel)
  private
    fEdit: TEdit;
  public
    constructor Create(AOwner: TComponent); override; // hier geändert, kein Fehler mehr.
  end;
Delphi-Quellcode:
procedure TDatPanel.Create(AOwner: TComponent); // hier noch Fehler "Deklaration von 'Create' unterscheidet sich von
                                                // vorheriger Deklaration". Sowohl mit und ohne (AOwner: TComponent)
begin
  inherited; // Hier auch noch Fehler

  fEdit := TEdit.Create(self); //
  fEdit.Parent := self; //zuweisung des parent extrem wichtig!
  fEdit.Align := alTop; //damit erspar ich mit die ganze left,top,width,height tipperei... is ja nur ein beispiel
end;
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 13. Aug 2006, 00:12
Hast du die Definition im Interface auch angepasst?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#10

Re: Eigene Klasse: Panel mit Edit drauf

  Alt 13. Aug 2006, 00:17
Der obere Code ist aus dem Interface, der unter aus dem Implementation Abschnitt.

Hier nochmal ganz:
Delphi-Quellcode:
unit Unit1;

interface

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

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

type
  TDatPanel = class(TPanel)
  private
    fEdit: TEdit;
  public
    constructor Create(AOwner: TComponent); override;
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TDatPanel.Create(AOwner: TComponent); // hier noch Fehler "Deklaration von 'Create' unterscheidet sich von
                                                // vorheriger Deklaration". Sowohl mit und ohne (AOwner: TComponent)
begin
  inherited; // Hier auch noch Fehler

  fEdit := TEdit.Create(self); //
  fEdit.Parent := self; //zuweisung des parent extrem wichtig!
  fEdit.Align := alTop; //damit erspar ich mit die ganze left,top,width,height tipperei... is ja nur ein beispiel
end;

procedure TForm1.Button1Click(Sender: TObject);
var MyPanel : TDatPanel ;
begin
  MyPanel := TDatPanel.Create(TForm1) ;
  MyPanel.Parent := Form1 ;
end;

end.
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:32 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