Français
Forum

SetTopIndex et GetTopIndex pour Gridboxen

 
- page 1 -



Rainer
Hoefs
Salut,

suis verzweifelt am chercher de Befehlen um une certain Eintrag dans einer Gridbox comme den Obersten dans qui Box Montrer trop laisser.

Ebenso voudrais je savons quel Eintrag pour dem Scrollen eh bien comme oberster dans qui gridbox gezeigt wird.

rien quoi je trouvé habe funktioniert chez mir.

und dir dabei um folgendes:

dans qui GridBox volonté Farben aufgelistet. chacun la ligne hat cet Felder:
nom, Nr, Rotwert, Grünwert, Blauwert.
Es volonté 16 Zeilen gezeigt.

à gauche de qui Gridbox ist avant chacun la ligne un champ, dans dem qui la couleur comme le ton gezeigt wird. qui RGB-Werte qui 16 ersten Zeilen volonté gelesen et qui Farbfelder gezeichnet. cela funktioniert pour dem Initialisieren correcte. eh bien wird mais gescrollt, et qui 16 Felder doit récente teinté volonté.

en supplément besoin je une Funktion à aktuell trop colonel gezeigten la ligne trop markieren et en index trop ermitteln. ensuite volonté qui eh bien angezeigten 16 Zeilen gelesen et qui Felder eingefärbt.

si je avec den Pfeiltatsten Hoch et Runter ou bien avec BildHoch et BildRunter den poutre verschiebe, comment bekomme je qui la ligne qui ensuite aktuell markiert ist?

Gibt es irgendwo qui Possibilité sur un GridBoxChanged?

peut-être peux mir quelqu'un aider.

merci d'avance!

Rainer
 
21.04.2015  
 



 
- page 2 -


« cette Beitrag wurde comme Solution gekennzeichnet. »

- page 2 -



Rainer
Hoefs
Salut,

ici cela Ergebnis, welches avec Eurer Aider erreicht wurde.

merci nochmals

Rainer
'***********************************************************************************
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
'***********************************************************************************
Def GetSysColor(1) !"User32","GetSysColor"
Def CreateBitmap(5) !"GDI32","CreateBitmap"
Def SelectObject(2) !"GDI32","SelectObject"
Def Show(1) ShowWindow(@&(1), 1)
Def Hide(1) ShowWindow(@&(1), 0)
Déclarer R%[], G%[], B%[], Txt$[], ColNum$[], I%, Modify%
Déclarer Red&, Green&, Blue&, ColNum%, ColDesription$, SumColors%, GridboxString$
Déclarer Lv#, icolist&
Var Ende% = 0
struct Lv = Mask&,Item&,SubItem&,State&,StateMask&,Text&,TextMax&,Image&
dim Lv#,Lv
'***********************************************************************************

Proc LvSetIcon

    Lv#.Item&=&(2)
    Lv#.SubItem&=&(3)
    Lv#.Mask&=~LVIF_IMAGE
    Lv#.Image&=%(4)
    sendmessage(&(1),~LVM_SETITEM,0,Lv#)

ENDPROC

'***********************************************************************************

Proc DrawRGBEdit

    Début de peinture %hwnd
    USEP 0,2, Rgb(102,102,102)
    UseBrush 1, Rgb(255, 0,0)
    Rectangle 262,510,362,545
    USEP 0,2, Rgb(102,102,102)
    UseBrush 1, Rgb(0, 255,0)
    Rectangle 382,510,482,545
    USEP 0,2, Rgb(102,102,102)
    UseBrush 1, Rgb(0, 0, 255)
    Rectangle 504,510,604,545
    EndPaint

ENDPROC

'***********************************************************************************

Proc DrawEmptySelection

    Début de peinture %hwnd
    USEP 0,3, Rgb(127,127,127)
    UseBrush 1, Rgb(255, 255, 255)
    Rectangle 526,32,610,378
    USEP 5,0, Rgb(127, 127, 127)
    UseBrush 1, Rgb(127, 127, 127)
    Rectangle 528,149,609,378
    USEP 5,0, Rgb(0, 0, 0)
    UseBrush 1, Rgb(0, 0, 0)
    Rectangle 528,264,609,378
    EndPaint

ENDPROC

'***********************************************************************************

Proc GetDetailsfromString

    ColNum% = Val(Mid $(GridBoxStr$, 2, 6))
    ColDesription$ = Mid $(GridBoxStr$, Len(GridBoxStr$)-51, 40)
    Red& = Int(Val(Mid $(GridBoxStr$, Len(GridBoxStr$)-10, 3)))
    Green& = Int(Val(Mid $(GridBoxStr$, Len(GridBoxStr$)-6,3)))
    Blue& = Int(Val(Right$(GridBoxStr$, 3)))

ENDPROC

'***********************************************************************************

Proc ShowSelectedColor

    GetDetailsfromString
    Début de peinture %hwnd
    USEP 5,3, Rgb(0,0,0)
    UseBrush 1, Rgb(Red&, Green&, Blue&)
    Rectangle 540,44,598,368
    EndPaint
    SetSelectedColor

ENDPROC

'***********************************************************************************

Proc CreateNewColorList

    Beep
    Assign #1,"C:\ColorList.Dat"
    Réécriture #1
    I% = 0

    WhileNot I% = 256

        R%[I%] = Tour(256)
        G%[I%] = Tour(256)
        B%[I%] = Tour(256)
        ColNum$[I%] = Format $("000000",I%)
        Txt$[I%] = ColNum$[I%]+"|"+ColNum$[I%]+"|"+$ MkStr("Bemerkung-",4)+"|"+Format $("000",R%[I%])+"|"+Format $("000",G%[I%])+"|"+Format $("000",B%[I%])
        Imprimer #1, Txt$[I%]
        Inc I%

    Endwhile

    Fermer #1
    Claire R%[], G%[], B%[]

ENDPROC

'***********************************************************************************

Proc ReadTheColorList

    Var RT$ = »
    Claire ColNum$[], Txt$[], R%[], G%[], B%[]
    Assign #1,"C:\ColorList.Dat"
    Reset #1
    I% = 0

    WhileNot Eof(#1)

        Contribution #1, RT$
        ColNum$[I%] = Val(Mid $(RT$, 2, 6))
        Txt$[I%] = Mid $(RT$, Len(RT$)-51, 40)
        R%[I%] = Int(Val(Mid $(RT$, Len(RT$)-10, 3)))
        G%[I%] = Int(Val(Mid $(RT$, Len(RT$)-6,3)))
        B%[I%] = Int(Val(Right$(RT$, 3)))
        addstring(ColorGridbox&, RT$)
        Inc I%
        SumColors% = I%
        RT$ = »

    Endwhile

    Fermer #1

ENDPROC

'***********************************************************************************

Proc MakeColorBitmaps

    Paramètres R%, G%, B%
    Déclarer x&, y&
    x& = CreateBitmap(94,20,1,1,0)
    MCLS 94,20
    Début de peinture -1
    Cls
    USEP 0,1,RGB(1,0,0)
    UseBrush 1, Rgb(R%, G%, B%)
    Rectangle 0,0 - 94,20
    y& = SelectObject(%hdc,x&)
    ImageList("Add", icolist&, y&, 0)
    EndPaint

ENDPROC

'***********************************************************************************

Proc MakeColorFields

    icolist& = Créer("ImageList", 94,20,33,0)
    sendmessage(ColorGridbox&,~LVM_SETIMAGELIST,~LVSIL_SMALL,IcoList&)
    I% = 0

    WhileNot I% = SumColors%

        MakeColorBitmaps R%[I%], G%[I%], B%[I%]
        LvSetIcon(ColorGridbox&,I%,0,I%)
        Inc I%

    Endwhile

ENDPROC

'***********************************************************************************

Proc ShowColorEditor

    Paramètres Status%

    Si Status% = 1

        EnableWindow ColorEditor&, 0
        EnableWindow Ende&, 0
        SetWindowPos %hwnd = %winleft, %wintop - Width(%hwnd,1), Height(%hwnd,1) + 160

    D'autre

        EnableWindow ColorEditor&, 1
        EnableWindow Ende&, 1
        Cas (Modify% = 1) : Modify% = 0
        EnableWindow ModifyEd&, 1
        SetWindowPos %hwnd = %winleft, %wintop - Width(%hwnd,1), Height(%hwnd,1) - 160

    EndIf

ENDPROC

'***********************************************************************************

Proc SetSelectedColor

    GetDetailsfromString
    SetText ColNumEd&, Str$(ColNum%)
    SetText ColNameEd&, ColDesription$
    SetText RedEd&, Str$(Red&)
    SetText GreenEd&, Str$(Green&)
    SetText BlueEd&, Str$(Blue&)

ENDPROC

'***********************************************************************************

Proc ClearTheFields

    SetText ColNumEd&, »
    SetText ColNameEd&, »
    SetText RedEd&, »
    SetText GreenEd&, »
    SetText BlueEd&, »

ENDPROC

'***********************************************************************************

Proc ShowMeColor

    Paramètres Col%
    Déclarer Found%
    SetFocus(ColorGridbox&)
    Found% = Sélectionnez String(ColorGridbox&,Col%,»)
    GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
    ShowSelectedColor

ENDPROC

'***********************************************************************************

Proc SaveTheColor

    Déclarer Question$
    Var ColNum$ = $ MkStr("0",(6 - Len(GetText $(ColNumEd&)))) + GetText $(ColNumEd&)
    Var ColDesription$ = GetText $(ColNameEd&) + Space$(40 - (Len(GetText $(ColNameEd&))))
    Var Red$ = $ MkStr("0",(3 - Len(GetText $(RedEd&)))) + GetText $(RedEd&)
    Var Green$ = $ MkStr("0",(3 - Len(GetText $(GreenEd&)))) + GetText $(GreenEd&)
    Var Blue$ = $ MkStr("0",(3 - Len(GetText $(BlueEd&)))) + GetText $(BlueEd&)
    Var SaveString$ = ColNum$+"|"+ColNum$+"|"+ColDesription$+"|"+Red$+"|"+Green$+"|"+Blue$
    Var Position% = GetCurSel(ColorGridbox&)

    Si Modify% = 1

        Si Messagebox("Wollen vous qui la couleur avec qui numéro: "+GetText $(ColNumEd&)+" wirklich changement?","ACHTUNG!",292) = 6

            DeleteString(ColorGridbox&,Position%)
            InsertString(ColorGridbox&,Position%,SaveString$)
            UpdateGridBox
            ModifyColor 0
            Sélectionnez String(ColorGridbox&,Position%,»)
            GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
            ShowSelectedColor

        EndIf

    D'autre

        Si Sélectionnez String(ColorGridbox&,-1,GetText $(ColNumEd&))

            Si MessageBox("Die la couleur avec qui numéro: "+GetText $(ColNumEd&)+" Existe déjà\rWollen vous cet la couleur wirklich Sauver?","Doppelte Farbnummer",292) = 6

                AddStrings(ColorGridbox&,SaveString$)
                UpdateGridBox
                ModifyColor 0
                Sélectionnez String(ColorGridbox&,GetCount(ColorGridbox&)-1,»)
                GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
                ShowSelectedColor

            EndIf

        EndIf

    EndIf

ENDPROC

'***********************************************************************************

Proc SearchOneColor

    Var SearchColor$ = Contribution$("Bitte trop suchende Farbnummer avec max. 6 payons eingeben:","Farbe suchen","123456")

    Si Sélectionnez String(ColorGridbox&,-1,SearchColor$)

        GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
        ShowSelectedColor

    D'autre

        MessageBox("Keine la couleur avec qui numéro: "+SearchColor$+" trouvé!","Fehler chez qui Suche",48)

    EndIf

ENDPROC

'***********************************************************************************

Proc DeleteTheColor

    Var OK% = Messagebox("Wollen vous qui la couleur avec qui numéro: "+GetText $(ColNumEd&)+" wirklich effacer?","ACHTUNG!",292)

    Si OK% = 6

        DeleteString(ColorGridbox&,GetCurSel(ColorGridbox&))
        UpdateGridBox
        Sélectionnez String(ColorGridbox&,0,»)
        GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
        ShowSelectedColor

    EndIf

ENDPROC

'***********************************************************************************

Proc UpdateModifiedColor

    Début de peinture %hwnd
    USEP 5,3, Rgb(0,0,0)
    UseBrush 1, Rgb(Val(GetText $(RedEd&)), Val(GetText $(GreenEd&)), Val(GetText $(BlueEd&)))
    Rectangle 540,44,598,368
    EndPaint

ENDPROC

'***********************************************************************************

Proc ModifyColor

    Paramètres Mode%

    Si Mode% = 1

        EnableWindow ModifyEd&, 0
        Modify% = 1
        GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))

    D'autre

        EnableWindow ModifyEd&, 1
        Modify% = 0

    EndIf

ENDPROC

'***********************************************************************************

Proc UpdateGridBox

    Hide(ColorGridbox&)
    ReWriteColorDataFile
    ClearList ColorGridbox&
    ReadTheColorList
    MakeColorFields
    Show(ColorGridbox&)

ENDPROC

'***********************************************************************************

Proc ReWriteColorDataFile

    Var ColorEntries% = GetCount(ColorGridbox&)
    Assign #2,"C:\ColorList.Dat"
    Réécriture #2
    I% = 0

    WhileNot I% = ColorEntries%

        Imprimer #2, GetString$(ColorGridbox&, I%)
        Inc I%

    Endwhile

    Fermer #2

ENDPROC

'***********************************************************************************
'** Hauptschleife
'***********************************************************************************
cls GetSysColor(15)
Fenêtre Style 10 | 512 | 2048
Titre de la fenêtre "Arbeitsfenster"
Fenêtre ((%maxx-644)/2), 100 - 644,500
Set("Truecolor",1)
var Spalten$ = "Farbe;0;98;WollfarbNr.;1;80;Bemerkung;0;298;R;1;40;G;1;40;B;1;40"
var ColorGridbox& = create("Gridbox",%hwnd,Spalten$,0,10,10,500,380)
Var GridBoxStr$ = »
Var GrBx& = Créer("GroupBox",%hwnd,"Auswahl",518,10,100,382)
Var Ende& = Créer("Button",%hwnd,"&Ende", 10,400,100,30)
Var ColorEditor& = Créer("Button",%hwnd,"&Farbeditor", 515,400,100,30)
'**** Beginn Farbeditor ************************************************************
Var GrBxEd& = create("Groupbox", %hwnd, "Farbeditor", 1, 455, 626,12)
Créer("Text",%hwnd,"Farbnummer:",20,477,90,24) : Var ColNumEd& = Créer("Edit", %hwnd, "12346", 110,475,50,24)
Créer("Text",%hwnd,"Farbname:",180,477,80,24) : Var ColNameEd& = Créer("Edit", %hwnd, "12346", 260,475,345,24)
DrawRGBEdit
Créer("Text",%hwnd,"Farbwerte pour rouge - vert - bleu:",50,517,200,24)
Var RedEd& = Créer("SpinEdit",%hwnd, "0;0;255",280,515,60,24)
Var GreenEd& = Créer("SpinEdit",%hwnd, "0;0;255",402,515,60,24)
Var BlueEd& = Créer("SpinEdit",%hwnd, "0;0;255",524,515,60,24)
Var EndeEd& = Créer("Button",%hwnd,"Beenden", 10,555,70,30)
Var ClearEd& = Créer("Button",%hwnd,"Felder leeren", 96,555,100,30)
Var SearchEd& = Créer("Button",%hwnd,"Farbe suchen", 212,555,100,30)
Var DeleteEd& = Créer("Button",%hwnd,"Farbe löschen", 313,555,100,30)
Var ModifyEd& = Créer("Button",%hwnd,"Farbe ändern", 414,555,100,30)
Var SaveEd& = Créer("Button",%hwnd,"Farbe sichern", 515,555,100,30)
'**** Ende Farbeditor **************************************************************
ShowWindow(ColorGridbox&,0)
DrawEmptySelection
Casenote FileExists("C:\ColorList.Dat") : CreateNewColorList
ReadTheColorList
MakeColorFields
ShowMeColor 0
ShowWindow(ColorGridbox&,1)

WhileNot Ende%

    waitinput

    Si Clicked(ColorGridbox&) OU (iskey(13) AND Getfocus(ColorGridbox&))

        Si GetCurSel(ColorGridbox&) >= 0

            GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
            ShowSelectedColor

        EndIf

    ElseIf Clicked(ColorEditor&)

        ShowColorEditor 1

    ElseIf Clicked(ModifyEd&)

        ModifyColor 1

    ElseIf Clicked(RedEd&)

        UpdateModifiedColor

    ElseIf Clicked(GreenEd&)

        UpdateModifiedColor

    ElseIf Clicked(BlueEd&)

        UpdateModifiedColor

    ElseIf Clicked(SearchEd&)

        SearchOneColor

    ElseIf Clicked(ClearEd&)

        ClearTheFields

    ElseIf Clicked(SaveEd&)

        SaveTheColor

    ElseIf Clicked(DeleteEd&)

        DeleteTheColor

    ElseIf Clicked(EndeEd&)

        ShowColorEditor 0

    ElseIf Clicked(Ende&)

        DeleteObject icolist&
        Fin

    EndIf

Endwhile

'***********************************************************************************
 
24.04.2015  
 




Rainer
Hoefs
Vielen Dank!

Rainer
 
22.04.2015  
 




Thomas
Freier
si es so reicht ok.
Soll cela Icon (qui la couleur) chez selectierter la ligne conservé rester wird es aufwendiger. Es devrait encore qui Possibilité donner, dass qui Zeilenfarbe pas bleu wird et qui la ligne seulement encore une gestrichelten cadre bekommt.
ou bien sur cela LV-Item une Bitmap aus dem entsprechendem Icon mettons.
 
Gruß Thomas
Windows XP SP2, XProfan X2
22.04.2015  
 




Rainer
Hoefs
Thomas Freier (22.04.15)
si es so reicht ok.
Soll cela Icon (qui la couleur) chez selectierter la ligne conservé rester wird es aufwendiger. Es devrait encore qui Possibilité donner, dass qui Zeilenfarbe pas bleu wird et qui la ligne seulement encore une gestrichelten cadre bekommt.
ou bien sur cela LV-Item une Bitmap aus dem entsprechendem Icon mettons.


allô Thomas,

oui, cela avec dem cadre wäre bien. Habe déjà gesucht chez den Messages dans Comm*.ph mais rien passendes erkannt.

encore une weitere Frage: dans qui liste wird unten toujours une Leerzeile gezeigt, qui beim Anklicken trop einem faute führt, comment peux on qui wegbekommen, car qui "Farbe" gibt es oui pas?

Rainer
 
23.04.2015  
 




Thomas
Freier
Rainer Hoefs (04/23/15)
Thomas Freier (22.04.15)
si es so reicht ok.
Soll cela Icon (qui la couleur) chez selectierter la ligne conservé rester wird es aufwendiger. Es devrait encore qui Possibilité donner, dass qui Zeilenfarbe pas bleu wird et qui la ligne seulement encore une gestrichelten cadre bekommt.
ou bien sur cela LV-Item une Bitmap aus dem entsprechendem Icon mettons.


allô Thomas,

oui, cela avec dem cadre wäre bien. Habe déjà gesucht chez den Messages dans Comm*.ph mais rien passendes erkannt.

encore une weitere Frage: dans qui liste wird unten toujours une Leerzeile gezeigt, qui beim Anklicken trop einem faute führt, comment peux on qui wegbekommen, car qui "Farbe" gibt es oui pas?

Rainer


Zum 1. doit je chercher. Müßte une SetStyle H, [M,] N donner.
Zum 2. es wird Clicked(Lv&) abgefragt. alors qui Gridbox. Pour Aktionen besser GetCurSel(Lv&). Es wird ggf. -1 retour et ensuite faute.
tandis que 1

    waitinput

    Si Clicked(Lv&)

        imprimer GetCurSel(Lv&) >= 0' NUR ZUM TEST DANN LÖSCHEN

        Si GetCurSel(Lv&) >= 0 OU (iskey(13) AND Getfocus(LV&))

            GridBoxStr$ = GetString$(Lv&,GetCurSel(Lv&))
            ShowSelectedColor GridBoxstr$

        EndIf

    Endif

endwhile

 
Gruß Thomas
Windows XP SP2, XProfan X2
23.04.2015  
 




Rainer
Hoefs
merci!

Rainer
 
23.04.2015  
 




Thomas
Freier
sur qui Schnelle finde je cela pas.
un Beispiel, wohin cela Icon pas teinté wird ist unter [...] 
pour trouver. Ist zwar aus qui Zeit avant qui Gridbox, mais toujours une source.

39 kB
Hochgeladen:23.04.2015
Downloadcounter146
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
23.04.2015  
 




Rainer
Hoefs
Salut,

ici cela Ergebnis, welches avec Eurer Aider erreicht wurde.

merci nochmals

Rainer
'***********************************************************************************
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
'***********************************************************************************
Def GetSysColor(1) !"User32","GetSysColor"
Def CreateBitmap(5) !"GDI32","CreateBitmap"
Def SelectObject(2) !"GDI32","SelectObject"
Def Show(1) ShowWindow(@&(1), 1)
Def Hide(1) ShowWindow(@&(1), 0)
Déclarer R%[], G%[], B%[], Txt$[], ColNum$[], I%, Modify%
Déclarer Red&, Green&, Blue&, ColNum%, ColDesription$, SumColors%, GridboxString$
Déclarer Lv#, icolist&
Var Ende% = 0
struct Lv = Mask&,Item&,SubItem&,State&,StateMask&,Text&,TextMax&,Image&
dim Lv#,Lv
'***********************************************************************************

Proc LvSetIcon

    Lv#.Item&=&(2)
    Lv#.SubItem&=&(3)
    Lv#.Mask&=~LVIF_IMAGE
    Lv#.Image&=%(4)
    sendmessage(&(1),~LVM_SETITEM,0,Lv#)

ENDPROC

'***********************************************************************************

Proc DrawRGBEdit

    Début de peinture %hwnd
    USEP 0,2, Rgb(102,102,102)
    UseBrush 1, Rgb(255, 0,0)
    Rectangle 262,510,362,545
    USEP 0,2, Rgb(102,102,102)
    UseBrush 1, Rgb(0, 255,0)
    Rectangle 382,510,482,545
    USEP 0,2, Rgb(102,102,102)
    UseBrush 1, Rgb(0, 0, 255)
    Rectangle 504,510,604,545
    EndPaint

ENDPROC

'***********************************************************************************

Proc DrawEmptySelection

    Début de peinture %hwnd
    USEP 0,3, Rgb(127,127,127)
    UseBrush 1, Rgb(255, 255, 255)
    Rectangle 526,32,610,378
    USEP 5,0, Rgb(127, 127, 127)
    UseBrush 1, Rgb(127, 127, 127)
    Rectangle 528,149,609,378
    USEP 5,0, Rgb(0, 0, 0)
    UseBrush 1, Rgb(0, 0, 0)
    Rectangle 528,264,609,378
    EndPaint

ENDPROC

'***********************************************************************************

Proc GetDetailsfromString

    ColNum% = Val(Mid $(GridBoxStr$, 2, 6))
    ColDesription$ = Mid $(GridBoxStr$, Len(GridBoxStr$)-51, 40)
    Red& = Int(Val(Mid $(GridBoxStr$, Len(GridBoxStr$)-10, 3)))
    Green& = Int(Val(Mid $(GridBoxStr$, Len(GridBoxStr$)-6,3)))
    Blue& = Int(Val(Right$(GridBoxStr$, 3)))

ENDPROC

'***********************************************************************************

Proc ShowSelectedColor

    GetDetailsfromString
    Début de peinture %hwnd
    USEP 5,3, Rgb(0,0,0)
    UseBrush 1, Rgb(Red&, Green&, Blue&)
    Rectangle 540,44,598,368
    EndPaint
    SetSelectedColor

ENDPROC

'***********************************************************************************

Proc CreateNewColorList

    Beep
    Assign #1,"C:\ColorList.Dat"
    Réécriture #1
    I% = 0

    WhileNot I% = 256

        R%[I%] = Tour(256)
        G%[I%] = Tour(256)
        B%[I%] = Tour(256)
        ColNum$[I%] = Format $("000000",I%)
        Txt$[I%] = ColNum$[I%]+"|"+ColNum$[I%]+"|"+$ MkStr("Bemerkung-",4)+"|"+Format $("000",R%[I%])+"|"+Format $("000",G%[I%])+"|"+Format $("000",B%[I%])
        Imprimer #1, Txt$[I%]
        Inc I%

    Endwhile

    Fermer #1
    Claire R%[], G%[], B%[]

ENDPROC

'***********************************************************************************

Proc ReadTheColorList

    Var RT$ = »
    Claire ColNum$[], Txt$[], R%[], G%[], B%[]
    Assign #1,"C:\ColorList.Dat"
    Reset #1
    I% = 0

    WhileNot Eof(#1)

        Contribution #1, RT$
        ColNum$[I%] = Val(Mid $(RT$, 2, 6))
        Txt$[I%] = Mid $(RT$, Len(RT$)-51, 40)
        R%[I%] = Int(Val(Mid $(RT$, Len(RT$)-10, 3)))
        G%[I%] = Int(Val(Mid $(RT$, Len(RT$)-6,3)))
        B%[I%] = Int(Val(Right$(RT$, 3)))
        addstring(ColorGridbox&, RT$)
        Inc I%
        SumColors% = I%
        RT$ = »

    Endwhile

    Fermer #1

ENDPROC

'***********************************************************************************

Proc MakeColorBitmaps

    Paramètres R%, G%, B%
    Déclarer x&, y&
    x& = CreateBitmap(94,20,1,1,0)
    MCLS 94,20
    Début de peinture -1
    Cls
    USEP 0,1,RGB(1,0,0)
    UseBrush 1, Rgb(R%, G%, B%)
    Rectangle 0,0 - 94,20
    y& = SelectObject(%hdc,x&)
    ImageList("Add", icolist&, y&, 0)
    EndPaint

ENDPROC

'***********************************************************************************

Proc MakeColorFields

    icolist& = Créer("ImageList", 94,20,33,0)
    sendmessage(ColorGridbox&,~LVM_SETIMAGELIST,~LVSIL_SMALL,IcoList&)
    I% = 0

    WhileNot I% = SumColors%

        MakeColorBitmaps R%[I%], G%[I%], B%[I%]
        LvSetIcon(ColorGridbox&,I%,0,I%)
        Inc I%

    Endwhile

ENDPROC

'***********************************************************************************

Proc ShowColorEditor

    Paramètres Status%

    Si Status% = 1

        EnableWindow ColorEditor&, 0
        EnableWindow Ende&, 0
        SetWindowPos %hwnd = %winleft, %wintop - Width(%hwnd,1), Height(%hwnd,1) + 160

    D'autre

        EnableWindow ColorEditor&, 1
        EnableWindow Ende&, 1
        Cas (Modify% = 1) : Modify% = 0
        EnableWindow ModifyEd&, 1
        SetWindowPos %hwnd = %winleft, %wintop - Width(%hwnd,1), Height(%hwnd,1) - 160

    EndIf

ENDPROC

'***********************************************************************************

Proc SetSelectedColor

    GetDetailsfromString
    SetText ColNumEd&, Str$(ColNum%)
    SetText ColNameEd&, ColDesription$
    SetText RedEd&, Str$(Red&)
    SetText GreenEd&, Str$(Green&)
    SetText BlueEd&, Str$(Blue&)

ENDPROC

'***********************************************************************************

Proc ClearTheFields

    SetText ColNumEd&, »
    SetText ColNameEd&, »
    SetText RedEd&, »
    SetText GreenEd&, »
    SetText BlueEd&, »

ENDPROC

'***********************************************************************************

Proc ShowMeColor

    Paramètres Col%
    Déclarer Found%
    SetFocus(ColorGridbox&)
    Found% = Sélectionnez String(ColorGridbox&,Col%,»)
    GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
    ShowSelectedColor

ENDPROC

'***********************************************************************************

Proc SaveTheColor

    Déclarer Question$
    Var ColNum$ = $ MkStr("0",(6 - Len(GetText $(ColNumEd&)))) + GetText $(ColNumEd&)
    Var ColDesription$ = GetText $(ColNameEd&) + Space$(40 - (Len(GetText $(ColNameEd&))))
    Var Red$ = $ MkStr("0",(3 - Len(GetText $(RedEd&)))) + GetText $(RedEd&)
    Var Green$ = $ MkStr("0",(3 - Len(GetText $(GreenEd&)))) + GetText $(GreenEd&)
    Var Blue$ = $ MkStr("0",(3 - Len(GetText $(BlueEd&)))) + GetText $(BlueEd&)
    Var SaveString$ = ColNum$+"|"+ColNum$+"|"+ColDesription$+"|"+Red$+"|"+Green$+"|"+Blue$
    Var Position% = GetCurSel(ColorGridbox&)

    Si Modify% = 1

        Si Messagebox("Wollen vous qui la couleur avec qui numéro: "+GetText $(ColNumEd&)+" wirklich changement?","ACHTUNG!",292) = 6

            DeleteString(ColorGridbox&,Position%)
            InsertString(ColorGridbox&,Position%,SaveString$)
            UpdateGridBox
            ModifyColor 0
            Sélectionnez String(ColorGridbox&,Position%,»)
            GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
            ShowSelectedColor

        EndIf

    D'autre

        Si Sélectionnez String(ColorGridbox&,-1,GetText $(ColNumEd&))

            Si MessageBox("Die la couleur avec qui numéro: "+GetText $(ColNumEd&)+" Existe déjà\rWollen vous cet la couleur wirklich Sauver?","Doppelte Farbnummer",292) = 6

                AddStrings(ColorGridbox&,SaveString$)
                UpdateGridBox
                ModifyColor 0
                Sélectionnez String(ColorGridbox&,GetCount(ColorGridbox&)-1,»)
                GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
                ShowSelectedColor

            EndIf

        EndIf

    EndIf

ENDPROC

'***********************************************************************************

Proc SearchOneColor

    Var SearchColor$ = Contribution$("Bitte trop suchende Farbnummer avec max. 6 payons eingeben:","Farbe suchen","123456")

    Si Sélectionnez String(ColorGridbox&,-1,SearchColor$)

        GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
        ShowSelectedColor

    D'autre

        MessageBox("Keine la couleur avec qui numéro: "+SearchColor$+" trouvé!","Fehler chez qui Suche",48)

    EndIf

ENDPROC

'***********************************************************************************

Proc DeleteTheColor

    Var OK% = Messagebox("Wollen vous qui la couleur avec qui numéro: "+GetText $(ColNumEd&)+" wirklich effacer?","ACHTUNG!",292)

    Si OK% = 6

        DeleteString(ColorGridbox&,GetCurSel(ColorGridbox&))
        UpdateGridBox
        Sélectionnez String(ColorGridbox&,0,»)
        GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
        ShowSelectedColor

    EndIf

ENDPROC

'***********************************************************************************

Proc UpdateModifiedColor

    Début de peinture %hwnd
    USEP 5,3, Rgb(0,0,0)
    UseBrush 1, Rgb(Val(GetText $(RedEd&)), Val(GetText $(GreenEd&)), Val(GetText $(BlueEd&)))
    Rectangle 540,44,598,368
    EndPaint

ENDPROC

'***********************************************************************************

Proc ModifyColor

    Paramètres Mode%

    Si Mode% = 1

        EnableWindow ModifyEd&, 0
        Modify% = 1
        GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))

    D'autre

        EnableWindow ModifyEd&, 1
        Modify% = 0

    EndIf

ENDPROC

'***********************************************************************************

Proc UpdateGridBox

    Hide(ColorGridbox&)
    ReWriteColorDataFile
    ClearList ColorGridbox&
    ReadTheColorList
    MakeColorFields
    Show(ColorGridbox&)

ENDPROC

'***********************************************************************************

Proc ReWriteColorDataFile

    Var ColorEntries% = GetCount(ColorGridbox&)
    Assign #2,"C:\ColorList.Dat"
    Réécriture #2
    I% = 0

    WhileNot I% = ColorEntries%

        Imprimer #2, GetString$(ColorGridbox&, I%)
        Inc I%

    Endwhile

    Fermer #2

ENDPROC

'***********************************************************************************
'** Hauptschleife
'***********************************************************************************
cls GetSysColor(15)
Fenêtre Style 10 | 512 | 2048
Titre de la fenêtre "Arbeitsfenster"
Fenêtre ((%maxx-644)/2), 100 - 644,500
Set("Truecolor",1)
var Spalten$ = "Farbe;0;98;WollfarbNr.;1;80;Bemerkung;0;298;R;1;40;G;1;40;B;1;40"
var ColorGridbox& = create("Gridbox",%hwnd,Spalten$,0,10,10,500,380)
Var GridBoxStr$ = »
Var GrBx& = Créer("GroupBox",%hwnd,"Auswahl",518,10,100,382)
Var Ende& = Créer("Button",%hwnd,"&Ende", 10,400,100,30)
Var ColorEditor& = Créer("Button",%hwnd,"&Farbeditor", 515,400,100,30)
'**** Beginn Farbeditor ************************************************************
Var GrBxEd& = create("Groupbox", %hwnd, "Farbeditor", 1, 455, 626,12)
Créer("Text",%hwnd,"Farbnummer:",20,477,90,24) : Var ColNumEd& = Créer("Edit", %hwnd, "12346", 110,475,50,24)
Créer("Text",%hwnd,"Farbname:",180,477,80,24) : Var ColNameEd& = Créer("Edit", %hwnd, "12346", 260,475,345,24)
DrawRGBEdit
Créer("Text",%hwnd,"Farbwerte pour rouge - vert - bleu:",50,517,200,24)
Var RedEd& = Créer("SpinEdit",%hwnd, "0;0;255",280,515,60,24)
Var GreenEd& = Créer("SpinEdit",%hwnd, "0;0;255",402,515,60,24)
Var BlueEd& = Créer("SpinEdit",%hwnd, "0;0;255",524,515,60,24)
Var EndeEd& = Créer("Button",%hwnd,"Beenden", 10,555,70,30)
Var ClearEd& = Créer("Button",%hwnd,"Felder leeren", 96,555,100,30)
Var SearchEd& = Créer("Button",%hwnd,"Farbe suchen", 212,555,100,30)
Var DeleteEd& = Créer("Button",%hwnd,"Farbe löschen", 313,555,100,30)
Var ModifyEd& = Créer("Button",%hwnd,"Farbe ändern", 414,555,100,30)
Var SaveEd& = Créer("Button",%hwnd,"Farbe sichern", 515,555,100,30)
'**** Ende Farbeditor **************************************************************
ShowWindow(ColorGridbox&,0)
DrawEmptySelection
Casenote FileExists("C:\ColorList.Dat") : CreateNewColorList
ReadTheColorList
MakeColorFields
ShowMeColor 0
ShowWindow(ColorGridbox&,1)

WhileNot Ende%

    waitinput

    Si Clicked(ColorGridbox&) OU (iskey(13) AND Getfocus(ColorGridbox&))

        Si GetCurSel(ColorGridbox&) >= 0

            GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
            ShowSelectedColor

        EndIf

    ElseIf Clicked(ColorEditor&)

        ShowColorEditor 1

    ElseIf Clicked(ModifyEd&)

        ModifyColor 1

    ElseIf Clicked(RedEd&)

        UpdateModifiedColor

    ElseIf Clicked(GreenEd&)

        UpdateModifiedColor

    ElseIf Clicked(BlueEd&)

        UpdateModifiedColor

    ElseIf Clicked(SearchEd&)

        SearchOneColor

    ElseIf Clicked(ClearEd&)

        ClearTheFields

    ElseIf Clicked(SaveEd&)

        SaveTheColor

    ElseIf Clicked(DeleteEd&)

        DeleteTheColor

    ElseIf Clicked(EndeEd&)

        ShowColorEditor 0

    ElseIf Clicked(Ende&)

        DeleteObject icolist&
        Fin

    EndIf

Endwhile

'***********************************************************************************
 
24.04.2015  
 




E.T.
très joli, seulement eines comme pas so droite:
si une la ligne markiert ist, wird dans cette qui la couleur des linken Feldes modifié, so cela qui Farben à gauche dans qui Box et à droite unterschiedlich air. Wa im ersten Moment quelque chose

 
XProfan X2
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
24.04.2015  
 




Rainer
Hoefs
Salut,

oui, c'est im Moment malheureusement so.

Thomas Freier meinte es gäbe une Possibilité chez den Style-Settings seulement une cadre à la ligne trop mettons. cela wäre ensuite ideal.

j'ai aussi déjà chez den Messages gesucht, et rien trouvé, quoi on ggf. benutzen pourrait. So doit je mich im Moment plan so behelfen.

Sollte encore irgendjemanden quelque chose en supplément envahir, wäre je pour den Tip, comment toujours, très reconnaissant.

Rainer
 
25.04.2015  
 




Jörg
Sellmeyer
entier brachial könntest du simple pour deinem Mausklick dans qui Gridlist den Concentrer aufs Hauptfenster mettons:
Si Clicked(ColorGridbox&) OU (iskey(13) AND Getfocus(ColorGridbox&))

    Si GetCurSel(ColorGridbox&) >= 0

        GridBoxStr$ = GetString$(ColorGridbox&,GetCurSel(ColorGridbox&))
        ShowSelectedColor
        SetFocus(%hwnd)

    EndIf

    '...

EndIf

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
25.04.2015  
 




Rainer
Hoefs
allô Jörg,

ist oui 'ne echte "quick & dirty"-Solution, qui mais bestens funktioniert.

car pour qui sélection einer la couleur dans qui liste wird oui sowieso irgendetwas avec cela angefangen, z.B. im Farbeditor gearbeitet, ou bien si alles im richtigen Dialog dans mon Teppich-Kolorier- et Druckprogramm integriert ist, un Teppich koloriert, wohin ensuite oui tout de suite qui Concentrer sur anderen Bedienelementen sitzt.

Insofern une gute et praktikable Solution.

merci.

Rainer

p.s.
toutefois.... si quelqu'un encore qui saubere Windows-Api-Solution einfällt....
 
25.04.2015  
 




Thomas
Freier
Es wird ensuite qui markierte la ligne hellgrau et qui la couleur ändert sich aussi encore.
Alternativ avec Checkbox, ensuite le crochet mettons et alles deselektieren.
ou bien Bitmap sur cela Icon qui markierten la ligne.
Kleines Beispiel (Problem bleibt cela Ermitteln qui Item-Koordinaten sans Litview.dll)
window 10,100-450,400
Titre de la fenêtre "Wahl pour Double-cliquez sur links"'
 $H windows.ph
 $H messages.ph
 $H commctrl.ph
'
declare Lv#
struct Lv=Mask&,Item&,SubItem&,State&,StateMask&,Text&,TextMax&,Image&
dim Lv#,Lv
'

proc LvSetIcon'---------------------------------------------LvSetIcon

    Lv#.Item&=&(2)
    Lv#.SubItem&=&(3)
    Lv#.Mask&=~LVIF_IMAGE
    Lv#.Image&=%(4)
    sendmessage(&(1),~LVM_SETITEM,0,Lv#)

endproc'-------------------------------------------------------------

'
var IcoList&=create("ImageList",26,26)
ImageList("AddIcon",IcoList&,~LoadIcon(0,32512))
ImageList("AddIcon",IcoList&,~LoadIcon(0,32513))
ImageList("AddIcon",IcoList&,~LoadIcon(0,32514))
ImageList("AddIcon",IcoList&,~LoadIcon(0,32515))
'
var a$=";0;56;Spalte 2;0;120;Spalte 3;0;120"
var Lv&=create("gridbox",%hwnd,a$,0,10,30,400,200)
sendmessage(Lv&,~LVM_SETIMAGELIST,~LVSIL_SMALL,IcoList&)
'
a$="|Test x b|Test x c|Test x d|Test x e"

whileloop 0,5

    addstring(Lv&,translate$(a$,"x",str$(&loop)))
    LvSetIcon(Lv&,&loop,0,1)

endwhile

SubClass %hwnd, 1
Utilisateur Messages 2000
Déclarer x&,y&,x%,y%
Déclarer bi&, ba&, item&

tandis que 1

    waitinput

    Si (%umessage = 2000) AND (&ulparam > -1)

        x&= &ulparam
        y&= &uwparam
        x%=0
        y%=SendMessage(LV&,$101D, x&,0)

        Whileloop 0,x&-1,1

            x%=x%+SendMessage(LV&,$101D, &loop,0)

        Endwhile

        '########################################################################
        MCLS 32,26
        Début de peinture -1
        Cls
        USEP 0,6,RGB(255,0,0)
        Rectangle 0,0 - 32,26
        EndPaint
        bi&=Créer(«PCSI», 0,"& MEMBMP")
        DestroyWindow(ba&)
        ba&=Créer("Bitmap", LV&, bi&,2, 25+(y&*27))
        '########################################################################

    EndIf

Endwhile

DeleteObject bi&
Usermessages 0
SubClass %hwnd, 0
FIN

SubClassProc

    Si SubClassMessage(%hWnd, ~WM_NOTIFY)

        Si Long(&sLParam,8)=-3

            item&=Long(&sLParam,12)

            Si item&<>-1

                SendMessage(%hwnd, 2000, item&, Long(&sLParam,16))

            EndIf

        EndIf

    EndIf

ENDPROC




chez mir ist qui Beschriftung tlw. trop grand. Screen-1.jpg

26 kB
Hochgeladen:25.04.2015
Downloadcounter57
Download
104 kB
Hochgeladen:25.04.2015
Downloadcounter21
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
25.04.2015  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

6.093 Views

Untitledvor 0 min.
Peter Max Müller21.01.2024
RudiB.26.08.2022
Jörg Sellmeyer15.05.2018
rquindt29.04.2018
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie