Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi combobox + Uppercase (https://www.delphipraxis.net/14469-combobox-uppercase.html)

schniede 9. Jan 2004 21:05


combobox + Uppercase
 
Hallo !

hat jemand ne Idee wie ich es hinbekomme das bei der Eingabe jeweils nur der 1.Buchstabe
in Groß gewandelt wird.

also Eingabe :'test' Ergebnis : 'Test'



mfg schniede

eddy 9. Jan 2004 21:11

Re: combobox + Uppercase
 
Hallo schniede,

function FU(s : string) : string; // First Uppercase
begin
Result := AnsiUpperCase(copy(s,1,1)) + copy(s, 2, length(s));
end;

mfg
eddy

schniede 9. Jan 2004 21:50

Re: combobox + Uppercase
 
Danke eddy!!

Sieht toll aus ,nur ehrlich gesagt weiß ich nicht richtig wie ich das einbinden soll.

z.B. in
Code:
procedure TForm1.ComboBox8KeyPress(Sender: TObject; var Key: Char);
vieleicht kannst du mir noch mal auf die sprünge helfen?

mfg schniede

Robert_G 9. Jan 2004 22:06

Re: combobox + Uppercase
 
Ich würde es in den OnChange-Handler schreiben:
Delphi-Quellcode:
Procedure TForm1.ComboBoxChange(Sender: TObject);
Var
  EventCache: TNotifyEvent;
Begin
  With Sender As TComboBox Do
  Begin
    EventCache := OnChange;
    OnChange := Nil;
    Text := UpperCase(Copy(Text, 1, 1)) + LowerCase(Copy(Text, 2, Length(Text)));
    OnChange := EventCache;
  End;
End;
Gibt es eigentlich noch eine andere Möglichkeit einen Handler kurz auszuschalten?

schniede 9. Jan 2004 22:18

Re: combobox + Uppercase
 
Hab es nun doch hinbekommen nur leider nicht während der Eingabe.
Vieleicht hat einer ne andere Idee?


Code:
function FU(s : string) : string; forward;

function FU(s : string) : string;
begin
Result := AnsiUpperCase(copy(s,1,1)) + copy(s, 2, length(s));
end;

procedure TForm1.BitBtn18Click(Sender: TObject);

begin
combobox8.Text:=fu(combobox8.Text);
combobox8.Items.add(combobox8.Text);
doppelpruefen_loeschen;
end;

procedure TForm1.doppelpruefen_loeschen;
var
  a,b : integer;
begin
  a := 0;
  while a <= ComboBox8.Items.count - 2 do
  begin
    for b := a + 1 to ComboBox8.Items.count - 1 do
    begin
      if ComboBox8.Items[a] = ComboBox8.Items[b] then
      begin
        dec(a);
        ComboBox8.Items.delete(b);
        break;
      end;
    end;
    inc(a);
  end;

end;
GeorgeWNewbie ,danke nur leider schreibt meine Eingabe in der Box damit Rückwäts.
obwohl mir das so sehr gut gefallen würde.

Robert_G 9. Jan 2004 22:41

Re: combobox + Uppercase
 
:oops:
So müsste es aber funktionieren.
Delphi-Quellcode:
Procedure TForm1.ComboBoxChange(Sender: TObject);
Var
  EventCache: TNotifyEvent;
  PrevSelStart: Integer;
Begin
  With Sender As TComboBox Do
  Begin
    EventCache := OnChange;
    OnChange := Nil;
    PrevSelStart := SelStart;
    Text := UpperCase(Copy(Text, 1, 1)) + LowerCase(Copy(Text, 2, Length(Text)));
    SelStart := PrevSelStart;
    OnChange := EventCache;
  End;
End;
(Nächstes Mal ausprobieren :wall:)

schniede 9. Jan 2004 22:55

Re: combobox + Uppercase
 
Da kann ich nur sagen ,Super !!! Danke euch beiden. :thuimb:

Genau so hatte ich es mir vorgestellt .

mfg schniede

p.s. wenn ich das so seh weiß ich was mir noch alles fehlt, :roll:
naja vieleicht versteh ich es ja auch mal.


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