AGB  ·  Datenschutz  ·  Impressum  







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

komponente erstellen

Offene Frage von "milanlu"
Ein Thema von milanlu · begonnen am 30. Nov 2005 · letzter Beitrag vom 6. Dez 2005
Antwort Antwort
milanlu

Registriert seit: 16. Nov 2005
51 Beiträge
 
Delphi 2005 Personal
 
#1

komponente erstellen

  Alt 30. Nov 2005, 02:37
Hallo,
ich kenne mich zimlich schlecht mit komponenten erstellen.
Ich brauche eine komponente mit:


--TPanel
-->TButton (auf dem Panel)
-->TLabel (auf dem Panel)
Für button eigebe caption
für label eigene caption

und für label positions einstelung (top, left)

Ich würde mich sehr freuen, wenn mir jemand helfen würde!!!

Danke im Voraus!
MFG
Milan
  Mit Zitat antworten Zitat
milanlu

Registriert seit: 16. Nov 2005
51 Beiträge
 
Delphi 2005 Personal
 
#2

Re: komponente erstellen

  Alt 30. Nov 2005, 02:45
also ich habe soviel geschaft
Delphi-Quellcode:
unit Switch;

interface

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

type
  TSwitch = class(TPanel)
  private
    bDown : boolean;
    bHeight : Integer;
    bhohe: Integer;
    procedure Click;
    procedure SetState(bValue: boolean);
  protected

    { Protected-Deklarationen}
  public
    { Public-Deklarationen}
  published
    property Down : Boolean read bDown write SetState;
    property Höhe1: Integer read bHeight write bHeight;
    property Höhe1: Integer read bhohe write bhohe;

  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TSwitch]);
end;


procedure TSwitch.Click;
begin
     if bHeight = Height then
     begin
          Height := bhohe;
          bDown := true
     end
     else
     begin
          Height := bHeight;
          bDown := false
     end;
end;

procedure TSwitch.SetState(bValue: boolean);
begin
     if bValue = true then
     begin
          bDown := true;
          Height := Height;
     end
     else
     begin
          bDown := false;
          Height := bHeight;
     end
end;

end.
Das bild das ich im attachment hinzugefügt habe, zeigt wie es am ende aussehen soll.
Miniaturansicht angehängter Grafiken
bild1_516.jpg  
Milan
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: komponente erstellen

  Alt 30. Nov 2005, 05:42
Nun, Komponentenentwicklung ist recht umfangreich. Und ohne konkrete Frage (d.h. "wie mach ich ... genau?") kann man schlecht was sagen. Vielleicht hilft dir das weiter:

http://www.dsdt.info/tutorials/kompentwickeln/?page=1
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
30. Nov 2005, 06:37
Dieses Thema wurde von "Sharky" von "Tutorials und Kurse" nach "VCL / WinForms / Controls" verschoben.
Könnte auch nach Sonstige Fragen zu Delphi.
Aber ein Tutorial ist es ja nicht
milanlu

Registriert seit: 16. Nov 2005
51 Beiträge
 
Delphi 2005 Personal
 
#5

Re: komponente erstellen

  Alt 30. Nov 2005, 11:04
das tutorial hat mir nicht weiter geholfen. (ich kenne es bereits)
ok direkte frage:
wie erstelle ich im TSwitch ein Tlabel?????
danke
Milan
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: komponente erstellen

  Alt 30. Nov 2005, 17:30
du musst das TLabel im Konstructor deines TSwitch erstellen (und nicht vergessen,es im Destruktor wieder freizugeben)
im Konstuktor musst du ebenfalls alle wichtigen Werte des Labels initialisieren (z.B. Position, Font etc.) Das klingt nach viel Arbeit .... das ist es auch *lach*
Schau dir als Beispiel mal die Quellen von verschiedenen JEDI-Controls an, die etwas ähnliches machen.
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
milanlu

Registriert seit: 16. Nov 2005
51 Beiträge
 
Delphi 2005 Personal
 
#7

Re: komponente erstellen

  Alt 6. Dez 2005, 17:42
Also ich habe es geknackt:


Delphi-Quellcode:
unit Switch;

interface

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

type
  TSwitch = class(TPanel)
  constructor Create(AOwner: TComponent); override;
  private
    bDown : boolean;
    bHeight : Integer;
    bVisina : Integer;
    labeli : TLabel;
    procedure Click;
    procedure SetState(bValue: boolean);
  protected

    { Protected-Deklarationen}
  public
    { Public-Deklarationen}
  published
    property Down : Boolean read bDown write SetState;
    property Visina1: Integer read bHeight write bHeight;
    property Visina2: Integer read bVisina write bVisina;

  end;

procedure Register;

implementation



procedure Register;
begin
  RegisterComponents('Beispiele', [TSwitch]);
end;

constructor TSwitch.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  labeli := TLabel.Create(Self);
  labeli.Parent := Self;
  labeli.Top := Self.Top;
  labeli.Left := Self.Left;
  labeli.Caption := 'test';
  labeli.Visible := true;
end;

procedure TSwitch.Click;
begin
     if bHeight = Height then
     begin
          Height := bVisina;
          bDown := true
     end
     else
     begin
          Height := bHeight;
          bDown := false
     end;
end;

procedure TSwitch.SetState(bValue: boolean);
begin
     if bValue = true then
     begin
          bDown := true;
          Height := bVisina;
     end
     else
     begin
          bDown := false;
          Height := bHeight;
     end
end;

end.

Danke
MarcoWarm für die Idee mit Constructor!!!!
Miniaturansicht angehängter Grafiken
tswitch_101.jpg  
Milan
  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 06:22 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