D
swunder schrieb:
Das ist doch kein Code "TEdit erzeugen - Parent = Deine Kompo"!
...
Ich brauche wenigstens ein kleines Besispiel!!!
Ist das Code?:
(Anmerkung:
alle Hauptfunktionen sind entfernt, das zeigt nur noch, wie Komponenten in
Komponenten eingefügt werden können!)
Eine Header- datei
//---------------------------------------------------------------------------
#ifndef VolCtrlH
#define VolCtrlH
//---------------------------------------------------------------------------
//De folschend glasse is enne Gombonende for de
//Reschelung dor Laudsderge un zum
//ei un aus- gnibsen der Brabbelbogsen
//Des Ganse muss nadierlich in enne baggasch gebaggd wern, sunsd
//dut dos ned richtsch glabben
class PACKAGE TVC : public TCustomPanel
{
private:
TTrackBar *VolumeTrackBar;
TSpeedButton *OnOff;
TPicture *FSpeakerSymbol;
void __fastcall SetSpeakerSymbol(TPicture *Pic);
protected:
// virtual void __fastcall Loaded();
void __fastcall VolumeChange(TObject *Sender);
void __fastcall VolumeMute(TObject *Sender);
public:
virtual void __fastcall Loaded();
__fastcall TVC(TComponent* Owner);
virtual __fastcall ~TVC();
DYNAMIC void __fastcall Resize();
__published:
__property TPicture *SpeakerSymbol ={read=FSpeakerSymbol, write=SetSpeakerSymbol};
__property Align;
__property Anchors;
__property Enabled;
};
//---------------------------------------------------------------------------
#endif
Die CPP- datei
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "VolCtrl.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck wird benutzt, um sicherzustellen, daß die erzeugten Komponenten keine
// rein virtuellen Funktionen haben.
//
static inline void ValidCtrCheck(TVC *)
{
new TVC(NULL);
}
//---------------------------------------------------------------------------
//Dor gonschdruggdor
__fastcall TVC::TVC(TComponent* Owner)
:TCustomPanel(Owner)
{
FSpeakerSymbol=new TPicture;
VolumeTrackBar=new TTrackBar(this);
VolumeTrackBar->Parent=this;
VolumeTrackBar->Orientation=trVertical;
VolumeTrackBar->TickMarks=Comctrls::tmBoth;
OnOff=new TSpeedButton(this);
OnOff->Parent=this;
}
//---------------------------------------------------------------------------
//Dor Deschdruggdor
__fastcall TVC::~TVC()
{
delete VolumeTrackBar;
delete FSpeakerSymbol;
}
//---------------------------------------------------------------------------
//wenns e neies Bildschen gibbt for de Anzeische
void __fastcall TVC::SetSpeakerSymbol(TPicture *Pic)
{
FSpeakerSymbol->Assign(Pic);
}
//---------------------------------------------------------------------------
//de folgnde fungdschon werd nur geruffn, wenn dis Ganze ne Gombonende is
void __fastcall TVC::Loaded()
{
TCustomPanel::Loaded();
OnOff->Flat=true;
OnOff->AllowAllUp=true;
OnOff->GroupIndex=1;
try
{ OnOff->Glyph->LoadFromResourceName((int)HInstance,"VOLSPEAKERS");
}
catch (...)
{
//In de Resoorsen vun der Gombonende muss ooch e Bildchen drinne sin
//sonsd gibbet's enne Egsebschn
//Dor Nohme is e boor Zeiln vurher geschriem
}
//oder e Bildschen muss dr brobberdieh zugeordned sin
if (!FSpeakerSymbol->Bitmap->Empty)
OnOff->Glyph->Assign(FSpeakerSymbol);
OnOff->Width=28;
OnOff->Height=28;
OnOff->Top=Height-OnOff->Height-2;
OnOff->Left=(Width-OnOff->Width) / 2;
OnOff->NumGlyphs=4;
OnOff->GroupIndex=1;
OnOff->Enabled=Enabled;
OnOff->OnClick=VolumeMute;
VolumeTrackBar->Align=alNone;
VolumeTrackBar->Anchors=VolumeTrackBar->Anchors<<akLeft<<akTop<<akRight<<akBottom;
VolumeTrackBar->Top=1;
VolumeTrackBar->Left=1;
VolumeTrackBar->Height=Height-30;
VolumeTrackBar->Width=Width-2;
VolumeTrackBar->ThumbLength=Width-20;
VolumeTrackBar->OnChange=VolumeChange;
}
//---------------------------------------------------------------------------
//wenns enne neie Grehse gibbt for de Anzeische vun dos Ganse
void __fastcall TVC::Resize()
{
TCustomPanel::Resize();
VolumeTrackBar->ThumbLength=Width-20;
VolumeTrackBar->Height=Height-30-15;
OnOff->Top=Height-OnOff->Height-2;
OnOff->Left=(Width-OnOff->Width) / 2;
}
//---------------------------------------------------------------------------
void __fastcall TVC::VolumeChange(TObject *Sender)
{
//Was bassiern soll, wenn's Bedahl verschohm wurde
}
//---------------------------------------------------------------------------
void __fastcall TVC::VolumeMute(TObject *Sender)
{
//Was bassiern soll, wenn's Knebbelchen bedadcht werd
}
//---------------------------------------------------------------------------
//Alles Annere muss erschd nuch dazugebasdeld wern.
//Su dos ganse Zeisch, dormid dos ooch richdsch mid de Systemschdeierung
//zusammebassen dud.
//Dos gemehr habsch mah alles weggemochd, dormit dos ned suh
//gomblidsierd guggen dud.
Gruss
Frank