Deutsch
Forum

TCItem-Struktur für TabControls

 
- Seite 1 -



Jac
de
Lad
Hallo Community.

Kann mir jemand die TCItem-Struktur für Tabcontrols posten? Ich will in Tabcontrols Icons einfügen. Dazu brauche ich die Struktur. Ich habs mit
KompilierenMarkierenSeparieren
Struct TCItem=mask&,dwState&,dwStateMask&,lpreserved1&,lpreserved2&,pszText&,cchTextMax&,iImage&,lParam&

probiert, aber es funktioniert nicht. Ich setze die Imagelist, lese ein Item mit TCM_GetItem, setze das iImage& und schreibe es zurück mit TCM_SetItem, aber es klappt nicht.
Vielleicht hat ja jemand einen vorgefertigten Quelltext, das würde mir sehr weiterhelfen.

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
06.01.2008  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


Jörg
Sellmeyer
und der Reparaturdienst ist wieder unterwegs...
 $H windows.ph
 $H messages.ph
 $H commctrl.ph
 $H structs.ph
Struct TCItem = mask&,\
dwState&,\
dwStateMask&,\
pszText&,\
cchTextMax&,\
iImage&,\
lParam&
CLS
var TCItem# = New(TCItem)
var TabCtrl& = create("TabCtrl", %HWnd, "Test", 300, 10, 200, 200)
'Wir ändern den Text von Tab 0 (= 1. Reiter) per API
var NeuText$ = "Hallo Jac!"

with TCItem#

    .mask& = ~TCIF_TEXT'Was ist zu schreiben bzw. zu lesen
    .pszText& = Addr(NeuText$)
    .cchTextMax& = 255

endwith

waitInput
SendMessage(TabCtrl&, ~TCM_SETITEM, 0, TCItem#)
waitInput
'Und nun fügen wir eine Imgelist hinzu ...
var hToolBmp& = create("hPic", 0, "TOOLBAR")
var hIL& = Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192))
SendMessage(TabCtrl&, ~TCM_SETIMAGELIST, 0, hIL&)
'... und weisen dem 1. Reiter (Tab 0) ein Bild zu)

with TCItem#

    .mask& = ~TCIF_IMAGE'Was ist zu schreiben bzw. zu lesen
    .iImage& = 20'das 20. Bild

endwith

print ~TCIF_IMAGE
SendMessage(TabCtrl&, ~TCM_SETITEM, 0, TCItem#)
waitinput
waitinput
waitinput
dispose TCItem#
end

Meine Strukturdefinition wollte auch erst nicht. Ich hatte fälschlicherweise angenommen, iImage und cchTextMax seien Integer. Gut, dass man hier schnell mal nachschauen kann.
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.06.2018  
 




RGH
Hallo,
so sieht die Strukturdefinition bei mir in der API-Hilfe aus:
KompilierenMarkierenSeparieren
Das #if/#else/#endif ist eine Compilerdirektive wie das $IF/$ELSE/$ENDIF in XProfan. Du mußt also entweder dwState/dwStateMask oder lpReserved1/lpReserved2 verwenden!
Streiche also die beiden lpReserved-Variablen aus der Struktur und es sollte gehen.
dwState und dwStateMask sind erst mit IE 3.0 dazugekommen, davor gab es nur die Platzhalter, die nicht ausgewertet wurden.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
06.01.2008  
 




Jac
de
Lad
Ich habs auch schon ohne die Reservisten erfolglos probiert...
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
07.01.2008  
 




Jac
de
Lad
Ahh, habs endlich rausgefunden. ich werds heute abend mal für alle posten.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
07.01.2008  
 




RGH
Ok, hier ein komplettes Beispiel. Zuerst wird der Text mit SET_ITEM geändert und im zweiten Schritt ein Bild aus einer ImageList hinzugefügt:
KompilierenMarkierenSeparieren
 $H windows.ph
 $H messages.ph
 $H commctrl.ph
 $H structs.ph
Struct TCItem = mask&,
dwState&,
dwStateMask&,
pszText&,
cchTextMax&,
iImage&,
lParam&
CLS
var TCItem# = New(TCItem)
var TabCtrl& = create(TabCtrl, %HWnd, Test, 300, 10, 200, 200)
Wir ändern den Text von Tab 0 (= 1. Reiter) per API
var NeuText$ = Hallo Jac!

with TCItem#

    .mask& = ~TCIF_TEXT      Was ist zu schreiben bzw. zu lesen
    .pszText& = Addr(NeuText$)
    .cchTextMax& = 255

endwith

SendMessage(TabCtrl&, ~TCM_SETITEM, 0, TCItem#)
waitInput
Und nun fügen wir eine Imgelist hinzu ...
var hToolBmp& = create(hPic, 0, TOOLBAR)
var hIL& = Create(ImageList, 16, 16, hToolBmp&, rgb(192, 192, 192))
SendMessage(TabCtrl&, ~TCM_SETIMAGELIST, 0, hIL&)
... und weisen dem 1. Reiter (Tab 0) ein Bild zu)

with TCItem#

    .mask& = ~TCIF_IMAGE      Was ist zu schreiben bzw. zu lesen
    .iImage& = 20             das 20. Bild

endwith

SendMessage(TabCtrl&, ~TCM_SETITEM, 0, TCItem#)
waitinput
dispose TCItem#
end

Das sollte Dir weiterhelfen.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.01.2008  
 




Jac
de
Lad
Oach menno, ich sitz hier Stunden um das rauszukriegen und wenn ich schreibe, dass ichs hab, postet Roland hier schnell was ab. Das ist so deprimierend. Aber Hauptsache es geht jetzt.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
07.01.2008  
 




RGH
Jac
Oach menno, ich sitz hier Stunden um das rauszukriegen und wenn ich schreibe, dass ichs hab, postet Roland hier schnell was ab. Das ist so deprimierend. Aber Hauptsache es geht jetzt.


Erst nachdem ich das Beispielprogramm angepasst und gepostet hatte, habe ich Deinen Post gesehen, Du warst halt ein paar Minuten schneller! ;)

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.01.2008  
 




Jac
de
Lad
Dann mach ich eben ein Codesnippet mit Icons, SetActiveTab etc., damit wir alles beieinander haben. Und ne eigene Containerfunktion kreiere ich auch noch, hehehe.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
07.01.2008  
 




Jörg
Sellmeyer
Zu Rolands Beispiel sollte man aber dazu schreiben, daß es erst ab XProfan11 läuft!
@Jac: Schreib doch ein Bsp., das eine Api-Imagelist nutzt, für vorherige Versionen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.01.2008  
 




Jac
de
Lad
Hm, da würde sich ein eigener Imagelist-Thread lohnen...
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
07.01.2008  
 




Jörg
Sellmeyer
und der Reparaturdienst ist wieder unterwegs...
 $H windows.ph
 $H messages.ph
 $H commctrl.ph
 $H structs.ph
Struct TCItem = mask&,\
dwState&,\
dwStateMask&,\
pszText&,\
cchTextMax&,\
iImage&,\
lParam&
CLS
var TCItem# = New(TCItem)
var TabCtrl& = create("TabCtrl", %HWnd, "Test", 300, 10, 200, 200)
'Wir ändern den Text von Tab 0 (= 1. Reiter) per API
var NeuText$ = "Hallo Jac!"

with TCItem#

    .mask& = ~TCIF_TEXT'Was ist zu schreiben bzw. zu lesen
    .pszText& = Addr(NeuText$)
    .cchTextMax& = 255

endwith

waitInput
SendMessage(TabCtrl&, ~TCM_SETITEM, 0, TCItem#)
waitInput
'Und nun fügen wir eine Imgelist hinzu ...
var hToolBmp& = create("hPic", 0, "TOOLBAR")
var hIL& = Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192))
SendMessage(TabCtrl&, ~TCM_SETIMAGELIST, 0, hIL&)
'... und weisen dem 1. Reiter (Tab 0) ein Bild zu)

with TCItem#

    .mask& = ~TCIF_IMAGE'Was ist zu schreiben bzw. zu lesen
    .iImage& = 20'das 20. Bild

endwith

print ~TCIF_IMAGE
SendMessage(TabCtrl&, ~TCM_SETITEM, 0, TCItem#)
waitinput
waitinput
waitinput
dispose TCItem#
end

Meine Strukturdefinition wollte auch erst nicht. Ich hatte fälschlicherweise angenommen, iImage und cchTextMax seien Integer. Gut, dass man hier schnell mal nachschauen kann.
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.06.2018  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.937 Betrachtungen

Unbenanntvor 0 min.
Sven Bader13.03.2023
Normann Strübli01.02.2023
RudiB.15.09.2022
Stringray05.01.2022
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Jac de Lad (6x)
RGH (3x)
Jörg Sellmeyer (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie