AGB  ·  Datenschutz  ·  Impressum  







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

tabsheet deaktivieren

Ein Thema von khh · begonnen am 21. Apr 2010 · letzter Beitrag vom 23. Apr 2010
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#11

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 14:54
Schau doch mal, ob das Programm bei dir in TPBPageControl.DrawTab ankommt. Vielleicht ist TCustomTabControl.DrawTab in Lazarus nicht als virtuell deklariert?
Uli Gerhardt
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#12

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 15:10
Zitat von uligerhardt:
Schau doch mal, ob das Programm bei dir in TPBPageControl.DrawTab ankommt. Vielleicht ist TCustomTabControl.DrawTab in Lazarus nicht als virtuell deklariert?
mh wenn ich ins

TPBPageControl.Create reinsteppe komme ich in die Tpagecontrol

die PBPagecontrol sieht nach dem Einbinden in die IDE so aus:



Delphi-Quellcode:
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.
was macht Lazarus da?
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#13

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 15:16
Zitat von khh:
Zitat von uligerhardt:
Schau doch mal, ob das Programm bei dir in TPBPageControl.DrawTab ankommt. Vielleicht ist TCustomTabControl.DrawTab in Lazarus nicht als virtuell deklariert?
mh wenn ich ins

TPBPageControl.Create reinsteppe komme ich in die Tpagecontrol

die PBPagecontrol sieht nach dem Einbinden in die IDE so aus:



Delphi-Quellcode:
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.
was macht Lazarus da?
Na du bist ein Scherzkeks.
Du nimmst den ganzen Quellcode aus der Unit raus und wunderst dich, wenn Funktionalität verloren geht?
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:{$mode objfpc}{$H+} darfst du von mir aus noch einfügen.)
Uli Gerhardt
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#14

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 15:20
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
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#15

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 15:30
Zitat von khh:
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
Probier mal, Schritt für Schritt nachzuvollziehen, was ich hier gemacht habe. Achte darauf, eine lokale Kopie von PCPageControl.pas im Projektverzeichnis zu erstellen und zu verwenden. Funzt das?
Uli Gerhardt
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#16

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 15:43
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 :
   Procedure CMDialogKey( Var msg: TWMKey ); message CM_DIALOGKEY; den Fehler:
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"

Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#17

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 15:46
Unter Delphi steht der in der Controls.pas. Versuch es einfach mal damit.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#18

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 15:51
Zitat von DeddyH:
Unter Delphi steht der in der Controls.pas. Versuch es einfach mal damit.
leider nicht, die ist auch standardmässig schon eingebunden gewesen.
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#19

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 17:00
Zitat von khh:
procedure DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean); override;

PBPageControl.pas(75,22) Error: Duplicate identifier "TabIndex"
Benenn die Parameter mal um: ATabIndex, ARect, AActive. Dann kommst du bestimmt zum nächsten Fehler.
Uli Gerhardt
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#20

Re: tabsheet deaktivieren

  Alt 22. Apr 2010, 20:37
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:
  • Die Darstellung der aktiven Seite in bsBold ist nicht wirklich praktikabel. Je mehr Buchstaben die Caption hat, desto deutlicher ist zu erkennen, dass die Tab-Breite fuer die Fett-Schrift vergroessert werden muesste. Also vielleicht doch lieber eine andere Schriftfarbe verwenden?
  • Die deaktivierte Page mit grauer Schrift darstellen? Na, eigentlich bietet sich hier die Ausgabe mit DrawState() unter Verwendung von DSS_DISABLED an!
  • Der Sinn oder die Aufgabe von CMDialogKey() erschliesst sich mir ueberhaupt nicht Wozu ist die Methode gut?
  • Dafuer kann ueber die "normalen" Tasten CursorLeft, CursorRight, Pos1 etc. leider doch eine deaktivierte Seite aktiviert werden. Derzeit wird nur die Auswahl mittels Maus abgefangen - die Tastensteuerung muss aber ebenfalls kontrolliert und ggf. korrigiert werden.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 14:30 Uhr.
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