Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Builder C++ TabControl

Ostatnio zmodyfikowano 2011-12-17 18:34
Autor Wiadomość
DVD93
Temat założony przez niniejszego użytkownika
Builder C++ TabControl
» 2011-12-15 23:42:02
Witam usiłuję już od dłuższego czasu napisać w Borland Builder c++ Personal program w ,którym mógłbym tworzyć otwierać i edytować wiele dokumentów tekstowych naraz używając do tego celu komponentu TabControl. Lecz niestety program jedynie poprawnie otwiera dokumenty.
 
O to jego kod.

C/C++
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

int dokument = 1;

TForm1 * Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent * Owner )
    : TForm( Owner )
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click( TObject * Sender )
{
    String dok = IntToStr( dokument );
   
    SaveDialog1->FileName = "NOWY " + dok;
   
    Memo1->Lines->SaveToFile( SaveDialog1->FileName );
   
    TabControl1->Tabs->Add( OpenDialog1->FileName );
   
    dokument++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click( TObject * Sender )
{
    if( OpenDialog1->Execute() )
    {
        TabControl1->Tabs->Add( OpenDialog1->FileName );
        Memo1->Lines->LoadFromFile( OpenDialog1->FileName );
    }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TabControl1Change( TObject * Sender )
{
    Memo1->Lines->LoadFromFile( TabControl1->Tabs->Strings[ TabControl1->TabIndex ] );
}
//---------------------------------------------------------------------------


Jeśli ktoś wie co zrobić bym mógł jeszcze jednocześnie tworzyć dokumenty i je wszystkie edytować byłbym bardzo wdzięczny ;)
P-45677
xevuel
» 2011-12-17 08:45:42
Nigdy nie programowałem w Builder C++ więc ciężko mi jest połapać się w tym kodzie, ale co jest trudnego w edytowaniu? Otwierasz plik w nowej zakładce, wyświetlasz tekst, edytujesz tekst, zapisujesz tekst do pliku. Po ew. zmianie zakładki po prostu wczytujesz nazwę pliku z aktualnej zakładki i znowu edytujesz...
P-45717
DVD93
Temat założony przez niniejszego użytkownika
» 2011-12-17 09:25:55
No i widzisz to nie jest takie proste. Program źle odczytuję miejsce w ,którym dany plik się znajduje przez co wyskakuje mnóstwo błędów no i powinien sam zapisywać zmiany po zmianie zakładki niestety nie wiem też jak to rozwiązać.
P-45719
xevuel
» 2011-12-17 09:37:29
ech... Skoro otwierasz plik, to musisz też mieć podaną jego ścieżkę, tak? Więc otwierasz zakładkę 1 i np. w tablicy adresy zapisujesz
adresy[ 0 ] = sciezka;
. Po naciśnięciu "Zapisz" pobierasz ten adres z aktualnej zakładki i zapisujsz tam tekst... A co do zmiany zakładek, to po każdej zmianie jest wysyłany odpowiedni komunikat - jaki? przeczytaj » Kurs WinAPI, C++ » KontrolkiZakładki (TabCtrl) lekcja.
P-45720
DVD93
Temat założony przez niniejszego użytkownika
» 2011-12-17 14:24:53
Może ktoś kro programował kiedyś w Builderze ma jakiś pomysł?
P-45747
akwes
» 2011-12-17 15:59:46
To nie kwestia Buildera ;P
P-45752
DVD93
Temat założony przez niniejszego użytkownika
» 2011-12-17 16:18:40
Tak to kwestia mojego braku pomysłu na rozwiązanie tego problemu :) więc skoro już do tego doszliśmy to może ktoś teraz napisze coś pomocnego ;) ?
P-45755
akwes
» 2011-12-17 16:25:44
A powiedz Ty mi, czy chcesz mieć te TabControl w jednym Memo (lub RichEdit) czy wolisz w kilku ?

/* edit źle sie wyraziłem
czy na tab crontrol chcesz miec jedno memo czy wiele. A nie że tabcontrol w memo xD
*/

Każde ma swoje wady i zalety, które sądzę sam potrafisz obmyślić :P Nie chodzi mi teraz o samą implementacje pomysłu bo to szczegół. Wolisz kilka zakładek faktycznie, czy używanie jednej ?
P-45758
« 1 » 2
  Strona 1 z 2 Następna strona