AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variablenübergabe - ich verzweifle

Ein Thema von raena · begonnen am 18. Apr 2008 · letzter Beitrag vom 20. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#1

Variablenübergabe - ich verzweifle

  Alt 18. Apr 2008, 22:26
hallo,

ich bin langsam am ende .
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

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.
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Variablenübergabe - ich verzweifle

  Alt 18. Apr 2008, 22:29
dein ButtonClick in der SubUnit müsste so aussehen:
Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
begin
  testen.Refresh;
  testen.Repaint;
end;
edit:: ahh ich verstehe^^
versuchs so:
Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
begin
  listboxsub.Items.Assign(testen.Items);
end;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#3

Re: Variablenübergabe - ich verzweifle

  Alt 18. Apr 2008, 22:35
da kommt die fehlermeldung list index out of bounds
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Variablenübergabe - ich verzweifle

  Alt 18. Apr 2008, 23:56
Zitat von dominikkv:
dein ButtonClick in der SubUnit müsste so aussehen:
Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
begin
  testen.Refresh;
  testen.Repaint;
end;
refresh ruft automatisch repaint auf.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#5

Re: Variablenübergabe - ich verzweifle

  Alt 19. Apr 2008, 11:47
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:
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.
und die sub
Delphi-Quellcode:
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 schliesse diesen Threat da das Übergabe Problem gelöst ist.
Ich öffnen eine neuen Threat mit dem eigentlichen Problem.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Variablenübergabe - ich verzweifle

  Alt 19. Apr 2008, 12:02
listbox1:=listbox2 damit weist Du der Listbox1 die Adressen der Listbox2 zu.
und nicht deren Inhalt.

listbox1.assign(listbox2): <- das geht nicht
listbox1.items.Assign(Listbox2.items); so sollte es das machen was Du willst.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Variablenübergabe - ich verzweifle

  Alt 19. Apr 2008, 12:08
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#8

Re: Variablenübergabe - ich verzweifle

  Alt 19. Apr 2008, 13:18
Hallo Klaus01,

ich denke hiermit listbox1.items.Assign(Listbox2.items); hast du vollkommen Recht. Dies funktioniert.

Ich hab dies aber nicht hinbekommen wenn listbox1 in unit1 und listbox2 in unit2 liegt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

Re: Variablenübergabe - ich verzweifle

  Alt 19. Apr 2008, 13:28
Versuch es mal mitlistbox1.items.Assign(Form2.Listbox2.items);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Variablenübergabe - ich verzweifle

  Alt 19. Apr 2008, 13:35
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 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