Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Komponenten Propertys (https://www.delphipraxis.net/203266-komponenten-propertys.html)

michael.cohrs 30. Jan 2020 07:06

Komponenten Propertys
 
Guten Morgen,

ich habe auf einem Panel 2 Memoboxen, getrennt durch einen Splitter, plaziert. Nun möchte ich über Propertys im Objektinbspektor
diese Memoboxen sichtbar oder unsichtbar schalten. Kann mir bitte hierbei jemand helfen?

Vielen Dank!!

Michael

p80286 30. Jan 2020 07:52

AW: Komponenten Propertys
 
.Visible ?

Gruß
K-H

michael.cohrs 30. Jan 2020 07:58

AW: Komponenten Propertys
 
Ja schon aber wie realisaiere ich das über eine Property?

stifflersmom 30. Jan 2020 08:03

AW: Komponenten Propertys
 
Wie schon gesagt, über die Eigenschaft visible.
Aber ich glaube nicht, das der Designer die Komponente dann "ausblendet", erst zur Laufzeit ist die Komponente dann unsichtbar.

DeddyH 30. Jan 2020 08:04

AW: Komponenten Propertys
 
Was meinst Du mit Property, sowas?
Delphi-Quellcode:
type
  TFormMitMemos = class(TForm)
  private
    function GetMemosVisible: Boolean;
    procedure SetMemosVisible(const Value: Boolean);
    ...
  public
    property MemosVisible read GetMemosVisible write SetMemosVisible;
    ...
  end;

...

function TFormMitMemos.GetMemosVisible: Boolean;
begin
  Result := MemoDings.Visible and MemoBums.Visible;
end;

procedure TFormMitMemos.SetVisibe(const Value: Boolean);
begin
  MemoDings.Visible := Value;
  MemoBums.Visible := Value;
end;

michael.cohrs 30. Jan 2020 08:06

AW: Komponenten Propertys
 
Zur Laufzeit würde mir ausreichen, ich habe noch nicht viel mit Propertys gearbeitet und bräuchte für dieses Problem eine kurze Einweisung, wie gesagt, zur Laufzeit würde völlig ausreichen, eingestellt werde soll dieses im OI

michael.cohrs 30. Jan 2020 08:10

AW: Komponenten Propertys
 
Genau sowas meinte ich DeddyH, mal sehen ob ich hinbekomme. Danke!!

Klapauzius 30. Jan 2020 08:18

AW: Komponenten Propertys
 
Ich empfehle mal den MMX Explorer von Uwe anzusehen. Der automatisiert nicht nur das Erstellen von Properties sondern beschleunigt/erleichtert auch sonst das Schreiben von Code.

Michael II 30. Jan 2020 08:31

AW: Komponenten Propertys
 
Du schreibst, dass du deine Memos auf einem Panel platziert hast.
Setze doch - falls du das Panel auch ein-/ausblenden willst - zur Laufzeit einfach MeinPanel.Visible := ....

michael.cohrs 30. Jan 2020 09:15

AW: Komponenten Propertys
 
Hallo Michael II,

nein, nicht das ganze Panel soll ausgeblendet werden sondern nur, bei Bedarf, die drauf befindlichen einzelnen Komponenten und das nach Möglichkeit im OI.
Es Handelt sich um ein auszulieferndens Programm in dem nicht für jeden alles sichtbar sein soll.....

ISMIRSCHLECHT 30. Jan 2020 09:40

AW: Komponenten Propertys
 
Mahlzeit,

auch wenn eine Komponente im OI auf unsichtbar geschaltet wird bleibt sie im Designer sichtbar. Pubnkt.
Die Eigenschaft ( = Property) Visible bemerkt man erst zur Laufzeit.
ism

p80286 30. Jan 2020 11:22

AW: Komponenten Propertys
 
.Visible ist eine Property!
Darum nochmals gefragt, was verstehst Du unter "Property", den OI scheinst Du ja zu kennen?

Gruß
K-H

himitsu 30. Jan 2020 11:31

AW: Komponenten Propertys
 
Zitat:

Entwickle lieber ein eigenes Steuerelement
Wobei, wenn dort eine Subkomponente zur DesignTime schon unsichtbar werden soll, man schonmal Parent:=nil setzen muß, anstatt Visible=False, da Visible im Designer oft irgnoriert wird, weil man Komponenten dort dann nicht mehr sehen/anklicken kann.

z.B.:
Delphi-Quellcode:
property MyVisible: Boolean read GetVisible write SetMyVisible;

procedure TIrgendwas.SetMyVisible(Value: Boolean);
begin
  FMySubComponent.Visible := Value;
  if csDesigning in ComponentState then
    FMySubComponent.Parent := Self
  else
    FMySubComponent.Parent := nil;
end;

function TIrgendwas.GetMyVisible: Boolean;
begin
  Result := FMySubComponent.Visible;
end;

hoika 30. Jan 2020 11:56

AW: Komponenten Propertys
 
Hallo,

Delphi-Quellcode:
if HatRechtAufMemo1 then
begin
  Memo1.Visible:= True;
end
else
begin
  Memo1.Visible:= False;
  Memo1.Parent:= nil;  // später eingetragen (wegen himitsu ;) )
end;
Das ganze möglichst früh aufrufen (z.B. im FormCreate).

himitsu 30. Jan 2020 12:17

AW: Komponenten Propertys
 
Zitat:

Zitat von so in etwa
Delphi-Quellcode:
Memo1.Visible := HatRechtAufMemo1;

Wenn das aber ein Sicherheitsfeature ist, dann auch hier Parent:=nil,
denn unsichtbare Controls lassen sich leicht sichtbar machen.
MSDN-Library durchsuchenFindWindowEx + MSDN-Library durchsuchenShowWindow und hunderte kleine Tools, die das jeweils mit einem Klick machen.

KodeZwerg 30. Jan 2020 13:13

AW: Komponenten Propertys
 
Mich beschäftigt da eher die Frage ob, wenn es unsichtbar sein soll, eine Komponente überhaupt die korrekte Wahl ist, man kann ja auch StringLists o.ä. nicht-visuelle Dinge verwenden... nur so am Rande.

Dennis07 30. Jan 2020 15:42

AW: Komponenten Propertys
 
Für die Sichtbarkeit im Form-Designer gibt es unter VCL, sofern du das meinst, die Funktion
Delphi-Quellcode:
SetDesignVisible(Boolean)
.
Sei aber vorsichtig, weil du dann ohne die Strukturübersicht nicht mehr auf die Komponente zugreifen kannst.

michael.cohrs 30. Jan 2020 18:04

AW: Komponenten Propertys
 
Danke für all Eure Antworten!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz