Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#5

Re: [Non-VCL] TabControl - Wie geht's weiter?

  Alt 3. Jul 2005, 10:07
Die erste fundamentale Erkenntnis vorneweg: Tab controls enthalten keine Childs!!! Nie! <- immer im Hinterköpfchen behalten.

Zitat von Daniel G:
Wunderschönen Guten Abend alle zusammen,

eigentlich wollte ich ja keinen Thread aufmachen, aber im Moment komme ich einfach nicht weiter.

Also, folgendes Problem:

Soweit bin ich bis jetzt gekommen:
Der Quelltext hilft erstmal primär nicht weiter, außer bei einer Erkenntnis: du erstellst garkeine Controls ... aber weiter im Text. Die Begründung kommt nämlich noch.

Zitat von Daniel G:
Was ich vorhabe:

Ich möchte in NonVcl TabControls verwenden, die sich so verhalten wie TPageControl und TTabsheet.
Ganz so komfortabel wird das leider nicht gehen

Zitat von Daniel G:
Tja, jetzt habe ich da meine wunderschönen Tabs auf meinem Formular. Aber wie bekomme ich denn jetzt meine Controls dazu, auf die Tabs zu reagieren. Ich habe mir ein paar Beispiele in C angesehen, aber irgendwie blicke ich da nicht wirklich durch. Und weder Google noch die DP noch das DF konnten mir helfen. (Zumindestens nicht mit "TTCITEM").
Es gibt sogar Delphi-Source dazu (nämlich von mir). Habe es ehrlich gesagt auch nirgends gefunden. Aber frecherweise ist der Source einmal relativ versteckt und einmal nur in meinem EDA zu finden. Was du willst, machst du in WM_NOTIFY:
Delphi-Quellcode:
    WM_NOTIFY:
      begin
        hdr := PNMHDR(lParam);
        case hdr^.code of
          TCN_SELCHANGE: begin
              OnSelChange(hdr^.hwndFrom);
            end;
        end;
      end;
Jetzt fragst du dich sicher, wie du an OnSelChange() kommst?! Guckst du hier:
http://assarbad.net.local/stuff/!export/ancient/useless_oldstuff.rar

Enthalten ist u.a. eine PropSht.zip - die ist was du suchst.

Zitat von Daniel G:
Wie kann ich also soetwas wie die einzelnen Seiten bei TPageControl hinbekommen und wie plazieren ich dann meine Controls darauf?

(Wie ich generell Controls erstelle, weiß ich schon, so is' das ja nicht...)
Hehe, garnicht so trivial. Die Doku (PSDK) zu lesen, hätte dich allerdings weitergebracht (wenn auch nicht bis zum Ende, denn dazu habe ich damals auch lange experimentiert). Das Experimentieren kann ich dir wohl ersparen.

Bei weiteren Fragen einfach bescheidsagen!!

Zitat von ste_ett:
Du willst deine Controls auf die Seiten verteilen?

Delphi-Quellcode:
TPageControl erstellen
Control (z.B. Button) erstellen

Button1.parent := TabSheet2;
Aua! Lesen -> Verstehen. Was könnte Non-VCL (siehe Titel) wohl bedeuten?

Zitat von MrKnogge:
Was genau meinst du mit 'reagieren', meinst du das sie verschwinden, wenn du die Seiten wechselest ?
(das müsste doch von aleine gehen, wenn die Controls auf den Tabs liegen )
Tabs haben weder Controls noch haben sie sonstwas anderes!!! Tabs haben Reiter und einen Clientbereich. Das war's. Tab controls sind keine Page controls!!! Letztere "besitzen" die angezeigten Elemente.

Zitat von MathiasSimmack:
Und mir fällt gerade auf, dass es in den Win32-API-Tutorials kein Kapitel darüber gibt. Luckie?
Rate mal wieso ... ist nicht sooo trivial. Habe letztens wieder eine ganze Weile dran gesessen um das in MFC zum Laufen zu kriegen (da ist es etwas anders).

Ach ja ... natürlich kann man auch einzelne Controls statt Child-Dialogen in den Tabs anzeigen ... nur irgendwie ist das leichter Overkill.


@Fragesteller: Hätte da noch eine Variante wie man es noch ein wenig eleganter lösen kann. Allerdings muß ich es für Delphi noch eintippen - wann kommt bloß endlich mein direktes Delphi-Hirn-Interface. Hatte ich doch schon vor 5 Jahren bestellt
  Mit Zitat antworten Zitat