AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi OOP-TRealEdit von TEdit abgeleitet und Fähigkeiten erweitert
Thema durchsuchen
Ansicht
Themen-Optionen

OOP-TRealEdit von TEdit abgeleitet und Fähigkeiten erweitert

Ein Thema von Hansa · begonnen am 9. Apr 2003 · letzter Beitrag vom 14. Aug 2003
Antwort Antwort
Seite 7 von 12   « Erste     567 89     Letzte »    
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#61
  Alt 17. Apr 2003, 20:13
Zitat von mirage228:
...aber im OI steht immer noch taRightAlignment!
Da hat er Recht ! Nur wieso ist das so ?

Habe den Oki-Code so geändert (basierend auf meinem zuletzt geposteten):

Code:
constructor TRealEdit.Create(AOwner: TComponent);
begin
  inherited;
  FAlignment := taRightJustify;
  OnlyReals := true;
  FRealLabel := TLabel.Create(self);
  FRealLabel.Parent := TWincontrol(self{AOwner}); // ******************
  FRealLabel.Name := 'RealLabel';
//  FLabel.SetSubComponent(true);
  FRealLabel.Caption := 'CAPTION';
  // Position des Lables setzen
  SetLabelPos;
end;
Da kommt das im Anhang raus. Würde das Caption jetzt noch vor dem Real Edit und nicht innerhalb stehen, wärs das wohl gewesen. Und dann noch das von Mirage.
Angehängte Dateien
Dateityp: doc dok6_140.doc (26,0 KB, 5x aufgerufen)
Gruß
Hansa
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#62
  Alt 17. Apr 2003, 20:14
Hi Hansa,

hier dein label!

die Berechnung der Position für die Ausrichtung ist noch Pfusch, aber ich wollte schon mal schnell den Ansatz posten.

Paß auf, ich hab die Unit nicht umbenannt und dein letztes Update noch nicht übernommen!!!

Gruß oki
Angehängte Dateien
Dateityp: pas realedit_102.pas (3,4 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#63
  Alt 17. Apr 2003, 20:20
Folgender Code hängt in keiner Weise mit irgendeinem bisher in diesem Thread geposteten Code zusammen sondern wurde gerade von mir erstellt (ich hab mich ein bisschen am "original" TLabeledEdit orientiert):

Delphi-Quellcode:
unit LabeledDBEdit;

interface

uses
  DBCtrls, StdCtrls, Classes, Controls;

type
  TLabeledDBEdit = class(TDBEdit)
    private
      FLabel: TLabel;
    protected
      procedure SetParent(Value: TWinControl); override;
    public
      procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
      constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;
  end;

  procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Test', [TLabeledDBEdit]);
end;

constructor TLabeledDBEdit.Create(AOwner: TComponent);
begin
  inherited;
  FLabel := TLabel.Create(Self);
  FLabel.Caption := 'LabelCaption';
end;

destructor TLabeledDBEdit.Destroy;
begin
  FLabel.Free;
  FLabel := nil;
  inherited;
end;

procedure TLabeledDBEdit.SetParent(Value: TWinControl);
begin
  inherited;
  if Assigned(FLabel) then
  begin
    FLabel.Parent := Value;
    FLabel.Top := Top - FLabel.Height - 1;
    FLabel.Left := Left;
    FLabel.Visible := True;
  end;
end;

procedure TLabeledDBEdit.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
  inherited;
  if Assigned(FLabel) then
  begin
    FLabel.Top := Top - FLabel.Height - 1;
    FLabel.Left := Left;
  end;
end;

end.
Ich hab die Kompo nicht ausführlich getestet, aber es funktioniert soweit alles. Das Label wird sowohl zur Design-Time als auch RunTime richtig angezeigt.

Es sollte also kein Problem sein das TRealEdit so zu erweitern..
Manuel Pöter
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#64
  Alt 17. Apr 2003, 20:43
Also, mein letzter Beitrag für heute.

Das ist echt gemein von dir motzi. Ich hab kein D6 und kein TLabledEdit und quäl mir einen ab.

Dann kommst du mit code der a: besser aussieht, b: kürzer ist und c: behauptest so lapidar das müßte so eben locker funzen.

Wie steh ich jetzt da!

Na gut. Da währe aber noch was. Es währe doch gut, wenn wir das Label in den OI mit seinen Eigenschaften bekommen. Warum auf alles verzichten?

Gruß oki
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#65
  Alt 17. Apr 2003, 21:17
Habt ihr ein Glück, daß ich nicht anfange einmal richtig zu motzen.
http://www.lcschuhmann.de/hornet/meckersmilie.gif

Oki hat es wirklich nicht leicht mit D5. Ein Konzept wie dieses wurde meines Wissens nach erst mit Delphi 6 eingeführt. Fertig ist die Komponente sowieso noch nicht. 1. Der von Mirage??? gepostete Fehler ist noch drin 2. Die LabelPosition ist nicht im OI enthalten.

Eventuell poste ich zu später Stunde noch eine Zusammenfassung, damit nicht jeder diesen "Monsterthread" von Anfang an lesen muß.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#66
  Alt 18. Apr 2003, 02:00
So, hier ist jetzt die neueste Version. Ein Label ist vorhanden, die Labelposition kann eingestellt werden und für heute (gestern) wars das dann. Der Rest bleibt noch offen. Und das LabelSpacing (Abstand Label - Eingabefeld) fehlt noch. Desweiteren sind die Postionen des labels nur testweise fertig. Und dann halt noch der "Mirage"-Effekt. Und was neu ist, ist nicht getestet!
Angehängte Dateien
Dateityp: pas realedit_933.pas (4,3 KB, 6x aufgerufen)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#67
  Alt 18. Apr 2003, 09:04
Der Effekt wurde nach mir benannant ich fühle mich geehrt

Leider funzt die neue Version net bei mir, hab nur Delphi 3 Professional und da gibts ja dieses neue Label nicht (gibts glaub ich erst ab D6)
David F.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#68
  Alt 18. Apr 2003, 11:45
Hi Mirage, 8)

gut, der Thread ist schon lang, da will ich keinem zumuten das genau von Anfang an zu lesen. Dann muß ich Dich aufklären.

Komponente TLabeledRealEdit

ersetzt das TLabelEdit von Delphi 6 und bietet folgende erweiterte Möglichkeiten (alles im Objekt-Inspektor) :

- Feld "OnlyReals" : Ist das auf true gesetzt werden nur Zahlen und ein DecimalSeparator akzeptiert. Es kann auch auf false stehen, dann wird alles akzeptiert

- Feld "Alignment" : In das Editfeld kann links/rechtsbündig oder zentriert etwas eingegeben werden

- Feld "MaxNachKomma" : die Anzahl der möglichen Nachkommastellen kann festgelegt werden

- Feld "Labelpos" : die Position des Labels in Bezug auf das Eingabefeld. Mögliche Werte : lpAbove,lPRight,lpLeft,lpBelow

Fehler / was noch fehlt:

1. Das Alignment wirkt sich zur Laufzeit nicht aus (immer rechtsbündig)
2. Ist OnlyReals true, kann durch die "Hintertür" Zwischenablage trotzdem ein nicht zulässiger Wert in das Feld gelangen
3. die Labelpositionen sind noch nicht fertig
4. das LabelSpacing (Abstand Label<->Edit) fehlt noch

@Mirage: was soll das da heißen:

Zitat:
...und da gibts ja dieses neue Label nicht (gibts glaub ich erst ab D6)
Du meinst das LabeledEdit Das gibts erst ab D6, aber deshalb ist das hier ja gut. Was geht denn da nicht.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#69
  Alt 18. Apr 2003, 11:54
Zitat von Hansa:
@Mirage: was soll das da heißen:

Zitat:
...und da gibts ja dieses neue Label nicht (gibts glaub ich erst ab D6)
Du meinst das LabeledEdit Das gibts erst ab D6, aber deshalb ist das hier ja gut. Was geht denn da nicht.
Also bei meinem Delphi 3 gibts diese Komponente da nicht und dann findet der wohl irgendwelche vererbten Eigenschaften nicht denke ich.
Bei mir meinte der z.b. "Undefinierter Bezeichner: TLabelpos {oder was da auch stand}"

Den Thread selbst hab ich so schnipselweise gelesen ganz unwissend bin ich also doch nicht
David F.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#70
  Alt 18. Apr 2003, 12:01
@Mirage : "Dein"-Effekt gibts nicht mehr. Pech gehabt. Das lpAbove wurde vielleicht im Zusammenhang des TLabeledEdit eingeführt. Dann schreib Dir das doch selber :

TLabelPosition = (lpAbove,...);

in der auskommentierten Zeile war das fAlignment einmak zu viel drin.

Code:
procedure TRealEdit.CreateParams(var Params: TCreateParams);
const Alignments: array[TAlignment] of byte=(ES_Left, ES_Right, ES_Center);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or Alignments[fAlignment];
//  fAlignMent := taRightJustify;
end;
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 12   « Erste     567 89     Letzte »    


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 13:47 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