Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Tool zum Berechnen von LED Vorwiderstand u.s.w (https://www.delphipraxis.net/146646-tool-zum-berechnen-von-led-vorwiderstand-u-s-w.html)

Klaus01 24. Jan 2010 14:12

Re: Berechnungstool 2.1.1
 
.. vielleicht könntest Du dem User ja die Möglichkeit geben,
den LED Typ aus einer Combobox auszuwählen.
Der getroffenen Auswahl entsprechend kannst Du dann die
zugehörigen Datenfelder anzeigen.

Grüße
Klaus

morpheus090682 24. Jan 2010 14:15

Re: Berechnungstool 2.1.1
 
Da habe ich auch schon dran gedacht aber bin noch nicht mit der Box zurecht gekommen.

Das ich die Spannungen über den if Befehlen machen sollte hätte ich aber auch selber drauf kommen müßen ich trottel.

Ja die Oberfläche ist schon fertig in meinen gedanken. Aber da komme ich erst später zu.

morpheus090682 24. Jan 2010 15:14

Re: Berechnungstool 2.1.1
 
Wie kann man das denn in der ComboBox machen?? Ich habe es mal gerade angeschaut aber wie bekomme ich eine liste mit der Farbauswahl da rein???

Klaus01 24. Jan 2010 15:30

Re: Berechnungstool 2.1.1
 
Zitat:

Zitat von morpheus090682
Wie kann man das denn in der ComboBox machen?? Ich habe es mal gerade angeschaut aber wie bekomme ich eine liste mit der Farbauswahl da rein???

Hallo,
die Liste kannst Du zur Designzeit im ObjectInspector einfügen.
Es gibt dort für die Combobox den Eintrag items.

Wenn Du die Liste zur Laufzeit füllen willst, sollte das
so gehen:

Delphi-Quellcode:
combobox1.items.loadfromFile('fileName');
Oder wenn Du die Listeeinträge einzeln eintragen willst
(wenn Du sie z.B. aus einem IniFile einliest) geht das so:

Delphi-Quellcode:
combobox1.items.add('eintrag);
Wenn Du wissen willst welcher Eintrag ausgewählt wurde,
hilft Dir:

Delphi-Quellcode:
i := combobox1.ItemIndex
Grüße
Klaus

patti 24. Jan 2010 16:16

Re: Berechnungstool 2.1.1
 
Was dann wirklich cool wäre: Setze die Schrift-Farbe der einzelnen Einträge auf die Farbe der entsprechenden LED, also so, dass jeder Eintrag eine andere Schriftfarbe bekommt. Stichwort hierfür wäre z.B. "OwnerDraw", einfach mal in der DP suchen. Aber mach das (wenn überhaupt) erst dann, wenn der Rest funktioniert, also erstmal schauen, dass alles so geht, wie du dir das vorstellts.

mfg

morpheus090682 24. Jan 2010 16:21

Re: Berechnungstool 2.1.1
 
Ja mit der Farbe habe ich auch schon gespielt und werde das auch warscheinlich mit einbauen.
Werde mal schauen ob ich das mit der CoboBox hin bekomme.

morpheus090682 24. Jan 2010 16:56

Re: Berechnungstool 2.1.1
 
Zitat:

Zitat von Klaus01
.. vielleicht könntest Du dem User ja die Möglichkeit geben,
den LED Typ aus einer Combobox auszuwählen.
Der getroffenen Auswahl entsprechend kannst Du dann die
zugehörigen Datenfelder anzeigen.

Grüße
Klaus

So das mit der Combox habe ich hin bekommen aber wie kann ich nun ein Datenfeld anzeigen lassen das zur der Auswahl gehört???

Micha88 24. Jan 2010 18:07

Re: Berechnungstool 2.1.1
 
Zitat:

Das ist mein erstes Programm und ich bin noch fleißig dabei zu lehrnen.
Habe bis jetzt nur c programiert und dieses ist doch noch etwas anderes.
Darum hoffe ich ja auf hilfe.
Das wusst ich nicht. Ich entschuldige mich bei dir hiermit ausdrücklich.

Luckie 24. Jan 2010 18:10

Re: Berechnungstool 2.1.1
 
Und bitte ändere noch den Titel des Threads, damit man weiß, um was es geht.

Klaus01 24. Jan 2010 18:27

Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
 
.. so das ist alles noch ein wenig statisch.
Aber es zeigt das Prinzip gan gut auf:

Als erstes habe ich zwei neue Typen erstellt:
Delphi-Quellcode:
TLEDProperties = record
  color: String;
  mcdValues : TStringList;
end;

// dynamisches Array vom Typ TLEDProperties
TLEDList = Array of TLEDProperties;
Eine Variable vom Tyo TLEDList angelegt:

Delphi-Quellcode:
private
  { Private declarations }
  LEDList : TLEDList;
Im FormCreate die LEDList initialisiert:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  // die Länge des dyn. Array auf die Anzahl der Einträge in der ComboBox anpassen
  setLength(LEDList,ComboBox1.Items.Count);
  LEDList[0].color:='rot';
  LEDList[0].mcdValues := TStringList.Create;
  LEDList[0].mcdValues.add('15');
  LEDList[0].mcdValues.add('20');

  LEDList[1].color:='grün';
  LEDList[1].mcdValues := TStringList.Create;
  LEDList[1].mcdValues.add('15');
  LEDList[1].mcdValues.add('25');
  LEDList[1].mcdValues.add('50');

  LEDList[2].color:='blau';
  LEDList[2].mcdValues := TStringList.Create;
  LEDList[2].mcdValues.add('100');
end;
Die Werte ließen sich im Prinzip auch aus einer Datei (iniFile, xml) auslesen.

Wenn ein Wert aus der ComboBox ausgewählt wird:
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  i : Byte;
begin
  // radioGroup1.Caption := ComboBox1.Items[ComboBox1.itemIndex];
  // das obige ist ist dem untenstehende equivalent
  // das obige bringt Nachteile wenn du die Combobox1 mal nach Auswahlbox umbenennst
  radioGroup1.Caption := (sender as TComboBox).Items[(sender as TComboBox).itemIndex];
  radioGroup1.Items.Clear;
  // iterierere durch die mcdValues StringList und füge für jeden Eintrag
  // einen Eintrag in die RadioGroup ein.
  for i:= 0 to LEDList[(sender as TComboBox).ItemIndex].mcdValues.Count -1 do
    begin
      radioGroup1.Items.Add(LEDList[(sender as TComboBox).itemIndex].mcd[i]);
    end;
end;
Auf meiner Form haben sich eine ComboBox und eine Radiogroup befunden.

Ach ja, und nicht vergessen die StringListen wieder freizugeben.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 Uhr.
Seite 2 von 5     12 34     Letzte »    

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