Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 06, 2025 02:21

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Property von Form in Unit
BeitragVerfasst: Di Dez 31, 2002 21:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Hi,

ich habe ein Problem mit einer Unit... ich müsste in der Unit eine Property von einer Form ändern. Nun - wie mache ich das in meiner externen Unit? Ich hab schon viel mit Handles, Objects, TForms, TCustomForms und Pointern probiert, aber klappen will es nicht. Es geht um ClientWidth und ClientHeight.

Cyas,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 31, 2002 21:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Code:
  1.  
  2.  
  3. Unit A (Unit für die Form) :
  4.  
  5. type
  6.  
  7.  TForm...
  8.  
  9.  
  10.  
  11. uses
  12.  
  13.  UnitB.pas;
  14.  
  15.  
  16.  
  17. TForm.OnCreate...
  18.  
  19. begin
  20.  
  21. MainForm := @self;
  22.  
  23. end;
  24.  
  25.  


Code:
  1.  
  2.  
  3. Unit B :
  4.  
  5. ...
  6.  
  7. var
  8.  
  9.  MainForm : ^TForm;
  10.  
  11. ...
  12.  
  13. procedure Change;
  14.  
  15. begin
  16.  
  17. MainForm^.ClientWidth := 666;
  18.  
  19. ...
  20.  
  21. end;
  22.  
  23.  

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 31, 2002 23:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
entspricht nicht ganz meinen Vorstellungen, lässt sich aber gut ummodeln. Danke und guten Rutsch!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 03, 2003 18:24 
machs doch so:

Unit1
TMyForm=class(TForm)
...
var myForm:TForm;

Unit2
uses unit1

procedure change(form:TMyForm);
begin
form.clientwidth:=666;
end;

oder:

procedure change;
begin
myForm.clientwidth:=666;
end;

Objektreferenzen sind eigentlich Zeiger !

cu
waba


Nach oben
  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 03, 2003 23:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Ich hab SoS-Methode etwas umgewandelt. Außerdem ist in deinem Beispiel der Typname statisch, man muss ihn als variable deklarieren und in der 2. unit den namen der 1. angeben. Was für eine dynamische Engine (oder Init-Library) wohl weniger geschickt ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 04, 2003 09:35 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 09:18
Beiträge: 1
Der Code von Son of Satan ist ja auch OK. Unit1 greift auf Unit2 zu, bei mir
eben Unit2 auf Unit1. Nur brauchst du kein ^ und @.
Zitat:
Außerdem ist in deinem Beispiel der Typname statisch, man muss ihn als variable deklarieren und in der 2. unit den namen der 1. angeben

?
Wenn du die globale Variable meinst, bin ich auch nicht begeistert von, war nur ein Beispiel.

cu
waba


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]