AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Komponente erstellen, Liveansicht und Debuggen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente erstellen, Liveansicht und Debuggen

Ein Thema von Towmuz · begonnen am 30. Nov 2017 · letzter Beitrag vom 30. Nov 2017
Antwort Antwort
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 13:56
Tag,

ich würde mir gerne eine etwas komplexere Komponente bauen, die erstmal weniger Funktion als Design hat.

So ganz jungfräulich bin ich da jetzt nicht mehr was Komponenten angeht,
aber da ging´s nie um Optik und Verhalten in der IDE oder im erzeugten Programm.

Gibt es da irgendwie einen komfortablen Weg um eine kleine Änderung (Align, Height usw.) sofort zu sehen?
Momentan macht das keine große Freude mit:
Höhe um 1 ändern -> Erzeugen/Compilieren -> Installieren
-> 2te IDE neu auf -> Projekt auf -> kontrollieren -> und von vorn.

Das kanns nicht sein oder?
Thomas
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 14:01
Kannst du die Komponente nicht erstmal live im Code erzeugen und erst später als Komponente mit Register und so weiter abhandeln?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 14:11
Wenn verschiedene Bereiche getestet werden sollen, könnte man ggf. innerhalb der Komponente die Tasten + und - abfangen und z.B. Größenänderungen zur Laufzeit vornehmen.

Bei Deiner o.g. Verfahrensweise wäre vielleicht etwas günstiger, die Komponente (bzw. das Package) und das Projekt in einer Projektgruppe zu haben. Dann kannst Du das Package neu installieren und gleich wieder innerhalb der IDE zum Projekt wechseln.
Evtl. müssen nur Formulare geschlossen werden, die die Komponente verwenden - oder sie werden automatisch geschlossen, das weiß ich heute nicht mehr, wie das war.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 14:23
Kannst du die Komponente nicht erstmal live im Code erzeugen und erst später als Komponente mit Register und so weiter abhandeln?
Nuja, die Komponente soll ein Panel werden, auf dem weitere (definierte) Komponenten liegen die man per Property hinzufügt und konfiguriert.
Da ich da nicht sehr sicher mit bin, würde ich das schon gerne sehen wie es in der IDE aussieht.

Die Anzahl der Kinderkomponenten soll auch ab nem bestimmten Punkt nicht mehr sichtbar sein, sondern dann in einem Menü der Wahl verschwinden (siehe Firefox Bookmarksleiste zb.).
Kann man denn nichts tun, um nur einmal (zu welchem Zeitpunkt auch immer) zu installieren und Änderungen werden nach erneutem Erzeugen wirksam?

Dann kannst Du das Package neu installieren und gleich wieder innerhalb der IDE zum Projekt wechseln.
Evtl. müssen nur Formulare geschlossen werden, die die Komponente verwenden - oder sie werden automatisch geschlossen, das weiß ich heute nicht mehr, wie das war.
Genau dieses Installieren bringt eben nichts, wenn ich die IDE nicht neu starte, deswegen 2 Stück davon.
Aber ich gehe davon, dass ich das grundlegend falsch angehe
Thomas
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 15:29
Kannst du die Komponente nicht erstmal live im Code erzeugen und erst später als Komponente mit Register und so weiter abhandeln?
Nuja, die Komponente soll ein Panel werden, auf dem weitere (definierte) Komponenten liegen die man per Property hinzufügt und konfiguriert.
Da ich da nicht sehr sicher mit bin, würde ich das schon gerne sehen wie es in der IDE aussieht.
Guck, ich meine einfach als Interposer-Klasse. Du ziehst auf deinen Testprojekt ein Panel und deine Komponente "fängt" das sozusagen ab.
So kannst du was ändern, F9 drücken und schauen ob es so okay ist.
Wenn du fertig bist, kannst du es ja wie gehabt per Register und installieren handhaben.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TPanel = class(Vcl.ExtCtrls.TPanel)
  private
    FLabel: TLabel;
  protected
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

  TForm1 = class(TForm)
    Panel1: TPanel;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TPanel }

constructor TPanel.Create(AOwner: TComponent);
var
  MyRect: TRect;
begin
  inherited;
  FLabel := TLabel.Create(Self);
  FLabel.Parent := Self;
  MyRect := Self.ClientRect;
  FLabel.Left := MyRect.Width div 2;
  FLabel.Top := MyRect.Height div 2;
  FLabel.Width := 50;
  FLabel.Height := 17;
  FLabel.Caption := 'Hello World';
end;

destructor TPanel.Destroy;
begin

  inherited;
end;

procedure TPanel.Paint;
var
  MyRect: TRect;
begin
  inherited;
  MyRect := Self.ClientRect;
  MyRect.Inflate(-10, -10, -10, -10);
  Self.Canvas.Brush.Color := clSilver;
  Self.Canvas.Ellipse(MyRect.Left, MyRect.Top, MyRect.Right, MyRect.Bottom);
end;
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 15:47
Ach so, mal noch eine Ergänzung:

Die Neu-Installation einer Komponente ist eigentlich nur notwendig, um die Änderungen direkt in der IDE zu sehen.
Werte, die bereits in der DFM stehen (wie z.B. die Positionswerte, Visible, Name ect.) bleiben aber natürlich unverändert (also z.B. eine neue Standardgröße wird so nicht angepasst).
Wenn man aber "den Inhalt" einer Komponente ändert, würde man dies in der IDE erst nach einer Neuinstallation der Komponente sehen.

Zur Projekt-Laufzeit würde man die Änderung aber schon sehen, wenn die Komponente neu compiliert wurde (z.B. weil das Komponenten-Package in der gleichen Projektgruppe steht).

Also kann man ggf. zur Laufzeit schon die Änderung sehen und in der IDE noch nicht.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 16:07
Guck, ich meine einfach als Interposer-Klasse.
Danke, so mache ich das gerade (schrubst du ja oben schon) und funktioniert gut soweit. Ich meinte mit meinem ganzen IDE-Gerede allerdings wirklich die IDE (nicht F9 )...
... also die Komponente im Designer (ja, so klingt das verständlicher glaub ich) ...

Da wollte ich über den Objektinspektor (oder eben Rechtsklick auf Komponente) dann weitere Komponenten (auch nur eigene) hinzufügen und im Designer auch sichtbar machen.
Ähnlich Columns von irgendner Liste. Und da das Ding dann per Autosize alles auch gleich skalieren soll, bzw. die Komponenten in den Komponenten in den Komponenten skalieren / ändern / ausblenden.

So wie das Menü im neusten Office zb. (auch wenn das wahrscheinlich mit PageControl beginnt und nicht Panel).

Ach so, mal noch eine Ergänzung:
Die Neu-Installation einer Komponente ist eigentlich nur notwendig, um die Änderungen direkt in der IDE zu sehen.
Ich probier das nochmal innerhalb einer RADStudio-Umgebung obs das gewünschte Ergebnis bringt.

Vieleicht war es auch einfach zuviel Kaffee heute oder ich muss mal in die Tastaturlogopädiesprechstunde
Thomas
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Komponente erstellen, Liveansicht und Debuggen

  Alt 30. Nov 2017, 16:40
Ganz früher habe ich auch mal Komponenten gemacht.
Brauchst du wirklich eine eigene Komponente? Tuts nicht auch ein Frame? Seit es die gibt nehme ich nur noch die.
Komponenten würde ich nur noch machen wenn es für andere ist.
  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 05:27 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 by Thomas Breitkreuz