![]() |
Variablenübergabe - ich verzweifle
hallo,
ich bin langsam am ende :wall: . Die Übergabe eine Listbox variable klappt einfach nicht von einer Unit zu einer anderen. Ich habe viel gelesen über public und private, alles ausprobiert, die Variable wird einfach nicht übergeben. Was mach ich nur falsch. In der Sub Unit kommt einfach nix an. Hilfe :bounce2:
Delphi-Quellcode:
unit Main;
interface uses Sub, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm3 = class(TForm) Button1: TButton; listboxm:TListBox; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var FormMain: TForm3; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin listboxm.AddItem('Test',TObject(-1)); sub.testen:=listboxm; FormSub.showmodal; end; end. unit Sub; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm5 = class(TForm) ListBoxSub: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var FormSub: TForm5; testen:TListBox; implementation {$R *.dfm} procedure TForm5.Button1Click(Sender: TObject); begin ListBoxSub:=testen; listboxsub.Refresh; listboxsub.Repaint; end; end. |
Re: Variablenübergabe - ich verzweifle
dein ButtonClick in der SubUnit müsste so aussehen:
Delphi-Quellcode:
edit:: ahh ich verstehe^^
procedure TForm5.Button1Click(Sender: TObject);
begin testen.Refresh; testen.Repaint; end; versuchs so:
Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
begin listboxsub.Items.Assign(testen.Items); end; |
Re: Variablenübergabe - ich verzweifle
da kommt die fehlermeldung list index out of bounds
|
Re: Variablenübergabe - ich verzweifle
Zitat:
|
Re: Variablenübergabe - ich verzweifle
geht auch nicht. ich denke aber dass ich das Problem eingrenzen kann.
Das Problem liegt an der List Box. die Übergabe mit listbox1:=listbox2 klappt irgendwie nicht. Die Übergabe einer einfachen Stringvaribalen klappt gut. Hier der Code für den den es interessiert:
Delphi-Quellcode:
und die sub
unit Main;
interface uses Sub, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm3 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var FormMain: TForm3; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin sub.test_str:='ich schreibe aus Main'; FormSub.showmodal; end; end.
Delphi-Quellcode:
Ich schliesse diesen Threat da das Übergabe Problem gelöst ist.
unit Sub;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm5 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var FormSub: TForm5; test_str:string; implementation {$R *.dfm} procedure TForm5.Button1Click(Sender: TObject); begin memo1.Text:=test_str; end; end. Ich öffnen eine neuen Threat mit dem eigentlichen Problem. :arrow: :arrow: |
Re: Variablenübergabe - ich verzweifle
Delphi-Quellcode:
damit weist Du der Listbox1 die Adressen der Listbox2 zu.
listbox1:=listbox2
und nicht deren Inhalt.
Delphi-Quellcode:
<- das geht nicht
listbox1.assign(listbox2):
Delphi-Quellcode:
so sollte es das machen was Du willst.
listbox1.items.Assign(Listbox2.items);
Grüße Klaus |
Re: Variablenübergabe - ich verzweifle
Vielleicht sollte man noch erwähnen, das eine Listbox immer nur auf einer(!) Form liegen kann. Der INHALT jedoch kann von einer Listbox in eine andere Listbox kopiert werden.
|
Re: Variablenübergabe - ich verzweifle
Hallo Klaus01,
ich denke hiermit
Delphi-Quellcode:
hast du vollkommen Recht. Dies funktioniert.
listbox1.items.Assign(Listbox2.items);
Ich hab dies aber nicht hinbekommen wenn listbox1 in unit1 und listbox2 in unit2 liegt. |
Re: Variablenübergabe - ich verzweifle
Versuch es mal mit
Delphi-Quellcode:
listbox1.items.Assign(Form2.Listbox2.items);
|
Re: Variablenübergabe - ich verzweifle
Hi,
ich würde einen anderen Weg wählen. Definiere die Dinge, die Du übergeben willst, als property der Subform. Erstelle diese Form dann zur Laufzeit, übergebe Deine Variablen und rufe die Form per ShowModal auf. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 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 by Thomas Breitkreuz