Arbeit mit TTabbedNotebook [gelöst]
-
Guten Morgen,
ach Leute ich kann Euch sagen... ich stell mich wieder an heute

In einem BCB3-Projekt soll ich ein bißchen was ins Englische übersetzen. Nun befindet sich auf einem Form eine TabbedNotebook-Komponente. Mit einer solchen habe ich noch nie gearbeitet und ich versuche gerade krampfhaft die Beschriftungen der Reiter zu ändern. Es will nicht gelingen... Die Hilfe wirft mir nur ein freundliches "Guten Morgen" zum Thema TabbedNotebook entgegen - mehr leider nicht.
Auch die Suche im VCL-Forum mit *TabbedNotebook* war nicht besonders erfolgreich.
(1) Kann mir jemand sagen, wie ich die Reiter-Beschriftungen ändern kann?
(2) Wie muss grundsätzlich der Zugriff auf Eigenschaften der Registerkarten aussehen?
(3) Weiß alternativ jemand eine brauchbare Dokumentation zum Thema TabbedNotebook?Vielen Dank
-
Hallo,
Hast du bei der Hilfe auch mal TTabbedNotebook eingegeben?
-
Ja.
-
Ich habe inzwischen auch gelesen, dass die Komponente völlig veraltet ist. Das passt mal wieder zu den Sachen die ich hier auf den Tisch bekomme. Aber ich kanns nicht ändern, ich mache nur die Übersetzung - alles Weitere bringt mir nur graue Haare!
[Edit] Meine Fragen stehen nach wie vor! Google und FAQ konnten erstmal auch nicht helfen. [/Edit]
-
- Pages enthält die Beschriftungen der Tabs
- Pages ist TStrings* [Edit] und TStrings enthält auch TObject* [/Edit]
- Die BCB6-Hilfe zu TTabbedNotebook ist eigentlich OK.
mein Google hat das ausgespuckt:
http://www.esanu.name/delphi/Components/How to Add Controls to TTabbedNotebook and TNotebook.html
-
Morris Szyslak schrieb:
- Pages enthält die Beschriftungen der Tabs
- Pages ist TStrings* [Edit] und TStrings enthält auch TObject* [/Edit]
- Die BCB6-Hilfe zu TTabbedNotebook ist eigentlich OK.
mein Google hat das ausgespuckt:
http://www.esanu.name/delphi/Components/How to Add Controls to TTabbedNotebook and TNotebook.htmlOk, das hilft schon ein bißchen, Danke. So ganz klar ist mir das jedoch noch nicht:
zu (1): Ich habe nun versucht mit:
Form4->TabbedNotebook2->Pages[0].Caption= "Test";die Beschriftung von einem der 5 vorhandenen Reiter zur Laufzeit zu ändern. Als Ergebnis hatte ich nur noch 1 leere Registerkarte (da ich damit wohl die alte Stringliste gelöscht und eine Neue erstellt habe), was mich zu (2) führt:
zu (2): Ich muss also über TObject* gehen, wenn ich Eigenschaften der Registerkarten zur Laufzeit ändern möchte? Das führt mich zu (3):
zu (3): Vielen Dank für den Super-Hinweis, der steht tatsächlich ordentlich was drin. Hätte ich nicht gedacht, da ja schon in der BCB3-Hilfe irgendwo stand, dass TabbedNotebook nur noch aus Kompatiblitätsgründen enthalten ist.
Leider werde ich, in Bezug auf mein Problem, bisher nicht schlau aus der Hilfe, auch der Link macht es nicht besser (ich möchte ja keine Kompo's hinzufügen und Delphi kann ich schon garnicht). Kann jemand / Kannst du Morris evtl einen Schnipsel posten, wie man die Beschriftung eines Reiters einer vorhandenen Registerkarte in TabbedNotebook zur Laufzeit ändern kann?
-
[Edit] Die Frage vergessen wir einfach... [/Edit]
-
Wenn dein Beispiel tatsächlich compiliert wird, solltest du deine BCB-Installation überprüfen. Normalerweise sollte etwas in der Art wie "Caption ist keine Eigenschaft von TStrings" gemeldet werden.
Selbst im BCB3 sollte die Hilfe zu TStrings enthalten sein. Daraus müsste folgendes klar werden:
TabbedNotebook1->Pages->Strings[0] = "vorgekaut und ausgespuckt";Wenn du wirklich nur die Bezeichnung der Tabs ändern willst, brauchst du nicht weiter zu forschen. Falls du aber die Tabs manipulieren willst, mußt du über Pages->Objects auf die Tabs zugreifen und dafür ist der Link hilfreich. Spätestens jetzt sollte klar sein, dass die Beschriftung keine Eigenschaft der Tabs sondern des TabbedNotebooks ist.
Mit "Delphi kann ich schon garnicht" kommst du nicht weiter, wenn du die VCL benutzen und vielleicht etwas mehr willst. Die VCL ist nunmal in Delphi geschrieben. Außerdem kommt es nur auf die Struktur der Komponenten an und die erschließt sich auch, wenn man die Sprache nicht kennt.
-
Morris Szyslak schrieb:
Wenn dein Beispiel tatsächlich compiliert wird, solltest du deine BCB-Installation überprüfen. Normalerweise sollte etwas in der Art wie "Caption ist keine Eigenschaft von TStrings" gemeldet werden.
Ja stimmt, habe mich verpostet, sry. Ich hatte Folgendes gemacht:
Form4->TabbedNotebook2->Pages[0].Text= "Test";Morris Szyslak schrieb:
Selbst im BCB3 sollte die Hilfe zu TStrings enthalten sein. Daraus müsste folgendes klar werden:
TabbedNotebook1->Pages->Strings[0] = "vorgekaut und ausgespuckt";Wenn du wirklich nur die Bezeichnung der Tabs ändern willst, brauchst du nicht weiter zu forschen.
Ja, in der BCB3-Hilfe steht ordentlich was zu TStrings, aber so direkt ist mir das eben nicht klar geworden, wie ich hier ein TStrings-Element verändere.. Manchmal ist die Hilfe noch echt kryptisch für mich, da stehe ich dann vorm Wald und finde in meiner Panik keinen einfachen Baum.
Tatsächlich erreiche ich durch den von dir geposteten Code schon, was ich wollte. Daher vielen Dank dafür. Auf die Komponenten die auf den Tabs liegen, kann ich ja direkt zugreifen.
"vorgekaut und ausgespuckt" reißt ganz schön runter
Aber du hast wohl recht. Ich stelle mich einfach manchmal blöd an. Gott sei Dank, kann ich ja dann hier nachfragen und hilfsbereite Leute wie du bringen mich auf den rechten Pfad!Morris Szyslak schrieb:
Falls du aber die Tabs manipulieren willst, mußt du über Pages->Objects auf die Tabs zugreifen und dafür ist der Link hilfreich.
Ok, seh ich ein. Allerdings würde der Link mir auch dann nicht helfen, weil mich diese Delphi-Syntax (die ich noch garnicht kenne) verwirrt.
Morris Szyslak schrieb:
Spätestens jetzt sollte klar sein, dass die Beschriftung keine Eigenschaft der Tabs sondern des TabbedNotebooks ist.
Ja, ist jetzt plötzlich klar wie Kloßbrühe!
Morris Szyslak schrieb:
Mit "Delphi kann ich schon garnicht" kommst du nicht weiter, wenn du die VCL benutzen und vielleicht etwas mehr willst. Die VCL ist nunmal in Delphi geschrieben. Außerdem kommt es nur auf die Struktur der Komponenten an und die erschließt sich auch, wenn man die Sprache nicht kennt.
Da ich die VCL benutzen und später gerne eigene Komponenten schreiben möchte, muss ich das saloppe "Delphi kann ich schon garnicht" wohl überdenken. Aber momentan ist es halt der Stand der Dinge. Und das die VCL in Delphi geschrieben ist, weiß ich erst seit gestern (wirklich). Die hohe Relevanz der Komponentenstruktur werde ich mir merken, Danke!
Zusammenfassend sei gesagt: Danke, ich hab immernoch nur eine klitzekleine Ahnung vom großen Ganzen, das Problem ist gelöst und ich habe fertig!
-
Du kannst neue Komponenten durchaus auch in C++ schreiben. Du mußt also Delphi (Object Pascal) nicht im Detail beherrschen.
-
Ok. Ich dachte in diesem Zusammenhang nur, Delphi-Kenntnisse wären dafür noch wichtiger. Gut zu wissen, dass es nicht ganz so ist. Ich hab mir sogar schonmal das Tutorial zum Thema eigene Kompo's angeschaut. Jedoch habe ich gemerkt, dass ich dafür wohl noch nicht bereit bin. Es ist mir fast zu jedem Satz eine Frage eingefallen!