AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi PageControl - Tabs um Schließen-Symbol erweitern
Thema durchsuchen
Ansicht
Themen-Optionen

PageControl - Tabs um Schließen-Symbol erweitern

Ein Thema von Balu der Bär · begonnen am 15. Okt 2006 · letzter Beitrag vom 18. Feb 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.556 Beiträge
 
Delphi 12 Athens
 
#1

AW: PageControl - Tabs um Schließen-Symbol erweitern

  Alt 17. Feb 2023, 17:54
Erstmal: benennt man natürlich seine Komponenten so, dass sie einem sagen, was sie machen.

.Name ist direkt ein Komponentenname.
Bei .GetNamePath muß man aufpassen, denn es können mehrere Namen sein.


Nochmal: Warum Strings, wenn du schon ein Objekt hast?

Bei Namen mußt du nunmal auf Groß-/Kleinschreibung achten,
ODER man vergleicht case-insensitiv.
-> = aka Delphi-Referenz durchsuchenSameStr versus Delphi-Referenz durchsuchenSameText

"TabSheet1" gibt es bestimmt als Variable/Feld in der Form-Klasse.
Im QuellCode (z.B. bei Variablen) ist Groß-/Kleinschreibung egal.
Außerdem werden Objektinstanzen optimaler, schneller und vorallem fehlerunanfälliger verglichen, als irgendwelche komische Strings.
Dann knallt auch der Compiler wunderschön, wenn es diese Variable garnicht mehr gibt, z.B. weil jemand diese Komponente entlich mal ordentlich benannt hat.
Und zusätzlich kann man mit einem Objektzeiger soooooooooo schön viele coole Dinge anfangen, was mit einem dummen String nicht so geht.

Delphi-Quellcode:
//var clickedTab: TComponent;
clickedTab := TComponent(msg.LParam).Owner;
if clickedTab = TabSheet1 then TabSheet1.TabVisible := False;
if clickedTab = TabSheet2 then TabSheet2.TabVisible := False;
if clickedTab = TabSheet3 then TabSheet3.TabVisible := False;

//if clickedTab = TabSheet1 then VERSUS if clickedTab.Name = 'TabSheet1' then
Delphi-Quellcode:
clickedTab := TComponent(msg.LParam).Owner;
if (clickedTab = TabSheet1) or (clickedTab = TabSheet2) or (clickedTab = TabSheet3) then
  TTabSheet(clickedTab).TabVisible := False;
Delphi-Quellcode:
clickedTab := TComponent(msg.LParam).Owner;
if clickedTab is TTabSheet then
  TTabSheet(clickedTab).TabVisible := False;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Feb 2023 um 18:01 Uhr)
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
226 Beiträge
 
Delphi 12 Athens
 
#2

AW: PageControl - Tabs um Schließen-Symbol erweitern

  Alt 18. Feb 2023, 07:34
Hallo Himitsu,
vielen Dank nochmal für Deine Unterstützung. Ich bekomme das einfach nicht hin.
Sowohl
clickedTab := TComponent(msg.LParam).Owner;
if (clickedTab = TabSheet1) or (clickedTab = TabSheet2) or (clickedTab = TabSheet3) then
TTabSheet(clickedTab).TabVisible := False;
als auch
clickedTab := TComponent(msg.LParam).Owner;
if clickedTab is TTabSheet then
TTabSheet(clickedTab).TabVisible := False;

funktionieren nicht.
Ich muss mir wohl einen anderen Lösungsweg einfallen lassen, vielleicht probier ich es mal über MDI.

LG Harry
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.556 Beiträge
 
Delphi 12 Athens
 
#3

AW: PageControl - Tabs um Schließen-Symbol erweitern

  Alt 18. Feb 2023, 08:31
Tja, rate mal, wofür ein Debugger da ist und was man jetzt damit macht.

Ich kann ja nur davon ausgehn, dass in msg.LParam wirklich ein TComponent ist und dessen Owner ein TTabSheet.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 15: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