AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

(Sender as TLMDEdit) wie variabel gestalten

Ein Thema von Armageddon · begonnen am 2. Feb 2007 · letzter Beitrag vom 3. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#1

(Sender as TLMDEdit) wie variabel gestalten

  Alt 2. Feb 2007, 19:55
Hallo,

ich nutze folgende zusammen gestrickte Funtkion in meinen kleinen Tools. Nun habe ich manchmal aber
verschiedene Komponenten auf der Form welche alle aber . Text (mir fällt da grad nicht der richtige Fachausdruck ein) haben. Mein Ziel ist es die Funtkion für mehrere Komponententypen zu verwenden. Nur wie? Bzw. geht das überhaupt?

Delphi-Quellcode:
procedure TForm1.OnlyNumberKeyPresswK(Sender: TObject; var Key: Char);
var
  Puffer1, Puffer2: String;
  Komma: Boolean;
  Senderle: ...........?
begin
  Fehlermeldung := False;
  Komma := False;
  Puffer1 := Key;
  Puffer2 := (Sender as TLMDEdit).Text; //geht das z.B. so: (Sender as Senderle).Text
  if not (Puffer1[1] in [#8, '0'..'9', '.', ',']) then
  begin
    Puffer1 := #0;
    Key := #0;
  end;
  if Puffer1 = '.then
  begin
    Puffer1 := ',';
    Key := ',';
  end;
//Auf Komma prüfen
  if Pos(',', Puffer2) > 0 then Komma := True;
//Punkteingabeposition prüfen
  if Komma = True then
  begin
    if Puffer1 = ',then Puffer1 := #0;
    if (Sender as TLMDEdit).SelLength > 0 then
    begin
      if (Sender as TLMDEdit).SelStart > Pos(',', Puffer2) then
      begin
        Puffer1 := Key;
        if Key = ',then Puffer1 := #0;
      end;
      if (Sender as TLMDEdit).SelStart <= Pos(',', Puffer2) then
      begin
        Puffer1 := Key;
        if (Sender as TLMDEdit).SelStart + (Sender as TLMDEdit).SelLength <= Pos(',', Puffer2) then
        begin
          if Key = ',then Puffer1 := #0;
        end;
      end;
    end;
    if (Sender as TLMDEdit).SelLength = Length((Sender as TLMDEdit).Text) then Puffer1 := Key;
  end;
  Key := Puffer1[1];
end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 2. Feb 2007, 20:01
Du mußt nach einem gemeinsamen Vorfahr suchen, und zu diesem dann casten.
Markus Kinzler
  Mit Zitat antworten Zitat
Thorben_K

Registriert seit: 22. Okt 2006
Ort: Darmstadt
105 Beiträge
 
Delphi 2006 Professional
 
#3

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 2. Feb 2007, 22:51
ALso nach dem Vorfahren der TExt hat, und das ist TControl. Übergibst du als parameter eine abgeleitete klasse von TControl kannst du das machen. Musst nur aufpassen, auch TCaption ist abegeleitet von TControl, besitzt auc heinen Text, dieser ist aber nicht sichtbar und somit absolut unwichtig. aber ne fehlermeldung dürfte trotzdem net kommen
Thorben
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 2. Feb 2007, 23:00
Höa? TCaption ist von TControl abgeleitet?

*kratz*

type TCaption = type string;
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
2. Feb 2007, 23:51
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Eine delphispezifische Frage
Thorben_K

Registriert seit: 22. Okt 2006
Ort: Darmstadt
105 Beiträge
 
Delphi 2006 Professional
 
#6

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 3. Feb 2007, 08:20
Omg man sollte keine texte schreiben wenn man zu müde ist...

ich meinte das TCaption eine Eigenschaft von TControl ist, und die TControl eine überklasse von TEdit usw. So das wann man ein TControl per Parameter "verlangt" wenn alles was man braucht (z.B. Label, Edit oder Buttons) übergeben kann, um so die Caption bzw den Text zu bearbeiten

sry für mein dummes Deutsch gestern nacht

PS: Muss halt irgendwie raus finden ob jetzt der "text" sichbar ist (Edit) oder die Caprion (Label, GrpupBox usw)

BSP:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    procedure AAA(Comp : TControl; Text : String);
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.AAA(Comp : TControl; Text : String);
begin
  if Comp is TLabel //Prüfen was ein Type Comp ist
  then (Comp as TLabel).Caption := Text //Dann casten wir das Object und weisen den Wert zu
  else (Comp as TEdit).Text := Text;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  AAA(Label1, 'Test');
end;

end.
EDIT: Du kannst natürlich auch TComponent per Parameter übergeben, ich halt TControl aber für besser
Thorben
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 3. Feb 2007, 10:47
Zitat von Thorben_K:
Du kannst natürlich auch TComponent per Parameter übergeben, ich halt TControl aber für besser
Und warum ?

Was Du suchst dürfte ein einziger Buchstabe sein :

if not (sender is TEdit) then begin Reicht das immer noch nicht, dann kommt TComponentList ins Spiel.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 3. Feb 2007, 11:01
Zitat von Thorben_K:
ich meinte das TCaption eine Eigenschaft von TControl ist
TCaption ist keine Eigenschaft von TControl, TCaption ist ein Typenbezeichner.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 3. Feb 2007, 11:07
Mir fällt noch was auf : der "DecimalSeparator" scheint unbekannt zu sein. Verwende den mal und schon kannste aus deinen 50 Zeilen Source ca. 20 Zeilen rausschmeißen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#10

Re: (Sender as TLMDEdit) wie variabel gestalten

  Alt 3. Feb 2007, 17:58
Zitat von Hansa:
Mir fällt noch was auf : der "DecimalSeparator" scheint unbekannt zu sein. Verwende den mal und schon kannste aus deinen 50 Zeilen Source ca. 20 Zeilen rausschmeißen.
Das der Code nicht grad optimal ist, ist mir auch klar. Aber ich hab nicht Du Lust noch die Zeit das zu optimieren. Brauch das auch nur ab und an.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:02 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