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