Autor Beitrag
Kurdt67
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30

WIN XP
D7 Pers
BeitragVerfasst: Mo 28.02.05 22:26 
Hi! Mal ne Frage : Ich hab ne Checklistbox und ich will nur AKZEPTIEREN wenn der Benutzer auch ein häkchen macht! nun hab ich gemerkt, das man auch nur die stringzeile anklicken kann (die blaue) ohne das dann das häkchen aktiviert ist, jedoch wird dann auch akzeptiert das diese Zeile ausgewählt ist!! Kann ich das verhindern??? :?:
Und gleich noch ne Frage! Wie angesprochen färbt sich eine Zeile ja so blau, kann ich das ändern, und die z.B. Grau machen? Wenn ja wie? :roll:
DANKE EUCH... :roll:
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 28.02.05 22:28 
wenn du nicht willst dass ein click auf den text deiner checkbox das teil ein/ausschaltet verwende halt ein label für deinen text und die caption der checkbox stellst du auf ''
cartridge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 209

Win XP
D4 Prof,D6 Prof
BeitragVerfasst: Mo 28.02.05 22:32 
Hi!

Ich weiß ja nicht worauf Du geprüft hast. Du musst jedoch auch Checed über eine Schleife prüfen!

Gruß
Ingo
Dominique
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 92



BeitragVerfasst: Mo 28.02.05 22:46 
retnyg hat folgendes geschrieben:
wenn du nicht willst dass ein click auf den text deiner checkbox das teil ein/ausschaltet verwende halt ein label für deinen text und die caption der checkbox stellst du auf ''


hat er nicht CHECKLISTBOX geschrieben???


zu frage 1:
cartridge hat folgendes geschrieben:
Hi!

Ich weiß ja nicht worauf Du geprüft hast. Du musst jedoch auch Checed über eine Schleife prüfen!

Gruß
Ingo


zu frage 2:

setze die Eigenschaft "Style" auf "lbOwnerDrawFixed" und Zeichne im OnDrawItem-Ereignis neu:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.CheckListBox1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  if Control is TCheckListBox then
  begin
    TCheckListBox(Control).Canvas.FillRect(Rect);
    if (odSelected in State) then
      with TCheckListBox(Control).Canvas do
      begin
        Pen.Style := psClear;
        Brush.Style := bsSolid;
        Brush.Color := clSilver;
        FillRect(Rect);
        Font.Color := clWindow;
      end
    else
      TCheckListBox(Control).Canvas.Font.Color := clMoneyGreen;
    DrawText(TCheckListBox(Control).Canvas.handle,
      pChar(TCheckListBox(Control).Items[Index]),
      Length(TCheckListBox(Control).Items[Index]), Rect, DT_SINGLELINE);
  end;
end;


mit den Farben und Linienstilen (Brush.Style) kannst du nach belieben herumspielen
Kurdt67 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30

WIN XP
D7 Pers
BeitragVerfasst: Mo 28.02.05 22:49 
@ cartridge : jo, ich hab mit ner FOR-schleife geprüft, ob checklistbox1.checked[i] true
ist. er akzeptiert das aber auch so...
@ retnyg : das geht nicht mit dem label bei mir, weil ich jetzt das programm schon so geschrieben hab, das er das in die listbox schreibt!!! dann muss ich soviel ändern!!!
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 28.02.05 23:00 
im normalfall führt das clicken auf einen text nicht zu einem check-vorgang

also wenn du auf checked prüfst müsste das auf jeden fall gehen. bedenke aber dass die numerierung der items einer listbox mit 0 beginnt und nicht mit 1 !
also nicht ...checked[i] sondern ...checked[i-1]
Kurdt67 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30

WIN XP
D7 Pers
BeitragVerfasst: Mo 28.02.05 23:11 
SORRY @ retnyg : ich hatte doch als eigenschaft SELECTED, du hast recht ich hab jetzt checked genommen, jetzt gehts einwandfrei!!

Bloß mit den farben komm ich net klar, ist ganz schön schwer... :oops:
Dominique
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 92



BeitragVerfasst: Mo 28.02.05 23:15 
Kurdt67 hat folgendes geschrieben:
Bloß mit den farben komm ich net klar, ist ganz schön schwer... :oops:


ist ganz schön Bunt würde ich sagen :lol:

wo hakt es denn? den Source von oben kannst du praktsch 1:1 übernehmen

nur die Style-Property nicht vergessen (lbOwnerDrawFixed")
Kurdt67 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30

WIN XP
D7 Pers
BeitragVerfasst: Mo 28.02.05 23:25 
ok soll ichs wirklich wagen?? ich probiers mal, also es geht los : :wink:
zu "checkListBox2DrawItem" sagt er undefinierter bezeichner.
meine checklist heißt aber 2!!!!! muss da noch nen punkt zwischen?
dann gehts weiter : undefin. bezeichern "control",
[Fehler] Unit1.pas(225): Operator ist auf diesen Operandentyp nicht anwendbar
[Fehler] Unit1.pas(227): Es gibt keine überladene Version von 'Rect', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(228): Undefinierter Bezeichner: 'State'
[Fehler] Unit1.pas(234): Es gibt keine überladene Version von 'Rect', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(240): Undefinierter Bezeichner: 'Index'
[Fehler] Unit1.pas(241): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
[Fehler] Unit1.pas(40): Ungenügende Forward- oder External-Deklaration: 'TForm1.FormCreate'

Und jetzt schlagt mich bitte net zusammen!!! :wink:
Dominique
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 92



BeitragVerfasst: Mo 28.02.05 23:30 
Kurdt67 hat folgendes geschrieben:
ok soll ichs wirklich wagen?? ich probiers mal, also es geht los : :wink:
zu "checkListBox2DrawItem" sagt er undefinierter bezeichner.

das ist ein ereignis, also im Objektinspektor (vorher deine checklistbox2 markieren!)
auf das register "Ereignisse" und dann einen doppelklick neben "OnDrawItem"


Kurdt67 hat folgendes geschrieben:

meine checklist heißt aber 2!!!!! muss da noch nen punkt zwischen?
dann gehts weiter : undefin. bezeichern "control",
[Fehler] Unit1.pas(225): Operator ist auf diesen Operandentyp nicht anwendbar
[Fehler] Unit1.pas(227): Es gibt keine überladene Version von 'Rect', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(228): Undefinierter Bezeichner: 'State'
[Fehler] Unit1.pas(234): Es gibt keine überladene Version von 'Rect', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(240): Undefinierter Bezeichner: 'Index'
[Fehler] Unit1.pas(241): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
[Fehler] Unit1.pas(40): Ungenügende Forward- oder External-Deklaration: 'TForm1.FormCreate'

Und jetzt schlagt mich bitte net zusammen!!! :wink:


der rest sind folgefehler, ausser, dass du die deklaration von FormCreate wohl mal von hand gelöscht hast
Kurdt67 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30

WIN XP
D7 Pers
BeitragVerfasst: Mo 28.02.05 23:38 
uppps, stimmt ja...
ok jetzt geht es wunderbar :D
DANKE AN Dominique!!!!!!
Dominique
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 92



BeitragVerfasst: Mo 28.02.05 23:43 
Kurdt67 hat folgendes geschrieben:
uppps, stimmt ja...
ok jetzt geht es wunderbar :D
DANKE AN Dominique!!!!!!


:oops: ähmmm, schon ok... hoffentlich springen dir meine farben nicht zu sehr in's auge
Kurdt67 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30

WIN XP
D7 Pers
BeitragVerfasst: Mo 28.02.05 23:48 
ne die farben fetzen schon :wink: