Masowe dynamiczne tworzenie komponentu TLabel

dział ogólny

Masowe dynamiczne tworzenie komponentu TLabel

Nowy postprzez wazniak » wtorek, 30 marca 2010, 18:49

Witam

Jak w temacie, jak zrobic takie jak by masowe tworzenie komponentu TLabel. Mam np button1 i teraz jak klikam na niego to mi tworzy obiekt TLabel o nazwie Label1, jak znowu klikne na button1 to on znow stworzy mi dynamiczny obiekt TLabel tylko, ze juz o nazwie Label2 i tak w kolko, jesli trzeci raz klikne to trzeci label o nazwie label3, nie mam zbytnio pojecia jak to zrobic, oraz przydalo by sie jakos, zeby byl jeden pod drugim czyli tez pierwszy np ma top:10 nastepny zwieksza co 10, czyli drugi ma top 20, trzeci top 30. ktos da jakies wskazowki?
Avatar użytkownika
wazniak
Bladawiec
Bladawiec
 
Posty: 3
Dołączył(a): wtorek, 30 marca 2010, 18:24
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder
Gadu Gadu: 0
    Windows XPOpera

Re: Masowe dynamiczne tworzenie komponentu TLabel

Nowy postprzez dzejo » wtorek, 30 marca 2010, 19:31

Unit1.h
Kod: Zaznacz cały
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:   // IDE-managed Components
    TButton *Button1;
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall FormDestroy(TObject *Sender);
private:   // User declarations
       TList*LabelList ;
       int LabelCount ;
       int LabelTop ;
       int LabelHight ;
       String LabelName ;
public:      // User declarations
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Unit1.cpp
Kod: Zaznacz cały
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
       LabelList = new TList ;
       LabelCount = 0 ;
       LabelTop = 0 ;
       LabelHight = 13 ;
       LabelName = "Label" ;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
       TLabel*temp = new TLabel(this) ;
       LabelCount++ ;
       temp->Parent = this;/*jesli umieszczone na Form1*/
       temp->Top = LabelTop ;
       LabelTop += LabelHight ;
       temp->Caption = LabelName + String(LabelCount) ;
       temp->Name    = LabelName + String(LabelCount) ;

   LabelList->Add(temp);  // tu trzymamy Labele
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete LabelList ;
}

Za ten post autor dzejo otrzymał podziękowanie od:
wazniak
Avatar użytkownika
dzejo
Bladawiec
Bladawiec
 
Posty: 8
Dołączył(a): sobota, 11 października 2008, 13:36
Podziękował : 0
Otrzymał podziękowań: 1
    Windows XPOpera


Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości

cron