TComponent aus classesh.inc

Rund um die LCL und andere Komponenten
Antworten
MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

TComponent aus classesh.inc

Beitrag von MmVisual »

Hallo Lazarus Gemeinde,

In TComponent gibt es die published porperty "Tag". Immer wieder kommt es vor dass ich zum Tag noch zusätzlich einen Text gerne anhängen würde, welche sonst in der Komponente keine Funktion hat.

Ist es möglich bei TComponent eine neue property "TagInfo" (String) hinzu zu fügen?

Also ich meine nicht die Klasse TComponent in TMyComponent kopieren, sondern dass es in den FPC Sourcen mit hinzugefügt wird?

Wenn ihr Developer dem zustimmen würdet, dann würde ich einen Bugticket (Wunschticket) scheiben.

Nachträglich noch frohe Weihnachten.

Grüße Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: TComponent aus classesh.inc

Beitrag von theo »

Das wird bestimmt kein Selbstläufer im Bugtracker werden.
Ich kann mir nicht gut vorstellen, dass das auf dem Level TComponent eingeführt wird.

Grundsätzlich könntest du eine Liste halten, welche einen Text oder noch mehr Daten speichern kann, den du dann anhand des Tags identifizierst.
Der Missbrauch von Tag (ist PtrInt) als Objektzeiger ist auch denkbar, wenn auch nicht ausdrücklich empfohlen:
https://lazarus-ccr.sourceforge.io/docs ... trint.html

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: TComponent aus classesh.inc

Beitrag von af0815 »

Die erste Frage ist - WOZU. Ich kann in deinem Wunsch nicht erkennen wozu es gebraucht wird. Es gibt immer eine sinnvolle andere Lösung.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TComponent aus classesh.inc

Beitrag von MmVisual »

Ich nutze bei vielen Komponenten die Eigenschaft "Tag", manchmal als einfache Zahl und manchmal als Zeiger auf ein Object.
In meinem Fall würde ich dann in der Komponente mit dazu schreiben wie ich den "Tag" nutze, sozusagen als Gedächtnisstütze (> TagInfo) und dass ich nach ein paar Jahren auch noch weiß was für <krumme :mrgreen: > Ideen ich damals so hatte.
Bei mir liegen gerade zufällig 4000 Komponenten auf dem Formular rum und mit den Jahren wird es immer mehr :oops:

Ich würde es deshalb gut finden um die Übersichtlichkeit vom Projekt besser wahren zu können. Aktuell gibt es bei den Komponenten nur den "Hint" wo man einen freien Text rein schreiben kann, solange man ShowHint=False lässt.

Ich dachte die Änderung deshalb in TComponent, damit wäre es so gut wie überall automatisch drin. (Nach dem Sprichwort: Das Problem an der Wurzel anpacken).

Eigentlich ist es nur eine relativ kleine Änderung, sollte andere Komponenten nicht wirklich stören, dennoch betrifft es dann die ganze Welt ... ... .. .

Ist eine Idee, die man bei einer Feature Änderung vom FPC sich mal vormerken könnte. So ein Text-Feld vermisse ich Grunde schon seit 20 Jahren, aber weil es ja nicht so "dringend" ist habe ich es noch nie geschrieben :oops: .
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: TComponent aus classesh.inc

Beitrag von af0815 »

MmVisual hat geschrieben:Bei mir liegen gerade zufällig 4000 Komponenten auf dem Formular rum und mit den Jahren wird es immer mehr :oops:

Dann hast du sowieso ein Problem mit dem Design der Anwendung, wenn sich soviele Komponenten auf dem Formular ansammeln. Wie soll das wartbar und übersichtlich im Code sein ? Mir ist schon klar, das sich oft in der Optik oft mal eine große Menge an kleinen Komponenten ansammeln kann. Das wird das aber bei mir entweder in eine Komponente oder Frame gepackt. Damit haben auch große Projekte eine wartbare Struktur. Vor allen in der Kapselung liegt dann der Vorteil, das man Abhängigkeiten über Schnittstellen abhandeln kann und es auch für sich Testbar ist.

Was hindert dich, den Tag zu verwenden als Zeiger auf eine Stringliste mit deinen Einträgen. <sarkastisch an> Klar bei dir wird irgendwann Integer (bzw. PtrInt) nicht ausreichen, bei der Menge an Komponente <sarkastisch aus>
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TComponent aus classesh.inc

Beitrag von MmVisual »

Klar kann man den Tag als Zeiger verwenden, tue ich auch zum Teil.
Nachteil:
Mal im übertragenen Sinne geschrieben:
<sarkastisch an> Man möchte gerne mit einem Flugzeug von Paris nach London kommen. Leider ist das Fliegen nicht möglich weil die Landebahnen fehlen, also wird kurzerhand das Flugzeug demontiert, auf einen Zug, verladen und in London wieder zusammen gebaut.(und das 100 mal am Tag)<sarkastisch aus>

Aber zurück Sache:
Im Quellcode kann man so ziemlich an jeder Stelle Kommentare rein schreiben. Leider eben nicht in einer Komponente im Objektinspektor. Ich denke das würde die Möglichkeit von Dokumentationen verbessern.
Ob diese Variable nun TagInfo oder ComponentInfo oder Freetext oder wie auch immer heißen mag kann man sich ja noch ausdenken.

Die Struktur meines Codes und warum diese so ist will ich hier jetzt nicht diskutieren (ich verwende bereits Frames und TDataModule).
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: TComponent aus classesh.inc

Beitrag von af0815 »

Die Position der Kommentare hat sehr wohl einen Einfluss auf die Dokumentierfunktion. Daa wird bei mir unter der OI ersichtlich. Da brauche ich kein zusätzliches Feld.
Und bezüglich Argumente gegenüber den Core Entwicklern. Bis jetzt habe ich kein Argument gefunden warum eine solche tiefgreifende Änderung gemacht werden sollte.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: TComponent aus classesh.inc

Beitrag von fliegermichl »

Warum verwendest du nicht die vorgesehene Methode. Komfortabler kann man es kaum haben.

Geh im Quellcode an die Property / Methode / Procedure / Function / Klasse whatever du dokumentieren willst. Dann Ansicht -> fpdoc Editor und schreib deine Doku.

Wenn du nächstes mal mit der Maus über das dokumentierte Ding fährst, erscheint dein Text als Hint.

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TComponent aus classesh.inc

Beitrag von MmVisual »

Ansicht -> FPDoc Editor kannte ich noch nicht, danke für den Tipp! Ich schaue mir das mal an.

Edit:

Der FPDoc Editor sieht gut aus!
Gibt es eine Möglichkeit den Aufruf in das Popup Menü mit rein zu bekommen?

Quelltexteditor-Fenster -> Rechtsklick auf einen Bezeichner -> Popup-Menü bei "Quellcode" -> Neues Untermenü "FPDoc-Editor"
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: TComponent aus classesh.inc

Beitrag von fliegermichl »

Wüsste ich jetzt nicht. Was aber geht ist dem Menüpunkt in Werkzeuge -> Einstellungen -> Editor -> Tastaturbelegung -> Befehle aus dem Menü Ansicht -> Ansicht des Dokumentationseditor umschalten ein Tastaturkürzel zu zuweisen.

Antworten