![]() |
Konstante an Procedure übergeben
Hallo,
ich steh grad auf dem Schlauch (na gut - ich sitz eher auf dem Schlauch) ich hab folgende Procedure:
Delphi-Quellcode:
Wie man sieht, ist in dem Code "BS_Center" hart hinterlegt. Dies würd ich aber
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; 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:
dann erhalte ich vom Compiler diese Meldung:
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; Zitat:
|
Re: Konstante an Procedure übergeben
Hallo,
auch RadioGroup hat ein property mit Namen Align bei deinem with RadioGroup do .. Align .. will der Compiler das Align des RadioGroups verwenden Lösung 1: parameter ändern von 'Align nach AAlign oder theAlign und dann das entsprechende im or ändern. Lösung 2: Parameter Nie ohne Prefix verwendne (A oder the) Heiko |
Re: Konstante an Procedure übergeben
Mist! - Du hast recht!
Danke Ich hab total übersehen, dass RadioGroup eine Property namens Align schon besitzt. Jetzt trag ich schon ne Brille und seh immer noch nichts :-) Dank dir! |
Re: Konstante an Procedure übergeben
Meine Lösung:
Auf das #°§¬°@ WITH verzichten. Das macht Probleme beim Lesen des Codes. Ausserdem kann der Debugger das nicht auflösen. Es mag zwar Fälle geben, bei denen das WITH Sinn macht, in 90% der Fälle ist es eben nur störend. Ist halt ein Wenig mehr Tipparbeit (oder Copy-and-Paste), aber man erspart sich damit viele Probleme. Bei meinem alten Arbeitgeber war das WITH sogar per Firmen-Styleguide *verboten*. Noch ein Hinweis: Niemals eigene Variablen oder Paramerter so benennen, wie Delphi-Befehle oder Methoden von Standard-Komponenten. Nicht umsonst empfiehlt der Borland-Styleguide "fName" für KlassenVariablen und "AName" für Parameter. Die üblichen Verdächtigen wie "Align", "Index", "Text", usw. kennt man ja. Dies gilt übrigens auch für Felder in DB-Tabellen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 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-2025 by Thomas Breitkreuz