AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [Non-VCL] TabControl - Wie geht's weiter?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Daniel G · begonnen am 2. Jul 2005 · letzter Beitrag vom 5. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Daniel G
(Gast)

n/a Beiträge
 
#1

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

  Alt 2. Jul 2005, 23:16
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:

Delphi-Quellcode:
var
  hwndTab: DWord;
  tie: TTCITEM;

function WndProc(hWnd: HWND; uMsg: UINT; wP: wParam; lP: LParam):
  lresult; stdcall;
begin
case uMsg of
    WM_CREATE:
      begin
[...]
   hwndTab := CreateWindow(WC_TABCONTROL, '',
          WS_VISIBLE or WS_CHILD or TCS_BUTTONS or TCS_FLATBUTTONS or TCS_MULTILINE, 0, 0, 400,280, hWnd,0, hInstance,
          nil);

        tie.mask := TCIF_TEXT or TCIF_IMAGE;
        tie.iImage := -1;
        tie.pszText := 'Main';
        Sendmessage(hwndTab,TCM_InsertItem,0,Integer(@tie));

        tie.pszText := 'Additional Info';
        Sendmessage(hwndTab,TCM_InsertItem,1,Integer(@tie));

        tie.pszText := 'More Additional Info';
        Sendmessage(hwndTab,TCM_InsertItem,2,Integer(@tie));

        tie.pszText := 'About && Help';
        Sendmessage(hwndTab,TCM_InsertItem,3,Integer(@tie));
 end;
[...]
end;
Was ich vorhabe:

Ich möchte in NonVcl TabControls verwenden, die sich so verhalten wie TPageControl und TTabsheet.

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").

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...)

mfg
Daniel


hilfe....
Selbst in einem französischem Forum hab' ich schon gesucht. Und das soll was heißen...
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

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

  Alt 3. Jul 2005, 00:51
Du willst deine Controls auf die Seiten verteilen?

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

Button1.parent := TabSheet2;
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#3

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

  Alt 3. Jul 2005, 01:39
Zitat von Daniel G:
Aber wie bekomme ich denn jetzt meine Controls dazu, auf die Tabs zu reagieren
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 )
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

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

  Alt 3. Jul 2005, 08:22
Eigentlich ja, MrKnogge.
Mit anderen Worten: Daniel G, wir brauchen mehr Infos.

Und mir fällt gerade auf, dass es in den Win32-API-Tutorials kein Kapitel darüber gibt. Luckie?
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#5

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

  Alt 3. Jul 2005, 11: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
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

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

  Alt 3. Jul 2005, 11:58
Zitat von Olli:
Child-Dialoge
So hatte ich es im Gedächtnis. Luckie hat das in einem seiner Programme benutzt. Und eigentlich geht es ja erst mal nur um die Grundlagen. Wir haben so viele Themen in den Tutorials, und dennoch wird nicht alles (im Sinne von: wirklich restlos alles!) erläutert. Bei meinen Themen spielt auch das persönliche Interesse eine Rolle. Einige Sachen habe ich nur kurz angerissen, andere habe ich genauer erläutert.

Hm, was mir aber einfällt, ich habe für die Systemsteuerungs-Demo Tabs verwendet. Aber war das nur ein TabControl (wie Daniel will), oder gehörte das zu den PropertySheets (s. Assistenten-Tutorial)? Ich glaube letzteres. Muss ich noch mal nachschauen.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

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

  Alt 3. Jul 2005, 12:36
Zitat von MathiasSimmack:
Hm, was mir aber einfällt, ich habe für die Systemsteuerungs-Demo Tabs verwendet. Aber war das nur ein TabControl (wie Daniel will), oder gehörte das zu den PropertySheets (s. Assistenten-Tutorial)? Ich glaube letzteres. Muss ich noch mal nachschauen.
Ich denke eher letzteres

Normalerweise erstellt man eben Child-Dialoge die dann noch bestimmte (Fenster-)Stile brauchen. Man kann zugunsten besserer Lokalisierung sogar den Dialogtitel benutzen um den Tabtitel zu setzen ...
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#8

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

  Alt 3. Jul 2005, 14:08
Hollà die Waldfee. Ich hatte zwar gehofft, das mir vllt. jemand helfen kann, aber mit so vielen Antworten habe ich dann doch nicht gerechnet.

Also, der Reihe nach:

(wer war es noch, der es nicht ausstehen konnte, wenn ein Beitrag mit zigtausend Zitaten gespickt war? )

Zitat von Olli:
Der Quelltext hilft erstmal primär nicht weiter, außer bei einer Erkenntnis: du erstellst garkeine Controls...
Stimmt, die kommen ja erst danach, das war ja mein Problem. Hab sie halt so erstellt, wie man sie "normalerweise" unter Verwendung der Win32Api erstellt.

Zitat von Olli:
Was du willst, machst du in WM_NOTIFY:
Jepp, so weit war ich auch schon, allerdings warf sich dann bei mir die Frage auf, wie ich denn nun genau auf "OnSelChange" (Ja, auch das hatte ich schon im PSDK entdeckt) reagieren kann, wie also die Syntax in diesem Falle aussehen muss.

Zitat von Olli:
http://assarbad.net.local/stuff/!export/ancient/useless_oldstuff.rar

Enthalten ist u.a. eine PropSht.zip - die ist was du suchst.
Juhuh, genausowas habe ich gesucht... im Zweifelsfalle wollte ich halt auch einen Resourcendialog verwenden. Übrigens stimmt der Link nicht ganz

Zitat von Olli:
@Fragesteller: Hätte da noch eine Variante wie man es noch ein wenig eleganter lösen kann.
Das klingt interessant. Also, wenns dir nicht zuviel Arbeit macht würd' ichs gerne wissen.



Vielen Dank
Daniel
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#9

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

  Alt 3. Jul 2005, 14:23
Zitat von Daniel G:
(wer war es noch, der es nicht ausstehen konnte, wenn ein Beitrag mit zigtausend Zitaten gespickt war? )
Der Simmatze war's

Zitat von Daniel G:
Übrigens stimmt der Link nicht ganz
Mist ... vergessen das .local zu entfernen. Ist halt schneller wenn man seine Webseite nochmal lokal hat - vonwegen 56k-Modem *schnief*

Zitat von Daniel G:
Das klingt interessant. Also, wenns dir nicht zuviel Arbeit macht würd' ichs gerne wissen.
Gibt mir etwas Zeit. Vermutlich bis zum kommenden Wochenende (zirka).
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#10

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

  Alt 3. Jul 2005, 21:29
Zitat von Daniel G:
Das klingt interessant. Also, wenns dir nicht zuviel Arbeit macht würd' ichs gerne wissen.
Gibt mir etwas Zeit. Vermutlich bis zum kommenden Wochenende (zirka).[/quote]

Vielen Dank!

P.S.: 56k is' doch noch originell...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz