Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Range mit InRange- function auslesen ? (https://www.delphipraxis.net/178589-range-mit-inrange-function-auslesen.html)

Chris211183 16. Jan 2014 10:45

Range mit InRange- function auslesen ?
 
Hallo DP´Ler,

wenn ich meine Komponente auf der Form platziere und mir die Form als Text anzeigen lasse, möchte ich, dass mir der Range angezeigt wird.
Wie bekomme ich das hin, ich habe bereits eine Funktion in Range
Delphi-Quellcode:
function InRange(const Value, ValueMin, ValueMax: Double): Boolean; overload;// Bereichsprüfung

function THixBarGraph.InRange(const Value, ValueMin,
  ValueMax: Double): Boolean;
begin
   inherited;
   if InRange(Width,Value,ValueMax)
   and InRange(Width,Value, ValueMin)
   and InRange(Width,ValueMax, LabelingGap)
   then Result := true
   else Result := false;
   invalidate;
end;
Im OI soll es aber keinen Range geben..., er soll nur angezeigt werden, wenn ich es als Text anzeigen lasse..

Ich hoffe, Ihr versteht so in etwa, was ich meine...?

Uwe Raabe 16. Jan 2014 10:48

AW: Range mit InRange- function auslesen ?
 
Zitat:

Zitat von Chris211183 (Beitrag 1243928)
Ich hoffe, Ihr versteht so in etwa, was ich meine...?

Nicht mal ansatzweise...

DeddyH 16. Jan 2014 10:55

AW: Range mit InRange- function auslesen ?
 
Wenn ich es richtig verstanden habe, soll in der DFM eine Eigenschaft InRange zu sehen sein, die über den geposteten Getter entweder true oder false sein soll. Im OI aber soll sie nicht zu sehen sein.

Chris211183 16. Jan 2014 10:58

AW: Range mit InRange- function auslesen ?
 
Delphi-Quellcode:
object Form1: TForm1
  Left = 192
  Top = 114
  Width = 783
  Height = 540
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object HixBarGraph1: THixBarGraph
    Left = 184
    Top = 216
    Width = 281
    Height = 73
    Barwidth = 10
    Color = clBtnFace
    BarColor = clBtnFace
    BevelColor1 = clBtnShadow
    BevelColor2 = clBtnHighlight
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    Kind = sbHorizontal
    LabelingStyle = lbsNone
    LabelingFont.Charset = DEFAULT_CHARSET
    LabelingFont.Color = clWindowText
    LabelingFont.Height = -11
    LabelingFont.Name = 'Arial'
    LabelingFont.Style = []
    AutoConfig = False
    ValueMax = 100
    RangeColor = clBlack
    RangeCurrent = 1
    RangeLimit = 100
    RangeNumber = 0
    Visible = True
    OffsetLower = 8
    OffsetUpper = 8
    LabelingGap = 5
    LabelingDecimals = 1
    LabelingOrientation = lboAbove
    TabOrder = 0
    BevelOuter = bvNone
    Caption = 'HixBarGraph'
    DockOrientation = doNoOrient
  end
end
So sieht es aus, wenn ich meine Komponente auf dem Formular habe und mich rechtsklick "Ansicht als Text" wähle...
Nun soll dort aber noch ein Range angezeigt werden...

DeddyH 16. Jan 2014 11:01

AW: Range mit InRange- function auslesen ?
 
Ich mag mich irren, aber AFAIK werden nur published-Properties in der DFM gespeichert, und auch das kann man noch unterbinden (stored und default-Deklarationen). Allerdings werden published-Properties auch im OI dargestellt, Du wirst Dich also entscheiden müssen, was Du willst. Wozu braucht man sowas eigentlich?

Chris211183 16. Jan 2014 11:01

AW: Range mit InRange- function auslesen ?
 
jap DeddyH !

geht es auch, dass der Range in solch einer Form angezeigt werden kann...

Delphi-Quellcode:
(
 (0, ValueWert)
  ValueMin, ValueMax
  ValueMax, LabelingGap)
)

DeddyH 16. Jan 2014 11:02

AW: Range mit InRange- function auslesen ?
 
Nun bin ich komplett verwirrt. Ich denke, Du willst eine Boolean-Property?

Chris211183 16. Jan 2014 11:05

AW: Range mit InRange- function auslesen ?
 
braucht man nicht wirklich, hat mich nur mal interessiert, ob soetwas prinzipiell machbar ist, dass man nicht den ganzen OI voll mit Dingen hat, die man nicht dort drin benötigt, aber sich dennoch bereiche so Ansehen kann...

Chris211183 16. Jan 2014 11:08

AW: Range mit InRange- function auslesen ?
 
:-D, eigentlich ist es egal...

geht mir mehr um die Sache, nicht im OI aber aber in der DFM

Danke trotzdem..., ist jetzt nicht entscheidend, Komponente funktioniert nach langem Hin und Her endlich :thumb:

himitsu 16. Jan 2014 11:23

AW: Range mit InRange- function auslesen ?
 
siehe
Delphi-Quellcode:
TComponent.DefineProperties(Filer: TFiler);


Dort ist als Beispiel drin, wie das bei den "unsichtbaren" Property Left und Top der nichtvisuellen Komponenten ala TTimer gemacht wurde.

Chris211183 16. Jan 2014 11:49

AW: Range mit InRange- function auslesen ?
 
http://docwiki.embarcadero.com/Libra...fineProperties

das verstehe ich nicht, was hat es mit dem Ancestor auf sich ?
Erklärung für Nichtprogrammierer wäre gut :stupid:

himitsu 16. Jan 2014 12:26

AW: Range mit InRange- function auslesen ?
 
Das Ancessor ist egal ... es ist ja nur die Speicherstelle, wo die Variable für die Position drin ist.


Delphi-Quellcode:
procedure TComponent.PropertyLeseMethode(Reader: TReader);
begin
  MeineVariable := Reader.ReadInteger;
end;

procedure TComponent.PropertySpeicherMethode(Writer: TWriter);
begin
  Writer.WriteInteger(MeineVariable);
  // Man kann hier auch mehrere Werte speichern (z.B. X und X eines TPoint), aber das würde/könnte/sollte man vielleicht besser in
  // WriteListBegin und WriteListEnd verpacken, damit es als zusammengehörig erkennbar ist.
  // Gibt weniger Probleme beim Einlesen, wenn etwas am Format falsch ist, bzw. geändert wurde.
end;

procedure TComponent.DefineProperties(Filer: TFiler);
begin
  Filer.DefineProperty('PropertyNameInDerDFM', PropertyLeseMethode, PropertySpeicherMethode, TrueWennPropertyInDerDFMGespeichertWerdenSoll);
  // oder Filer.DefineBinaryProperty

  // z.B. MeineVariable<>0, bzw. MeineVariable<>DefaultOrInitialWert oder einfach immer nur True für TrueWennPropertyInDerDFMGespeichertWerdenSoll
end;

Chris211183 16. Jan 2014 12:35

AW: Range mit InRange- function auslesen ?
 
Super, das habe ich verstanden !

dann kann der Threat geschlossen werden !

Vielen Dank !!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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