Zum Inhalt springen

PuppetMaster

Mitglieder
  • Gesamte Inhalte

    108
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von PuppetMaster

  1. Oder nimm das hier: MessageBeep(0xFFFFFFFF);
  2. void __fastcall TfrmEingabe::rtfAKeyDown(TObject *Sender, WORD &Key,TShiftState Shift) { if(Key >= 58 && Key <= 127) labFehler->Visible = true; } [/php]
  3. 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
  4. 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.
  5. 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 (=
  6. 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.
  7. 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]
  8. Ja genau das passiert. Aber ich kann mir nicht erklären warum!? P.S. ups, korrigiert
  9. das hilft leider auch nicht, immer noch der selbe effekt. Ich verstehs echt nicht... :confused:
  10. 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:
  11. 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
  12. Guck mal hier nach in der Hilfe: ServerSocket1->Socket->SendStream() ServerSocket1->Socket->SendText()[/PHP] Das sollte dir weiterhelfen :marine
  13. 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
  14. wie wärs denn mit der ganz normalen string-Klasse aus der Standard-Lib?
  15. 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
  16. *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
  17. 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
  18. 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
  19. Ich glaube kaum. Wenn überhaupt, musst du dir die Kompo wohl nachcoden...
  20. 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
  21. 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]
  22. 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
  23. Moin! Tja wie wärs mit mehr infos?? Z.B. Benutzt du Borland oder VC++? oder gar was anderes? :confused:

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...