| |
|
|
Bernd Kaiser | Hallo Listview-Amici,
ich kämpfe mit folgendem Problem:
In meinem Programm soll mit zwei Listviews gearbeitet werden. In einem unsichtbaren Listview (Listview2&) stehen alle verfügbaren Daten und von dort sollen dann Zeilen in das sichtbare Listview (Lisstview1&) kopiert werden. Mein Problem liegt darin, dass ich zwar beide Listviews erzeugt habe, sobald aber dann die Suchfunktion in Listview2& suchen soll kommt die Meldung, dass diese Variable nicht definiert ist.
Meine Vermutung ist, dass ich bei der Deklaration von Listview1& das Listview2& wieder zerstöre. Hier mal der Code der betreffenden Stelle: KompilierenMarkierenSeparieren
PROC ...
REM Artikeldaten in ListView2 einlesen
text$="SQL.DAT" SQL.DAT enthält die Ergebnisse des SQL-Befehls
bytes&=@FileSize(text$) Speicherbereich festlegen
If bytes&>0
Dim bereich#,bytes&
x&=MixRGBs(GetSysColor(15),$00ffffff)
listview2&=CreateListView(%hwnd,%hinstance,0,x&,-1,$31) ListView2 = Liste aller Artikel
ReadFileQuick(addr(text$),bereich#,0,bytes&)
Spalten&=SetColumnsFromMem(listview2&,bereich#,addr(y&))
CsvToListview(listview2&,(bereich#+y&),(bytes&-y&),Spalten&)
Dispose bereich#
EndIf
Spaltentitel umbenennen
Dim Bereich#,256
1. Spalte
text$="Lief.-Nr"
String Bereich#,0=text$
x&=SetColumnName(listview2&,Bereich#,(0))
2. Spalte
text$="Lieferant"
String Bereich#,0=text$
x&=SetColumnName(listview2&,Bereich#,(1))
Dispose Bereich#
Spaltentitel umbenennen
Die Breite der drei ersten Spalten korrigieren
SetColumnWidth(listview2&,0,75)
SetColumnWidth(listview2&,1,250)
SetColumnWidth(listview2&,2,0) diese Spalte wird zuviel aus SQL.DAT geholt, daher auf Breite=0 gesetzt, damit sie nicht zu sehen ist
Die Breite der drei ersten Spalten korregieren
Spalten des Listviews sortierbar machen
AutoSortListview listview2&,2,1 macht die Spalten sortierbar durch Klick auf den Spaltentitel
Spalten des Listviews sortierbar machen
REM Artikeldaten in ListView2 einlesen
REM Das ListView für den Hauptbildschirm anzeigen (noch leer)
rem x&=MixRGBs(GetSysColor(15),$00ffffff)
listview1&=CreateListView(%hwnd,%hinstance,0,-1,-1,$25)
ShowListView(listview1&,30,100,560,250) Anzeige des Listviews
REM Das ListView für den Hauptbildschirm anzeigen (noch leer)
EndProc
Proc Button4_OnClick
REM nach Artikelnummer in Listview2& suchen
DECLARE such$
Feld ist leer, dann sofort ListView2 aufrufen, um dort zu suchen
print @GetText$(ArtNrSearch&)
print LEN(TRIM$(@GetText$(ArtNrSearch&)))
If @Equ(LEN(TRIM$(@GetText$(ArtNrSearch&))),0) nichts eingegeben
@Messagebox("Keine Artikel-Nr. eingegeben","nach Artikel-Nr. suchen",0)
ELSE Feld ist gefüllt, dann per Suchfunktion SearchText in ListView2 nach dieser Nummer suchen
such$=ArtNrSearch&
y&=SearchText(listview2&,0,GetLines(listview&),0,addr(such$),10,addr(x&))
Case (y&<>-1):Print "Gefunden, Zeile "+Str$(y&)+" / Spalte "+Str$(x&)
ENDIF
SetText ArtNrSearch&,"" Feldinhalt nach Rückkehr wieder löschen
ref='./../../references-fonction/xprofan/endproc/'>EndProc
In froher Erwartung eurer Aiuto.
Saluto Bernd |
|
|
| Win98SE, Profan 7.5 -------------------------------------------------- Programmieren ist wie küssen: Man kann darüber reden, man kann es beschreiben, aber man weiß erst, was es bedeutet, wenn man es getan hat. | 20.07.2005 ▲ |
|
|
|
|
| Hm - also das Codepiece nutzt mir nicht so viel um das Problem erkennen zu können - da fehlt halt der Zusammenhang.
Las doch mal Dein Prog vom XPSE überprüfen...
Und wenn das auch noch nicht hilft - nutze doch mal den XPSE {$Debug} Compilerschalter - ich denke damit lässt sich Derartiges schnell finden. [...]
Salve, iF. |
|
|
| |
|
|
|
Frank Abbing | Hi,
scheint ja kein Listview Problem zu sein. Eher eines, das in deinem Code entsteht. Wahrscheinlich hast dus in der Zwischenzeit schon behoben. |
|
|
| |
|
|
|
Bernd Kaiser | Ja, die Lösung ist mir heute während der Bahnfahrt eingefallen. Die Variable ListView2& muss naturalmente global deklariert werden.
Man lernt halt nur aus Fehlern.
Saluto Bernd |
|
|
| Win98SE, Profan 7.5 -------------------------------------------------- Programmieren ist wie küssen: Man kann darüber reden, man kann es beschreiben, aber man weiß erst, was es bedeutet, wenn man es getan hat. | 21.07.2005 ▲ |
|
|
|
|
Frank Abbing | Da hast du recht |
|
|
| |
|
|
|
Michael Wodrich | Ich würde mit der Editor-Suchfunktion auch mal nach Listview& suchen lassen.
Ist das korrekt, oder fehlt da an einigen Stellen die 2?
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 23.07.2005 ▲ |
|
|
|