Foro | | | | - Page 1 - |
| Julian Schmidt | Ciao, ich würde gerne ein Listview mit sowohl horizontalen als auch vertikalen Spalt-, Zeilenbuttons erstellen. Bei den Zeilenbuttons ist mir unerheblich ob man die Höhe und Breite per Maus verändern kann oder nicht. Außerdem ist die horizontale Sortierung der Itemtexte unnötigt. Wie kann man so etwas realisieren?
LG
Julian57 |
| | | | |
| | | | - Page 2 - |
| | « Dieser Beitrag wurde als Lösung gekennzeichnet. » | | - Page 3 - |
| Andreas Miethe
| Julian57 (02.07.12)
hmmm......gut. Nur wie bekommt man das Feld zur Texteingabe ausgeblendet. Und die Skalierbarkeit per Maus unterdrückt? Außerdem müssen die "Sortierungspfeile" nicht unbedingt gesetzt sein.
Den Stil ändern ! KompilierenMarkierenSeparierenDef &HDM_INSERTITEMA $00001201
def CreateWindowEx(12) !"User32","CreateWindowExA"
decimals 0
cls
var hwndHeader&=createWindowEx(0,"SysHeader32","",$50800802, 0, 0, 0, 0, %hWnd,0,%hInstance, 0)
declare txt#
dim txt#,64
string txt#,0="Hallo Welt"
declare hditem#
dim hditem#,28
long hditem#,0=$43,200,txt#,0,64,$4000,0
sendMessage(hwndHeader&,&hdm_insertItemA,0,hdItem#)
string txt#,0="Hallo Karl"
long hditem#,0=$43,200,txt#,0,64,$4000,0
sendMessage(hwndHeader&,&hdm_insertItemA,1,hdItem#)
SetWindowPos hwndHeader&=10,10 - 400,32
dispose hditem#
while 1
waitinput
wend
end
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 02.07.2012 ▲ |
| | |
| | Julian Schmidt | Sieht sehr komplex aus. Ich werde mir die Beispielquellcodes mal anschauen und versuchen mir etwas aus dem Haaren zu raufen. Ich hoffe doch auf etwas Unterstützung. Bei Problemen. |
| | | | |
| | Julian Schmidt | Hallo & vlt mal eine ganze doofe Frage. Ich hab mir gerade einiges durch gelesen. Und besonders die Beispiele auf dieser Seite[...] sind sehr aufschlussreich. Allerdings wird dort immer ein ganzes Listview erstellt!? Ist das in meiner Situation unnötig, oder ebenfalls notwendig. Ich möchte ja nur das Testata erstellen und bearbeiten (Custom Draw). |
| | | | |
| | | Schlimmes aus dem Bett holendes Gewitter hier grad in Berlin...
Du müsstest wohl schon ein "komplettes" ListView erzeugen aber ich muss auch gestehen selbst noch kein Listview mit Custom-Draw gezeichnet zu haben.
Ich hatte mich dann immer eher dazu entschieden gleich alles selbst zu zeichen. |
| | | | |
| | Thomas Freier | Kann im Moment auch den Sinn nicht erkennen. In seinem Musterbeispiel ist ja nur der 1.Spaltenbutton durch eine Grafik zu ersetzen. Wenn's denn sein soll, in die Items der 1.Spalten einen Button circa Create... . Aber ist schon irreführend ein Button ohne Funktion. Sonst ein Icon setzen. Beispiel (hier in der 5. Spalte) : [...] |
| | | | |
| | Julian Schmidt | @Thomas Der erste Button in dem "Zeile\Spalte" drin steht ist mir eig. relativ egal. Es kommt mir nur auf die Buttons da drunter an! Willst du oben andeuten das die unteren Buttons auch ohne CostumDraw possibile sind.
[OFFTOPIC]@IF Das Gewitter war bei mir schon gestern Abend\Nacht. Wird dann wohl zu euch weiter gezogen sein.Saluto[/OFFTOPIC] |
| | | | |
| | Julian Schmidt | Frabbing hat mich gerade per Mail auf diesen Eintrag[...] in MSDN aufmerksam gemacht. Es scheint so als ob man ein Testata auch ohne ein Listview erstellen kann. Ergo auch einen Testata-Button ohne Listview. Mich würde die Umsetzung in XProfan interessieren. Bekommt das jemand hin? Ich scheitere an meinen geringeren Erfahrungen mit Klassen,Strukturen und API. |
| | | | |
| | Thomas Freier | Bin mir nicht klar was du möchtest. Mal ist die Rede von Headerbutton, mal von Button in der Zeile. Beispiel zum Button in der Zeile mit der Listview.dll. Der Stil des Button läßt sich sicher anpassen. Wenn der Zeilenbutton wie der Spaltenbutton aussehen soll, bleibt nur ein Hoverbutton ala SKControl.dll circa oder selbst erstellen. KompilierenMarkierenSeparierenDeclare LV_Handle&,LV_Column&,LV_Row&,LV_Xoffset&,LV_Yoffset&,LV_Width&,LV_Height&
Declare Bereich#
Dim bereich#,320
Clear bereich#
$I Listview_Funktionen.inc
SETTRUECOLOR 1
var Font& = @CREATE("FONT","Verdana",14,0,0,0,0)
Window 0,0-608,413
Windowtitle "Beispiel"
var lvdll&=usedll("Listview.dll")
var listview&=CreateListView(%hwnd,%hinstance,0,RGB(255,255,255),-1,$21)
SetFont listview&,Font&
InsertColumn listview&,"",60,0
InsertColumn listview&,"Spalte 1",100,2
InsertColumn listview&,"Spalte 2",100,2
ShowListView(listview&,10,10,300,200)
InitMessages(%hwnd)
declare but%[],x%
WhileLoop 0,3,1
SetItem listview&,"","Telefon","Super"
Clear bereich#
GetOwnControlParas(bereich#,listview&,0,&loop)
Get_LvData_Button'Feldparameter auslesen
but%[&loop]= CONTROL("BUTTON",str$(int(&loop+1)), $54010000, LV_Xoffset&-2,LV_Yoffset&,LV_Width&-2,LV_Height&-4,LV_Handle&,100,%hinstance,0)
SetFont but%[&loop],font&
wend
while 1
waitinput
wend
Dispose Bereich#
Dispose Mousepos#
Dispose HT_Info#
CloseMessages(%hwnd)
freedll lvdll&
$I Listview_Dispose.inc
DELETEOBJECT Font&
End
Proc Get_LvData_Button
LV_Handle&=Long(bereich#,0)'Listview Handle
LV_Xoffset&=Long(bereich#,12)'X Offset
LV_Yoffset&=Long(bereich#,16)'Y Offset
LV_Width&=Long(bereich#,20)'Breite
LV_Height&=Long(bereich#,24)'Höhe
Endproc
|
| | | | |
| | Julian Schmidt | @Thomas Testata-Buttons nur untereinander statt nebeneinander. Die Testata-Buttons werden in der Listview.dll auch immer Spaltbuttons benannt. Warum meine untereinander erstellten Testata-Buttons nicht Zeilenbuttons nennen. |
| | | | |
| | Thomas Freier | So? KompilierenMarkierenSeparieren $H commctrl.ph
Declare LV_Handle&,LV_Column&,LV_Row&,LV_Xoffset&,LV_Yoffset&,LV_Width&,LV_Height&
Declare Bereich#
Dim bereich#,320
Clear bereich#
$I Listview_Funktionen.inc
SETTRUECOLOR 1
var Font& = @CREATE("FONT","Verdana",14,0,0,0,0)
Window 0,0-608,413
Windowtitle "Beispiel"
var lvdll&=usedll("Listview.dll")
var listview&=CreateListView(%hwnd,%hinstance,0,RGB(255,255,255),-1,$21)
SetFont listview&,Font&
setstyle Listview&,getstyle(Listview&) | ~LVS_NOCOLUMNHEADER
InsertColumn listview&,"",60,0
InsertColumn listview&,"Spalte 1",100,2
InsertColumn listview&,"Spalte 2",100,2
ShowListView(listview&,10,10,300,200)
InitMessages(%hwnd)
declare but%[],x%
WhileLoop 0,3,1
SetItem listview&,"","Telefon","Super"
Clear bereich#
GetOwnControlParas(bereich#,listview&,0,&loop)
Get_LvData_Button'Feldparameter auslesen
but%[&loop]= CONTROL("BUTTON",str$(int(&loop+1)), $54010000, LV_Xoffset&-4,LV_Yoffset&,LV_Width&,LV_Height&-4,LV_Handle&,100,%hinstance,0)
SetFont but%[&loop],font&
wend
while 1
waitinput
wend
Dispose Bereich#
Dispose Mousepos#
Dispose HT_Info#
CloseMessages(%hwnd)
freedll lvdll&
$I Listview_Dispose.inc
DELETEOBJECT Font&
End
Proc Get_LvData_Button
LV_Handle&=Long(bereich#,0)'Listview Handle
LV_Xoffset&=Long(bereich#,12)'X Offset
LV_Yoffset&=Long(bereich#,16)'Y Offset
LV_Width&=Long(bereich#,20)'Breite
LV_Height&=Long(bereich#,24)'Höhe
Endproc
|
| | | | |
| | Julian Schmidt | Nein! Du scheinst das immernoch falsch zu verstehen. Ich möchte keine einfachen Buttons und auch keine Headerbuttons auf einem Item, sonderen einfach pure Headerbuttons erstellen, um diese neben einem Listview zu erstellen.
Julian57 (29.06.12)
Kann man Buttons ähnlich Listview-Spaltbuttons einzeln erstellen (per API). Dann potuto ich ein ganz normales Listview verwenden. Links die Buttons anordnen. Die Zeilehöhe des Listviews auf die Höhe der Spaltbuttons abändern. Und das ganze mit einen schönen Rahmen umranden.
Julian57 (01.07.12)
Frabbing hat mich gerade per Mail auf diesen Eintrag [...] in MSDN aufmerksam gemacht. Es scheint so als ob man ein Testata auch ohne ein Listview erstellen kann. Ergo auch einen Testata-Button ohne Listview. Mich würde die Umsetzung in XProfan interessieren. Bekommt das jemand hin? Ich scheitere an meinen geringeren Erfahrungen mit Klassen,Strukturen und API. |
| | | | |
| | | Und diese Buttons links sollen nicht vertikal mitscrollen? |
| | | | |
| | | Irgendwas stimmt hier aber noch nicht da kein Text angezeigt wird:
Download
KompilierenMarkierenSeparieren {$compiler c:\xprofan11}
{$runtime c:\xprofan11}
{$cleq}
def InitCommonControlsEx(1) !"COMCTL32","InitCommonControlsEx"
decimals 0
cls
declare initc#
dim initc#,8
long initc#,0=8,1
InitCommonControlsEx(initc#)
var hwndHeader&=createWindowEx(0,WC_HEADER,0,WS_CHILD | WS_BORDER | HDS_BUTTONS | HDS_HORZ, 0, 0, 0, 0, hWnd,0,hInstance, 0)
declare txt#
dim txt#,64
string txt#,0="Hallo Welt"
declare hditem#
dim hditem#,28
long hditem#,0=28,HDI_TEXT | HDI_FORMAT | HDI_WIDTH,300,txt#,0,10,HDF_LEFT | HDF_STRING
sendMessage(hwndHeader&,hdm_insertItem,0,hdItem#)
SetWindowPos hwndHeader&=10,10 - 500,100
while 1
waitinput
wend
end
|
| | | | |
|
AnswerTopic-Options | 38.357 Views |
ThemeninformationenDieses Thema hat 5 subscriber: |