AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Combobox-abhängig - Checkbox auf true setzen

Ein Thema von Susanne · begonnen am 12. Dez 2006 · letzter Beitrag vom 14. Dez 2006
 
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Combobox-abhängig - Checkbox auf true setzen

  Alt 12. Dez 2006, 12:27
auf form2 ist eine Groupbox und auf der befinden sich die beiden Checkboxen

ich habe kein Onclick-Event für die Checkboxen



in FormCreate mache ich das: ich prüfe von den Koordinaten her in welche Groupbox die Checkbox gehört und setze dann entsprechend diejenige Groupbox als parent
Delphi-Quellcode:
SetLength(a_chk,i_chkCnt);
  for i := low(a_chk) to high(a_chk) do
    begin
      for iii := low(a_Gbx) to high(a_Gbx) do begin
        i_GbX := a_Gbx[iii].Left;
        i_GbY := a_Gbx[iii].Top;
        i_GbH := a_Gbx[iii].height + i_GbY;
        i_GbB := a_Gbx[iii].width + i_GbY;

        left:= IniFile.ReadInteger(sl_chk[i],'x',8);
        top:= IniFile.ReadInteger(sl_chk[i],'y',8);

        if (Left >= i_GbX) and (Left<= i_GbB) and (Top >= i_GbY) and (Top<= i_GbH) then begin
          a_chk[i] := TCheckBox.Create(a_gbx[iii]);
          a_chk[i].Name := IniFile.ReadString(sl_chk[i],'field id','');
          a_chk[i].Parent := a_gbx[iii];
          a_chk[i].Caption:= IniFile.ReadString(sl_chk[i],'name','');
          a_chk[i].Left := Left - a_Gbx[iii].Left;
          a_chk[i].Top := Top - a_Gbx[iii].Top;
          a_chk[i].Width := IniFile.ReadInteger(sl_chk[i],'cx',8);
          a_chk[i].Height := IniFile.ReadInteger(sl_chk[i],'cy',8);
          a_chk[i].BringToFront;
          break;
        end else begin
          a_chk[i] := TCheckBox.Create(Form2);
          a_chk[i].parent:= self;
          a_chk[i].Left := Left;
          a_chk[i].Top := Top ;
          a_chk[i].Caption:= IniFile.ReadString(sl_chk[i],'name','');
          a_chk[i].Width := IniFile.ReadInteger(sl_chk[i],'cx',8);
          a_chk[i].Height := IniFile.ReadInteger(sl_chk[i],'cy',8);
        end;
      end;

in FormCreate weise ich dann noch der Combobox diese Funktion zu:
Delphi-Quellcode:
for i := low(a_Cmb) to high(a_Cmb) do begin
    if a_Cmb[i].Name = 'BELARTthen
      a_Cmb[i].onselect := ComboExit;
  end;
das funktioniert auch soweit. Dann habe ich das ganze über Sendmessage jetzt versucht. In der Messagebox sagt er: checked!, aber ich sehe nichts davon. wo ist noch der Fehler - was habe ich vergessen.
Delphi-Quellcode:
procedure TForm2.ComboExit(Sender: TObject);
var
  i : Integer;
begin
  if pos('Rechnung', TComboBox(Sender).Text) > 0 then begin
    for i := low(a_chk) to high(a_chk) do begin
      
      SendMessage(a_chk[i].Handle, BM_SETCHECK, Integer(cbChecked), 0);
      case SendMessage(a_chk[i].Handle, BM_GETCHECK, 0, 0) of
        BST_CHECKED: ShowMessage('Checked!');
        BST_INDETERMINATE: ShowMessage('Indeterminate!');
        BST_UNCHECKED: ShowMessage('Unchecked!');
      end;

    end;
  end;
end;
Susanne
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz