Button mit mehreren klick Funktionen IF ELSE ?
Verfasst: 17.06.2015 04:44
ich habe einen "kopieren/ einfügen" button der mehrmals auf Events ansprechen soll.
Wenn ich mit der Maus in das entsprechende Panel Feld klicke, markiert es automatisch den kompletten Textinhalt.
Der Button prüft nun ob der Text von start bis end markiert ist und wenn ja, kopiert er den Text in die Zwischenablage.
Anschließend wird der Text sofort automatisch wieder deselekted.
Der button macht was er soll aber nur von hinten nach vorn, sprich von Panel 6 zu Panel 1. Anders rum, keine weitere Reaktion.
Der Code im Event wird nur von hinten nach vorn abgearbeitet. Ich möchte jedoch, dass es egal ist wo ich hinklicke.
Meine Schleife stimmt nicht
VG
Wenn ich mit der Maus in das entsprechende Panel Feld klicke, markiert es automatisch den kompletten Textinhalt.
Der Button prüft nun ob der Text von start bis end markiert ist und wenn ja, kopiert er den Text in die Zwischenablage.
Anschließend wird der Text sofort automatisch wieder deselekted.
Der button macht was er soll aber nur von hinten nach vorn, sprich von Panel 6 zu Panel 1. Anders rum, keine weitere Reaktion.
Der Code im Event wird nur von hinten nach vorn abgearbeitet. Ich möchte jedoch, dass es egal ist wo ich hinklicke.
Meine Schleife stimmt nicht

Code: Alles auswählen
;- Kopiere markierten Panel-Text in Zwischenablage
Case #btn_Copy_Paste
EventGadget = EventGadget()
EventType = EventType()
; wenn Text kopiert, entferne die automatische Markierung aus dem Panel
If EventGadget = #btn_Copy_Paste
If SendMessage_(GadgetID(#Panel_1), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_1), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_1), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
Else
If SendMessage_(GadgetID(#Panel_2), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_2), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_2), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
Else
If SendMessage_(GadgetID(#Panel_3), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_3), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_3), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
Else
If SendMessage_(GadgetID(#Panel_4), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_4), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_4), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
Else
If SendMessage_(GadgetID(#Panel_5), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_5), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_5), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
Else
If SendMessage_(GadgetID(#Panel_6), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_6), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_6), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
; [u]UND SO ARBEITET ES GENAU ANDERSRUM jedoch auch nur in eine Richtung[/u]
;- Kopiere markierten Panel-Text in Zwischenablage
Case #btn_Copy_Paste
EventGadget = EventGadget()
EventType = EventType()
; wenn kopiert, entferne die automatische Markierung aus dem Panel
If EventGadget = #btn_Copy_Paste
If SendMessage_(GadgetID(#Panel_1), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_1), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_1), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
EndIf; Else
If SendMessage_(GadgetID(#Panel_2), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_2), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_2), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
EndIf; Else
If SendMessage_(GadgetID(#Panel_3), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_3), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_3), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
EndIf; Else
If SendMessage_(GadgetID(#Panel_4), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_4), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_4), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
EndIf; Else
If SendMessage_(GadgetID(#Panel_5), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_5), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_5), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
EndIf; Else
If SendMessage_(GadgetID(#Panel_6), #EM_GETSEL, @startPos, @stopPos)
SetClipboardText(Mid(GetGadgetText(#Panel_6), startPos+0, stopPos+stopPos))
SendMessage_(GadgetID(#Panel_6), #EM_HIDESELECTION, Len(GetGadgetText(EventGadget())),0)
EndIf
EndIf