Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Weiß nicht wie beschreiben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.12.2004, 13:27 Uhr
~BennyB
Gast


Ich erstelle dynamisch ein paar Labels, d.h. dass ich ein Label erstelle und mit selber Variable ein neues Label erstell. Daneben mach ich eine CheckBox.

Ich weiß, dass man irgendwie die Adressen der Objekte "stapeln" kann, und dann bei bedarf durchsuchen. Ich weiß leider nicht wie und welcher Befehl mir helfen könnte bzw. welche Methode.

Mein Endziel ist es, wenn ich über die Checkbox fahre, dass das Label eine andere Farbe bekommt und danach wieder auf standard ist, wenn ich die Checkbox "verlasse".

Kann mir bitte jemand einen Ansatz sagen, ich hab leider keine Ahnung.

Danke

Grüße Benny

-------------------
Ich weiß, Checkbox und Label sind Builder bestandteile, aber das mit dem stapeln der Objektadressen muss auch so gehn.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.12.2004, 16:13 Uhr
Oliver
S2-Pixelgeneral


Label = STATIC Textfeld???

Ich weiß nicht, ob ich die richtig verstanden haben, aber du könntest eine HWND-list machen und dann nacheinander die einzelnen "Labels" dort reinschreiben nachdem du sie mit CreateWindow(Ex) erstellt hast.
Wenn du einen MouseMove Effekt haben willst, gibt es die WM_MOUSEMOVE.
Wie man färbt, wurde scho mehrmals gefragt.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.12.2004, 20:22 Uhr
~BennyB
Gast


Also ich habe jetzt mal rumprobiert und schön gegooglet, aber leider bin ich in dem Fall nicht weiter gekommen.

Ich stelle mir das so vor

C++:
for (i=0;i<100;i++)
{
  TCheckBox *NewCheckBox = new TCheckBox;
  NewCheckBox->Parent = Form1;
  NewCheckBox->Name = "But_1_XXXXXX"; //XXXXX ist immer verschieden
}

//Dann das ganze aber irgendwie speichern, dass ich anhand des CheckBox->Name das
//Objekt wieder finde und einen Pointer draufsetzten kann. So dass ich die Eigenschaften
//verändern kann.



Ich hab mal nach HWND und einer Liste geschaut bin aber leider nicht klüger geworden. Habe auch keine Beispiele gefunden.

Wäre froh, wenn mir ein verständliches Bsp. geben könnte bin noch Anfänger.

DANKE für eure Mühe, wenn ich noch weiter Informationen geben kann, lasst es mich wissen.

Grüßer Benny
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.12.2004, 09:15 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Das klingt doch alles ziemlich nach C++Builder, ich annektier den Thread mal. Schau Dir mal das Ereignis "OnMouseMove" an (Checkbox und Form1), und die Property "Color" beim Label..
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.12.2004, 09:16 Uhr
Bruder Leif
dances with systems
(Operator)


Achja, die einzelnen Komponenten auf einer Form bekommst Du über Form1->Components
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.12.2004, 13:24 Uhr
~Reyx
Gast


Wenn es nur um das zusammenfassen der Klasseninstanzen geht, warum nimmst du dann nicht einfach einen Array?

Der einzige Nachteil ist, dass die Anzahl der Instanzen konstant sein muss:

C++:
const int cmpt_count = 20; //Anzahl der Komponenten
TCheckBox *checkboxes[cmpt_count];
for(int cnt = 0; cnt < cmpt_count; cnt++)
     checkboxes[cmpt_count] = new TCheckBox(this);



Wenn die Anzahl variabel sein muss, solltest du auch einen Vektor nehmen können...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.12.2004, 18:29 Uhr
~BennyB
Gast


Also mir gehts garnicht so direkt um das Mouseover.

Mir gehts mehr darum, ich hab ein dynamisches Programm und will nicht mit Arrays arbeiten.

Ich will wie ich schon beschrieben hab wissen wie ich


C++:
for (i=0;i<100;i++)
{
  TCheckBox *NewCheckBox = new TCheckBox;
  NewCheckBox->Parent = Form1;
  NewCheckBox->Name = "But_1_XXXXXX"; //XXXXX ist immer verschieden
}

//Dann das ganze aber irgendwie speichern, dass ich anhand des CheckBox->Name das
//Objekt wieder finde und einen Pointer draufsetzten kann. So dass ich die Eigenschaften
//verändern kann.



Umsetzten kann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.12.2004, 18:57 Uhr
~BennyB
Gast



Code:
Achja, die einzelnen Komponenten auf einer Form bekommst Du über Form1->Components


Das bekomme ich doch nur, wenn ich einen Pointer habe, der mir auf das Objekt zeigt, oder?

Ich habe folgendes nun versucht:



C++:
  //Funktion welche beim Klicken der CheckBox ausgeführt wird

  TCheckBox *HilfsBox=dynamic_cast<TCheckBox*> (Sender);
  String test=HilfsBox->Caption;

  if (HilfsBox->Checked == true)
  {
    ListBox1->Items->Add(test);
    HilfsBox->Caption->Color = clBlue;  //Funktioniert nicht, kann nichtmal compilen
    install_anzahl++;
  }



Ich versuche mit HilfsBox->Caption das Objekt anzusprechen. Und dann die Farbe zu ändern.

Mein Code vom Beitrag weiter oben macht ja folgendes:

Pointer auf Checkbox1 erstellen.
Pointer auf Checkbox2 erstellen (damit weiß ich nicht mehr wo Checkbox1 ist, bzw. wie ich sie ansprechen kann)
Pointer auf Checkbox3 erstellen (damit weiß ich nicht mehr wo Checkbox1 und Checkbox2 ist, bzw. wie ich sie ansprechen kann)

Ich weiß jedoch, dass man irgendwie die Information speichern kann (stapeln kann) um später wieder auf Checkbox1 und Checkbox2 zugreifen zu können. Und das denke ich ist kein Builder spezifisches Problem sondern allgemein c++, oder?

Bitte um Erklärungen wenn ich etwas falsch ausgedrückt habe oder falsch interpretiert habe.

Grüße Benny
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
30.12.2004, 13:26 Uhr
~Lars
Gast


Du kannst Deine Pointer in einer Liste speichern. Die VCL-Klasse TList ist genau dafür da. Also ein TList-Objekt erzeugen und alle Deine hübschen Zeiger per Add-Methode dadrin sammeln.

ciao
Lars
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: