Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Page control (https://www.delphipraxis.net/11026-page-control.html)

schniede 29. Okt 2003 21:19


Page control
 
Hallo!

Um die tabs vom Pagecontrol einzufärben verwende ich folgenden code (hier im Board gefunden), klappt auch super, nur wenn ich Typisierte Kunstanten verwende Meckert der Compiler. :x Was mach ich falsch??

Das alles, weil ich zur Laufzeit die farben durch den anwender ändern lassen möchte.

Delphi-Quellcode:
const
{ hier bekomme ich die Fehlermeldung}
farbe11 :integer=44444;
farbe12 :integer=44444;
farbe13 :integer=44444;
farbe14 :integer=44444;
farbe15 :integer=44444;
Delphi-Quellcode:
const    {FUNZT}

  farbe11 = 44444;
  farbe12 = 44444;
  farbe13 = 444487;
  farbe14 = 44254;
  farbe15 = 44444;
Delphi-Quellcode:
procedure TForm1.PageControlDrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
const
  _clTabColors : array [0..4] of TColor = (farbe11,farbe12,farbe13,farbe14,farbe15);
  _sTabCaptions : array [0..4] of string = ('    Hauptansicht',' Einzelans.- Kunde',' Best. Waren ges.','      Warenlager',' Eigene Umsätze');

begin
  Control.Canvas.Brush.Color := _clTabColors[TabIndex];
  Control.Canvas.FillRect(Rect);
  Control.Canvas.TextOut(Rect.Left+5,Rect.Top+3,_sTabCaptions[TabIndex]);
end;
mfg schniede

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]

Christian Seehase 29. Okt 2003 21:30

Re: Page control
 
Moin Schniede,

Zitat:

Zitat von schniede
{ hier bekomme ich die Fehlermeldung}

also ich nicht.
Welche Meldung kommt denn?

schniede 29. Okt 2003 21:41

Re: Page control
 
[Fehler] Kundenverwaltung.pas(2558): Konstantenausdruck erwartet

das zeigt mir der Compiler

die Konstanten habe ich global deklariert ,wenn das was zu sagen hat.

schniede

P.s. das progi war glaube auch von dir !!

himitsu 29. Okt 2003 21:47

Re: Page control
 
Ist doch nicht so gemacht:
Delphi-Quellcode:
type TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    Const FarbeX: TColor = 44444;
  public
    { Public-Deklarationen }
  end;
Wenn ja, dann ohne CONST:
Delphi-Quellcode:
type TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    FarbeX: TColor = 44444;
  public
    { Public-Deklarationen }
  end;
Deins funktioniert zwar, richtiger währe es aber so.
Delphi-Quellcode:
Const FarbeX: TColor = 44444;

schniede 29. Okt 2003 22:20

Re: Page control
 
hi himitsu ,habe mal deine version probiert funktioniert genausewenig wie meine.

hab auch schon unter compileroptionen geschaut ,ist aber angehakt "zuweisbare typisierte Konstanten" ,hm weiß kein rat :wall:

mfg schniede

himitsu 29. Okt 2003 22:27

Re: Page control
 
So fällt mir auch nichts mehr ein.

Kannst'e mal den gesamten Code posten (als Anhang) oder per eMail, dann schau ich mir's mal direkt an.

schniede 29. Okt 2003 22:32

Re: Page control
 
Das wird ein problem.Das Progi besteht aus mehreren units,formularen und 5 tabellen gehören auch noch dazu.da brauchst du ne woche um den anfang zu finden. Ist aber nett gemeint oder hab ich dich falsch verstanden ? :wall:


hab da was in der hilfe gefunden ,weiß nur nicht wo ich das hinpinseln soll :roll:


Delphi-Quellcode:
Im Status $WRITEABLECONST OFF führt dieser Quelltext bei der Zuweisung an die Variable foo im begin..end-Block zu einem Compiler-Fehler. Sie können das Problem beheben, indem Sie foo nicht als const, sondern als var deklarieren.

In den früheren Versionen von Delphi und Borland Pascal konnten typisierte Konstanten immer geändert werden (wie im Status {$J+}). Deshalb muss älterer Quelltext, der änderbare typisierte Konstanten enthält, im Status {$J+} compiliert werden.

vieleicht kanst du mir da helfen?

Christian Seehase 29. Okt 2003 22:42

Re: Page control
 
Moin Schniede,

der unter Teil stammt von mir, das stimmt wohl, aber der obere nicht ;-)
Ich hatte auch Konstanten benutzt die mit = TColor(...) deklariert werden.

Übrigens tritt der Fehler ja nicht bei der Konstantendeklaration auf, sondern wenn Du diese Nutzen willst.

Wenn die Farben vom User eingestellt werden sollen, warum nimmst Du dann nicht statt des Konstanten Arrays eine Variable, die entsprechend der Auswahl die Einträge enthält.
Halte ich für entschieden sauberer ;-)

himitsu 29. Okt 2003 22:44

Re: Page control
 
{$J+} muss auf jeden Fall vor der Deklaration deiner Konstante angegeben werden.

z.B.
Delphi-Quellcode:
{$J+}
Const FarbeX: Integer = 44444;

schniede 29. Okt 2003 22:46

Re: Page control
 
Das würde ich liebend gerne Variablen benutzen, nur das hab ich nicht hinbekommen,dein quelltext zu ändern.

vieleicht kannst du mir das mal umschreiben das ich anstelle der Konst. variablen benutzen kann.

mfg schniede


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz