Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » viele EditFelder mit schleife ein oder ausschalten...???

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 < [ 2 ]
000
15.04.2004, 15:16 Uhr
Meuterich



hi,
kann ich das irgendwie in eine Schleife packen?


C++:
Edit1 -> Enabled = false;
Edit2 -> Enabled = false;
Edit3 -> Enabled = false;
Edit4 -> Enabled = false;
Edit5 -> Enabled = false;
Edit6 -> Enabled = false;
Edit7 -> Enabled = false;
Edit8 -> Enabled = false;
Edit9 -> Enabled = false;
Edit10 -> Enabled = false;



so nach dem prinzip:

C++:
for(int i;i<=10;i++)
     {
       Edit[i] -> Eneabled = false;
      };



Also meine Frage bezieht sich in diesem Fall genau auf das
C++:
Edit[i]
,
Edit ist ein standard EingabeFeld. Ich habe deren mehrere und moechte die dann
alle ein- oder aus schalten koennen. Das klappt auch alles soweit, nur haette ich
da gerne ne Moeglichkeit das in eine Schleife oder so zu packen damit nicht bei
jeder Ein- oder Ausschaltaktion 10 Zeilen Quelltext stehen. Dann ist da noch das
Ding mit der Ausgabe: in diesen 10 Editfeldern sollen Werte ausgegeben werden.
Damit ich aber nicht fuer jede Ausgabe 10 Zeilen Quelltext schreiben moechte
wuerde hier mir auch ne Schleife helfen. Wie muss also die Syntax lauten damit
ich fuer den Namen der Editfelder ne variable mit eingebundenwerden kann?
Denn so
C++:
[b]Edit[i][/b]
gehts nicht!

also schon mal danke fuer die hilfe

Meuterich
--
Eine Signatur wird unter jedem von Ihnen erstellten Beitrag angefügt.
Maximal 5 Linien, jedoch nicht mehr als 600 Zeichen.
ThWboard-Code-Tags werden bis auf [url] und [img] nicht berücksichtigt.

Dieser Post wurde am 15.04.2004 um 15:18 Uhr von Meuterich editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.04.2004, 19:33 Uhr
~Lars
Gast


Hallo,

es gibt zwei Möglichkeiten. Du kannst die ganzen Edit-Felder über FindComponent vorab einmal ermitteln und die Handles in ein Array oder eine Liste schreiben, über die Du dann iterieren kannst.

Oder Du erzeugst Deine ganzen Edits zur Laufzeit, und dann kannst Du da auch ein Array draus machen. Ein Beispiel aus einem meiner Programme:

//Deklarationen
TSpeedButton *btnNumbers[7];

for (int i=0;i<7;i++) {

// erzeugen
btnNumbers[i] = new TSpeedButton(mainform);

// parent setzen, etwa die übergeordnete Form
btnNumbers[i]->Parent = mainform;

// jetzt noch Größe und Position setzen
btnNumbers[i]->Left = 3+iAdd*i;
btnNumbers[i]->Top = pnlBoard->Top + pnlBoard->Height + 1;
btnNumbers[i]->Height = max(20,btnForceMove->Height);
btnNumbers[i]->Width = iAdd+1;

// was drinstehen soll, bei mir Zahlen von 1 bis 7
btnNumbers[i]->Caption = "&"+IntToStr(i+1);

// und natürlich mußt Du den Ereignissen, auf die Du reagieren
// möchtest, die entsprechenden Funktionen zuweisen
btnNumbers[i]->OnClick = btnNumbersClick;
}

Beim Programmende nicht vergessen, die ganzen erzeugten Dinger wieder wegzuschmeißen mit delete!

ciao

Lars
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.04.2004, 22:04 Uhr
Meuterich



uhi...das schnall ich mit meinem anfaengerwissen noch nicht
nuja da muss ich erst noch einsteigen

einfacher geht nicht oder?

Meuterich
--
Eine Signatur wird unter jedem von Ihnen erstellten Beitrag angefügt.
Maximal 5 Linien, jedoch nicht mehr als 600 Zeichen.
ThWboard-Code-Tags werden bis auf [url] und [img] nicht berücksichtigt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.04.2004, 08:58 Uhr
~Lars
Gast



Zitat:
Meuterich postete
einfacher geht nicht oder?
Meuterich


Doch, klar. Entschuldige, daß ich das nicht gleich beschrieben habe. Du brauchst aber eine akusto-optische Maus und den C-Builder 11 3/4. Dann hebst Du die Maus zum Mund und sprichst: "Hallo Computer", und wenn er antwortet: "Hallo Meuterich, hier ist Eddi, Dein Computer. Mann bin ich froh, daß Du mich angeschaltet hast. Was kann ich denn heute für Dich berechnen? Willst Du wissen, wie spät es in Tokio ist? Oder soll ich ...", mußt Du ihn unterbrechen und sagen: "Ich will Edit-Felder, auf die ich per Index zugreifen kann."

Noch einfacher geht es aber nicht.

ciao

Lars
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.04.2004, 15:51 Uhr
Bruder Leif
dances with systems
(Operator)


Tsk tsk... nicht gleich sauer werden, wir haben alle mal klein angefangen. Zur ursprünglichen Frage:


C++:
TEdit* array[10] = {Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, Edit9, Edit10};

for(int i=0; i<10; i++)
   array[i]->Enabled = false;



Das wäre die für den Anfang einfachste Lösung.
--
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
17.04.2004, 18:30 Uhr
~Lars
Gast



Zitat:
Bruder Leif postete
Tsk tsk... nicht gleich sauer werden, wir haben alle mal klein angefangen. Zur ursprünglichen Frage:


C++:
TEdit* array[10] = {Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, Edit9, Edit10};

for(int i=0; i<10; i++)
   array[i]->Enabled = false;



Das wäre die für den Anfang einfachste Lösung.


Ich bin doch nicht sauer, sondern habe nur versucht, witzig zu sein, sorry, wenns nicht geklappt hat.

VCL-Elemente kann man glaube ich nicht statisch erstellen wie von Dir oben versucht. Aber selbst wenn es ginge, müßte man Position, Parent usw. setzen, d.h. es führt wieder nur zu meinem Beispiel. Denn nur weil Du sagst, TEdit *array[irgendwas]={allerlei}; tauchen die Dinger ja noch nicht gleich auf Deiner Form auf.

Eine weitere Lösung fiele mir noch ein: Man könnte ein String-Array erstellen und mit den Namen der Edit-Felder vorbelegen:
String sTexte[10]={"Edit1","Edit2"..."Edit10"};
und dann in einer Schleife über FindComponent auf die Edits zugreifen, aber das ist wieder viel gecaste und so, außerdem höchst unelegant und auch nicht flexibel. Aber für den Anfang...

ciao Lars
-----------------
www.mustrum.de
-----------------
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.04.2004, 19:21 Uhr
~Lars
Gast


Ah, ich bin ein Dummbrösel, jetzt verstehe ich das erst, man braucht die Handles ja gar nicht zu suchen, weil man sie ja über den Namen ansprechen kann :-) Ok, das ist dann wirklich die einfachste Version, die Du gezeigt hast.

Lars
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.04.2004, 19:22 Uhr
Bruder Leif
dances with systems
(Operator)


Da haben wir uns falsch verstanden ;-) Ich will die Elemente nicht erstellen, ich wollte mit der Schleife nur über bereits bestehende iterieren. Und dann sollte diese Lösung noch einen Tick schneller sein als mit FindComponent...
--
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
008
20.04.2004, 19:38 Uhr
Meuterich



hi,

jo danke euch beiden, so kann ich was mit anfangen...aber ich habe schon gemerkt
dass ich mich das naechste mal besser ausdruecken muss...sonst missversteht sich
wer
haette mal erwaehnen sollen das die Edit-felder bereits im Form per Form-Creator,
oder wie das teil heist, erstellt worden sind...also schon vorhanden sind
nun, ich lerne eben noch und eins hats mir echt gezeigt...probleme besser beschreiben
bzw. einkreisen...dann kann mir auch besser geholfen werden

bis denne

Meuterich
--
Eine Signatur wird unter jedem von Ihnen erstellten Beitrag angefügt.
Maximal 5 Linien, jedoch nicht mehr als 600 Zeichen.
ThWboard-Code-Tags werden bis auf [url] und [img] nicht berücksichtigt.

Dieser Post wurde am 20.04.2004 um 19:39 Uhr von Meuterich editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.04.2004, 19:58 Uhr
Meuterich



hi,

ich haette da doch noch fragen

Wo genau muss ich diese Zeile einfuegen?

TEdit* array[10] = {Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, Edit9, Edit10};


ich habe das an dieser stelle eingesetzt aber da jibbet ne Fehlermeldung

C++:
//---------------------------------------------------------------------------
#pragma resource "*.dfm"

int a, i, Ergebnis = 0, Seiten=0, SteigVersuche = 30, WuerfelAnzahl = 1, Zahl[9];
String Antwort = "j";

TForm1 *Form1;
TEdit* array[10] = {Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, Edit9, Edit10};
//---------------------------------------------------------------------------



dachte da wuerde passen
den rest mit der schleife hab ich auf einen Button gepackt und ich denke das ist
auch soweit ok. aber wo kommt die TEdit*array zeile hin?

bis denne

Meuterich
--
Eine Signatur wird unter jedem von Ihnen erstellten Beitrag angefügt.
Maximal 5 Linien, jedoch nicht mehr als 600 Zeichen.
ThWboard-Code-Tags werden bis auf [url] und [img] nicht berücksichtigt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: