![]() |
Re: Panel
Ups ich hab das alles auf integern gemacht damals. aber jetzt sollte es richtig sein
Ich verwalte in der selben Art ein DB Programm von mir. Vieleicht hilft es dir ja weiter.
Delphi-Quellcode:
function TForm1.Panelanzeige(Neuepanel: string):boolean;
begin //Das gewünschte Panel anzeigen Case Neuepanel of 'blume': blumepanel.Visible:=true; 'luft': luftpanel.Visible:=true; 'wasser': wasserpanel.Visible:=true; else showmessage('Programmfehler Panel NR '+inttostr(Neuepanelnummer)+' nicht verfügbar.'); result:=false; end; //Alle anderen Panel ausschalten if Neuepanel <> 'blume' then blumepanel.Visible:=false; if Neuepanel <> 'luft' then luftpanel.Visible:=false; if Neuepanel <> 'wasser' then wasserpanel.Visible:=false; application.ProcessMessages; result:=true; end; aufgerufen wird es dann so
Delphi-Quellcode:
Panelanzeige(Edit1.text);
|
Re: Panel
Case mit String? Ich möchte bezweifeln, dass das so geht.
[edit] Das wird immer noch nicht gehen, case funktioniert nur mit ordinalen Datentypen :mrgreen: [/edit] |
Re: Panel
Die Frage, wäre ja auch was er genau damit bezwecken will. Oder besser gesagt, was es geben soll. Eventuell das ganze über eine DB zu lösen. Je nachdem wie viel Artikel etc. vorhanden sind.
Gruß Jens |
Re: Panel
ich habe das wir gesagt damals mit integern gemacht. ob es nun mit strings geht habe ich nimals ausprobiert.
|
Re: Panel
Zitat:
Delphi-Quellcode:
Im Label1 ist alles klein bis auf die letzten drei zeichen, im zweiten Label alles klein.
procedure TForm1.Button1Click(Sender: TObject);
const S = 'Das ist ein Text mit üöäßÄÜÖ'; begin Label1.Caption := LowerCase(S); Label2.Caption := AnsiLowerCase(S); end; Ist das der Grund für AnsilowerCase? |
Re: Panel
Japp, das hatte ich gemeint.
|
Re: Panel
man kann ja auch den string wieder in zahlen umschreiben dann geht es ;)
|
Re: Panel
|
Re: Panel
@polarwolf: Mann kann sich auch nen Bein ausreissen und damit golfen. Schmerz und Sinn sind vergleichbar.
Nimm dir ne Combobox, und schmeiss da deine Texte rein. Die sind dann intern als StringList hinterlegt, die u.a. auch die Property Objects hat. Zum Programmstart schmeissz du dir in diese die jeweiligen Referenzen auf die zugehörigen Panels, und dann kannst du nachdem ein Eintrag gewählt wurde einfach über den ItemIndex wieder auf genau das richtige zugreifen und es visible machen. Kein if-Gewürgel, keine Stringveralberung, nur ein mal im OnCreate haufen an Panels in die Objects-Property werfen und fertig. Btw: ComboBoxen können auto-vervollständigen, so dass der User nichtmals ausklappen muss um einen Eintrag zu wählen. Das ganze ist ja relativ Edit-ähnlich zu bedienen dann. |
Re: Panel
:lol:, die selbe Idee hatte ich auch gerade:
Delphi-Quellcode:
procedure TfrmMain.ComboBox1Change(Sender: TObject);
var i: integer; begin for i := 0 to ComboBox1.Items.Count - 1 do (ComboBox1.Items.Objects[i] as TPanel).Visible := i = ComboBox1.ItemIndex; end; procedure TfrmMain.FormCreate(Sender: TObject); begin ComboBox1.Items.AddObject('Blume',Panel1); ComboBox1.Items.AddObject('Tiger',Panel2); ComboBox1.Items.AddObject('Pinkelpott',Panel3); ComboBox1.ItemIndex := 0; ComboBox1Change(Sender); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 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