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
 
Benutzerbild von himitsu
himitsu

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

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
 


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 16:42 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