![]() |
Combobox, morgen Prüfung kleine Frage
Gelöst
E: Wenn mir jemand sagen könnte wieso ich das hinzufügen müsste würd ich mich freuen. :) Controls in uses hinzufügen self.Parent := AOwner as TWinControl; nach create von der Combobox im Constructor Guten Tag, ich hoffe ich bin hier im richtigen Forum, wenn nicht dann entschuldige ich mich dafür. Ich habe eine wichtige Frage und bin hier am verzweifeln. Wenn ich mein Programm starte kommt ein Fehler weiss jemand wieso? Ich möchte in die Combobox mein Array einfügen.
Delphi-Quellcode:
Da wo der Fehler kommt habe ich schon einiges Versucht aber keiner hat geklappt könnte mir jmd die Rätels Lösung zeigen? :)
unit DecodeU;
interface uses ExtCtrls, Classes, StdCtrls, Controls ; type TDecode=class(TPanel) private Ring1:TCombobox; // Ring2:TCombobox; // Ring3:TCombobox; // Ring4:TCombobox; zahl:integer; {-Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9); FarbString2: array[0..9] of String = ('schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert2: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9); FarbString3: array[0..11] of String = ('silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert3: array[0..11] of integer = (0.01,0.1,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000); FarbString4: array[0..11] of String = ('keine','silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau'); Wert4: array[0..11] of integer = (20,10,5,0,1,2,0,0,0.50,0.25,0.10,0.05); -} public constructor Create(AOwner:TComponent); override; end; const FarbString1: array[0..9] of String = ('---','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9); implementation { TDecode } constructor TDecode.Create(AOwner: TComponent); begin inherited Create(AOwner); width:=600; height:=200; Ring1:= TCombobox.create(self); self.Parent := AOwner as TWinControl; Ring1.Parent := Self; Ring1.width:=100; Ring1.top:=100; Ring1.left:=100; Ring1.Items.Add(FarbString1[0]); <---- Fehler : Project mainP.exe raised exception class EInvalidOperation with message 'COntrol " has no parent window'. Proxess stopped. Use Step or Run to continue. end; end. Danke im Vorraus! LG Bamer |
AW: Combobox, morgen Prüfung kleine Frage
Editiere das und ändere CODE-Tags in DELPHI-Tags (Schaler "Erweitert"), dann kann den Code leichter lesen (ich zumindest).
|
AW: Combobox, morgen Prüfung kleine Frage
Hallo,
und ein herzliches Willkommen in der DP. Zitat:
Du kannst folgendes machen:
Delphi-Quellcode:
Gruß
constructor TDecode.Create(AOwner: TComponent);
var i : Integer; begin inherited Create(AOwner); width:=600; height:=200; Ring1:= TCombobox.create(self); Ring1.Parent := Self; Ring1.width:=100; Ring1.top:=100; Ring1.left:=100; for i := 0 to High (FarbString1) do Ring1.Items.Add(FarbString1 [i]); end; |
AW: Combobox, morgen Prüfung kleine Frage
Vielen Vielen Dank. Ich stoße grade auf mein zweites Problem
Delphi-Quellcode:
Weiss jemand wie ich eine onChange Funktion mache? Also ich vermute das ist dashier
unit DecodeU;
interface uses ExtCtrls, Classes, StdCtrls, Controls; type TDecode=class(TPanel) private Ring1:TCombobox; Ring2:TCombobox; Ring3:TCombobox; Ring4:TCombobox; Ausgabe:TLabel; public constructor Create(AOwner:TComponent); override; end; const FarbString1: array[0..9] of String = ('---','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9); FarbString2: array[0..9] of String = ('schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert2: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9); FarbString3: array[0..11] of String = ('silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert3: array[0..11] of double = (0.01,0.1,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000); FarbString4: array[0..11] of String = ('keine','silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau'); Wert4: array[0..11] of double = (20,10,5,0,1,2,0,0,0.50,0.25,0.10,0.05); implementation { TDecode } constructor TDecode.Create(AOwner: TComponent); var i:integer; begin inherited Create(AOwner); width:=600; height:=200; Ring1:= TCombobox.create(self); Ring2:= TCombobox.create(self); Ring3:= TCombobox.create(self); Ring4:= TCombobox.create(self); self.Parent := AOwner as TWinControl; Ring1.Parent := Self; Ring1.width:=100; Ring1.top:=50; Ring1.left:=10; Ring2.Parent := Self; Ring2.width:=100; Ring2.top:=50; Ring2.left:=120; Ring3.Parent := Self; Ring3.width:=100; Ring3.top:=50; Ring3.left:=230; Ring4.Parent := Self; Ring4.width:=100; Ring4.top:=50; Ring4.left:=340; for i:=0 to 11 do begin if i<=9 then begin Ring1.Items.Add(FarbString1[i]); Ring2.Items.Add(FarbString2[i]); end; Ring3.Items.Add(FarbString3[i]); Ring4.Items.Add(FarbString4[i]); end; Ausgabe:= TLabel.create(self); Ausgabe.Parent := Self; Ausgabe.width:=350; Ausgabe.top:=150; Ausgabe.left:=150; Ausgabe.caption:=('Bitte geben sie ihren Widerstand ein'); end; end.
Delphi-Quellcode:
Aber füge ich bei TForm TDecode und ändere Combobox1 in Ring1 bekomme ich ein Fehler. Weiß jemand wie das genau geht?
procedure TForm1.ComboBox1Change(Sender: TObject);
begin end; end. Ich versuche es grade neben bei auch zu googeln, aber ich weiss nicht mal nach was ich genau googeln soll. :s Vielen Dank für eure schnelle Antwort auf mein letzten Beitrag. Ich habs gefunden sobald ich es fertig habe werde ich es posten, damit es evtl anderen Usern hilft :) LG Bamer :) |
AW: Combobox, morgen Prüfung kleine Frage
Hallo,
Zitat:
Zitat:
Delphi-Quellcode:
Gruß
type
TDecode = class (TPanel) private procedure Ring1Change (Sender : TObject); end; procedure TDecode.Ring1Change (Sender : TObject); begin // Do what ever you want end; constructor TDecode.Create(AOwner: TComponent); begin Ring1:= TCombobox.Create (self); Ring1.OnChange := Ring1Change end; |
AW: Combobox, morgen Prüfung kleine Frage
Vielen Dank für deine Hilfe Volker Z.
Ich stelle hier nochmal meinen ganzen Quellcode zur Verfügung wer vielleicht das ein oder andere darauf braucht.
Delphi-Quellcode:
PS: Leider gibts kein Thank you Button :(
unit DecodeU;
interface uses Windows, Messages, SysUtils, Variants, Graphics, Forms, Dialogs, ExtCtrls, Classes, StdCtrls, Controls; type TDecode=class(TPanel) private Ring1:TCombobox; Ring2:TCombobox; Ring3:TCombobox; Ring4:TCombobox; Ausgabe:TLabel; protected procedure myChange(Sender: TObject); public constructor Create(AOwner:TComponent); override; end; const FarbString1: array[0..9] of String = ('---','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9); FarbString2: array[0..9] of String = ('schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert2: array[0..9] of integer = (0,10,20,30,40,50,60,70,80,90); FarbString3: array[0..11] of String = ('silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß'); Wert3: array[0..11] of double = (0.01,0.1,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000); FarbString4: array[0..11] of String = ('keine','silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau'); Wert4: array[0..11] of double = (20,10,5,0,1,2,0,0,0.50,0.25,0.10,0.05); implementation { TDecode } constructor TDecode.Create(AOwner: TComponent); var i:integer; begin inherited Create(AOwner); width:=600; height:=200; Ring1:= TCombobox.create(self); Ring2:= TCombobox.create(self); Ring3:= TCombobox.create(self); Ring4:= TCombobox.create(self); self.Parent := AOwner as TWinControl; Ring1.Parent := Self; Ring1.width:=100; Ring1.top:=50; Ring1.left:=10; Ring2.Parent := Self; Ring2.width:=100; Ring2.top:=50; Ring2.left:=120; Ring3.Parent := Self; Ring3.width:=100; Ring3.top:=50; Ring3.left:=230; Ring4.Parent := Self; Ring4.width:=100; Ring4.top:=50; Ring4.left:=340; for i:=0 to 11 do begin if i<=9 then begin Ring1.Items.Add(FarbString1[i]); Ring2.Items.Add(FarbString2[i]); end; Ring3.Items.Add(FarbString3[i]); Ring4.Items.Add(FarbString4[i]); end; Ausgabe:= TLabel.create(self); Ausgabe.Parent := Self; Ausgabe.width:=350; Ausgabe.top:=150; Ausgabe.left:=150; ring1.ItemIndex := 0; ring2.ItemIndex := 1; ring3.ItemIndex := 2; ring4.ItemIndex := 1; ring1.OnChange := myChange; ring2.OnChange := myChange; ring3.OnChange := myChange; ring4.OnChange := myChange; end; procedure TDecode.myChange(Sender: TObject); var zwischenzahl:double; begin zwischenzahl:= (Wert1[ring1.ItemIndex] + Wert2[ring2.ItemIndex]) * Wert3[ring3.ItemIndex]; Ausgabe.Caption:=(FormatFloat('0.00',zwischenzahl) + ' Ohm Toleranz:'+ (FloatToStr (Wert4[ring4.ItemIndex]))+'%'); end; end. LG Bamer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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