SetGadgetItemText bei ListIconGadget - Inhalt überschreiben

Anfängerfragen zum Programmieren mit PureBasic.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

SetGadgetItemText bei ListIconGadget - Inhalt überschreiben

Beitrag von smateja »

Hallo zusammen,

ich hab mal wieder ein kleines Problem und bin sicher Ihr wisst die Lösung.
Wenn ich mit dem Befehl SetGadgetItemText einen Text überschreibe in einem ListIconGadget und dieser ist kürzer als der vorhanden - so bleiben "Reste" des vorherigen Textes übrig.

Hat evtl. jemand eine Idee wie man das so lösen kann dass immer die ganze Zeile überschrieben wird - quasi keine Reste wenn der neue Text kürzer ist - stehen bleiben? Irgendwie einen +(CHR irgendwas anfügen oder special Befehl den ich überlesen/sehen habe? API Lösung?

THX für alle Ideen und Vorschläge.

LG
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: SetGadgetItemText bei ListIconGadget - Inhalt überschrei

Beitrag von Bisonte »

Blöde Frage, aber wieso nicht vorher einen Leerstring schreiben ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SetGadgetItemText bei ListIconGadget - Inhalt überschrei

Beitrag von ts-soft »

Ich schlage vor, nächstesmal einen Beispielcode zu posten /:->

Code: Alles auswählen

If OpenWindow(0, 100, 100, 300, 100, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 ListIconGadget(0, 5, 5, 290, 90, "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
 AddGadgetColumn(0, 1, "Address", 250)
 AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
 AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
 SetGadgetItemText(0, 1, "Gin", 0)
 Repeat
   Event = WaitWindowEvent()
 Until Event = #PB_Event_CloseWindow
EndIf
Ich kann den Fehler nämlich nicht nachvollziehen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: SetGadgetItemText bei ListIconGadget - Inhalt überschrei

Beitrag von Sunny »

Bei einem Listeicongeadget bleiben mMn keine Textreste eines Items beim Überschreiben übrig...
das wäre höchstens beim schreiben in einer Datei der fall...
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SetGadgetItemText bei ListIconGadget - Inhalt überschrei

Beitrag von RSBasic »

Oder vielleicht eine automatische Spaltenanpassung?

Code: Alles auswählen

If OpenWindow(0, 100, 100, 300, 100, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 5, 5, 290, 90, "Name", 0, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Address", 0)
AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
SetGadgetItemText(0, 1, "Gin", 0)

SendMessage_(GadgetID(0),#LVM_SETCOLUMNWIDTH,0,#LVSCW_AUTOSIZE_USEHEADER)
SendMessage_(GadgetID(0),#LVM_SETCOLUMNWIDTH,1,#LVSCW_AUTOSIZE_USEHEADER)

Repeat
   Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
Ich versuchs einfach mal :mrgreen:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Re: SetGadgetItemText bei ListIconGadget - Inhalt überschrei

Beitrag von smateja »

ah merci erstmal für die Ratschläge - glaub bin meinem Problem näher gekommen.
Ich schreibe mit SetGadgetItemText(#ListIconGadget_Clients, x, ""+PeekS(*NetBuffer),1)

ich denke dass der Buffer nur nicht leer war *ups*

Sorry und danke für den schlag auf den Hinterkopf :)
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: SetGadgetItemText bei ListIconGadget - Inhalt überschrei

Beitrag von Sunny »

Joar dann brauchst du den Speicherbereich eig. nur mit FillMemory() überschreiben.
Antworten