Eine Zeile löschen aus dem : Gadget_ListView

Anfängerfragen zum Programmieren mit PureBasic.
funkheld
Beiträge: 649
Registriert: 31.12.2009 11:58

Eine Zeile löschen aus dem : Gadget_ListView

Beitrag von funkheld »

Hallo,guten Tag.
Ich habe ein Gadget_ListView , welches auch soweit funktioniert.
Wie kann man daraus eine bestimmte angeklickte Zeile Löschen?
Und wie kann man es machen, das alle Buchstaben automatisch gross geschrieben werden, die unten in der Eingabezeile eingegeben werden?

Code: Alles auswählen

Global text.s, text_test.s,spalte.l,zeile.l,gesamt_text.s
Global Dim text_daten.s(10)

Enumeration
 #window_0
 #Gadget_ListView 
 #button_0
 #button_1
 #button_2
 #button_3
 #datei_0
 #String_0
 #String_1
 #String_2
 #String_3
 #String_4
 #String_5
 #String_6
 #String_7
 #Font_0
EndEnumeration

Declare daten_speichern()
Declare daten_laden()
Declare daten_loeschen()
Declare zeilen_setzen()

ListViewSpalte.LV_COLUMN 
ListViewSpalte\mask = #LVCF_FMT 

If OpenWindow(#window_0,0,0,1000,600, "",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
	
	ButtonGadget(#button_0, 20,560, 80, 25, "speichern")
	ButtonGadget(#button_2, 120,560, 80, 25, "laden")
	ButtonGadget(#button_3, 220,560, 80, 25, "löschen")
	ButtonGadget(#button_1, 20,490, 80, 25, "setzen")
	
	StringGadget(#String_0, 20, 450, 70, 20, "")
	StringGadget(#String_1, 90, 450, 70, 20, "")
	StringGadget(#String_2, 160, 450, 70, 20, "")
	StringGadget(#String_3, 230, 450, 70, 20, "")
	StringGadget(#String_4, 300, 450, 50, 20, "")
	StringGadget(#String_5, 350, 450, 50, 20, "")
	StringGadget(#String_6, 400, 450, 70, 20, "")
	StringGadget(#String_7, 470, 450, 450, 20, "")
	
	LoadFont(#Font_0, "Lucida Console", 10)
	SetGadgetFont(#String_0, FontID(#Font_0)) 
	SetGadgetFont(#String_1, FontID(#Font_0)) 
	SetGadgetFont(#String_2, FontID(#Font_0)) 
	SetGadgetFont(#String_3, FontID(#Font_0)) 
	SetGadgetFont(#String_4, FontID(#Font_0)) 
	SetGadgetFont(#String_5, FontID(#Font_0)) 
	SetGadgetFont(#String_6, FontID(#Font_0)) 
	SetGadgetFont(#String_7, FontID(#Font_0)) 
	
  ListViewHandle = ListIconGadget(#Gadget_ListView,20,20,900,400, "to Radio", 70,#PB_ListIcon_GridLines) 
  AddGadgetColumn(#Gadget_ListView, 1, "DATE", 70) 
  AddGadgetColumn(#Gadget_ListView, 2, "TIME UTC", 70) 
  AddGadgetColumn(#Gadget_ListView, 3, "BAND KHZ", 70) 
  AddGadgetColumn(#Gadget_ListView, 4, "MODE", 50) 
  AddGadgetColumn(#Gadget_ListView, 5, "RST", 50) 
  AddGadgetColumn(#Gadget_ListView, 6, "QSO WITH", 70) 
  AddGadgetColumn(#Gadget_ListView, 7, "                                                           TEXT",445) 
  
  Spalte = 0 
  ListViewSpalte\fmt = #LVCFMT_CENTER  
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  Spalte = 1 
  ListViewSpalte\fmt = #LVCFMT_CENTER  
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  Spalte = 2 
  ListViewSpalte\fmt = #LVCFMT_CENTER  
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  Spalte = 3 
  ListViewSpalte\fmt = #LVCFMT_CENTER  
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  Spalte = 4 
  ListViewSpalte\fmt = #LVCFMT_CENTER  
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  Spalte = 5 
  ListViewSpalte\fmt = #LVCFMT_CENTER  
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  Spalte = 6 
  ListViewSpalte\fmt = #LVCFMT_CENTER  
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  Spalte = 7 
  ListViewSpalte\fmt = #LVCFMT_LEFT 
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) 
  
  AddGadgetItem(#Gadget_ListView,0,gesamt_text ) 
  Repeat

  Event = WaitWindowEvent()

  Select Event
  	Case #PB_Event_Gadget
  		EventGadget = EventGadget()
  		EventType = EventType()
  		
  		If EventGadget = #Button_0
        daten_speichern()
      EndIf
      
      If EventGadget = #Button_2
        daten_laden()
      EndIf
      
      If EventGadget = #Button_3
        daten_loeschen()
      EndIf
      
      If EventGadget = #Button_1
      	text_daten(0)=GetGadgetText(#String_0)
      	text_daten(1)=GetGadgetText(#String_1)
      	text_daten(2)=GetGadgetText(#String_2)
      	text_daten(3)=GetGadgetText(#String_3)
      	text_daten(4)=GetGadgetText(#String_4)
      	text_daten(5)=GetGadgetText(#String_5)
      	text_daten(6)=GetGadgetText(#String_6)
      	text_daten(7)=GetGadgetText(#String_7)
      	zeilen_setzen()
      EndIf
      
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect

  ForEver
EndIf 

Procedure zeilen_setzen()
	gesamt_text=text_daten(0) + Chr(10) +text_daten(1) + Chr(10)+text_daten(2) + Chr(10)+text_daten(3) + Chr(10)
  gesamt_text=gesamt_text+text_daten(4) + Chr(10) +text_daten(5) + Chr(10)+text_daten(6) + Chr(10)+text_daten(7)
  AddGadgetItem(#Gadget_ListView,zeile,gesamt_text ) 
  zeile=zeile+1
  gesamt_text=""
EndProcedure

Procedure daten_speichern()
	CreateFile(#datei_0, "d:\qsl-daten.txt")
	
	zeile=0
  While 1
  	text_test=GetGadgetItemText(#Gadget_ListView,zeile)
  	If Len(text_test) = 0 
  		Break
  	EndIf	
  	
  	text=""
  	For spalte=0 To 7
  		text_test=GetGadgetItemText(#Gadget_ListView,zeile,spalte)
  		If Len(text_test) > 0
  			text=text+GetGadgetItemText(#Gadget_ListView,zeile,spalte)
  			text=text+"|"
  		EndIf			
  	Next	
  	
  	WriteStringN(#datei_0,text)
  	zeile=zeile+1
  Wend	
  CloseFile(#datei_0)
EndProcedure 

Procedure daten_laden()
	If ReadFile(#datei_0, "d:\qsl-daten.txt")  
	zeile=0	
  While Eof(#datei_0) = 0           
    text=ReadString(#datei_0)   
    For k=1 To 8
    	text_daten(k-1)=(StringField(text, k, "|"))
    Next
    gesamt_text=text_daten(0) + Chr(10) +text_daten(1) + Chr(10)+text_daten(2) + Chr(10)+text_daten(3) + Chr(10)
    gesamt_text=gesamt_text+text_daten(4) + Chr(10) +text_daten(5) + Chr(10)+text_daten(6) + Chr(10)+text_daten(7)
    AddGadgetItem(#Gadget_ListView,zeile,gesamt_text )
    gesamt_text=""
    zeile=zeile+1
  Wend  
    CloseFile(#datei_0)
  EndIf
EndProcedure

Procedure daten_loeschen()
	ClearGadgetItems(#Gadget_ListView) 
	AddGadgetItem(#Gadget_ListView,0,gesamt_text )
	zeile=0
EndProcedure
Danke.
Gruss
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Eine Zeile löschen aus dem : Gadget_ListView

Beitrag von RSBasic »

Um die aktuelle, ausgewählte Zeile löschen zu können:

Code: Alles auswählen

RemoveGadgetItem(#LVGadget, GetGadgetState(#LVGadget))
Um die Eingabe in Großbuchstaben zu konvertieren:

Code: Alles auswählen

Ergebnis$ = UCase(String$)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: Eine Zeile löschen aus dem : Gadget_ListView

Beitrag von NicknameFJ »

Hallo Funkheld,

erstmal zum zweiten Teil Deiner Frage:

Code: Alles auswählen

 StringGadget(#String_0, 20, 450, 70, 20, "",#PB_String_UpperCase )
:mrgreen:

wandelt die Eingabe direkt in Großbuchstaben um.

Grüße

NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
funkheld
Beiträge: 649
Registriert: 31.12.2009 11:58

Re: Eine Zeile löschen aus dem : Gadget_ListView

Beitrag von funkheld »

Jup, ich danke euch beiden.
Gruss
funkheld
Beiträge: 649
Registriert: 31.12.2009 11:58

Re: Eine Zeile löschen aus dem : Gadget_ListView

Beitrag von funkheld »

Wie kann ich eine Zeile entfernen, wenn ich die mit der Maus selektiert habe(blau eingefärbt)?

Danke.

Gruss
Zuletzt geändert von funkheld am 14.08.2012 09:38, insgesamt 1-mal geändert.
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: Eine Zeile löschen aus dem : Gadget_ListView

Beitrag von NicknameFJ »

funkheld hat geschrieben:Wie kann ich eine Zeile entfernen, wenn ich die mit der Muas selektiert habe(blau eingefärbt)?
RSBasic hat geschrieben:Um die aktuelle, ausgewählte Zeile löschen zu können:

Code: Alles auswählen

RemoveGadgetItem(#LVGadget, GetGadgetState(#LVGadget))
Grüße

NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
funkheld
Beiträge: 649
Registriert: 31.12.2009 11:58

Re: Eine Zeile löschen aus dem : Gadget_ListView

Beitrag von funkheld »

Ja, danke. Jetzt funktioniert es wunderbar.

Gruss
Antworten