AGB  ·  Datenschutz  ·  Impressum  







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

einen Record unter Public freigeben?

Ein Thema von Thorben86 · begonnen am 4. Apr 2005 · letzter Beitrag vom 5. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#1

einen Record unter Public freigeben?

  Alt 4. Apr 2005, 20:01
Ich hab das Problem, dass ich einer Variable von einer 2. Form aus werte übergeben will.

Jetzt müsste ich dafür die variable ja einfach im Public-bereich von Form1 deklarieren.

Mein Problem ist jetzt nur, dass ich nen Record hab.
Delphi-Quellcode:
  type StartTyp = ^Startelement;

    Startelement=record
      Startdatum : TDate;
      StartSchicht : String[10];
      StartSchichtNr : Shortint;
    end;
Nun will ich die Variable Startwert aber irgendwie freigeben, so dass ich drauf zugreifen kann.
Startwert:StartTyp; allerdings kann ich diese zeile ja nit unter public reinschreiben, da er da den typ noch nicht kennt, da ich das ja erst hinter dem Public hab.

Und ich wüsste nicht, wie ich das mit dem Record vorher machen kann, da er dort keine = erlaubt, sondern immer meldet : erwartet.

Hat einer von euch ne lösung wie ich die trotzdem freigeben kann, muss ja irgendwie funktionieren, denk ich mal
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 20:11
Schreib doch die Record-Deklaration vor die Deklaration von deinem Form oder packs in eine Extra Unit und binde die per uses ein
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#3

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 21:21
Ok, hab jetzt den komplettentype bereich über den anderen gesetzt, wusste nicht dass das klappt, Thx
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#4

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 21:44
Ich hab jetzt allerdings ein weiteres Problem. Und zwar bekomme ich jetzt immer eine Access-Violation, wenn ich versuche aus form2 einen Wert zu übergeben.

In Form 2 will ich das übergeben:
Form1.Startwert.Startdatum:=Kalender1.Date; die erste Unit hab ich in den Uses der 2. hinzugefügt.
Der Abbruch wird mir in der zeile dann angezeigt, die auch oben steht.

In Form 1 hab ich die deklaration des Records in zwischen die Uses und die type-deklaration der Form und der anderen Komponenten.
Delphi-Quellcode:
type StartTyp = ^Startelement;
    Startelement=record
      Startdatum : TDate;
      StartSchicht : String[10];
      StartSchichtNr : Shortint;
    end;
So sieht der Public-Bereich aus:
Delphi-Quellcode:
public
    { Public-Deklarationen }
  Startwert:StartTyp;
  end;
Kann mir eventuell jemand verraten, was ich noch beachten muss?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 21:50
forderst du denn irgendwo speicher für "Startwert" an?
Im übrigen ist es üblich die records mit "T" vorran zu deklarieren und die Pointer auf die Structor mit "P" also so:
Delphi-Quellcode:
type
  PStartelement = ^TStartelement;
  TStartelement=record
    Startdatum : TDate;
    StartSchicht : String[10];
    StartSchichtNr : Shortint;
  end;
so sieht man dann im quelltext auch sofort was ein Typ ist und was eine variable ist (denn wer weiß schon ahnhand des namens "Startelement" ob "Startelement" ein typ oder eine varialbe ist. Wenn es allerdings "TStartelement" heißt weiß jeder gleich das es ein Typ ist. Und bei "PStartelement" weiß eigentlich auch jeder sofort das es ein Pointer auf den Typ "TStartelement" ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#6

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 22:07
Stimmt, das mit dem Speicher hab ich ganz vergessen, wird ja nicht durch Var initialisiert.

Muss ich außer new(Form1.Startwert); in der ausführen-Procedure noch etwas hinschreiben, wel es Funktioniert ja.

Nach bearbeitung der Procedur wird die Form2 geschlossen, dann muss ich nicht nochmal extra das element freigeben, oder, das wird doch dann vom Programm übernommen?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 22:26
das freigeben wird vom programm übernommen wenn du es mal schließt. Aber angenommen dein Programm läuft ein jahr lang und es wird immer nur die Procedure neu gestartet dann müllst du natürlich den speicher voll. Also füge einfach ein "dispose" ein wenn du fertig bist, auf die eine zeile kommts ja nicht an.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#8

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 22:36
Jo, hab jetzt das freigeben noch mit reingebracht.

Warum muss man eigentlich áuch in der Unit (Form1), in der man den Record und die Variable deklariert hat auch einen Speicherplatz dafür erstellen, wird dass nicht normal durch das Programm gemacht?
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 22:46
Zitat von Thorben86:
Warum muss man eigentlich áuch in der Unit (Form1), in der man den Record und die Variable deklariert hat auch einen Speicherplatz dafür erstellen, wird dass nicht normal durch das Programm gemacht?
Weil du nur einen Zeiger auf einen record benutzt. Der zeigt natürlich von sich aus ins Leere.
Das ganze wäre mit einer Klasse wohl hübscher zu lösen. (Die hätte dann vielleicht auch noch Properties, Methoden und Erdbeerkuchen dabei )
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#10

Re: einen Record unter Public freigeben?

  Alt 4. Apr 2005, 22:49
Hmm, dann müsst ich mich hier im Forum mal nach Klassen umsehen, hab ich noch nie mit gearbeitet.

Aber mit dem Pointer auf nil haste recht, gar nit dran gedacht^^
  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 19:13 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