Markierten Text aus der Liste in einem String bringen

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Markierten Text aus der Liste in einem String bringen

Beitrag von funkheld »

Hallo, guten Tag.
Ich habe hier 3 Fenster untereinander.
Aus jedem Fenster kann ich ein Programm in einen Editor ziehen.

Nun möchte ich den Namne, der Blau markiert ist auch in einem String aufnehmen.

Wie geht das?

danke.

gruss

Code: Alles auswählen

Global name.s
  Enumeration
    #window_1
    #expl_1
    #expl_2
    #expl_3
    #textg_1
    #textg_2
    #textg_3
    #button_1
  EndEnumeration

  OpenWindow(#window_1, 1400, 5, 180, 770, "Drag & Drop", #PB_Window_SystemMenu)
  
  TextGadget(#textg_1,10,5,250,20, "Turbobasic")
  TextGadget(#textg_2,10,250,250,20, "Asm")
  TextGadget(#textg_3,10,495,250,20, "Action!")

  ExplorerListGadget(#expl_1, 10, 25, 160, 220, "d:\atari\bas\*.txt;*.tur;*.act")
  ExplorerListGadget(#expl_2, 10, 270, 160, 220, "d:\atari\asm\*.;*.bin;*.obj")
  ExplorerListGadget(#expl_3, 10, 510, 160, 220, "d:\atari\act\*.txt;*.act")
  
  SetGadgetAttribute(#expl_1,#PB_Explorer_DisplayMode,#PB_Explorer_List)
  SetGadgetAttribute(#expl_2,#PB_Explorer_DisplayMode,#PB_Explorer_List)
  SetGadgetAttribute(#expl_3,#PB_Explorer_DisplayMode,#PB_Explorer_List)
  
  ButtonGadget(#button_1, 10,740, 80, 25, "Datei löschen")
    
  Repeat
  
  Event = WaitWindowEvent()

  Select Event
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      
      If EventGadget() = #expl_1 And EventType() = #PB_EventType_DragStart
        Files$ = ""    
         For i = 0 To CountGadgetItems(#expl_1)-1
           If GetGadgetItemState(#expl_1, i) & #PB_Explorer_Selected
             Files$ + GetGadgetText(#expl_1) + GetGadgetItemText(#expl_1, i) + Chr(10)
           EndIf
         Next i    
         DragFiles(Files$)
      EndIf
       
      If EventGadget() = #expl_2 And EventType() = #PB_EventType_DragStart
        Files$ = ""       
        For i = 0 To CountGadgetItems(#expl_2)-1
          If GetGadgetItemState(#expl_2, i) & #PB_Explorer_Selected
            Files$ + GetGadgetText(#expl_2) + GetGadgetItemText(#expl_2, i) + Chr(10)
          EndIf
        Next i    
          DragFiles(Files$)
        EndIf 
        
        If EventGadget() = #expl_3 And EventType() = #PB_EventType_DragStart
         Files$ = ""       
         For i = 0 To CountGadgetItems(#expl_3)-1
           If GetGadgetItemState(#expl_3, i) & #PB_Explorer_Selected
             Files$ + GetGadgetText(#expl_3) + GetGadgetItemText(#expl_3, i) + Chr(10)
           EndIf
         Next i    
          DragFiles(Files$)
       EndIf  
    
       If EventGadget = #button_1
        SetCurrentDirectory("d:/atari/bas") 
        RunProgram("delete.bat")
        SetCurrentDirectory("d:/atari/asm") 
        RunProgram("delete.bat")
        SetCurrentDirectory("d:/atari/act") 
        RunProgram("delete.bat")
      EndIf

    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_1
        CloseWindow(#Window_1)
        Break
      EndIf
  EndSelect
  
  ReleaseDC_(WindowID(0), *DC) 
   
ForEver

Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von CSHW89 »

Erstmal, du hast ein viiieeel zu großen Bildschirm :lol: . Bei mir wurde das Fenster erst nicht angezeigt, da außerhalb des Bildschirms.

Ok nun zu deiner Frage, die ich ehrlich gesagt nicht ganz verstehe. Willst du statt der Datei einfach nur den Dateinamen oder ein anderen String ziehen. Dann wäre DragText() statt DragFiles() die Antwort. Wenn nicht, müsstest du nochmal genauer beschreiben, was du willst.

lg Kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von funkheld »

Erstmal, du hast ein viiieeel zu großen Bildschirm :lol: . Bei mir wurde das Fenster erst nicht angezeigt, da außerhalb des Bildschirms.
Hmm..., ich habe nur einen Notebook mit 1600x900 auflösung mehr nicht.

Ah..danke: Dragtext ist es.

gruss
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: Markierten Text aus der Liste in einem String bringen

Beitrag von ts-soft »

funkheld hat geschrieben:Hmm..., ich habe nur einen Notebook mit 1600x900 auflösung mehr nicht.
Heutzutage optimiert man seine Anwendung auf 1024 x 768, vor ein paar Jahren waren es noch 800 x 600.

Dies ist ein Richtwert an den man sich halten sollte. In ein paar Jahren wird vielleicht auch 1600 x 900 akzeptabel
sein, zur Zeit ist das aber noch nicht. Ich versuche z.B. auch Netbooks mit einer Auflösung von 1024 x 600 zu
unterstützten (meist :mrgreen: ), bzw. die Fenstergrösse dynamisch zu halten.

Wenn die Anwendung nur für Dich ist, bzw. Dein Auftraggeber immer einen entsprechenden Monitor nutzt, spielt
es natürlich keine Rolle.

Gruß
Thomas
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
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von funkheld »

Wenn ich einen Text(Datei) markiere, wird er ja Blau unterlegt.
Diesen Blau unterlegten Text/Datei möchte ich in einen String speichern beim linken Mausklick.

gruss
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von Andesdaf »

in die Eventschleife:

Code: Alles auswählen

If EventGadget = #expl_1 Or EventGadget = #expl_2 Or EventGadget = #expl_3
  If EventType = #PB_EventType_RightClick
    sSelectedEntry.s = GetGadgetItemText(GetActiveGadget(), GetGadgetState(GetActiveGadget()))
    Debug sSelectedEntry
  EndIf
EndIf
Win11 x64 | PB 6.20
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von funkheld »

Jup, danke für deine hilef.

gruss
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von funkheld »

Hallo, DragFiles(Files) funktioniert .
Wie kann ich aber eine Datei starten mit einem Doppelklick, das ein Texteditor mit dem Pogramm geöffnet wird?
Die Datei kann ich vom Windowsexplorer starten mit doppelklick, also der Type ist schon bekannt für den Editor.

danke.

gruss

Code: Alles auswählen

 If EventGadget() = #expl_1 And EventType() = #PB_EventType_DragStart
        Files = ""    
         For i = 0 To CountGadgetItems(#expl_1)-1
           If GetGadgetItemState(#expl_1, i) & #PB_Explorer_Selected
             Files + GetGadgetText(#expl_1) + GetGadgetItemText(#expl_1, i) + Chr(10)
           EndIf
         Next i    
       
         DragFiles(Files)
       EndIf      
       
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von Danilo »

RunProgram(Datei$)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Markierten Text aus der Liste in einem String bringen

Beitrag von funkheld »

Funktioniert nicht.
Wenn ich ein Doppelklick auf eine Programm mache in der Auflistung, dann startet es nicht, obwohl der Name als String übergeben wird.

danke.

gruss
Antworten