Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

Konstante an Procedure übergeben

  Alt 8. Jul 2008, 18:25
Hallo,

ich steh grad auf dem Schlauch (na gut - ich sitz eher auf dem Schlauch)

ich hab folgende Procedure:
Delphi-Quellcode:
procedure RadioGroup_WordWrap(RadioGroup: TRadioGroup; const Align: DWORD;
  WordWrap_Enabled: Boolean);
//Align-Werte: BS_TOP / BS_VCENTER / BS_BOTTOM / BS_LEFT / BS_RIGHT

var
  i : Integer;
  RadioButton_Style : DWORD;
  RadioButton : TRadioButton;

begin
  with RadioGroup do
    begin
      //alle Buttons abfragen
      for i := 0 to Pred(Items.Count) do
        begin
          //RadioButton auslesen
          RadioButton := Buttons[i];

          //momentaner Status des RadioButtons auslesen
          RadioButton_Style := GetWindowLong(RadioButton.Handle, GWL_STYLE);


          If WordWrap_Enabled then
            RadioButton_Style := RadioButton_Style or BS_MULTILINE or BS_CENTER
          else
            RadioButton_Style := RadioButton_Style and not BS_MULTILINE
                                  and not BS_CENTER;

          //neuer Style an RadioButton übergeben
          SetWindowLong(RadioButton.Handle, GWL_STYLE, RadioButton_Style);
        end;
      //aktualisieren
      Invalidate;
    end;
end;
Wie man sieht, ist in dem Code "BS_Center" hart hinterlegt. Dies würd ich aber
nun gerne gegen Align austauschen um von "aussen", also beim Aufruf der
Procedure, angeben was für eine Ausrichtung ich brauche, z. B.:
BS_TOP / BS_VCENTER / BS_BOTTOM / BS_LEFT / BS_RIGHT

Wenn ich aber nun folgendes schreibe:
Delphi-Quellcode:
If WordWrap_Enabled then
  RadioButton_Style := RadioButton_Style or BS_MULTILINE or Align
else
  RadioButton_Style := RadioButton_Style and not BS_MULTILINE and not Align;
dann erhalte ich vom Compiler diese Meldung:
Zitat von Compiler:
[Fehler] Unit1.pas(52): Operator ist auf diesen Operandentyp nicht anwendbar
Wie kann ich denn eine solche Konstante an eine Procedure übergeben und dann verarbeiten?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat