AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Vererbung bestimmter Eigenschaften deaktiviern
Thema durchsuchen
Ansicht
Themen-Optionen

Vererbung bestimmter Eigenschaften deaktiviern

Ein Thema von delphin · begonnen am 19. Jan 2007 · letzter Beitrag vom 19. Jan 2007
 
delphin

Registriert seit: 21. Aug 2003
Ort: Chemnitz
29 Beiträge
 
Delphi 7 Professional
 
#14

Re: Vererbung bestimmter Eigenschaften deaktiviern

  Alt 19. Jan 2007, 21:12
ParentFont habe ich mir schon angeschaut. Damit kann man schon verhindern das die Größe des Schrifttypes "geerbt" wird.

Sollte nur zur Veranschaulichung des Phänomens "Erbens" dienen. Die unerklärliche Sache mit der unberücksichtigten "Edit1.Height" bleibt davon aber unberührt !!!

Hier mal das ganze zum Selbstprobieren. Wie Ihr es nennen wollt sei dahin gestellt:

Delphi-Quellcode:
unit Source;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CheckLst;


type

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure CheckListBoxDblClick(Sender: TObject);
    procedure CheckListBoxExit(Sender: TObject);
  private
    Edit1: TEdit;
    CheckListBox : TCheckListBox;
  public
    { Public-Deklarationen }
  end;

var Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
Var DrawRect: TRect;
begin CheckListBox:=TCheckListBox.Create(Form1);
      CheckListBox.Parent:=Form1;
      CheckListBox.Font.Size:=10;

      CheckListBox.OnDblClick:=CheckListBoxDblClick;
      CheckListBox.OnExit:=CheckListBoxExit;

      CheckListBox.Items.Add('Zeile 1');
      CheckListBox.Items.Add('Zeile 2');
      CheckListBox.Items.Add('Zeile 3');
      {== Editfeld als Kind von CheckListBox ableiten =======}
      Edit1:=TEdit.Create(Form1);
      Edit1.Parent:=CheckListBox;

      {== Ermitteln der Edit.Höhe über Größe der CheckListbox ==}
      DrawRect:=CheckListBox.ItemRect(0);
      Edit1.Height:=DrawRect.Bottom-DrawRect.Top+1; //Zeile: *1
      Edit1.Visible:=false;
end;

procedure TForm1.CheckListBoxDblClick(Sender: TObject);
Var DrawRect: TRect;
begin DrawRect:=CheckListBox.ItemRect(CheckListBox.ItemIndex);
      Edit1.Text:=CheckListBox.Items.Strings[CheckListBox.ItemIndex];
      Edit1.Top:=DrawRect.Top;
      Edit1.Height:=DrawRect.Bottom-DrawRect.Top+2; //Zeile: *2
      Edit1.Visible:=true;
end;

procedure TForm1.CheckListBoxExit(Sender: TObject);
begin Edit1.Visible:=false;

end;

end.
Nochmal das Problem:
1. Wenn nur Zeile *1: steht (Zeile 2* ausgeklammert), hat es überhaupt keine Auswirkung auf die Höhe der Editbox.
2. Wenn Zeile *2 eingefügt wird, stimmt die Höhe der Box, aber nur ab dem 2. mal anklicken !

Warum !!!

Übrigens: Ob die Edit-Komponente dabei als Privat deklairiert ist spielt kein Rolle!

Wäre wirklich nett, wenn einer dafür eine Lösung hätte. Ich komme an der besagten Stelle einfach nicht weiter.

Viele Grüße und Danke
Gerd
  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 22:30 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