Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
1 - Einsteigerfragen

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Vorherige Nachricht  |  Nächste Nachricht 
 PutClip will nicht arbeiten
Autor: Michael Wodrich (---.customer.vsm.sh)
Datum:   16.08.18 16:46

Egal, ob ich ihm ein Hauptfenster spendiere oder ein Sleep dran hänge.
Der Text, der vor dem Programmaufruf bestand ist immer noch im Clipboard.
Und dabei wird doch mit ClearClip erst einmal dort aufgeräumt. :-?

 
 WindowStyle 1 + 2 + 4 + 8 + 16 + 512
 
 Def %NoBold 0
 Def %NoItalic 0
 Def %NoUnderline 0
 Def %Bold 1
 Def %Italic 1
 Def %Underline 1
 
 Declare Text2$
 Declare string derText
 Declare string dasArray[]
 Declare int toSort
 Declare int grp_x, grp_y, grp_dx, grp_dy
 Declare int txt_x, txt_y, txt_dx, txt_dy
 Declare int rad1_x, rad1_y, rad1_dx, rad1_dy
 Declare int rad2_x, rad2_y, rad2_dx, rad2_dy
 Declare int chk_x, chk_y, chk_dx, chk_dy
 Declare int bt1_x, bt1_y, bt1_dx, bt1_dy
 Declare int bt2_x, bt2_y, bt2_dx, bt2_dy
 Declare int bt3_x, bt3_y, bt3_dx, bt3_dy
 
 grp_x = 10
 grp_y = 20
 grp_dx = 160
 grp_dy = 85
 
 rad1_x = grp_x + 8
 rad1_y = grp_y + 25
 rad1_dx = 140
 rad1_dy = 20
 
 rad2_x = rad1_x
 rad2_y = rad1_y + 25
 rad2_dx = rad1_dx
 rad2_dy = rad1_dy
 
 chk_x = rad1_x
 chk_y = grp_dy + grp_y + 10
 chk_dx = rad1_dx
 chk_dy = rad1_dy
 
 txt_x = chk_x + chk_dx + 20
 txt_y = chk_y
 txt_dx = 40
 txt_dy = 20
 
 bt1_x = 210
 bt1_y = 30
 bt1_dx = 100
 bt1_dy = 20
 
 bt2_x = bt1_x
 bt2_y = bt1_y + 25
 bt2_dx = bt1_dx
 bt2_dy = bt1_dy
 
 bt3_x = bt1_x
 bt3_y = bt2_y + 25
 bt3_dx = bt1_dx
 bt3_dy = bt1_dy
 
 'Var handle hFont    = Create("Font","Hack",0,0,%NoBold,%NoItalic,%NoUnderline)
 Var handle hFont    = Create("Font","Verdana",0,0,%NoBold,%NoItalic,%NoUnderline)
 'Var handle hFont    = Create("Font","Courier New",0,0,%NoBold,%NoItalic,%NoUnderline)
 SetDialogFont hFont
 Var handle hMainWnd = Create("Window", &hWnd, "Stringliste sortieren", 100,100, 800,600)
 Var handle hMEdit   = Create("MultiEdit", hMainWnd, "Bitte, hier, den, zu, sortierenden, String, einfügen.\nalfa,bravo,delta,echo,fuchstritt,Golf,hotel,Draussen,india,juliett,Spielen,zulu",10,150, 800-35,-400)
 Var handle hGroup   = Create("GroupBox", hMainWnd,"= Groß/Klein =",grp_x,grp_y,grp_dx,grp_dy)
 Var handle hText    = Create("Text", hMainWnd,Trim$(Str$(toSort)),txt_x,txt_y,txt_dx,txt_dy)
 Var handle hGrKl    = Create("RadioButton",hMainWnd, "beachten",rad1_x,rad1_y,rad1_dx,rad1_dy)
 Var handle hIgnore  = Create("RadioButton",hMainWnd, "ignorieren",rad2_x,rad2_y,rad2_dx,rad2_dy) 
 Var handle hNumeric = Create("CheckBox",hMainWnd, "numerisch",chk_x,chk_y,chk_dx,chk_dy)
 Var handle hSort    = Create("DefButton", hMainWnd, "&Sortieren", bt1_x,bt1_y,bt1_dx,bt1_dy)
 Var handle hSave    = Create("Button", hMainWnd, "&absichern", bt2_x,bt2_y,bt2_dx,bt2_dy)
 Var handle hEnde    = Create("Button", hMainWnd, "&Ende", bt3_x,bt3_y,bt3_dx,bt3_dy)
 'SetFont hEnde, hFont
 
 SetCheck hGrKl, 1
 'SetCheck hIgnore,  1
 SetCheck hNumeric, 0
 
 toSort = 2
 Case GetCheck(hGrKl) = 1 : toSort = 1
 Case GetCheck(hNumeric) = 1 : toSort = 5
 SetText hText, Trim$(Str$(toSort))
  
 While 1
    WaitInput
    
    If GetFocus(hEnde)
       BREAK
    ElseIf GetFocus(hGrKl) or GetFocus(hIgnore) or GetFocus(hNumeric)
       toSort = 2
       Case GetCheck(hGrKl) = 1 : toSort = 1
       Case GetCheck(hNumeric) = 1 : toSort = 5
       SetText hText, Trim$(Str$(toSort))
 
    ElseIf GetFocus(hSort)
       toSort = 2
       Case GetCheck(hGrKl) = 1 : toSort = 1
       Case GetCheck(hNumeric) = 1 : toSort = 5
 
       derText = ""
       WhileLoop 0, GetCount(hMEdit) - 1
          derText = derText + "," + GetString$(hMEdit, &Loop)
       EndWhile
       
       dasArray[] = Explode(derText, ",")
       WhileLoop 0, SizeOf(dasArray[]) - 1
          dasArray[&Loop] = Trim$(dasArray[&Loop])
       EndWhile
       
       ClearList 0
       Move("ArrToList", dasArray[])
       SortList toSort
       Clear dasArray[], derText
       Move("ListToArr", dasArray[])
         
       WhileLoop 0, SizeOf(dasArray[]) - 1
          If Trim$(dasArray[&Loop]) != ""
             derText = derText + ", " + dasArray[&Loop]
          EndIf
       EndWhile
       derText = Right$(derText, Len(derText) - 2)
       SetText hMEdit, derText
       
    ElseIf GetFocus(hSave)
       'derText = GetText$(hMEdit)
       derText = ""
       WhileLoop 0, GetCount(hMEdit) - 1
          derText = derText + "\n" + GetString$(hMEdit, &Loop)
       EndWhile
       Text2$ = derText
 
       ClearClip
       PutClip Text2$
    EndIf
 EndWhile
 
 DestroyWindow( hMainWnd )
 DeleteObject hFont
 
 End
 


Die neuen Datentypen können auch nicht Schuld sein, hab ich
auch schon "umgetütet".

!!! Es war ein falsches Handle.
Und das die Sortierung nicht so wollte,
lag wohl nur an der richtigen Textmenge.


Ich muss des öfteren mal Teilstrings sortieren.
Also nicht von oben nach unten sondern von links nach rechts.

Dabei können dann noch einige Werte dazu kommen oder
heraus gelöscht werden.

Das ist der Grund, warum das Textfeld zeilenweise mit Kommata
verknüpf wird.

Und das ist auch der Grund, warum ich das gleich in der Zwischenanlage haben möchte.

Also, wer's gebrauchen kann...

--
Programmieren, das spannendste Detektivspiel der Welt.
Programmierumgebung: | XProfan (neueste) | Win (neueste)


Nachricht bearbeitet (16.08.18 18:35)

 Beitrag beantworten  |  Foren-Liste  |  Alle Antworten   Neuerer Beitrag  |  Älteres Thema 

 Beiträge Autor  Datum
 PutClip will nicht arbeiten  Neu
Michael Wodrich 16.08.18 16:46 
 Re: PutClip will nicht arbeiten  Neu
Michael Wodrich 16.08.18 18:41 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org