![]() |
tabsheet deaktivieren
hallo zusammen,
ich such mir grad wieder nen Wolf :-( wie kann ich die Beschriftung eines tabsheet auf einem pagecontrol deaktiviert darstellen und damit einen Wechsel dahin verhindern, ohne das tab auszublenden. Danke Gruss KH |
Re: tabsheet deaktivieren
Enabled := false schon probiert?
Sherlock |
Re: tabsheet deaktivieren
Zitat:
|
Re: tabsheet deaktivieren
Ach, jetzt verstehe ich. Na, vielleicht machst Du das dann am besten von Hand.
Wechsel unterbinden im OnChanging. Schrift ausgrauen...hmmmm, gibt bestimmt auch ne Möglichkeit. Sherlock |
Re: tabsheet deaktivieren
So in etwa?
Delphi-Quellcode:
procedure TForm1.PageControl1Change(Sender: TObject);
begin if PageControl1.ActivePageIndex = 1 then PageControl1.SelectNextPage(true); end; |
Re: tabsheet deaktivieren
Zitat:
gibts nicht einfach ne eigenschaft die ich true oder false setzen kann? |
Re: tabsheet deaktivieren
Kuckst du, was der
![]() ![]() ![]() |
Re: tabsheet deaktivieren
Zitat:
danke euch |
Re: tabsheet deaktivieren
sorry für den 2ten Tread :-(
ich hatte das Pagecontrol per drag and drop zur Entwicklungszeit auf dem Form plaziert. hatte das so verstanden, dass es reicht die Eigenschaft des tabsheet enabled:= false zusetzen. jetzt hab ich das Ganze nach deinem Beispiel zur Laufzeit erzeugt. ich sehe drei Tabs in gleicher Schrift, alle sind anwählbar :-( auch das welches enabled:= false ist. Liegts am Lazarus? |
Re: tabsheet deaktivieren
Zitat:
![]() Zitat:
Zitat:
Zitat:
|
Re: tabsheet deaktivieren
Schau doch mal, ob das Programm bei dir in TPBPageControl.DrawTab ankommt. Vielleicht ist TCustomTabControl.DrawTab in Lazarus nicht als virtuell deklariert?
|
Re: tabsheet deaktivieren
Zitat:
TPBPageControl.Create reinsteppe komme ich in die Tpagecontrol :-( die PBPagecontrol sieht nach dem Einbinden in die IDE so aus:
Delphi-Quellcode:
was macht Lazarus da?
unit PBPageControl;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls; type TPBPageControl = class(TPageControl) private { Private declarations } protected { Protected declarations } public { Public declarations } published { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('Common Controls',[TPBPageControl]); end; end. |
Re: tabsheet deaktivieren
Zitat:
Du nimmst den ganzen Quellcode aus der Unit raus und wunderst dich, wenn Funktionalität verloren geht? :wall: Probier mal, den Originalcode aus dem Posting, das du eingangs verlinkt hast, zu nehmen, zu speichern und zu compilieren. Geht das mit Lazarus? (Den hier:
Delphi-Quellcode:
darfst du von mir aus noch einfügen.)
{$mode objfpc}{$H+}
|
Re: tabsheet deaktivieren
eben nicht :-(
ich hab den Code nicht rausgenommen, das hat Lazarus fabriziert. weiss der Teufel warum. ich habs sogar schon 2mal installiert und jedesmal ist danach der Code raus |
Re: tabsheet deaktivieren
Zitat:
![]() |
Re: tabsheet deaktivieren
alsooo
ich hab die Installation in der IDE rückgängig gemacht und nur die lokale Kopie im Projektverzeichnis gespeichert und verwendet. Beim Kompilieren bekomme ich schon bei der Deklaration der Procedure :
Delphi-Quellcode:
den Fehler:
Procedure CMDialogKey( Var msg: TWMKey ); message CM_DIALOGKEY;
PBPageControl.pas(69,66) Error: Identifier not found "CM_DIALOGKEY" in der messages.inc gibts den auch nicht :-( EDIT: ersetze ich die message Constante mit igrendwas anderem ( nur um weiter zu kommen) kommt die nächste Fehlermeldung bei: procedure DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean); override; PBPageControl.pas(75,22) Error: Duplicate identifier "TabIndex" :-( |
Re: tabsheet deaktivieren
Unter Delphi steht der in der Controls.pas. Versuch es einfach mal damit.
|
Re: tabsheet deaktivieren
Zitat:
|
Re: tabsheet deaktivieren
Zitat:
|
Re: tabsheet deaktivieren
Moin, Moin.
Habe mit den Code des Grossmeisters mal angesehen - offenbar wird auch im Coder-Himmel nur mit Wasser gekocht: Die vorgestellte Loesung ist grundsaetzlich natuerlich viel eleganter als im OnChanging() den Wechsel zu verhindern, aber so ganz ueberzeugen kann sie denn doch nicht. Ein wenig Feinarbeit sollte man noch hineinstecken:
|
Re: tabsheet deaktivieren
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 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