Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Visual C++ - Label nen Text zuweisen -.- (https://www.delphipraxis.net/81048-visual-c-label-nen-text-zuweisen.html)

Neutral General 19. Nov 2006 20:24


Visual C++ - Label nen Text zuweisen -.-
 
Hi,

ich bin absolut zu blöd dafür :wall:

in nem ButtonOnClick erreignis will ich eigentlich nur nen Label (IDC_STATIC) en neuen Text zuweisen aber

Code:
IDC_STATIC.Text = "Hallo";
funktioniert nicht -.- Hat son Vieh überhaupt sowas wie Properties oder so? -.- Codevervollständigung gibts irgendwie auch nicht -.- :kotz:

Gruß
Neutral General

CalganX 19. Nov 2006 20:46

Re: Visual C++ - Label nen Text zuweisen -.-
 
Hi,
du musst mit Hilfe der WinAPI bzw. den entsprechenden Makros eine Fensternachricht an das Control senden. ;)
MSDN-Library durchsuchenWM_SETTEXT sollte dir da weiterhelfen.

Chris

Neutral General 19. Nov 2006 20:48

Re: Visual C++ - Label nen Text zuweisen -.-
 
Was??? :shock:
O m g ich muss an mein eigenes Label en WM_SETTEXT schicken... ich glaub das grad nicht -.-
Und das ist die Programmiersprache die die halbe Welt benutzt :wall: :wall: :wall:

Ehm ja aber ich kann kein Handle übergeben.. Ich sende das irgendwie immer an mein Formular -.-

Gruß
Neutral General

CalganX 19. Nov 2006 20:55

Re: Visual C++ - Label nen Text zuweisen -.-
 
Hi,
wenn du in Delphi den Text über die Eigenschaft setzt, machst du im Prinzip nichts anderes. Nur mit dem Unterschied, dass Delphi dich über seine Klassen direkt an diese Methode bindet.

Es ist ja nicht, so als ob es nur diese Möglichkeit gibt, auf Controls in C++ zuzugreifen (siehe VCL in Borland C++ Builder). Nur sieht das Grundgerüst von C++ eben keine GUI oder dergleichen vor. Deswegen musst du mit den grundlegensten Methoden arbeiten, die dir die Bibliotheken bieten. Und das ist in deinem Fall, ohne extra Bibliothek für einfachereren Control-Zugriff, die WinAPI.

Allerdings ist das Programmieren von Klassen für Controls, damit es einfacher geht, auch nicht allzuschwer. Dann kannst du dir auch alle wichtigen VCL-Klassen aus Delphi nachprogrammieren. Möglich ist also alles und damit auch noch mehr, als mit Delphi. ;)

@Roter Kasten:
das Handle bekommst du über eine Funktion, die dir das Handle zu einer Ressourcen-ID (bei dir das IDC_...) gibt. Ich kann so aus dem Stehgreif aber nicht sagen, wie die heißt.
Kannst ja mal einen Blick in's MSDN oder in Luckies Win32-API-Tutorial für Delphi werfen. Die dortigen Funktionen sind ja die Gleichen, wie in C++.

Chris

OregonGhost 19. Nov 2006 20:57

Re: Visual C++ - Label nen Text zuweisen -.-
 
Zitat:

Was??? :shocked:
O m g ich muss an mein eigenes Label en WM_SETTEXT schicken... ich glaub das grad nicht -.-
Und das ist die Programmiersprache die die halbe Welt benutzt
Wenn du mit C++ eine Win32-Anwendung programmierst, ist die Benutzung exakt identisch zur Win32-Programmierung mit Delphi. Luckies Win32-Tutorial kann dir da sicherlich weiterhelfen.
Vielleicht solltest du dir überlegen, ob du nicht eine andere API benutzen willst, z.B. die mit Visual C++ mitgelieferten MFC und ATL/WTL oder QT. Denn wenn du schon beim Setzen eines Fenstertext fluchst, wirst du mit Dialogen und Fensterprozeduren und den ganzen komplexeren Sachen deinen Tisch zerbeißen.

Roter Kasten macht gerade nichts, vielleicht hab ich noch einen Denkanstoß hinzugefügt :stupid:

Neutral General 19. Nov 2006 20:57

Re: Visual C++ - Label nen Text zuweisen -.-
 
Ja das Problem ist das es in der SendMessage funktion von C++ kein Parameter für das Handle gibt o.O

Benutze ja MFC.. ich konnte das auch mal und da ging das irgendwie einfacher aber ka... ich kanns nicht mehr :cry:

sniper_w 19. Nov 2006 21:00

Re: Visual C++ - Label nen Text zuweisen -.-
 
Zitat:

Und das ist die Programmiersprache die die halbe Welt benutzt
Mein Lieber General, das hat nichts mit einer Sprache zu tun, dass du jetzt SendMessage Funktion benutzen musst, sonder damit dass du kein Warper ala VCL hast. Ja es gibt MFC aber das ist beim weiten nicht so komfortabel wie VCL.

Übrigens, solltest du in Delphi auf VCL verzichten, so müsstest du auch eine WM_SETTEXT Kram durchziehen.

Zitat:

Nur sieht das Grundgerüst von C++ eben keine GUI oder dergleichen vor.
Richtig. Und im Prinzip hat eine GUI keine Verbindung mit irgendeine Sprache.

OregonGhost 19. Nov 2006 21:01

Re: Visual C++ - Label nen Text zuweisen -.-
 
Zitat:

Ja das Problem ist das es in der SendMessage funktion von C++ kein Parameter für das Handle gibt o.O
Die SendMessage-Funktion hat nichts mit C++ zu tun, sondern kommt aus der Win32-API und die hat garantiert einen Handle-Parameter.
Wenn du eine SendMessage-Funktion ohne diesen Parameter hast, dann hast du die SendMessage-Methode aus der MFC erwischt. In dem Fall benutzt du also die MFC und solltest dich in die erstmal einlesen, die Benutzung weicht etwas von der Win32-API und drastisch von der VCL ab.
Hat es einen besonderen Grund, dass du dieser Tage mit Visual C++ 6 und MFC eine Anwendung programmieren willst? Ich würde da nämlich dann eher die ATL/WTL empfehlen, oder alternativ QT.

Blöder roter Kasten, aber ich glaub, ich ahb schon wieder was anderes zu sagen :P

Neutral General 19. Nov 2006 21:05

Re: Visual C++ - Label nen Text zuweisen -.-
 
Naja ich wollte mich nächstes Jahr bei ner Firma um nen Ausbildungsplatz bewerben die u.a C++ (Visual Studio) benutzt und da hab ich mir gedacht ist das schonmal nicht schlecht wenn da schonmal bisschen was kann...

OregonGhost 19. Nov 2006 21:30

Re: Visual C++ - Label nen Text zuweisen -.-
 
Dann wäre es aber auch nicht komplett schlecht, zu wissen, wie sie Visual C++ benutzen... Theoretisch kannst du damit auch mit Windows Forms arbeiten, ab 7.1 oder 8.0 ;)

Wird wohl eine Menge Einlesen fällig, denn MFC&Co sind nicht unbedingt intuitiv.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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