-
Gesamte Inhalte
108 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von PuppetMaster
-
Oder nimm das hier: MessageBeep(0xFFFFFFFF);
-
Falsche Tastatureingabe bei C++
PuppetMaster antwortete auf MrKidney's Thema in C++: Compiler, IDEs, APIs
void __fastcall TfrmEingabe::rtfAKeyDown(TObject *Sender, WORD &Key,TShiftState Shift) { if(Key >= 58 && Key <= 127) labFehler->Visible = true; } [/php] -
Exemplarisches Beispiel Delphi nach c++ Builder, bitte
PuppetMaster antwortete auf dragi's Thema in C++: Compiler, IDEs, APIs
im C++ Builder sieht das ganze so aus: Erst mal eine neue Unit (Datei->Neu->Unit) Davon dann die Header-Datei öffnen (rechtsklick auf den Reiter "Unit1.cpp" "Quell/Header-Datei öffnen" klicken) dort dann zwischen #define und #endif folgender Code class TCaesar { private: protected: public: TCaesar(); //Konstruktor ~TCaesar(); //Destruktor AnsiString encode(AnsiString s, int delta); AnsiString decode(AnsiString s, int delta); published: }; [/php] in der *.cpp Datei dann unter dem #include "Unit1.h" [php] TCaesar::TCaesar() { } TCaesar::~TCaesar() { } AnsiString TCaesar::encode(AnsiString s, int delta) { char* P = s.c_str(); //c_str() wandelt AnsiString in char* um AnsiString tmp = ""; int iDelta = delta; int iRealDelta = 26; int iNewOrd; if(P != "") { while(P++ != 0) //glaube ich zumindest { //tja und ab hier weiß ich leider auch nicht weiter, dafür kenn ich michleider nicht gut genug aus } } return tmp; } AnsiString TCaesar::decode(AnsiString s, int delta) { // Hie dann das gleiche wie in encode machen bzw halt decode in C++ umsetzten } Aber ich denke den rest schaffst du bestimmt auch alleine, oder jemand hier im Forum macht den rest -
Die Angaben in dieser Tabelle basieren auf der Annahme, daß in der Formatieranweisungkeine Flag-Zeichen, Breitenangaben, Präzisionsangaben oder Größenmodifizierer enthalten waren Hinweis: Bestimmte Konventionen begleiten einige dieser Formatieranweisungen. Typzeichen Erwartete Eingabe Ausgabeformat Numerische Werte d Integer signed int (dezimal) i Integer signed int (dezimal) o Integer unsigned int (oktal) u Integer unsigned int (dezimal) x Integer unsigned int (hexadezimal), Buchstaben a bis f X Integer unsigned int (hexadezimal), Buchstaben A bis F f Gleitkomma vorzeichenbehafteter Wert der Form [-]dddd.dddd. e Gleitkomma vorzeichenbehafteter Wert der Form [-]d.dddd oder e[+/-]ddd g Gleitkomma vorzeichenbehafteter Wert im e- oder f-Format. Präzision gibt die Anzahl signifikanter Ziffern an. Abschließende Nullen und Dezimalpunkt werden nur ausgegeben, wenn es nötig ist. E Gleitkomma dasselbe Format wie e, aber mit dem Zeichen E für den Exponenten G Gleitkomma dasselbe Format wie e, aber mit dem Zeichen E für den Exponenten, wenn das Format e verwendet wird. Zeichen c Zeichen einzelnes Zeichen s String-Zeiger Ausgabe bis zu einem NULL-Zeichen oder dem Erreichen der durch Präzision vorgegebenen Zeichenzahl % (nichts) Ausgabe des Zeichens % Zeiger n Zeiger auf int Speichert an der Position, auf die das Eingabeargument zeigt, die Anzahl der bis jetzt ausgegebenen Zeichen. p Zeiger Gibt das Eingabeargument als Zeiger in hexadezimaler Form aus (near-Zeiger als YYYY, far-Zeiger als XXXX:YYYY). Unendlich große positive oder negative Gleitkommazahlen werden als +INF bzw. als -INF ausgegeben. Eine "IEEE-Nichtzahl" wird als +NAN oder -NAN (Not-A-Number ) angegeben.
-
hier gibts gute Tutorials
-
Ich habs hinbekommen! Es lag an der OnDraw Methode. In dieser hab ich die Scrollleisten ständig neuzeichnen lassen, daher hat das Prog wohl auch immer beide Scrollbars bewegt... Habs jetzt einfach über ein Flag gelöst. Wenn das erste mal gezeichnet wird, wird nach dem zeichnen der Scrollbars das Flag auf "true" gesetzt und danach, werden die Scrollbars nicht weiter neugezeichnet void CPCCView::OnDraw(CDC* pDC) { CPCCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if(!m_first) { m_Image->Load(pDoc->GetPathName()); //Vertikale Scrollbar anpassen, positionieren und neuzeichnen si.nMax = m_Image->m_Height; si.nPage = m_Image->m_Height/2; this->SetScrollInfo(SB_VERT, &si, TRUE); //Horizontale Scrollbar anpassen, positionieren und neuzeichnen si.nMax = m_Image->m_Width; si.nPage = m_Image->m_Width/2; this->SetScrollInfo(SB_HORZ, &si, TRUE); m_first = true; } //Bild zeichnen m_Image->UpdateSizeOnDC(pDC); //m_Image->Show(pDC, CPoint(0,0), CPoint(m_Image->m_Width, m_Image->m_Height), 0,0); m_Image->Show(pDC, CRect(0, 0, m_Image->m_Width, m_Image->m_Height)); }[/php] Danke nochmal für die Hilfe (=
-
Ich hoffe ich hab dich jetzt richtig verstanden Also bei beiden Paramtern von pScrollBar sagt mir der Debugger folgendes: pScrollBar = 0x00000000 {CScrollBar hWnd = ????} CWnd = CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden.
-
Wenn ich ScrollWindow() auskommentiere gehts (allerdings wird das Bild nicht gescrollt) Hier die MessageMap BEGIN_MESSAGE_MAP(CPCCView, CView) //{{AFX_MSG_MAP(CPCCView) ON_WM_LBUTTONDOWN() ON_WM_HSCROLL() ON_WM_VSCROLL() //}}AFX_MSG_MAP // Standard-Druckbefehle ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() [/PHP]
-
Ja genau das passiert. Aber ich kann mir nicht erklären warum!? P.S. ups, korrigiert
-
das hilft leider auch nicht, immer noch der selbe effekt. Ich verstehs echt nicht... :confused:
-
Hi zusammen! Ich poste hier jetzt einfach mal rein, in der Hoffnung das hier auch ein paar VC++ PhreakZ dabei sind Main Problem: Ich versuch ein Bild zu scrollen, aber das gelingt mir nicht wirklich so wie ich das gern hätte.Wenn ich zB nach unten scrolle, wir automatisch mit nach rechts gescrollt, umgekehrt genauso. Scrolle ich nach oben, wird automatisch nach links gescrollt. :eek: So hab ich das ganze implementiert: void CPCCView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { si.cbSize = sizeof(si); si.fMask = SIF_ALL; GetScrollInfo(SB_HORZ, &si, si.fMask); hscroll = si.nPos; switch(nSBCode) { case SB_PAGERIGHT: si.nPos += si.nPage; break; case SB_LINERIGHT: si.nPos += 2; break; case SB_PAGELEFT: si.nPos -= si.nPage; break; case SB_LINELEFT: si.nPos -= 2; break; case SB_THUMBPOSITION: si.nPos = si.nTrackPos; break; } si.fMask = SIF_POS; SetScrollInfo(SB_HORZ, &si, TRUE); GetScrollInfo(SB_HORZ, &si); //Bei Positionsänderung: Fenster horizontal rollen if(si.nPos != hscroll) { ScrollWindow(m_Image->m_Height * (hscroll - si.nPos), 0, NULL, NULL); } CView::OnHScroll(nSBCode, nPos, pScrollBar); } void CPCCView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { si.cbSize = sizeof(si); si.fMask = SIF_ALL; GetScrollInfo(SB_VERT, &si, si.fMask); vscroll = si.nPos; switch(nSBCode) { case SB_PAGEDOWN: si.nPos += si.nPage; break; case SB_LINEDOWN: si.nPos += 2; break; case SB_PAGEUP: si.nPos -= si.nPage; break; case SB_LINEUP: si.nPos -= 2; break; case SB_TOP: si.nPos = si.nMin; break; case SB_BOTTOM: si.nPos = si.nMax; break; case SB_THUMBTRACK: si.nPos = si.nTrackPos; break; } si.fMask = SIF_POS; SetScrollInfo(SB_VERT, &si, TRUE); GetScrollInfo(SB_VERT, &si); //Bei Positionsänderung: Fenster vertikal rollen und aktualisieren if(si.nPos != vscroll) { ScrollWindow(0, m_Image->m_Width * (vscroll - si.nPos) , NULL, NULL); UpdateWindow(); } CView::OnVScroll(nSBCode, nPos, pScrollBar); } [/php] Vielleicht seht ihr ja meinen Fehler :confused:
-
Zeitberenzte Version vom C++ Builder???
PuppetMaster antwortete auf Scherzkeks's Thema in C++: Compiler, IDEs, APIs
Du kannst dir bei Borland selbst auch ne Trial Version vom Builder runterladen Borland Das löst zumindest dein anfängliches Problem. Aber frag noch mal in der Schule nach, ich hab von meiner Berufsschule auch ne Nutzerlizenz bekommen für die 3 Jahre meiner Ausbildung Edit: Programme vom VC alssen sich nicht einfach so auf den Builder portieren, da musst du dann mit nem Extra Konverter dran, leider kann ich dir jetzt keinen nennen, aber es gibt sie -
Guck mal hier nach in der Hilfe: ServerSocket1->Socket->SendStream() ServerSocket1->Socket->SendText()[/PHP] Das sollte dir weiterhelfen :marine
-
Ein Edit hat kein SaveToFile. Dafür musst du entweder ein TMemo oder ein TRichEdit oder eine TStringList nehmen. Edit: guck dir mal die Hilfe zu SaveToFile an. Da steht alles drin
-
wie wärs denn mit der ganz normalen string-Klasse aus der Standard-Lib?
-
Zu dem Zeitpunkt wo du die Multiplikation durchführst hast du a und b bereits instanziert (somit also den Konstruktor der beiden Objekte schon aufgerufen) Folglich wird nur noch der Ktor von c aufgerufen. Also 3 mal insgesamt (a einmal, b einmal, c einmal) Hoffe das war verständlich
-
*kugelauspack*hellseh* Ähm Zeile 27 da hast du in der if(bla = blabla) sollte aber == sein. Ne ernst bei seite. Was ist denn dein Problem? P.S. ist wohl eher was für IDE-Compiler usw
-
Da ich selber bisher keines solcher reinen Aglgorithmen Bücher habe, hab ich einfach mal bei Amazon geguckt. Hier dürfte was für dich dabei sein
-
Guck mal hier bei Amazon nach, da hab ich 2 Bücher gefunden. Allerdings sind die bei Amazonnicht mehr lieferbar... Evtl kannst du die ja auch einfach bei dir in nem Buchladen nachbestellen
-
C++ Builder Komponente in VC++ .net nutzen
PuppetMaster antwortete auf MeisterB's Thema in C++: Compiler, IDEs, APIs
Ich glaube kaum. Wenn überhaupt, musst du dir die Kompo wohl nachcoden... -
Da du nach Strings suchst, würd ich vorschlagen TreeView1->Items und da mal genauer gucken (hilfe benutzen). Da gibts ja noch Subitems. Die kannste dann glaub ich mit Strings[] durchsuchen. Hoffe das ist richtig so
-
Hi! Nur noch so zur Info. Wenn du Memo1->Lines->Strings schreibst und dann 'i' in der for-Schleife hochzählst, schreibst du jeden Buchstabe in eine neue Zeile. Aber die Frage von Knuddlbaer ist eigentlich berechtigt, da zeielenweise einlesen schneller geht. Allerdings hat das Memo eine eigene Funktion dafür, die da lautet Memo1->Lines->LoadFromFile("C:\DeineDatei.dat") Ist sogar noch bequemer, da du dir sogar das mit fstream usw sparst P.S. AnsiString akzeptiert auch char über den op = AnsiString AS; char c[20] = "Hallo Welt!"; //Funktioniert ohne weiteres AS = c; [/PHP]
-
daten zwischen zwei Listboxes verschieben
PuppetMaster antwortete auf access_denied's Thema in C++: Compiler, IDEs, APIs
Hi! Deine Listbox hat auch die Eigeschaft Selected (is ne bool-var). Damit kannste ja in ner Schleife abfragen welcher Eintrag selketiert ist und ihn dann mit Listbox->Items->Strings[position] in ne AnsiString Variable packen zusammen mit dem Namen aus der Combobox. Un dann einfach über Listbox->Items->Add(NeuerEintrag) hinzufügen. Bsp.: void TForm1::NeuerEintrag(void) { for(int i = 0; i<ListBox->Items->Count; ++i) { if(ListBox->Selected[i]) { //Temp is vom Typ AnsiString das du in der Header-Datei deklarieren kannst //nur noch den Namen aus der ComboBox holen und in Temp schreiben und ab damit in die andere Listbox Temp = ListBox->Items->Strings[i]; } } } [/PHP] So in etwa. Nich getestet. *g* Puppet -
Hi! versuch's mal hier :uli
-
Moin! Tja wie wärs mit mehr infos?? Z.B. Benutzt du Borland oder VC++? oder gar was anderes? :confused: