![]() |
Anzeige:
|
|
|||||||
| Helfer & Tools Programme für und in XProfan und Fragen dazu. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 30.01.2011
Ort: Feudingen
Alter: 43
Beiträge: 19
|
Hallo Frank,
ich kanns mir nicht erklären: ich hab ein Programm gebastelt, indem Listview-Zellen per Doppelclick bearbeitet werden sollen. Nach Eingabe und Bestätigen mit ENTER wird der ganze Zellinhalt gelöscht. In Deinem Demo-Programm (Lagerverwaltung mit Edit) läut alles einwandfrei (mit demselben aktuellsten X2er Interpreter). Kannst Du Dir da einen Reim drauf machen?
__________________
_____________________________________________ Schöne Grüße aus Wittgenstein von Stephan |
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
|
Kannst du einen kurzen Testcode erstellen, in dem der Fehler auftritt?
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#3 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 30.01.2011
Ort: Feudingen
Alter: 43
Beiträge: 19
|
Ich habs versucht, soweit zu kürzen, dass es noch einigermaßen läuft...
Code:
'***************************************************************************************************
' Schalter setzen *
'***************************************************************************************************
SET ("TRUECOLOR" , 1)
SET ("AUTOPAINT" , 2)
SET ("MESSAGEMODE", 1)
SET ("FASTMODE" , 0)
SET ("DEBUGMODE" , 0)' 0 bei fertigem Programm
SET ("ERRORLEVEL" , 1)' 0 bei fertigem Programm
SET ("LISTDEL" , ";")
'***************************************************************************************************
'***************************************************************************************************
' Header-Dateien laden *
'***************************************************************************************************
$H WINDOWS.PH
$H COMMCTRL.PH
'***************************************************************************************************
'***************************************************************************************************
' Include-Dateien laden *
'***************************************************************************************************
$I Listview_Funktionen.INC
$I USER.INC
'***************************************************************************************************
'***************************************************************************************************
'* Eigene Funktionen *
'***************************************************************************************************
DEF CreateTextL(6) CONTROL("STATIC",@$(2),$50000200,@%(3),@%(4),@%(5),@%(6),@%(1),100, %HInstance, $0000)
DEF CreateTextC(6) CONTROL("STATIC",@$(2),$50000201,@%(3),@%(4),@%(5),@%(6),@%(1),101, %HInstance, $0000)
DEF CreateTextR(6) CONTROL("STATIC",@$(2),$50000202,@%(3),@%(4),@%(5),@%(6),@%(1),102, %HInstance, $0000)
DEF CreateTextTL(6) CONTROL("STATIC",@$(2),$50001300,@%(3),@%(4),@%(5),@%(6),@%(1),103, %HInstance, $0000)
DEF CreateTextTC(6) CONTROL("STATIC",@$(2),$50001301,@%(3),@%(4),@%(5),@%(6),@%(1),104, %HInstance, $0000)
DEF CreateTextTR(6) CONTROL("STATIC",@$(2),$50001302,@%(3),@%(4),@%(5),@%(6),@%(1),105, %HInstance, $0000)
DEF CreateEditL(6) CONTROL("EDIT" ,@$(2),$50000000,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
DEF CreateEditC(6) CONTROL("EDIT" ,@$(2),$50000001,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
DEF CreateEditR(6) CONTROL("EDIT" ,@$(2),$50000002,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
'---------------------------------------------------------------------------------------------------
DEF MIN(2) IF(@&(1) <= @&(2), @&(1), @&(2))
DEF MAX(2) IF(@&(1) > @&(2), @&(1), @&(2))
Def DestroyImageList(1)!"comctl32.dll","ImageList_Destroy"
'***************************************************************************************************
'***************************************************************************************************
'* Globale Variablen *
'***************************************************************************************************
DECLARE PRGName$, Version$
DECLARE Groupbox&[3], Text&[4,4], Edit&[4,4], Button&[10], OK&, Cancel&, Gridbox&, HPic&, Pic&, Progressbar& ,Progress%
DECLARE Font&[20], FontHeight%[2]
DECLARE LVDLL&,ImageList&
DECLARE Bereich#
DIM Bereich#,256
'***************************************************************************************************
'***************************************************************************************************
'* Wertzuweisungen *
'***************************************************************************************************
Version$ = "V1.00 - 31.01.2011"
PRGName$ = "BOMAnalysis"
'*-------------------------------------------------------------------------------------------------*
LVDLL& = USEDLL("Listview.dll")
Imagelist& = CREATEIMAGELIST(2,0)
'***************************************************************************************************
'***************************************************************************************************
'* Schriftarten definieren *
'***************************************************************************************************
CASE FontHeight%[01] = 0: FontHeight%[01] = 8
CASE FontHeight%[02] = 0: FontHeight%[02] = 20
Font&[00] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,0,0,0) 'Standard
Font&[01] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,1,0,0) 'Fett
Font&[02] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,0,1,0) 'Kurisv
Font&[03] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,0,0,1) 'Unterstrichen
Font&[04] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,1,1,0) 'Fett+Kurisv
Font&[05] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,1,0,1) 'Fett+Unterstrichen
Font&[06] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,0,1,1) 'Kursiv+Unterstrichen
Font&[07] = CREATEFONT("MS Sans Serif",FontHeight%[01],0,1,1,1) 'Fett+Kursiv+Unterstrichen
Font&[10] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,0,0,0) 'Standard
Font&[11] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,1,0,0) 'Fett
Font&[12] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,0,1,0) 'Kurisv
Font&[13] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,0,0,1) 'Unterstrichen
Font&[14] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,1,1,0) 'Fett+Kurisv
Font&[15] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,1,0,1) 'Fett+Unterstrichen
Font&[16] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,0,1,1) 'Kursiv+Unterstrichen
Font&[17] = CREATEFONT("MS Sans Serif",FontHeight%[02],0,1,1,1) 'Fett+Kursiv+Unterstrichen
Font&[18] = CREATEFONT("Webdings" ,FontHeight%[02],0,0,0,0) 'Fett+Kursiv+Unterstrichen
'***************************************************************************************************
'*-------------------------------------------------------------------------------------------------*
'* Gridbox initialisieren *
'*-------------------------------------------------------------------------------------------------*
PROC InitGridBox
'*-------------------------------------------------------------------------------------------------*
DECLARE EditColumns$
'*-------------------------------------------------------------------------------------------------*
SETPROZESSPOS PROGRESSBAR&, 0
'*-------------------------------------------------------------------------------------------------*
CLEARLISTVIEW(Gridbox&)
ENABLEEDITS(Gridbox&, 7)
'*-------------------------------------------------------------------------------------------------*
EditColumns$ = "000010"
SELECTCOLUMNEDITS(Gridbox&, ADDR(EditColumns$))
'*-------------------------------------------------------------------------------------------------*
ICOLUMN(Gridbox&, "Pos." , 50, 1)
ICOLUMN(Gridbox&, "Typ" , 90, 0)
ICOLUMN(Gridbox&, "Zelle" , 80, 0)
ICOLUMN(Gridbox&, "Istwert", 140, 0)
ICOLUMN(Gridbox&, "Neuwert", 140, 0)
ICOLUMN(Gridbox&, "Meldung", 420, 0)
SETIMAGELIST(Gridbox&,ImageList&)
SETICONCOLUMN(1)
'*-------------------------------------------------------------------------------------------------*
AUTOSORTLISTVIEW Gridbox&,2,1,1,1,1,1
SORTMANUAL(Gridbox&,0,0)
'*-------------------------------------------------------------------------------------------------*
INITMESSAGES(DLG&)
'*-------------------------------------------------------------------------------------------------*
ENDPROC
'*-------------------------------------------------------------------------------------------------*
'***************************************************************************************************
' Benutzerdialog *
'***************************************************************************************************
PROC Dialog
DECLARE Dlg&
DECLARE Dialogende%, dx%, dy%
DECLARE GridboxNewValue$, GridboxHit%
DECLARE ErzNr$, ErzeugnisEbene%
DECLARE Sum%,Pos&,EditColumns$
DECLARE GridLines&, GridLine$, aux$, Cell$
DECLARE Zeile&
'--------------------------------------------------------------------------------------------------'
'Dialogbox:
'--------------------------------------------------------------------------------------------------'
dx% = 1024
dy% = 640
DLG& = CREATE("DIALOG", %HWND,PrgName$ ,(%MAXX-dx%)/2,(%MAXY-dy%)/2,dx%,dy%)
'-------------------------------------------------------------------------------------------------'
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
GROUPBOX&[1] = CREATE("GROUPBOX",DLG&,"Stückliste für PSP-Import" ,017,010,dx%-040,540)
Text&[1,1] = CREATE("TEXT" ,DLG&,"Excel-Stückliste:" ,037,037,090 ,020)
Text&[1,2] = CREATE("TEXT" ,DLG&,"Status:" ,037,065,090 ,020)
Text&[1,3] = CREATE("TEXT" ,DLG&,"" ,127,065,380 ,030)
Edit&[1,1] = CREATE("EDIT" ,DLG&,"" ,127,035,dx%-450,020)
Gridbox& = CREATELISTVIEW(DLG&, %HINSTANCE, 0, MixRGBs(~GetSysColor(15),$00ffffffff), -1, $33)
Button&[1] = CREATE("BUTTON" ,DLG&,"Zeile hinzu" ,dx%-310,030,070,025)
Button&[2] = CREATE("BUTTON" ,DLG&,"Analysieren" ,dx%-310,060,070,025)
Button&[3] = CREATE("BUTTON" ,DLG&,"Stückliste aktualisieren" ,dx%-160,dy%-075,140,030)
Cancel& = CREATE("BUTTON" ,DLG&,"Beenden" ,017,dy%-075 ,140,030)
CREATE("TOOLTIP", DLG&, Button&[1], "Klicken Sie hier, um die \nzu analysierende Stückliste zu wählen.")
CREATE("TOOLTIP", DLG&, Button&[3], "Klicken Sie hier, um die \nüberarbeitete Stückliste zu aktualisieren.")
CREATE("TOOLTIP", DLG&, Button&[2], "Klicken Sie hier, um die \ngewählte Stückliste zu analysieren.")
CREATE("TOOLTIP", DLG&, Cancel& , "Klicken Sie hier, um das \nProgramm zu beenden.")
CREATE("TOOLTIP", DLG&, Gridbox& , "Doppelklicken Sie Einträge in \nSpalte [Neuwert], um den Ihnalt zu editieren.")
CREATEOBJECT Groupbox&[1],"msctls_progress32","PROGRESSBAR",500,055,185,015,"$54000000","$020000"
PROGRESSBAR&=@&(0)
SHOWLISTVIEW(Gridbox&,037,100,dx%-080,435)
'*-------------------------------------------------------------------------------------------------*
WHILELOOP 3
SETFONT GROUPBOX&[&LOOP], Font&[01]
WEND
SETFONT Text&[1,3], Font&[01]
'*-------------------------------------------------------------------------------------------------*
InitGridbox
'*-------------------------------------------------------------------------------------------------*
SETFOCUS(DLG&)
'*-------------------------------------------------------------------------------------------------*
Dialogende% = 0
ENABLEWINDOW Button&[2], 0
ENABLEWINDOW Button&[3], 0
'*-------------------------------------------------------------------------------------------------*
WHILENOT Dialogende%
CASE TRIM$(GETTEXT$(Edit&[1,1])) = "": SETTEXT Text&[1,3], "Bitte wählen Sie die zu analysierende Stückliste."
'*-------------------------------------------------------------------------------------------------*
WAITINPUT
'*-------------------------------------------------------------------------------------------------*
IF (%KEY = 2) OR (CLICKED(Cancel&))
Dialogende%= 2
'*-------------------------------------------------------------------------------------------------*
ELSEIF CLICKED(BUTTON&[1]) 'BUTTON "Suchen"
Zeile& = Zeile& + 1
aux$ = ""
WHILELOOP 0,6
aux$ = aux$ + ";" + "Item " + STR$(&LOOP)
WEND
ADDSTRING(Gridbox&, aux$)
'*-------------------------------------------------------------------------------------------------*
ENDIF
ENDWHILE
MESSAGEBOX(PrgName$ + \
"\nVersion: " + Version$ + \
"\nXProfan-Version: " + $ProfVer + \
"\n" + \
"\nAutor: Stephan Sonneborn " + \
"\n(ListView.DLL von Frank Abbing)", \
Prgname$, 64)
'*-------------------------------------------------------------------------------------------------*
DESTROYWINDOW(DLG&)
'*-------------------------------------------------------------------------------------------------*
ENDPROC
'***************************************************************************************************
'***************************************************************************************************
' Hauptprogramm *
'***************************************************************************************************
$IFDEF Interpreter
WINDOW 0,0-%maxx,%maxy
CLS
$ELSE
WINDOW 0,0-0,0
SHOWWINDOW(%HWND,0)
$ENDIF
'+-------------------------------------------------------------------------------------------------+
' DLL laden:
'+-------------------------------------------------------------------------------------------------+
'~InitCommonControls()
Dialog
FREEDLL LVDLL&
DISPOSE Bereich#
DestroyImageList(Imagelist&)
$I Listview_Dispose.inc
END
'************************************************************************************************
__________________
_____________________________________________ Schöne Grüße aus Wittgenstein von Stephan Geändert von Frabbing (11.02.2011 um 21:40 Uhr) Grund: Codetags gesetzt |
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
|
Hab die User.inc leider nicht.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#5 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 30.01.2011
Ort: Feudingen
Alter: 43
Beiträge: 19
|
USER.INC:
Code:
DEF @CreateWindowEx(12) ! "USER32","CreateWindowExA"
DEF @GETTRACKPOS(1) SENDMESSAGE(&(1),$0400,0,0)
def @DRAWEDGE(4) !"USER32","DrawEdge"
Declare RMN#,FARBE#
PROC CREATEOBJECT
PARAMETERS HANDEL&,O$,TEXT$,1%,2%,3%,4%,Stil$,ext$
DECLARE NAME#,TEXT#,RETHANDEL&
Dim NAME#,len(O$)+1
Dim TEXT#,len(Text$)+1
String NAME#,0 =O$
String TEXT#,0 = Text$
LET RETHANDEL& = @CREATEWINDOWEX(int(val(ext$)),NAME#,TEXT#,int(val(STIL$)),1%,2%,3%,4%,HANDEL&,2000,%Hinstance,0)
DISPOSE NAME#
DISPOSE TEXT#
RETURN RETHANDEL&
ENDPROC
PROC SETPROZESSPOS
PARAMETERS HANDEL&,POS%
SendMessage(HANDEL&,$0402,POS%,0)
ENDPROC
PROC SETTRACKPOS
PARAMETERS HANDEL&,POS%
SendMessage(HANDEL&,$0405,1,POS%)
ENDPROC
PROC SETTRACKRANGE
PARAMETERS HANDEL&,POS%,POS2%
SendMessage(HANDEL&,$0406,1, (POS% OR (POS2% * 65536)))
ENDPROC
PROC DRAWFRAME 'abgeändert aus Vorlage von Uwe "Pascal" Niemeier
PARAMETERS X%,Y%,X2%,Y2%,1%,2%
dim RMN#,16
LONG RMN#,0=X%
LONG RMN#,4=Y%
LONG RMN#,8=(X% + X2%)
LONG RMN#,12=(Y% + Y2%)
@DRAWEDGE(%HDC,RMN#,1%,2%)
@DRAWEDGE(%HDC2,RMN#,1%,2%)
DISPOSE RMN#
ENDPROC
'Danke an iF (David Strutz)
'Beispiel Aufruf:
'CreateIPEdit %hwnd,"192.168.0.1",10,10,120,20
Proc Ip2ip
Parameters L1&,L2&,L3&,L4&
Return (L1&*16777216)+(L2&*65536)+(L3&*256)+L4&
Endproc
PROC CreateIPEdit
declare handle&,r_1&,r_2&,r_3&,R_4&
Parameters hwnd&,ip_string$,rkx&,rky&,rkb&,rkh&
r_1&=val(SUBSTR$(ip_string$,1,"."))
r_2&=val(SUBSTR$(ip_string$,2,"."))
r_3&=val(SUBSTR$(ip_string$,3,"."))
r_4&=val(SUBSTR$(ip_string$,4,"."))
handle&=Control("SysIPAddress32","0.0.0.0",$50010000,rkx&,rky&,rkb&,rkh&,hwnd&,2000,%Hinstance,$204)
Sendmessage(handle&,1125,0,Ip2ip(r_1&,r_2&,r_3&,r_4&))
return handle&
ENDPROC
__________________
_____________________________________________ Schöne Grüße aus Wittgenstein von Stephan |
|
|
|
|
|
|
#6 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
|
Ok, jetzt konnte ich testen, danke.
Ich hab neue Zeilen erstellt und konnte dann in Spalte "Neuwert" Texte editieren mit Doppellinksklick. Aber bei mir werden die neuen Texte ohne Probleme übernommen. Hab zweimal alle Zeilen durchprobiert, gelöscht wurde nie was.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#7 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 30.01.2011
Ort: Feudingen
Alter: 43
Beiträge: 19
|
Komisch...
Wenn ich den Eintrag per Doppelklick wähle und dann Enter drücke, ist der Eintrag komplett weg...
__________________
_____________________________________________ Schöne Grüße aus Wittgenstein von Stephan |
|
|
|
|
|
#8 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
|
Vielleicht können noch ein paar Leute das mal testen?
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#9 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 30.01.2011
Ort: Feudingen
Alter: 43
Beiträge: 19
|
So, ich habs jetzt mal auf nem andern PC getestet. Da gehts einwandfrei.
Was mich eben stutzig macht ist: Dein Beispielprogramm klappt ohne Probleme auf demselben Rechner, in derselben Umgebung. Der zweite Rechner ist ein XP-Rechner, der erste war ein WIN7-PC. Ein Weiterspringen mittels Cursortasten ist auch OK. Und was mich noch mehr verwundert: Das lief gestern bzw. vorgestern noch...
__________________
_____________________________________________ Schöne Grüße aus Wittgenstein von Stephan |
|
|
|
|
|
#10 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
|
Vielleicht einfach den PC mal neu booten. Wenn es bis gestern lief, kann es eigentlich ja auch nicht an der Dll liegen. Das kann so mal vorkommen, vielleicht ein Treiber, der nicht richtig geladen war oder sowas in der Art. Wer weiß das manchmal schon.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#11 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 30.01.2011
Ort: Feudingen
Alter: 43
Beiträge: 19
|
Das war mein erster Lösungsversuch.
Anbei zwei Bilder. Was mich wundert, ist die Art und Weise, wie WINDOWS das Edit anzeigt. Mal über den ganzen Zellinhalt gezogen und mal wie ein Fenster drüberliegend.
__________________
_____________________________________________ Schöne Grüße aus Wittgenstein von Stephan |
|
|
|
|
|
#12 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 30.01.2011
Ort: Feudingen
Alter: 43
Beiträge: 19
|
Und noch etwas: wenn ich alles auf dem %HWND zeichne, gehts auch!
Also wenn ich DLG& = %WHND schreibe und die CREATE("Dialog", ...) Zeile weglasse. Auch bei CREATE("WINDOW",...) gehts... Es scheint am Dialogfenster unter WIN 7 zu liegen evtl. nach einem automatischen (Sicherheits-)Update von MS...
__________________
_____________________________________________ Schöne Grüße aus Wittgenstein von Stephan Geändert von Stephan Sonneborn (12.02.2011 um 15:46 Uhr) |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Enter und Doppelklick | horsthorn | Dlls, Includes, Units & Prozeduren | 5 | 05.10.2009 19:20 |
| F1 Enter to resueme | Rolf | Windows 95/98/ME/2000/NT | 2 | 17.03.2004 19:33 |
| enter klemmt | neff | Hardware - Problemlösungen | 15 | 05.02.2004 01:28 |
| Enter the Matrix | Muhammad Ali | Computerspiele | 3 | 29.10.2003 14:59 |
| Enter the matrix | NITROjedi | Computerspiele | 6 | 30.05.2003 12:40 |